崔秀芳,王宏宇,陳 剛,李培培,石福孝
(上海海洋大學(xué) 工程學(xué)院,上海 201306)
隨著海洋資源的發(fā)展,國(guó)家對(duì)漁船工業(yè)的發(fā)展越來(lái)越重視,研究高技術(shù)漁船以滿足海洋開(kāi)發(fā)需要的同時(shí)漁船安全問(wèn)題也日益突出,沿岸漁船由于視野盲區(qū)發(fā)生安全生產(chǎn)事故的事件時(shí)有發(fā)生,輕者漁船遭到破壞,重者導(dǎo)致漁船沉沒(méi),漁民的生命財(cái)產(chǎn)收到極大威脅,如何解決沿岸漁船安全問(wèn)題成為迫切要解決的重點(diǎn)。海洋環(huán)境的復(fù)雜性決定,為了保障漁民的安全,急需建立一套完整的沿岸漁船監(jiān)控系統(tǒng)。
漁船視頻監(jiān)控可以在減少人力重復(fù)工作的同時(shí)及早發(fā)現(xiàn)潛在危害,提前預(yù)防,減少災(zāi)害的發(fā)生,在救助遇險(xiǎn)漁船時(shí),提供現(xiàn)場(chǎng)圖像,為救援贏得時(shí)間,達(dá)到防災(zāi)減災(zāi)目的。視頻監(jiān)控系統(tǒng)與AIS等船載設(shè)備配合使用,為漁船事故應(yīng)急處理提供輔助信息,確保漁船在水域航行的安全,在漁船航行安全、漁船安全、勞動(dòng)安全監(jiān)控等方面發(fā)揮了良好的作用,利用視頻監(jiān)控系統(tǒng)可以解決漁船導(dǎo)航過(guò)程中的許多安全問(wèn)題,提高漁船的管理水平。
針對(duì)沿岸漁船實(shí)際情況,以嵌入式系統(tǒng)為平臺(tái),選用樹(shù)莓派為系統(tǒng)核心處理器,結(jié)合H.264技術(shù)、無(wú)線WIFI通信、Web服務(wù)器等技術(shù)設(shè)計(jì)出一套沿岸漁船視頻監(jiān)控系統(tǒng),具有內(nèi)置模塊豐富,集成度高,開(kāi)發(fā)成本低等特點(diǎn)。
基于嵌入式的漁船視頻實(shí)時(shí)監(jiān)控系統(tǒng)由船載監(jiān)控節(jié)點(diǎn)、無(wú)線傳輸和船載監(jiān)控中心組成。船載監(jiān)控節(jié)點(diǎn)負(fù)責(zé)采集監(jiān)控區(qū)域圖像信息,利用H.264編解碼等技術(shù)對(duì)采集的數(shù)據(jù)進(jìn)行處理。無(wú)線傳輸系統(tǒng)主要負(fù)責(zé)通過(guò)WIFI無(wú)線網(wǎng)卡接入局域網(wǎng)進(jìn)行視頻數(shù)據(jù)傳輸。船載監(jiān)控中心負(fù)責(zé)上位機(jī)監(jiān)控,完成對(duì)視頻數(shù)據(jù)的接收實(shí)時(shí)播放,并存儲(chǔ)到本地或數(shù)據(jù)庫(kù)中。通過(guò)對(duì)漁船監(jiān)控區(qū)域?qū)崟r(shí)監(jiān)控,操作與管理人員隨時(shí)掌握和了解漁船的實(shí)時(shí)情況,避免漁船危情的發(fā)生。系統(tǒng)框圖如圖1所示。
圖1 沿岸漁船視頻監(jiān)控系統(tǒng)框圖
系統(tǒng)硬件主要包括主控制器、視頻采集模塊、終端顯示等。視頻采集模塊負(fù)責(zé)對(duì)監(jiān)控區(qū)域圖像信息進(jìn)行采集;主控制器主要負(fù)責(zé)完成對(duì)圖像數(shù)據(jù)的接收與處理;終端主要由PC機(jī)及智能手機(jī)組成,負(fù)責(zé)監(jiān)控室畫(huà)面的播放監(jiān)控。
2.1.1 主控制器
系統(tǒng)船載監(jiān)控節(jié)點(diǎn)采用樹(shù)莓派3B作為主控制器,樹(shù)莓派是一款小型的計(jì)算機(jī),是開(kāi)源硬件中比較先進(jìn)的產(chǎn)品,內(nèi)置無(wú)線模塊,擴(kuò)展性強(qiáng),可靠性高,支持linux操作系統(tǒng)。樹(shù)莓派3代系統(tǒng)芯片為BCM2837,具有1.2Ghz的運(yùn)行速度,采用ARM Cortex-A53為中央處理器,整個(gè)硬件具有集成度高、運(yùn)行速度快、外圍設(shè)備豐富、二次開(kāi)發(fā)方便等優(yōu)點(diǎn)。樹(shù)莓派實(shí)物如圖2所示。
圖2 樹(shù)莓派實(shí)物圖
2.1.2 視頻采集模塊
視頻采集模塊選用樹(shù)莓派Camera V2攝像頭。其功耗低,靈明度高。內(nèi)有800萬(wàn)像素索尼IMX219傳感器擴(kuò)展板,有固定焦距鏡頭,通過(guò)樹(shù)莓派上的CSI接口連接樹(shù)莓派。靜態(tài)圖像支持3280×2464像素,也支持30fps 1080p視頻顯示的能力。此外,還支持720p60和640×480p90攝像功能。樹(shù)莓派攝像頭如圖3所示。
圖3 樹(shù)莓派攝像頭
軟件設(shè)計(jì)是實(shí)現(xiàn)沿岸漁船視頻監(jiān)控系統(tǒng)功能必不可少的部分,包括V4L2驅(qū)動(dòng)視頻采集,H.264編碼視頻處理與搭建Nginx流媒體服務(wù)器視頻圖像傳輸。本系統(tǒng)的主控制器基于ARM Cortex-A53,選用樹(shù)莓派硬件平臺(tái)定制的Raspbian操作系統(tǒng),具有豐富的開(kāi)源軟件包,安裝簡(jiǎn)單、易操作。軟件的設(shè)計(jì)主要包括:視頻采集,視頻處理和視頻傳輸。視頻監(jiān)控系統(tǒng)流程圖如圖4所示。
圖4 漁船視頻監(jiān)控系統(tǒng)流程圖
2.2.1 視頻采集
V4L2(Video4linux2)是Linux操作系統(tǒng)中為視頻設(shè)備服務(wù)的驅(qū)動(dòng)模塊,提供了一系列為視頻設(shè)備服務(wù)的應(yīng)用程序接口。視頻設(shè)備在Linux系統(tǒng)中是設(shè)備文件,讀寫(xiě)操作均可在系統(tǒng)進(jìn)行。對(duì)于視頻的采集主要使用V4L2作為驅(qū)動(dòng)框架,V4L2不僅支持音頻、視頻設(shè)備,也支持視頻間隔消隱信號(hào)等接口。V4L2作為視頻設(shè)備的內(nèi)核框架,為應(yīng)用程序接口向底層CSI攝像頭提供規(guī)范的接口應(yīng)用程序接口函數(shù),有效預(yù)防代碼的冗余,當(dāng)下層信息較多,上層向其收集信息時(shí)一個(gè)好的規(guī)范有效節(jié)省大量時(shí)間。
樹(shù)莓派中的視頻采集模塊以固件的形式加載到/boot/目錄下,而非規(guī)范V4L2相機(jī)KO驅(qū)動(dòng)程序。加載后沒(méi)有顯示/dev/video0設(shè)備節(jié)點(diǎn),V4L2驅(qū)動(dòng)程序框架尚未加載時(shí),進(jìn)入/etc目錄下編輯修改modules文件后重新啟動(dòng)樹(shù)莓派。通過(guò)ls | grep video命令在/dev/下查找video 0設(shè)備節(jié)點(diǎn),如圖5所示視頻采集模塊加載成功。
圖5 加載視頻采集模塊
2.2.2 視頻處理
攝像頭采集到的數(shù)據(jù)信息要經(jīng)過(guò)一定的處理才能傳輸?shù)綖g覽器顯示,即文件與圖像格式等的處理,為了減少代碼流,需要對(duì)圖像進(jìn)行壓縮。
系統(tǒng)采用H.264編碼來(lái)進(jìn)行視頻處理,H.264是國(guó)際標(biāo)準(zhǔn)MPEG-4中提出的視頻編解碼標(biāo)準(zhǔn),具有壓縮率高、質(zhì)量好的特點(diǎn)。X264是H.264的編碼函數(shù)庫(kù),也可集成到FFmpeg(Fast Forward Mpeg)多媒體視頻處理工具,具有視頻編碼延遲小的優(yōu)點(diǎn)。FFmpeg依賴于X264庫(kù),使用靈活方便。X264優(yōu)化了PC機(jī)的匯編級(jí)代碼,提高了編碼效率。最終將其移植到系統(tǒng)平臺(tái)上。
試驗(yàn)過(guò)程首先使用FFmpeg進(jìn)行視頻處理,傳輸速率較慢且處理器消耗占比較大,不符合預(yù)期,因此選用樹(shù)莓派VideoCore IV GPU功能,啟用樹(shù)莓派的Omx-rpi硬編碼和Mmal硬解碼加速,其通過(guò)Omx接口開(kāi)放,處理器消耗占比小。
使用4G路由器插入SIM卡作為船載網(wǎng)絡(luò)熱點(diǎn),在樹(shù)莓派命令窗口下進(jìn)入/etc/wpa_supplicant/目錄,利用vi命令進(jìn)入wpa_supplicant.conf文件進(jìn)行編輯,添加無(wú)線網(wǎng)絡(luò)的SSID和PSK等信息后重啟樹(shù)莓派,通過(guò)SSH或VNC遠(yuǎn)程登錄軟件連接網(wǎng)絡(luò)。
完成視頻數(shù)據(jù)的正確傳輸需要相應(yīng)的協(xié)議。RTMP(實(shí)時(shí)消息傳遞協(xié)議)是用于實(shí)時(shí)數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)協(xié)議。支持動(dòng)態(tài)數(shù)據(jù)傳輸,且傳輸數(shù)據(jù)高效,是一種被廣泛使用于視頻監(jiān)控領(lǐng)域的流媒體傳輸協(xié)議。系統(tǒng)選擇RTMP作為系統(tǒng)傳輸協(xié)議。
支持RTMP的服務(wù)器有很多,最終選擇搭建Nginx服務(wù)器。Nginx是一個(gè)功能豐富的Web服務(wù)器,以小巧、穩(wěn)定、并發(fā)能力強(qiáng)著稱,是一個(gè)輕量級(jí)的網(wǎng)絡(luò)服務(wù)器,用于Web服務(wù)器的同時(shí)支持豐富的插件用于功能擴(kuò)展。
樹(shù)莓派攝像機(jī)采集視頻圖像,并以流的形式傳輸?shù)椒?wù)器。用Nginx-rtmp-module搭建rtmp server,實(shí)現(xiàn)漁船視頻實(shí)時(shí)監(jiān)控功能。通過(guò)Github加載Nginx-rtmpmodule-master源碼到該目錄,生成Makefile配置后make編譯完成,Nginx搭建成功如圖6所示。
圖6 Nginx成功搭建
在/usr/local/Nginx/conf目錄下配置Nginx文件,vi命令進(jìn)入Nginx.conf編輯修改文件內(nèi)容以實(shí)現(xiàn)rtmp server功能。Nginx服務(wù)器啟動(dòng)界面如圖7所示。
圖7 啟動(dòng)Nginx服務(wù)器
船載監(jiān)控中心主要任務(wù)是通過(guò)無(wú)線網(wǎng)絡(luò)連接監(jiān)控節(jié)點(diǎn),對(duì)接收到的視頻監(jiān)控信息進(jìn)行處理,達(dá)到實(shí)時(shí)播放監(jiān)控區(qū)域數(shù)據(jù)信息,并將其存儲(chǔ)在本地與數(shù)據(jù)庫(kù)中,方便操作人員查看并進(jìn)行管理。
系統(tǒng)測(cè)試環(huán)境搭建完成后,通過(guò)WIFI無(wú)線網(wǎng)絡(luò)將圖像信息傳輸?shù)奖O(jiān)控中心,系統(tǒng)對(duì)監(jiān)控中心視頻的實(shí)時(shí)播放,視頻回放等進(jìn)行了功能測(cè)試,采用使用PC端與手機(jī)端VLC軟件進(jìn)行的視頻監(jiān)控測(cè)試。進(jìn)入VLC,輸出系統(tǒng)服務(wù)器的IP地址192.168.43.131。播放畫(huà)面顯示基本沒(méi)有延時(shí),傳輸畫(huà)質(zhì)良好,實(shí)現(xiàn)了監(jiān)控視頻的實(shí)時(shí)傳輸,達(dá)到了預(yù)期的效果。漁船視頻監(jiān)控系統(tǒng)測(cè)試效果圖如圖8所示。
圖8 系統(tǒng)測(cè)試效果圖
系統(tǒng)基于嵌入式設(shè)計(jì)了沿岸漁船視頻監(jiān)控系統(tǒng)實(shí)現(xiàn)了對(duì)視野盲區(qū)的視頻實(shí)時(shí)監(jiān)控,結(jié)合多種技術(shù),調(diào)用相關(guān)函數(shù)實(shí)現(xiàn)對(duì)監(jiān)控視頻數(shù)據(jù)的采集、緩存,通過(guò)H.264編碼技術(shù)對(duì)視頻數(shù)據(jù)進(jìn)行壓縮處理,創(chuàng)建監(jiān)控節(jié)點(diǎn)與監(jiān)控中心的實(shí)時(shí)同步通信,對(duì)視頻數(shù)據(jù)進(jìn)行實(shí)時(shí)傳輸,最后監(jiān)控中心操作人員在PC端和手機(jī)端對(duì)采集的視頻信息進(jìn)行實(shí)時(shí)顯示,根據(jù)情況作出及時(shí)有效處理,避免事故的發(fā)生,保障漁船安全。測(cè)試結(jié)果系統(tǒng)運(yùn)行良好,實(shí)現(xiàn)了視頻實(shí)時(shí)監(jiān)控和視頻回放的功能,得到了預(yù)期的結(jié)果,對(duì)提高沿岸漁船安全具有十分重要意義。在本系統(tǒng)基礎(chǔ)上,下一步將對(duì)系統(tǒng)作進(jìn)一步改進(jìn),對(duì)視頻進(jìn)行圖像識(shí)別是接下來(lái)研究的重點(diǎn)。