王祥金
(山東司法警官職業(yè)學(xué)院,山東濟南,250000)
近些年來,視頻監(jiān)控系統(tǒng)已經(jīng)在外貿(mào)物流、交通運輸?shù)刃袠I(yè)領(lǐng)域中得到廣泛應(yīng)用,并表現(xiàn)出較為良好的應(yīng)用成效。但在具體應(yīng)用過程中,由于傳統(tǒng)視頻監(jiān)控系統(tǒng)存在數(shù)據(jù)傳輸距離相對有限、需要實時大量布線、圖像數(shù)據(jù)易受損、圖像查詢難度大等問題,相關(guān)問題的存在嚴重阻礙視頻監(jiān)控系統(tǒng)的進一步應(yīng)用及發(fā)展。據(jù)此,本文將提出一種小型化視頻監(jiān)控系統(tǒng)設(shè)計方案,并充分保障此系統(tǒng)應(yīng)用過程中的圖像查詢便利性和應(yīng)用有效性,解決當前視頻監(jiān)控系統(tǒng)中存在的各類問題。
為保障基于計算機軟硬件的視頻監(jiān)控系統(tǒng)的通用性,在系統(tǒng)設(shè)計過程中引入了嵌入式技術(shù)。此系統(tǒng)主要由采集前端(USB攝像頭)、嵌入式硬件平臺、Web服務(wù)器以及客戶端四部分組成[1],具體設(shè)計架構(gòu)如圖1所示。此外,在設(shè)計中還會引入MEJEPG算法,主要用于對攝像頭所采集的視頻圖像進行壓縮處理,以此來減少視頻圖像存儲過程中的內(nèi)存占用。在完成圖像壓縮后,所有圖像均會上傳到Web服務(wù)器,用戶有需求時可以通過登錄Web服務(wù)器的方式來查看存儲在Web服務(wù)器中的實時監(jiān)控數(shù)據(jù)。
圖1 視頻監(jiān)控系統(tǒng)總體設(shè)計架構(gòu)
從計算機軟硬件角度來看,本文所設(shè)計的視頻監(jiān)控系統(tǒng)還可以分為軟件系統(tǒng)和硬件系統(tǒng)兩部分。其中軟件系統(tǒng)主要是USB攝像頭驅(qū)動、V4L2信號采集、圖像壓縮算法、Web服務(wù)器、用戶控制模塊、客戶端模塊等[2];硬件系統(tǒng)則分為核心板監(jiān)控攝像電路以及WiFi無線網(wǎng)卡三部分。具體應(yīng)用過程中,客戶端或者手機等終端設(shè)備可以通過瀏覽器訪問等方式對Web服務(wù)器上的視頻數(shù)據(jù)進行實時查看。
2.1.1 核心板設(shè)計
系統(tǒng)硬件設(shè)計過程中,其開發(fā)板將會采用核心板+底板的方式進行集成開發(fā)?;谟嬎銠C軟硬件的視頻監(jiān)控系統(tǒng)中硬件系統(tǒng)電路如圖2所示。
圖2 基于計算機軟硬件的視頻監(jiān)控系統(tǒng)中硬件系統(tǒng)電路
(1)S3C2440核心板
核心板將會采用S3C2440核心板。S3C2440核心板上集成有ARM920T內(nèi)核,32位總線以及ARM指令集,其內(nèi)置主處理器工作頻率可達到400MHz,不僅可以實現(xiàn)數(shù)據(jù)的高效運算及處理,還可以為人機交互、OS支持等方式提供更為良好的支持,符合本設(shè)計的實際要求,所以在對當前市場中各類產(chǎn)品進行性能及經(jīng)濟性綜合考慮后,最終選用了S3C2440核心板。
(2)底板
底板作為硬件系統(tǒng)的關(guān)鍵部分之一,其中集成了電源電路、USB監(jiān)控設(shè)備電路、LCD電路等除S3C2440核心板對應(yīng)電路以外其他各類硬件電路。在相關(guān)硬件電路的支持下,底板同時兼具高頻電路和數(shù)字電路的特點,為能夠可以有效抑制傳統(tǒng)電路中的噪聲干擾問題,設(shè)計中將會采用如電源粗導(dǎo)線、避免90°折線、芯片背置濾波電容等電路板抗干擾技術(shù)。
2.1.2 USB監(jiān)控攝像電路設(shè)計
設(shè)計中所采用的USB監(jiān)控攝像頭為UVC攝像頭,此攝像頭內(nèi)置標準USB接口,有利于后續(xù)使用。在具體設(shè)計中,USB監(jiān)控攝像電路設(shè)計方案如圖3所示。
圖3 USB監(jiān)控攝像電路設(shè)計方案
2.1.3 WiFi無線網(wǎng)卡模塊
綜合經(jīng)濟性、性能、便利性等多方面要求,在設(shè)計中WIFi無線網(wǎng)卡模塊最終選擇了TL-WN321G5無線網(wǎng)卡,此網(wǎng)卡內(nèi)置有智能天線和USB總線接口,可以通過總線來實現(xiàn)無線的快速訪問和讀數(shù),最大反射功率可達到20dBm,實際工作頻率為2.4~2.48GHz,在理想工作環(huán)境下的最遠覆蓋范圍可達到300m,可以滿足本設(shè)計中WiFi無線網(wǎng)卡模塊的相關(guān)功能、性能要求。
軟件系統(tǒng)中的V4L2信號采集會通過USB攝像頭驅(qū)動會從采集前端獲取USB攝像頭所采集的視頻圖像數(shù)據(jù),相關(guān)數(shù)據(jù)在經(jīng)過圖像壓縮算法處理后,傳遞給Web服務(wù)器進行存儲,客戶端可以通過獲取Web服務(wù)器中的視頻數(shù)據(jù)來實現(xiàn)實時視頻查看的效果。
2.2.1 USB攝像頭驅(qū)動
設(shè)計中USB攝像頭渠道將會采用spca5xx,此驅(qū)動為Linux平臺下通用驅(qū)動,功能可以滿足本設(shè)計要求。但由于此通用驅(qū)動不支持ZC301P芯片,所以還需要在設(shè)計中對通用驅(qū)動內(nèi)核源代碼進行合理修改,確保修改代碼后的通用驅(qū)動可以支持設(shè)計中所采用的USB攝像頭。此過程中采用了驅(qū)動模塊模式,僅需要對通信驅(qū)動程序進行內(nèi)核模塊化修改,然后通過“insmod”命令來加載修改后的模塊,便可以實現(xiàn)設(shè)計中USB攝像頭驅(qū)動加載效果。
2.2.2 V4L2信號采集
設(shè)計中所采用的V4L2接口可以為系統(tǒng)上層應(yīng)用提供重要接口函數(shù)支持,進而方便后續(xù)系統(tǒng)應(yīng)用過程中的系統(tǒng)對USB攝像頭的合理操作及使用,達成系統(tǒng)設(shè)計中規(guī)定的視頻圖像采集效果。相對傳統(tǒng)方式來說,V4L2接口對USB攝像頭的操作方式更為簡便,具體設(shè)計過程中可以直接通過“Open()”等操作函數(shù)來實現(xiàn)USB攝像頭的直接操作效果。此外,V4L2接口可以提供直接數(shù)據(jù)讀取和內(nèi)存映射兩種視頻數(shù)據(jù)采集方式,兩種數(shù)據(jù)采集方式分別以“read()”和“mmap()”實現(xiàn),相對來說,內(nèi)存映射數(shù)據(jù)存儲效率更高,所以在設(shè)計中將會采用此種方式進行V4L2接口設(shè)計[3]。
2.2.3 圖像壓縮算法
圖像壓縮算法最為常用的算法為MPEG圖像壓縮算法,其在應(yīng)用是僅會對圖像幀之間的差異數(shù)據(jù)進行存儲,而對于相同數(shù)據(jù)則不會存儲,以此來減少數(shù)據(jù)存儲量,達成最大化視頻壓縮效果。但受限于本文所設(shè)計的硬件設(shè)備限制,為保障最佳遠程視頻監(jiān)控效果,實際設(shè)計中無法采用MPEG圖像壓縮算法,則會采用MJPEG算法進行圖像視頻壓縮。此算法在應(yīng)用過程中動態(tài)化使用了JPEG算法,其在視頻圖像壓縮過程中僅會實現(xiàn)圖像幀壓縮保存,可以實現(xiàn)進一步壓縮效果,配合Web服務(wù)器和Soeket編程,可以實現(xiàn)視頻采集后的快速壓縮及上傳。
2.2.4 Web服務(wù)器
Web服務(wù)器會通過HTTP協(xié)議與用戶側(cè)客戶端進行數(shù)據(jù)交互,并通過控制模塊接受用戶所發(fā)出視頻監(jiān)控系統(tǒng)操控指令,根據(jù)操控指令為用戶傳遞存儲在Web服務(wù)器中的壓縮視頻內(nèi)容。本設(shè)計中采用了更適用于嵌入式系統(tǒng)的Boa Web服務(wù)器.此服務(wù)器作為一種單任務(wù)HTTP服務(wù)器,其可以動態(tài)化支持Web技術(shù),并且為此服務(wù)器采用開放式源代碼,實際性能和性價比均相對較高,再加上服務(wù)器運行程序?qū)τ诳臻g占用相對較小,綜合來說符合本設(shè)計中視頻監(jiān)控系統(tǒng)的開發(fā)要求,進而在綜合市場上多種服務(wù)器后,選用了Boa Web服務(wù)器[4]。此外,設(shè)計中還采用了CGI技術(shù),為Web服務(wù)器提供CGI程序調(diào)用時的接口協(xié)議標準支持,為后續(xù)設(shè)計的模塊化構(gòu)建提供重要保障。最后,Web服務(wù)器還可以將系統(tǒng)所采集到的視頻圖像進行有效存儲,其中圖像拍照存儲間隔時間和存儲位置用戶可以根據(jù)自身所需執(zhí)行設(shè)置,圖像拍照的命名則是系統(tǒng)根據(jù)當前時間依據(jù)時間順序方式進行依次命名,以便于用戶在后續(xù)圖像查看時能夠更加快速有效的查詢到自身所需圖像。此過程中,系統(tǒng)會首先在Web服務(wù)器中申請一塊緩存,并確定緩存區(qū)能夠反之一幀圖像數(shù)據(jù),之后再將獲取到的視頻幀放置在緩存區(qū)。
2.2.5 用戶控制模塊
用戶控制模塊可以根據(jù)用戶的操控需求及控制指令,對系統(tǒng)中各類設(shè)備進行有效控制及管理。具體設(shè)計過程中,用戶控制模塊可以通過Socket來接收用戶側(cè)傳遞的操控指令,并由此來對USB攝像頭進行有效控制及Web服務(wù)器中視頻數(shù)據(jù)瀏覽及控制。為保障系統(tǒng)的安全性,用戶在向Web服務(wù)器發(fā)起連接請求時,Web服務(wù)器會先對用戶的權(quán)限進行檢查確認,用戶通過權(quán)限認證后,方可使用用戶控制模塊的各類功能;若是用戶未通過Web服務(wù)器的權(quán)限驗證,那么Web服務(wù)器將會向用戶返回“操作錯誤”等提示[5]。
2.2.6 Qt主界面程序
Qt主界面程序在實際運行過程中會議main()函數(shù)作為起始點,并由此創(chuàng)建出一個主窗口,在主窗口的基礎(chǔ)上再添加QLable進行主界面視頻圖像顯示,其中主窗口的實現(xiàn)需要ProcessImage類作為支持。在具體實現(xiàn)過程中,不僅ProcessImage類會繼承自QWidget類,其他窗口的對應(yīng)類也同樣會如此,QWidget類則會在應(yīng)用過程中集成QObject類數(shù)據(jù)或者數(shù)據(jù)QPaintDevice類數(shù)據(jù),相關(guān)數(shù)據(jù)信息在系統(tǒng)設(shè)計中均會存儲在main.cpp文件中。同時,在設(shè)計中,為方便用戶操作需要將主界面程序設(shè)置為支持中文顯示,然后在為其定義QApplication對象,QApplication對象,作為Qt應(yīng)用的代表性對象內(nèi)容,其在系統(tǒng)設(shè)計中將會通過全局指針變量qApp來實現(xiàn)應(yīng)用程序的中該對象的快速訪問。
此外,Qt對象之間需要特有的信號與槽作為通信機制支持,此特點是Qt主界面程序與其他圖形界面程序之間的典型差異特征。在信號與槽使用前,必須要對其進行合理定義,并且還需要主義僅有從QObject類所派生出的類才能夠有效調(diào)用信號與槽,而本設(shè)計中所采用的QWidget類作為QObject所派生出的類,其在系統(tǒng)設(shè)計中將會根據(jù)用戶需求及其控制指令來合理調(diào)用信號與槽,并對信號與槽進行自動定義[7]。在具體定義過程中,由于信號與槽通常不會存在函數(shù)實體,并且應(yīng)用中也不會向系統(tǒng)返回函數(shù)值,所以在定義中需要引入“slots”,而且定義過程中還需要對相關(guān)函數(shù)實體進行詳細編寫,保障信號與槽在應(yīng)用時能夠?qū)崿F(xiàn)定義和使用區(qū)域位于同一個類中。
2.2.7 客戶端模塊
用戶側(cè)客戶端模塊主要分為PC客戶端和手機客戶端兩部分。其中PC客戶端主要采用OpenCV計算機視覺庫來實現(xiàn)圖像處理和計算機視覺,其讀寫接口則會采用OpenCV中應(yīng)用較為廣泛的HighGUI庫來實現(xiàn)視頻圖像的讀寫處理;手機客戶端則是采用Android平臺作為基礎(chǔ)操作系統(tǒng),并以此為基礎(chǔ)開發(fā)出一款適用于手機的客戶端,實現(xiàn)對視頻監(jiān)控系統(tǒng)的遠程監(jiān)控、實施錄像以及視頻圖像在線瀏覽。在設(shè)計中,手機客戶端的實際工作流程如圖4所示。用戶在通過客戶端進行Web服務(wù)器視頻圖像資源瀏覽時,還可以通過用戶控制模塊來實現(xiàn)攝像頭的多角度旋轉(zhuǎn),進而實現(xiàn)360°監(jiān)控的效果。同時,在實際監(jiān)控過程中,用戶還可以根據(jù)自身需要,隨意調(diào)整畫面中的對比度、亮度等基本參數(shù),保障畫面的飽滿效果。另外,本設(shè)計還支持多平臺視頻圖像資源同時瀏覽效果,并且畫面流暢清晰,雖然具體監(jiān)控中由于網(wǎng)絡(luò)傳輸速度等因素的影響,存在一定的延遲情況,但延遲速度低于1s,基本上不會影響用戶的操作體驗,所以可以滿足視頻監(jiān)控的實時性要求[8]。
圖4 V4L2接口運作流程圖
圖5 手機客戶端的工作流程圖
系統(tǒng)測試可以有效檢測出整體設(shè)計開發(fā)中存在的各類問題,進而便于后續(xù)系統(tǒng)優(yōu)化及完善。實際系統(tǒng)測試主要包括視頻監(jiān)控系統(tǒng)啟動及運行、客戶端啟動及運行兩部分內(nèi)容。其中視頻監(jiān)控系統(tǒng)啟動及運行測試會先啟動開發(fā)板,并通過開發(fā)板來獲取USB攝像頭的視頻信號,并將視頻信號進行壓縮處理,上傳到Web服務(wù)器,檢驗上傳到Web服務(wù)器中數(shù)據(jù)的完整性[6];客戶端啟動及運行測試則是分別在PC客戶端和手機客戶端測試兩種客戶端對視頻監(jiān)視服務(wù)器的操作控制及視頻圖像播放效果是否能夠滿足原設(shè)計要求。在經(jīng)過一系列測試后發(fā)現(xiàn),本文所提出的基于計算機軟硬件的視頻監(jiān)控系統(tǒng)基本可以達成原設(shè)計要求,說明此設(shè)計較為成功,可作為后續(xù)視頻監(jiān)控系統(tǒng)的系統(tǒng)設(shè)計使用。
綜上所述,本文以Linux和核心開發(fā)板為系統(tǒng)核心,通過嵌入式技術(shù)構(gòu)建Web服務(wù)器和視頻服務(wù)器,并結(jié)合Socket來實現(xiàn)視頻監(jiān)控系統(tǒng)與視頻監(jiān)控攝像頭之間的網(wǎng)絡(luò)通信,進而將視頻數(shù)據(jù)采集并上傳到服務(wù)器客戶端,用戶可以通過客戶端來實現(xiàn)視頻顯示及瀏覽。總體來說,此系統(tǒng)具有較強的可靠性,所獲取的視頻圖像實時精準,值得后續(xù)視頻監(jiān)控系統(tǒng)設(shè)計時進行合理參考。