何浩 李文華 陳先國 黃達(dá) 張鈞儼
摘要:對于在內(nèi)河航道上通行的船舶,如何計算出這些船舶的載重量成為一個重要的任務(wù),文章設(shè)計了一種基于OpenCV的船舶載重量計算系統(tǒng),通過深度學(xué)習(xí)的方式對船舶的船舷和船舶類型進(jìn)行識別,找出船舷的上下分界線,最后根據(jù)船舶類型從類型數(shù)據(jù)庫取出船舶的基本信息(高度、空載吃水量、滿載吃水量等相關(guān)信息) 后進(jìn)行相關(guān)計算得到船舶載重量。
關(guān)鍵詞:OpenCV;船舶;船舷;載重量;深度學(xué)習(xí)
中圖分類號:TP311? ? ?文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2022)10-0100-02
1 引言
近些年來,隨著物聯(lián)網(wǎng)和人工智能等技術(shù)的不斷發(fā)展與成熟,促進(jìn)了社會的發(fā)展。為了響應(yīng)國家“十四五”提出的戰(zhàn)略方針(航道建設(shè)) ,在以數(shù)字航道建設(shè)[1]為基礎(chǔ)的前提下,建設(shè)高性能數(shù)據(jù)交換體系,來確保航道的高速發(fā)展。在智慧城市中,統(tǒng)計運行在道路上的車輛載重量已經(jīng)不是什么難題。然而,如何有效地統(tǒng)計出每天甚至每年江面上船舶運載量成為一項重要的任務(wù)。
針對這一問題,在考慮低成本的前提下,本文提出了一種現(xiàn)階段最為流行的數(shù)字圖像處理技術(shù)去計算船舶吃水線[2]的方法,通過對攝像頭采集的視頻圖像進(jìn)行處理與分析后,從而得到每艘船舶的載重量。使用該方法不僅減少了人力和財力的投入,而且在網(wǎng)絡(luò)保證的前提下,本系統(tǒng)可以被廣泛地應(yīng)用到野外環(huán)境。
2 系統(tǒng)框架
2.1 系統(tǒng)硬件設(shè)計
本系統(tǒng)由攝像頭(??低暎?、邊緣計算機(jī)(Jetson Nano) 、中央服務(wù)器(Linux) 構(gòu)成。由于邊緣計算機(jī)具有尺寸小巧,處理效果較佳等優(yōu)點,可以滿足本地視頻圖像處理的速度要求,邊緣計算機(jī)將接收到的流數(shù)據(jù)通過解碼操作還原成圖像后,利用相關(guān)技術(shù)手段對圖像進(jìn)行處理與分析得到船舷高度,再結(jié)合相關(guān)的參數(shù)計算出載重量,邊緣計算機(jī)解決了將大量視頻流數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)街醒敕?wù)器這一過程中的所帶來的高帶寬、網(wǎng)絡(luò)延時和丟包等相關(guān)問題。實現(xiàn)了數(shù)據(jù)本地化處理,將最終的處理結(jié)果送至中央服務(wù)器中,減少了因網(wǎng)絡(luò)故障造成系統(tǒng)長時間無響應(yīng)的影響。硬件數(shù)據(jù)流向如圖1所示。
2.2 系統(tǒng)軟件設(shè)計
該系統(tǒng)是基于arm架構(gòu)上使用VS Code集成開發(fā)環(huán)境(IDE),c/c++語言編程實現(xiàn),流程框圖如圖2所示。
(1) 獲取攝像頭數(shù)據(jù)
獲取攝像頭數(shù)據(jù)主要有兩種方式。第一種是使用GB28181[3]方式獲取攝像頭實時流數(shù)據(jù),通過該方式獲取攝像頭數(shù)據(jù)的前提是需要自己實現(xiàn)視頻服務(wù)平臺,并且要遵循國標(biāo)GB28181協(xié)議,該方式的優(yōu)點可以對接任意品牌的攝像頭,缺點是通過網(wǎng)絡(luò)協(xié)議進(jìn)行數(shù)據(jù)傳輸時受帶寬影響會出現(xiàn)網(wǎng)絡(luò)延時和網(wǎng)絡(luò)擁塞等情況,出現(xiàn)丟包現(xiàn)象,甚至可能造成長時間無法取到視頻流數(shù)據(jù)。第二種是使用RTSP[4]協(xié)議直接連接攝像頭獲取數(shù)據(jù),減少了中轉(zhuǎn)服務(wù)中專數(shù)據(jù)過程,加快了數(shù)據(jù)獲取速度。
(2) 幀數(shù)據(jù)還原成圖片
不管是通過GB28181協(xié)議的方式獲取視頻流數(shù)據(jù)還是通過RTSP協(xié)議的方式獲取視頻流數(shù)據(jù),視頻編碼的格式都是采用H264方式進(jìn)行壓縮傳輸?shù)?,解碼的時候使用FFmpeg[5]進(jìn)行了圖像解碼,眾所周知的是在數(shù)字圖像中存在著空間冗余、時間冗余、視覺冗余、知識冗余、信息熵冗余、結(jié)構(gòu)冗余,如果將原始大小的圖片進(jìn)行傳輸,這將占用大量的帶寬,增加了成本的投入。在H264中,定義了三種幀,關(guān)鍵幀(I幀,解碼出來就是一幅完整的圖像) 、前向預(yù)測編碼幀(P幀) 、雙向預(yù)測內(nèi)插編碼幀(B幀) ,其中P幀與B幀解碼成圖像需要依賴于I幀,為了減少帶寬、降低流量,只需要傳輸I幀(44K左右) ,獲取壓縮后的I幀原始數(shù)據(jù)如左圖所示,根據(jù)H264方式編碼進(jìn)行相應(yīng)的解碼得到的是YUV格式,需要進(jìn)一步轉(zhuǎn)換才能得到RGB格式的圖像。如圖3所示,左圖為待解碼的數(shù)據(jù),右圖為解碼后的圖像。
(3) 圖像處理及分析
將上述還原后的圖像送至檢測器中可以粗略地提取出圖像中船舷的位置,這里檢測器使用人工智能、深度學(xué)習(xí)的方式實現(xiàn),通過OpenCV將檢測器框出的船舷位置進(jìn)行切割(只保留框選處的位置,下圖的數(shù)字即是該矩形框的邊界) 處理后,這將大大減少圖像中其他因素對最終結(jié)果產(chǎn)生的干擾,再結(jié)合OpenCV邊緣檢測、霍夫曼直線檢測等技術(shù)手段,找出船舷的上邊距與下邊距位置。
根據(jù)船舶類型從船舶類型數(shù)據(jù)庫取出船舶參數(shù),假定:型深H、空載吃水h0、空載重量T0,滿載吃水hn、滿載重量Tn。如圖5所示,綠色線為空載吃水線、紅色線為滿載吃水線、藍(lán)色虛線為當(dāng)前吃水線。同時假設(shè):空載時船面積為S0,滿載時船面積為Sn,船底面積為Sb,船頂面積為St,則有以下關(guān)系式:
空載時載重T0 = (S0 + Sb) / 2 * h0 (1)
滿載時載重Tn = (Sn + Sb) / 2 * hn (2)
船頂面積為St可以通過激光雷達(dá)測量,假設(shè)Sn = α*St,α根據(jù)不同船舶類型指定,如:0.9。式1與2聯(lián)合,可以計算出S0和Sb。
通過側(cè)視攝像機(jī)檢測出船舷離水面的高度為h,則:
船舶載重吃水 dh = H - h - h0 (3)
船舶載重面積 St : S = h + dh : dh,則 S = (St * dh) / (h + dh) (4)
最后計算出船舶載重量dT = (S0 + S) / 2 * dh (5)
3 實驗結(jié)果
采用上述所提出的方案,將解碼后的圖像送至檢測器中,提取出靠近船舷部分的局部區(qū)域,減少周邊物體的干擾,可以測出船舷上邊界與下邊界的距離(distance) 、系統(tǒng)檢測所消耗的時間(detection time) 等相關(guān)信息,從下列結(jié)果可以看出,檢測的效果較佳,更加有利于在實際生產(chǎn)環(huán)境中使用。
4 結(jié)論
本文提出了一種基于OpenCV計算船舷的高度,從而計算出船舶載重量的方法。在整個系統(tǒng)中,從硬件層面看,系統(tǒng)中所使用的硬件設(shè)備可以滿足系統(tǒng)的需求,邊緣計算機(jī)保證了系統(tǒng)的穩(wěn)定性和持久性,實時有效地對視頻流信息進(jìn)行處理與分析后,只需要將最終的處理結(jié)果上傳到中央服務(wù)器即可,從軟件架構(gòu)方面看,使用c/c++方式實現(xiàn)軟件層架構(gòu),加快了系統(tǒng)的響應(yīng)速度。采用邊緣化的方式部署該系統(tǒng),一方面減少了因網(wǎng)絡(luò)故障而導(dǎo)致整個系統(tǒng)癱瘓的問題,另一方面與傳統(tǒng)方式對比,該系統(tǒng)擴(kuò)展性強、獨立性強、耦合度低。
參考文獻(xiàn):
[1] 房新玉,孫艷軍,劉昔,等.淺談內(nèi)河航道數(shù)字化建設(shè)的意義[J].科技創(chuàng)新導(dǎo)報,2014,11(30):225-226.
[2] 朱學(xué)海,張帥,張東星,等.基于機(jī)器視覺與深度學(xué)習(xí)的船舶水尺智能識別技術(shù)研究與應(yīng)用[J].檢驗檢疫學(xué)刊,2019,29(2):101-104,110.
[3] 王冰洋,劉玉梅,孫瓊芳,等.基于GB/T 28181和WebRTC技術(shù)的移動視頻監(jiān)控系統(tǒng)設(shè)計[J].電子測量技術(shù),2020,43(18):112-116.
[4] 章民融,徐亞鋒.基于RTSP的流媒體視頻服務(wù)器的設(shè)計與實現(xiàn)[J].計算機(jī)應(yīng)用與軟件,2006,23(7):93-95.
[5] 辛長春,婁小平,呂乃光.基于FFmpeg的遠(yuǎn)程視頻監(jiān)控系統(tǒng)編解碼[J].電子技術(shù),2013,40(1):3-5.
【通聯(lián)編輯:梁書】
收稿日期:2021-11-16
作者簡介:何浩(1996—) ,男,湖北人,在讀碩士,研究方向為計算機(jī)應(yīng)用技術(shù)、數(shù)字圖像處理、計算機(jī)視覺;李文華(1965—) ,男,湖北人,副教授,研究方向為軟件工程、網(wǎng)絡(luò)數(shù)據(jù)庫技術(shù)、GIS技術(shù)。