王祥金
(山東司法警官職業學院,山東濟南,250000)
近些年來,視頻監控系統已經在外貿物流、交通運輸等行業領域中得到廣泛應用,并表現出較為良好的應用成效。但在具體應用過程中,由于傳統視頻監控系統存在數據傳輸距離相對有限、需要實時大量布線、圖像數據易受損、圖像查詢難度大等問題,相關問題的存在嚴重阻礙視頻監控系統的進一步應用及發展。據此,本文將提出一種小型化視頻監控系統設計方案,并充分保障此系統應用過程中的圖像查詢便利性和應用有效性,解決當前視頻監控系統中存在的各類問題。
為保障基于計算機軟硬件的視頻監控系統的通用性,在系統設計過程中引入了嵌入式技術。此系統主要由采集前端(USB攝像頭)、嵌入式硬件平臺、Web服務器以及客戶端四部分組成[1],具體設計架構如圖1所示。此外,在設計中還會引入MEJEPG算法,主要用于對攝像頭所采集的視頻圖像進行壓縮處理,以此來減少視頻圖像存儲過程中的內存占用。在完成圖像壓縮后,所有圖像均會上傳到Web服務器,用戶有需求時可以通過登錄Web服務器的方式來查看存儲在Web服務器中的實時監控數據。

圖1 視頻監控系統總體設計架構
從計算機軟硬件角度來看,本文所設計的視頻監控系統還可以分為軟件系統和硬件系統兩部分。其中軟件系統主要是USB攝像頭驅動、V4L2信號采集、圖像壓縮算法、Web服務器、用戶控制模塊、客戶端模塊等[2];硬件系統則分為核心板監控攝像電路以及WiFi無線網卡三部分。具體應用過程中,客戶端或者手機等終端設備可以通過瀏覽器訪問等方式對Web服務器上的視頻數據進行實時查看。
2.1.1 核心板設計
系統硬件設計過程中,其開發板將會采用核心板+底板的方式進行集成開發?;谟嬎銠C軟硬件的視頻監控系統中硬件系統電路如圖2所示。

圖2 基于計算機軟硬件的視頻監控系統中硬件系統電路
(1)S3C2440核心板
核心板將會采用S3C2440核心板。S3C2440核心板上集成有ARM920T內核,32位總線以及ARM指令集,其內置主處理器工作頻率可達到400MHz,不僅可以實現數據的高效運算及處理,還可以為人機交互、OS支持等方式提供更為良好的支持,符合本設計的實際要求,所以在對當前市場中各類產品進行性能及經濟性綜合考慮后,最終選用了S3C2440核心板。
(2)底板
底板作為硬件系統的關鍵部分之一,其中集成了電源電路、USB監控設備電路、LCD電路等除S3C2440核心板對應電路以外其他各類硬件電路。在相關硬件電路的支持下,底板同時兼具高頻電路和數字電路的特點,為能夠可以有效抑制傳統電路中的噪聲干擾問題,設計中將會采用如電源粗導線、避免90°折線、芯片背置濾波電容等電路板抗干擾技術。
2.1.2 USB監控攝像電路設計
設計中所采用的USB監控攝像頭為UVC攝像頭,此攝像頭內置標準USB接口,有利于后續使用。在具體設計中,USB監控攝像電路設計方案如圖3所示。

