郭志濤 韓海凈 孔江浩 楊革宇 曹小青
摘 要: 隨著嵌入式技術和移動通信技術的不斷發展,利用智能移動終端設備進行遠程監控已經成為網絡監控研究領域的熱點,本文設計了基于Android智能手機的多功能視頻監控系統。該系統分為視頻采集端、Android智能手機客戶端、Web服務器三層設計。視頻采集端利用網絡攝像頭采集視頻,并將其以H.264標準壓縮傳輸至服務器進行實時存儲,同時利用傳感器采集環境參數及有無人員入侵等信息;客戶端通過TCP/IP協議與服務器建立通信,實現實時視頻監控和監測數據的查閱,并對可疑情況報警與信息提示。綜合測試結果表明,系統實時性高且部署靈活,獲取的監控畫面清晰穩定,可以滿足無線網絡環境下遠程視頻監控的要求。
關鍵詞: 視頻監控系統; Android; 服務器; TCP/IP; 嵌入式技術; 智能移動終端
中圖分類號: TN948.64?34; TP311.5 文獻標識碼: A 文章編號: 1004?373X(2018)16?0096?04
Abstract: With the constant development of the embedded technology and mobile communication technology, the application of intelligent mobile terminal equipment for remote monitoring has become a hot spot in the research field of network monitoring. A multifunctional video surveillance system based on the Android smart phone is designed in this paper. In the system, three layers of the video acquisition terminal, Android smart phone client, and Web server are designed. In the video acquisition terminal, videos are collected by the network camera, compressed according to the H.264 standard, and then transmitted to the server for real?time storage. Meanwhile, environmental parameters and personnel intrusion information (if there is any) are collected by sensors. The communication between the client and the server is established by means of the TCP/IP protocol, so as to realize real?time video surveillance, monitoring data query, and alarm and message prompt of suspicious circumstances. The results of the comprehensive test show that the system has a high real?time performance and flexible deployment, can obtain clear and stable monitoring images, and meet the requirements of remote video monitoring in wireless network environment.
Keywords: video surveillance system; Android; server; TCP/IP; embedded technology; intelligent mobile terminal
數字視頻監控將前端采集的監控現場的視頻信息進行數字化處理,通過網絡將數據傳送至后端顯示設備,供監控人員決策、反應,并可在此基礎上實現人臉檢測、運動檢測、目標跟蹤等智能化分析處理[1?2]。移動視頻監控在某些特定應用場合克服了傳統數字視頻監控系統的缺陷,具有設備成本低、網絡安裝費用低、部署靈活、方便快捷等特點,可以應用于智能家居、公司企業管理、遠程醫療、遠程現場指揮等,監控人員可以自由靈活地掌握現場實時信息[3?4]。目前智能手機是最快捷、最普及的通信工具,其處理器能力在不斷提高,現在手機性能完全滿足視頻監控的實時性、高帶寬等技術要求。因此本文設計并實現了基于Android智能手機的多功能視頻監控系統,監控人員可以實時遠程觀看清晰的監控視頻并查看監控的環境參數,遇有可疑情況,系統會報警并發出提示信息。該系統具有很好的可靠性和便捷性,在家居安防方面具有一定的實用價值。
系統總體設計包括視頻采集端、Android智能手機客戶端、Web服務器設計三部分。系統總體結構示意圖如圖1所示。
1) 視頻采集端以STM32F103ZET6為控制核心,外圍硬件電路主要由網絡攝像頭和傳感器進行視頻監控、環境監測的數據采集,視頻通過Internet網絡發送至Web服務器。
2) Android智能手機客戶端交互軟件用 Java 語言編程,并在 Android Studio軟件環境中進行開發。客戶端軟件通過TCP/IP協議訪問服務器獲取視頻數據和環境檢測數據,并顯示在客戶端界面。
3) Web服務器的功能是存儲視頻采集端發送過來的視頻信息,供Android客戶端訪問和下載。服務器端數據采用SQL Server數據庫進行管理、維護。系統主要實現了實時遠程視頻監控、查看環境監測數據、自動切換視頻清晰度、發出警報和APP警報通知等功能。
本系統將裝有網絡攝像頭、傳感器的智能小車作為系統的視頻采集終端,采集到的數據經過網絡通信模塊發送到服務器端;智能小車接收服務器指令進行前進、后退等動作進行多方位的視頻監控,達到自由獲取視頻信息的目的。
2.1 視頻采集端硬件設計
視頻采集端即智能小車,其硬件主要由網絡攝像頭、網絡通信模塊、溫濕度傳感器、人體紅外感應器、警報器、照明燈組成。智能小車以STM32F103ZET6芯片為控制器,與51系列芯片相比,其運行速度快,外圍接口多,后續可方便增加傳感器以擴展系統功能。智能小車具備靈活的移動性,使得攝像頭可以360°采集視頻信息,當監控環境光線昏暗時可以啟用照明燈。網絡攝像頭采用雄邁 XM?JPR攝像頭,具備紅外夜視功能,可以4倍變焦,采集的視頻數據按照H.264標準壓縮,以IEEE 802.11n無線方式傳輸,傳輸幀率能夠自適應調整;網絡通信模塊采用GL?iNet無線迷你路由器,通過對其進行刷攝像頭驅動固件操作使攝像頭正常工作,攝像頭采集的視頻數據通過路由器發送至服務器;系統采用SHT20溫濕度傳感器采集監控環境的溫濕度信息,溫度檢測范圍在-40~125 ℃,濕度的測量范圍在0~100%,均采用串行數據傳輸方式傳輸;采用HC?SR501紅外感應器進行人體防盜檢測,當檢測到有人入侵時,警報器會發出急促的報警聲,同時向客戶端發送警報,客戶端能夠在通知欄收到警報通知,其硬件結構框圖如圖2所示。
2.2 視頻采集端軟件設計
視頻采集端程序在Keil環境下開發,使用C語言編寫對各個硬件模塊的控制代碼,系統上電初始化后網絡通信模塊掃描設定的路由器SSID進行聯網,連接成功后,攝像頭采集的視頻以H.264標準壓縮由網絡通信模塊上傳服務器。主控程序一方面將溫濕度傳感器采集數據上傳服務器,為了方便服務器端接收、存儲數據,數據以ASCII格式實現幀封裝,起始字符以“#P”表示溫度、“#w”表示濕度,結束字符為“@”;另一方面檢測是否收到客戶端發回的控制指令,收到指令后進行分析響應控制智能小車的移動。
3.1 客戶端軟件控制界面設計
Android客戶端應用程序是用Java 語言編程,在Android Studio軟件環境中進行開發,該軟件具有構建程序方便、完善的插件系統、UI編譯器性能好等優點。
Android客戶端應用軟件控制界面如圖3所示。軟件界面功能結構如圖4所示,客戶端用戶交互界面主要由視頻、環境監測、智能小車控制三部分功能模塊組成。視頻模塊包含實時錄像、照片抓拍和視頻清晰度調節三種功能,點擊實時錄像按鈕開始錄像,再次點擊完成錄像并以時間為文件名保存MP4格式到視頻列表中,點擊拍照按鈕進行拍照,抓拍照片以JPG格式保存視頻列表中,視頻清晰度能夠自動檢測當前網速并顯示當前視頻的清晰度的類別;環境監測模塊顯示當前溫度、濕度,點擊溫度或濕度按鈕將呈現8個整點時刻監測出的溫濕度變化折線圖界面,在設置按鈕中設置溫濕度最大值,當監測值超出設定值時,客戶端狀態欄會收到警告通知;智能小車控制模塊通過按鈕、進度條、重力感應(手機的傾斜角度)控制智能小車的行動,用于拍攝不同監控點的視頻,點擊探照燈和警報器按鈕,發送指令打開智能小車的探照燈和警報器,發出警示信號。
每一個Android程序只有一個主線程,用來實現UI繪制及更新、業務邏輯、連接各子線程等。多個子線程完成耗時的操作(聯網取數據、SD卡數據加載等)防止界面出現卡頓無反應現象[5]。在本設計的實時監控功能中,視頻文件較大,若只放在主線程下載會出現用戶等待時間過長或應用程序無響應的現象,分配三個子線程用于后臺并發下載視頻,而圖片拍照在保存圖片過程中需要寫入SD卡也屬于耗時操作。該過程相對于視頻下載耗時較小,因此分配一個子線程進行拍照保存,其他的界面控制按鈕的操作放在主線程進行。程序線程關系處理如圖5所示。
3.2 客戶端視頻監控功能設計
前端視頻監控攝像頭采用雄邁XM?JPR網絡攝像頭,具有無線WiFi、視頻按H.264標準壓縮傳輸等特點的網絡攝像機,采集的視頻數據按照RSTP(實時流傳輸協議)協議發送至服務器端,客戶端獲取的視頻數據經H.264解碼還原視頻圖像后顯示,為了提高解碼效率,移植了FFmpeg開源音視頻解碼庫進行H.264解碼。FFmpeg是一套開源免費跨平臺的音視頻流工具,包括目前領先的音視頻解碼庫Libavcodec,支持多于90種編解碼標準及RTMP,HTTP,TCP等多種網絡傳輸協議,將其移植到程序設計中,能增強程序對視頻信息的處理能力,改善用戶體驗[6?7]。
由于查看監控視頻手機連接網速快慢的不穩定性,在遠程監控時用戶往往體驗不暢,為了改善用戶體驗,需要碼流自適應和做到Android播放控件的自適應調節。播放控件自適應需根據網速的不同播放不同分辨率的視頻,改變視頻的編碼碼率保證緩沖區不會發生溢出。這里定義一個類名selfAdaption.class的Java文件,進行網速測試,調用Android流量統計TrafficStats類的getUidRxBytes()獲取1 s內接收的數據量,后1 s數據量減去前1 s的差值為當前網速;根據計算的網速將視頻清晰度分為高清、普清、流暢、圖片顯示4種格式,傳入清晰度的分辨率參數到方法setVideoSize()中設置不同的清晰度,表1為不同網速設置的清晰度。

