崔秀芳,王宏宇,陳 剛,李培培,石福孝
(上海海洋大學 工程學院,上海 201306)
隨著海洋資源的發(fā)展,國家對漁船工業(yè)的發(fā)展越來越重視,研究高技術漁船以滿足海洋開發(fā)需要的同時漁船安全問題也日益突出,沿岸漁船由于視野盲區(qū)發(fā)生安全生產事故的事件時有發(fā)生,輕者漁船遭到破壞,重者導致漁船沉沒,漁民的生命財產收到極大威脅,如何解決沿岸漁船安全問題成為迫切要解決的重點。海洋環(huán)境的復雜性決定,為了保障漁民的安全,急需建立一套完整的沿岸漁船監(jiān)控系統(tǒng)。
漁船視頻監(jiān)控可以在減少人力重復工作的同時及早發(fā)現潛在危害,提前預防,減少災害的發(fā)生,在救助遇險漁船時,提供現場圖像,為救援贏得時間,達到防災減災目的。視頻監(jiān)控系統(tǒng)與AIS等船載設備配合使用,為漁船事故應急處理提供輔助信息,確保漁船在水域航行的安全,在漁船航行安全、漁船安全、勞動安全監(jiān)控等方面發(fā)揮了良好的作用,利用視頻監(jiān)控系統(tǒng)可以解決漁船導航過程中的許多安全問題,提高漁船的管理水平。
針對沿岸漁船實際情況,以嵌入式系統(tǒng)為平臺,選用樹莓派為系統(tǒng)核心處理器,結合H.264技術、無線WIFI通信、Web服務器等技術設計出一套沿岸漁船視頻監(jiān)控系統(tǒng),具有內置模塊豐富,集成度高,開發(fā)成本低等特點。
基于嵌入式的漁船視頻實時監(jiān)控系統(tǒng)由船載監(jiān)控節(jié)點、無線傳輸和船載監(jiān)控中心組成。船載監(jiān)控節(jié)點負責采集監(jiān)控區(qū)域圖像信息,利用H.264編解碼等技術對采集的數據進行處理。無線傳輸系統(tǒng)主要負責通過WIFI無線網卡接入局域網進行視頻數據傳輸。船載監(jiān)控中心負責上位機監(jiān)控,完成對視頻數據的接收實時播放,并存儲到本地或數據庫中。通過對漁船監(jiān)控區(qū)域實時監(jiān)控,操作與管理人員隨時掌握和了解漁船的實時情況,避免漁船危情的發(fā)生。系統(tǒng)框圖如圖1所示。

圖1 沿岸漁船視頻監(jiān)控系統(tǒng)框圖
系統(tǒng)硬件主要包括主控制器、視頻采集模塊、終端顯示等。視頻采集模塊負責對監(jiān)控區(qū)域圖像信息進行采集;主控制器主要負責完成對圖像數據的接收與處理;終端主要由PC機及智能手機組成,負責監(jiān)控室畫面的播放監(jiān)控。
2.1.1 主控制器
系統(tǒng)船載監(jiān)控節(jié)點采用樹莓派3B作為主控制器,樹莓派是一款小型的計算機,是開源硬件中比較先進的產品,內置無線模塊,擴展性強,可靠性高,支持linux操作系統(tǒng)。樹莓派3代系統(tǒng)芯片為BCM2837,具有1.2Ghz的運行速度,采用ARM Cortex-A53為中央處理器,整個硬件具有集成度高、運行速度快、外圍設備豐富、二次開發(fā)方便等優(yōu)點。樹莓派實物如圖2所示。

圖2 樹莓派實物圖
2.1.2 視頻采集模塊
視頻采集模塊選用樹莓派Camera V2攝像頭。其功耗低,靈明度高。內有800萬像素索尼IMX219傳感器擴展板,有固定焦距鏡頭,通過樹莓派上的CSI接口連接樹莓派。靜態(tài)圖像支持3280×2464像素,也支持30fps 1080p視頻顯示的能力。此外,還支持720p60和640×480p90攝像功能。樹莓派攝像頭如圖3所示。

圖3 樹莓派攝像頭
軟件設計是實現沿岸漁船視頻監(jiān)控系統(tǒng)功能必不可少的部分,包括V4L2驅動視頻采集,H.264編碼視頻處理與搭建Nginx流媒體服務器視頻圖像傳輸。本系統(tǒng)的主控制器基于ARM Cortex-A53,選用樹莓派硬件平臺定制的Raspbian操作系統(tǒng),具有豐富的開源軟件包,安裝簡單、易操作。軟件的設計主要包括:視頻采集,視頻處理和視頻傳輸。視頻監(jiān)控系統(tǒng)流程圖如圖4所示。