圖3 USB監控攝像電路設計方案
2.1.3 WiFi無線網卡模塊
綜合經濟性、性能、便利性等多方面要求,在設計中WIFi無線網卡模塊最終選擇了TL-WN321G5無線網卡,此網卡內置有智能天線和USB總線接口,可以通過總線來實現無線的快速訪問和讀數,最大反射功率可達到20dBm,實際工作頻率為2.4~2.48GHz,在理想工作環境下的最遠覆蓋范圍可達到300m,可以滿足本設計中WiFi無線網卡模塊的相關功能、性能要求。
軟件系統中的V4L2信號采集會通過USB攝像頭驅動會從采集前端獲取USB攝像頭所采集的視頻圖像數據,相關數據在經過圖像壓縮算法處理后,傳遞給Web服務器進行存儲,客戶端可以通過獲取Web服務器中的視頻數據來實現實時視頻查看的效果。
2.2.1 USB攝像頭驅動
設計中USB攝像頭渠道將會采用spca5xx,此驅動為Linux平臺下通用驅動,功能可以滿足本設計要求。但由于此通用驅動不支持ZC301P芯片,所以還需要在設計中對通用驅動內核源代碼進行合理修改,確保修改代碼后的通用驅動可以支持設計中所采用的USB攝像頭。此過程中采用了驅動模塊模式,僅需要對通信驅動程序進行內核模塊化修改,然后通過“insmod”命令來加載修改后的模塊,便可以實現設計中USB攝像頭驅動加載效果。
2.2.2 V4L2信號采集
設計中所采用的V4L2接口可以為系統上層應用提供重要接口函數支持,進而方便后續系統應用過程中的系統對USB攝像頭的合理操作及使用,達成系統設計中規定的視頻圖像采集效果。相對傳統方式來說,V4L2接口對USB攝像頭的操作方式更為簡便,具體設計過程中可以直接通過“Open()”等操作函數來實現USB攝像頭的直接操作效果。此外,V4L2接口可以提供直接數據讀取和內存映射兩種視頻數據采集方式,兩種數據采集方式分別以“read()”和“mmap()”實現,相對來說,內存映射數據存儲效率更高,所以在設計中將會采用此種方式進行V4L2接口設計[3]。
2.2.3 圖像壓縮算法
圖像壓縮算法最為常用的算法為MPEG圖像壓縮算法,其在應用是僅會對圖像幀之間的差異數據進行存儲,而對于相同數據則不會存儲,以此來減少數據存儲量,達成最大化視頻壓縮效果。但受限于本文所設計的硬件設備限制,為保障最佳遠程視頻監控效果,實際設計中無法采用MPEG圖像壓縮算法,則會采用MJPEG算法進行圖像視頻壓縮。此算法在應用過程中動態化使用了JPEG算法,其在視頻圖像壓縮過程中僅會實現圖像幀壓縮保存,可以實現進一步壓縮效果,配合Web服務器和Soeket編程,可以實現視頻采集后的快速壓縮及上傳。
2.2.4 Web服務器
Web服務器會通過HTTP協議與用戶側客戶端進行數據交互,并通過控制模塊接受用戶所發出視頻監控系統操控指令,根據操控指令為用戶傳遞存儲在Web服務器中的壓縮視頻內容。本設計中采用了更適用于嵌入式系統的Boa Web服務器.此服務器作為一種單任務HTTP服務器,其可以動態化支持Web技術,并且為此服務器采用開放式源代碼,實際性能和性價比均相對較高,再加上服務器運行程序對于空間占用相對較小,綜合來說符合本設計中視頻監控系統的開發要求,進而在綜合市場上多種服務器后,選用了Boa Web服務器[4]。此外,設計中還采用了CGI技術,為Web服務器提供CGI程序調用時的接口協議標準支持,為后續設計的模塊化構建提供重要保障。最后,Web服務器還可以將系統所采集到的視頻圖像進行有效存儲,其中圖像拍照存儲間隔時間和存儲位置用戶可以根據自身所需執行設置,圖像拍照的命名則是系統根據當前時間依據時間順序方式進行依次命名,以便于用戶在后續圖像查看時能夠更加快速有效的查詢到自身所需圖像。此過程中,系統會首先在Web服務器中申請一塊緩存,并確定緩存區能夠反之一幀圖像數據,之后再將獲取到的視頻幀放置在緩存區。
2.2.5 用戶控制模塊
用戶控制模塊可以根據用戶的操控需求及控制指令,對系統中各類設備進行有效控制及管理。具體設計過程中,用戶控制模塊可以通過Socket來接收用戶側傳遞的操控指令,并由此來對USB攝像頭進行有效控制及Web服務器中視頻數據瀏覽及控制。為保障系統的安全性,用戶在向Web服務器發起連接請求時,Web服務器會先對用戶的權限進行檢查確認,用戶通過權限認證后,方可使用用戶控制模塊的各類功能;若是用戶未通過Web服務器的權限驗證,那么Web服務器將會向用戶返回“操作錯誤”等提示[5]。
2.2.6 Qt主界面程序
Qt主界面程序在實際運行過程中會議main()函數作為起始點,并由此創建出一個主窗口,在主窗口的基礎上再添加QLable進行主界面視頻圖像顯示,其中主窗口的實現需要ProcessImage類作為支持。在具體實現過程中,不僅ProcessImage類會繼承自QWidget類,其他窗口的對應類也同樣會如此,QWidget類則會在應用過程中集成QObject類數據或者數據QPaintDevice類數據,相關數據信息在系統設計中均會存儲在main.cpp文件中。同時,在設計中,為方便用戶操作需要將主界面程序設置為支持中文顯示,然后在為其定義QApplication對象,QApplication對象,作為Qt應用的代表性對象內容,其在系統設計中將會通過全局指針變量qApp來實現應用程序的中該對象的快速訪問。
此外,Qt對象之間需要特有的信號與槽作為通信機制支持,此特點是Qt主界面程序與其他圖形界面程序之間的典型差異特征。在信號與槽使用前,必須要對其進行合理定義,并且還需要主義僅有從QObject類所派生出的類才能夠有效調用信號與槽,而本設計中所采用的QWidget類作為QObject所派生出的類,其在系統設計中將會根據用戶需求及其控制指令來合理調用信號與槽,并對信號與槽進行自動定義[7]。在具體定義過程中,由于信號與槽通常不會存在函數實體,并且應用中也不會向系統返回函數值,所以在定義中需要引入“slots”,而且定義過程中還需要對相關函數實體進行詳細編寫,保障信號與槽在應用時能夠實現定義和使用區域位于同一個類中。
2.2.7 客戶端模塊
用戶側客戶端模塊主要分為PC客戶端和手機客戶端兩部分。其中PC客戶端主要采用OpenCV計算機視覺庫來實現圖像處理和計算機視覺,其讀寫接口則會采用OpenCV中應用較為廣泛的HighGUI庫來實現視頻圖像的讀寫處理;手機客戶端則是采用Android平臺作為基礎操作系統,并以此為基礎開發出一款適用于手機的客戶端,實現對視頻監控系統的遠程監控、實施錄像以及視頻圖像在線瀏覽。在設計中,手機客戶端的實際工作流程如圖4所示。用戶在通過客戶端進行Web服務器視頻圖像資源瀏覽時,還可以通過用戶控制模塊來實現攝像頭的多角度旋轉,進而實現360°監控的效果。同時,在實際監控過程中,用戶還可以根據自身需要,隨意調整畫面中的對比度、亮度等基本參數,保障畫面的飽滿效果。另外,本設計還支持多平臺視頻圖像資源同時瀏覽效果,并且畫面流暢清晰,雖然具體監控中由于網絡傳輸速度等因素的影響,存在一定的延遲情況,但延遲速度低于1s,基本上不會影響用戶的操作體驗,所以可以滿足視頻監控的實時性要求[8]。