服務器的主要作用是視頻采集端和Android客戶端之間的數據傳送的橋梁,存儲視頻采集端傳送過來的數據,并供Android客戶端訪問和下載。服務器與采集端、客戶端通信的實現是基于TCP/IP協議Socket編程,通過創建不同的Socket可以與多個終端通信,首先以設定好的端口號為參數創建ServerSocket對象,調用該對象的accept()方法監聽客戶端Socket連接請求,若沒有請求將一直處于堵塞狀態,當有數據到來時,由InputStream對象讀取數據OutputStream對象發送數據。服務器接收請求流程如圖6所示。服務器端采用SQL Server數據庫進行管理、維護,首先創建一個videoMonitor.db數據庫,并創建video_tb,data_tb兩個數據表,其中video_tb存放采集端發送的視頻數據,data_tb存放溫度、濕度的監控數據。DAO(Data Access Object)類即數據訪問對象用于連接數據庫和操作數據庫(增刪改查),通過繼承Dao類創建video_Dao類和data_Dao類分別對video_tb、data_tb表進行業務邏輯操作處理。
本測試在裝有Android 6.0的小米5軟件環境下進行。將編寫的Android客戶端應用程序安裝到手機上,視頻采集端(智能小車)上電初始化,打開手機客戶端軟件,進行WiFi連接,若連接失敗界面出現重新連接提示語,待連接成功后,提示成功連接服務器,出現監控畫面;點擊界面上控制智能小車的各個按鈕,智能小車完成了按鈕對應的移動監控,客戶端界面實時顯示監控畫面,并成功獲取環境監測的數據;當有人進入攝像頭監控區域時警報器響,界面的警報器控件變成紅色警告狀態,客戶端的通知欄收到推送警告通知。視頻監控畫面如圖7所示,環境監測的最新數據如圖8所示。
移動視頻監控以其成本費用低、操作方便靈活等優勢特點,在家居安防監控方面贏得大量市場需求。本文提出基于Android智能手機的多功能視頻監控的方案,用戶通過安裝設計的視頻監控APP,在手機聯網狀態下可隨時隨地觀看監控畫面。經過綜合測試,本系統很好地實現了監控系統的功能,具有可靠性高、方便靈活的特點,后續可增加一些傳感器擴展其功能,設計客戶端多路監控,將客戶端的界面設計得更加美觀并易于操作。
[1] 寧栗.基于Android平臺視頻監控系統的設計[D].北京:北京郵電大學,2011.
NING Li. Design of video surveillance system based on Android platform [D]. Beijing: Beijing University of Posts and Telecommunications, 2011.
[2] ZHANG Y X, LI F Q, TAO X, et al. Design and implementation of an intelligent video surveillance system based on Android phone [J]. Advanced materials research, 2013, 816?817: 1126?1130.
[3] 楊飛,陳德艷,黃國宏,等.基于Android智能終端的移動視頻監控系統研究[J].計算機技術與發展,2013(2):195?198.
YANG Fei, CHEN Deyan, HUANG Guohong, et al. Research on mobile video surveillance system based on Android smart terminal [J]. Computer technology and development, 2013(2): 195?198.
[4] 周騎,諸強.無線視頻監控系統研究及應用[J].無線互聯科技,2015(1):78?80.
ZHOU Qi, ZHU Qiang. The research and application of wireless video monitoring system [J]. Wireless Internet technology, 2015(1): 78?80.
[5] ZHOU Y, CHEN Z, LI K. Second?level buffer cache management [J]. IEEE transactions on parallel & distributed systems, 2004, 15(6): 505?519.
[6] 路青起,席丹丹.嵌入式Linux系統移植[J].國外電子測量技術,2014,33(12):78?81.
LU Qingqi, XI Dandan. Transplantation of embedded Linux system [J]. Foreign electronic measurement technology, 2014, 33(12): 78?81.
[7] 任廣杰,朱啟東,曹寧.高清視頻監控中的若干關鍵技術分析[J].電信科學,2011,27(2):119?123.
REN Guangjie, ZHU Qidong, CAO Ning. Analysis of some key technologies in high definition video surveillance [J]. Telecommunications science, 2011, 27(2): 119?123.
[8] MEIER R. Professional Android 2 application development [M]. Birmingham: Wrox Press, 2010.
[9] 張璘,馮陳偉,周超.基于Android的遠程視頻監控系統的設計與實現[J].計算機應用,2016,36(z1):301?304.
ZHANG Lin, FENG Chenwei, ZHOU Chao. Design of remote video surveillance system based on Android system [J]. Journal of computer applications, 2016, 36(S1): 301?304.
[10] 張劍龍,王耀青,楊柳.基于3G和WiFi的無線視頻監控系統的設計[J].電視技術,2015,39(16):57?60.
ZHANG Jianlong, WANG Yaoqing, YANG Liu. Design of wireless video monitoring system based on 3G and WiFi [J]. Video engineering, 2015, 39(16): 57?60.