圖4 漁船視頻監(jiān)控系統(tǒng)流程圖
2.2.1 視頻采集
V4L2(Video4linux2)是Linux操作系統(tǒng)中為視頻設備服務的驅動模塊,提供了一系列為視頻設備服務的應用程序接口。視頻設備在Linux系統(tǒng)中是設備文件,讀寫操作均可在系統(tǒng)進行。對于視頻的采集主要使用V4L2作為驅動框架,V4L2不僅支持音頻、視頻設備,也支持視頻間隔消隱信號等接口。V4L2作為視頻設備的內核框架,為應用程序接口向底層CSI攝像頭提供規(guī)范的接口應用程序接口函數,有效預防代碼的冗余,當下層信息較多,上層向其收集信息時一個好的規(guī)范有效節(jié)省大量時間。
樹莓派中的視頻采集模塊以固件的形式加載到/boot/目錄下,而非規(guī)范V4L2相機KO驅動程序。加載后沒有顯示/dev/video0設備節(jié)點,V4L2驅動程序框架尚未加載時,進入/etc目錄下編輯修改modules文件后重新啟動樹莓派。通過ls | grep video命令在/dev/下查找video 0設備節(jié)點,如圖5所示視頻采集模塊加載成功。

圖5 加載視頻采集模塊
2.2.2 視頻處理
攝像頭采集到的數據信息要經過一定的處理才能傳輸到瀏覽器顯示,即文件與圖像格式等的處理,為了減少代碼流,需要對圖像進行壓縮。
系統(tǒng)采用H.264編碼來進行視頻處理,H.264是國際標準MPEG-4中提出的視頻編解碼標準,具有壓縮率高、質量好的特點。X264是H.264的編碼函數庫,也可集成到FFmpeg(Fast Forward Mpeg)多媒體視頻處理工具,具有視頻編碼延遲小的優(yōu)點。FFmpeg依賴于X264庫,使用靈活方便。X264優(yōu)化了PC機的匯編級代碼,提高了編碼效率。最終將其移植到系統(tǒng)平臺上。
試驗過程首先使用FFmpeg進行視頻處理,傳輸速率較慢且處理器消耗占比較大,不符合預期,因此選用樹莓派VideoCore IV GPU功能,啟用樹莓派的Omx-rpi硬編碼和Mmal硬解碼加速,其通過Omx接口開放,處理器消耗占比小。
使用4G路由器插入SIM卡作為船載網絡熱點,在樹莓派命令窗口下進入/etc/wpa_supplicant/目錄,利用vi命令進入wpa_supplicant.conf文件進行編輯,添加無線網絡的SSID和PSK等信息后重啟樹莓派,通過SSH或VNC遠程登錄軟件連接網絡。
完成視頻數據的正確傳輸需要相應的協議。RTMP(實時消息傳遞協議)是用于實時數據傳輸的網絡協議。支持動態(tài)數據傳輸,且傳輸數據高效,是一種被廣泛使用于視頻監(jiān)控領域的流媒體傳輸協議。系統(tǒng)選擇RTMP作為系統(tǒng)傳輸協議。
支持RTMP的服務器有很多,最終選擇搭建Nginx服務器。Nginx是一個功能豐富的Web服務器,以小巧、穩(wěn)定、并發(fā)能力強著稱,是一個輕量級的網絡服務器,用于Web服務器的同時支持豐富的插件用于功能擴展。
樹莓派攝像機采集視頻圖像,并以流的形式傳輸到服務器。用Nginx-rtmp-module搭建rtmp server,實現漁船視頻實時監(jiān)控功能。通過Github加載Nginx-rtmpmodule-master源碼到該目錄,生成Makefile配置后make編譯完成,Nginx搭建成功如圖6所示。

圖6 Nginx成功搭建
在/usr/local/Nginx/conf目錄下配置Nginx文件,vi命令進入Nginx.conf編輯修改文件內容以實現rtmp server功能。Nginx服務器啟動界面如圖7所示。

圖7 啟動Nginx服務器
船載監(jiān)控中心主要任務是通過無線網絡連接監(jiān)控節(jié)點,對接收到的視頻監(jiān)控信息進行處理,達到實時播放監(jiān)控區(qū)域數據信息,并將其存儲在本地與數據庫中,方便操作人員查看并進行管理。
系統(tǒng)測試環(huán)境搭建完成后,通過WIFI無線網絡將圖像信息傳輸到監(jiān)控中心,系統(tǒng)對監(jiān)控中心視頻的實時播放,視頻回放等進行了功能測試,采用使用PC端與手機端VLC軟件進行的視頻監(jiān)控測試。進入VLC,輸出系統(tǒng)服務器的IP地址192.168.43.131。播放畫面顯示基本沒有延時,傳輸畫質良好,實現了監(jiān)控視頻的實時傳輸,達到了預期的效果。漁船視頻監(jiān)控系統(tǒng)測試效果圖如圖8所示。

圖8 系統(tǒng)測試效果圖
系統(tǒng)基于嵌入式設計了沿岸漁船視頻監(jiān)控系統(tǒng)實現了對視野盲區(qū)的視頻實時監(jiān)控,結合多種技術,調用相關函數實現對監(jiān)控視頻數據的采集、緩存,通過H.264編碼技術對視頻數據進行壓縮處理,創(chuàng)建監(jiān)控節(jié)點與監(jiān)控中心的實時同步通信,對視頻數據進行實時傳輸,最后監(jiān)控中心操作人員在PC端和手機端對采集的視頻信息進行實時顯示,根據情況作出及時有效處理,避免事故的發(fā)生,保障漁船安全。測試結果系統(tǒng)運行良好,實現了視頻實時監(jiān)控和視頻回放的功能,得到了預期的結果,對提高沿岸漁船安全具有十分重要意義。在本系統(tǒng)基礎上,下一步將對系統(tǒng)作進一步改進,對視頻進行圖像識別是接下來研究的重點。