圖4 V4L2接口運作流程圖

圖5 手機客戶端的工作流程圖
系統測試可以有效檢測出整體設計開發中存在的各類問題,進而便于后續系統優化及完善。實際系統測試主要包括視頻監控系統啟動及運行、客戶端啟動及運行兩部分內容。其中視頻監控系統啟動及運行測試會先啟動開發板,并通過開發板來獲取USB攝像頭的視頻信號,并將視頻信號進行壓縮處理,上傳到Web服務器,檢驗上傳到Web服務器中數據的完整性[6];客戶端啟動及運行測試則是分別在PC客戶端和手機客戶端測試兩種客戶端對視頻監視服務器的操作控制及視頻圖像播放效果是否能夠滿足原設計要求。在經過一系列測試后發現,本文所提出的基于計算機軟硬件的視頻監控系統基本可以達成原設計要求,說明此設計較為成功,可作為后續視頻監控系統的系統設計使用。
綜上所述,本文以Linux和核心開發板為系統核心,通過嵌入式技術構建Web服務器和視頻服務器,并結合Socket來實現視頻監控系統與視頻監控攝像頭之間的網絡通信,進而將視頻數據采集并上傳到服務器客戶端,用戶可以通過客戶端來實現視頻顯示及瀏覽??傮w來說,此系統具有較強的可靠性,所獲取的視頻圖像實時精準,值得后續視頻監控系統設計時進行合理參考。