滕新棟,唐宇豪,馬興錄,李曉旭
1(中華人民共和國(guó)青島海關(guān),青島 266426)
2(青島科技大學(xué) 信息科學(xué)技術(shù)學(xué)院,青島 266061)
最近幾年,人工智能正在迅速崛起,機(jī)器視覺(jué)是人工智能正在快速發(fā)展的一個(gè)分支.通俗地講,機(jī)器視覺(jué)就是用機(jī)器代替人眼來(lái)做測(cè)量和判斷; 機(jī)器視覺(jué)系統(tǒng)是通過(guò)攝像頭等圖像采集裝置將被攝取的目標(biāo)轉(zhuǎn)換成圖像信號(hào),通過(guò)對(duì)圖像的像素特征進(jìn)行處理運(yùn)算得到目標(biāo)的特征進(jìn)而根據(jù)結(jié)果來(lái)進(jìn)行下一步操作[1,2].特別是在工業(yè)領(lǐng)域,現(xiàn)已逐漸應(yīng)用在一線,其次主要應(yīng)用于半導(dǎo)體、電子制造、制藥、包裝等領(lǐng)域.如今在汽車(chē)制造乃至新能源行業(yè),機(jī)器視覺(jué)技術(shù)的應(yīng)用也正在逐步發(fā)展[3-11].
在大部分港口、機(jī)場(chǎng)等出入境的場(chǎng)所,對(duì)集裝箱內(nèi)病媒生物的檢測(cè)是非常關(guān)鍵的環(huán)節(jié)[12],特別是在特殊的疫情期間,在保證集裝箱不含病源的前提下,才能確保集裝箱的安全出入境.面對(duì)數(shù)量多且空間狹窄的集裝箱,為了減少疫情傳播,解決病媒生物檢測(cè)問(wèn)題,需要一款具有檢測(cè)功能的智能機(jī)器人幫助工作人員快速地進(jìn)行病媒生物的檢測(cè)及清理.
本系統(tǒng)將病媒生物檢測(cè)系統(tǒng)與智能探尋抓取機(jī)器人相結(jié)合,以Python 語(yǔ)言作為編程核心,設(shè)計(jì)了檢測(cè)本地視頻和遠(yuǎn)程視頻、檢測(cè)報(bào)警以及檢測(cè)記錄的顯示和存儲(chǔ)等功能.針對(duì)現(xiàn)如今人工檢測(cè)繁鎖的局限性,通過(guò)深度學(xué)習(xí)YOLOv5 訓(xùn)練模型實(shí)現(xiàn)了病媒生物的檢測(cè),保障了出入境的安全性,提高了集裝箱的通關(guān)效率.
此集裝箱病媒生物檢測(cè)系統(tǒng)分為4 個(gè)模塊.分別是本地視頻檢測(cè)模塊、遠(yuǎn)程視頻傳輸及實(shí)時(shí)檢測(cè)模塊、檢測(cè)報(bào)警模塊、檢測(cè)記錄顯示和存儲(chǔ)模塊,如圖1所示.具體的實(shí)現(xiàn)可分為檢測(cè)界面的設(shè)計(jì)、檢測(cè)病媒生物的實(shí)現(xiàn)、遠(yuǎn)程視頻傳輸?shù)膶?shí)現(xiàn)、檢測(cè)報(bào)警模塊的實(shí)現(xiàn)、檢測(cè)記錄顯示和存儲(chǔ)的實(shí)現(xiàn).
圖1 系統(tǒng)設(shè)計(jì)結(jié)構(gòu)圖
所涉及的硬件智能探尋抓取機(jī)器人,屬于隱匿病媒生物監(jiān)測(cè)技術(shù)領(lǐng)域,解決了現(xiàn)有裝置不能夠識(shí)別隱匿病媒生物的種類(lèi)的問(wèn)題; 其技術(shù)特征是: 包括抓取機(jī)構(gòu)、視覺(jué)檢測(cè)裝置和底盤(pán),所述底盤(pán)的左側(cè)安裝有抓取機(jī)構(gòu),底盤(pán)的上方設(shè)置有視覺(jué)檢測(cè)裝置,視覺(jué)檢測(cè)裝置上安裝有探照燈和監(jiān)控相機(jī),所述探照燈和監(jiān)控相機(jī)與視覺(jué)檢測(cè)裝置的連接方式為卡接,底盤(pán)的底部安裝有多個(gè)滾輪,能夠快速探尋識(shí)別是否存活隱匿病媒生物,提高了對(duì)隱匿病媒生物的抓取效率,從而避免隱匿病媒生物污染集裝箱[13].
系統(tǒng)正常工作流程為: 獲取遠(yuǎn)程視頻或本地視頻后,顯示在PC 端界面,識(shí)別視頻,當(dāng)在某一幀圖片中檢測(cè)到病媒生物時(shí),將其標(biāo)注并報(bào)警,同時(shí)將圖片保存到文件夾中并顯示在界面中,后續(xù)工作人員可通過(guò)操控現(xiàn)場(chǎng)機(jī)器人進(jìn)行病媒生物的抓取和清理.
此集裝箱病媒生物檢測(cè)系統(tǒng)界面的設(shè)計(jì)主要是采用Python 庫(kù)中的PyQt5,它是最強(qiáng)大的GUI 庫(kù)之一[14],具體使用到QtCore、QtGui、QtWidgets,在PyCharm中使用額外工具(external tools)QtDesigner 進(jìn)行界面設(shè)計(jì).
整個(gè)檢測(cè)界面的風(fēng)格采用暗色調(diào),界面整體布局具體主要分為4 個(gè)區(qū)域: 檢測(cè)視頻實(shí)時(shí)顯示區(qū)域,在檢測(cè)本地視頻或者接收遠(yuǎn)程視頻時(shí),將視頻顯示在該label 中; 報(bào)警信息顯示區(qū)域,在檢測(cè)到病媒生物時(shí),將檢測(cè)時(shí)的具體信息輸出在該listview 中; 檢測(cè)記錄顯示區(qū)域,在檢測(cè)到病媒生物時(shí),將保存在文件夾中的圖片顯示該listview 中; 檢測(cè)模式選項(xiàng)區(qū)域,在界面的右下方設(shè)置兩個(gè)按鈕,分別命名為遠(yuǎn)程視頻和本地視頻,用來(lái)控制檢測(cè)的具體對(duì)象.該UI 設(shè)計(jì)界面如圖2 所示.
圖2 UI 設(shè)計(jì)界面圖
檢測(cè)病媒生物的核心是利用PyTorch 訓(xùn)練YOLOv5訓(xùn)練集也就是自定義病媒生物數(shù)據(jù)集訓(xùn)練.
YOLOv5 是一種基于深度學(xué)習(xí)的one stage 檢測(cè)方法[15].YOLOv5 的模型結(jié)構(gòu)如圖3 所示.
圖3 YOLOv5 模型結(jié)構(gòu)圖
YOLOv5 模型結(jié)構(gòu)主要分布為4 個(gè)部分,分別是輸入端、Backbone、Neck、Head 輸出端,其共有4 個(gè)版本分別是 YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,主要差異在于depth_multiple 和width_multiple 不同即模型的深度和寬度不同.
此集裝箱病媒生物檢測(cè)系統(tǒng)在YOLOv5 的基礎(chǔ)上進(jìn)行了改進(jìn),使用了DIoU、CIoU[15].DIoU 是將目標(biāo)與anchor (錨框)之間的距離,重疊率以及尺度標(biāo)準(zhǔn)都考慮進(jìn)去,使目標(biāo)框回歸變得更加穩(wěn)定,不會(huì)像IoU 和GIoU 一樣出現(xiàn)訓(xùn)練過(guò)程中發(fā)散等問(wèn)題.在將DIoU 替換普通的IoU 評(píng)價(jià)策略,應(yīng)用于NMS 中,即DIoU_nms,會(huì)使得NMS 得到的結(jié)果更加合理有效,方便檢測(cè)重疊的目標(biāo),而且可以直接最小化兩個(gè)目標(biāo)框的距離,加快收斂速度.CIoU 是在DIoU 的基礎(chǔ)上進(jìn)行改進(jìn).兩個(gè)函數(shù)的使用不但有效提高了檢測(cè)速率,也能夠保證檢測(cè)精度.
原始版YOLOv5 模型與改進(jìn)版YOLOv5 模型在經(jīng)過(guò)實(shí)驗(yàn)后對(duì)比結(jié)果如圖4 所示.
圖4 算法對(duì)比結(jié)果圖
在使用了改進(jìn)YOLOv5 的基礎(chǔ)上又增加了epoch(迭代次數(shù))以提高檢測(cè)準(zhǔn)確度[16].檢測(cè)結(jié)果如圖5,其中,圖5(a)-圖5(d)和圖5(i)-圖5(l)為增加前結(jié)果,其余為增加后結(jié)果.
圖5 檢測(cè)結(jié)果圖 (其中,橫坐標(biāo)表示Epoch 數(shù)量)
遠(yuǎn)程視頻傳輸?shù)膶?shí)現(xiàn)分為兩部分,分別是視頻發(fā)送與接收以及數(shù)據(jù)處理.
視頻的發(fā)送與接收基于現(xiàn)場(chǎng)配有嵌入式WiFi 模塊的機(jī)器人實(shí)時(shí)捕獲的畫(huà)面,視頻流傳輸?shù)暮诵脑谟赩S 運(yùn)行視頻獲取程序與檢測(cè)程序進(jìn)行網(wǎng)絡(luò)通信[17],VS 作為發(fā)送端實(shí)時(shí)發(fā)送視頻流,檢測(cè)程序作為接收端接受視頻.在機(jī)器人上安裝WiFi 模塊的小型嵌入式系統(tǒng),連接WiFi,運(yùn)行VS 程序獲取現(xiàn)場(chǎng)視頻,運(yùn)用TCP[18]將VS 與檢測(cè)程序?qū)崿F(xiàn)網(wǎng)絡(luò)通信,檢測(cè)程序接收實(shí)時(shí)的視頻流,實(shí)現(xiàn)遠(yuǎn)程視頻的實(shí)時(shí)傳輸.
數(shù)據(jù)處理是在檢測(cè)程序接收到視頻流數(shù)據(jù)之后,利用Numpy[19]進(jìn)行相應(yīng)的數(shù)據(jù)處理,使得到的數(shù)據(jù)轉(zhuǎn)換成視頻并且能夠讀入檢測(cè)模型,讀入模型之后開(kāi)始進(jìn)行檢測(cè).
當(dāng)檢測(cè)病媒生物時(shí),需要及時(shí)提醒工作人員進(jìn)行抓取清理,防止病媒生物污染集裝箱貨物產(chǎn)生其他不必要的損失.因此需要設(shè)置檢測(cè)報(bào)警模塊,及時(shí)在檢測(cè)界面顯示報(bào)警信息.時(shí)間信息尤為重要,準(zhǔn)確的時(shí)間可以方便工作人員后續(xù)查看錄像,精準(zhǔn)地找到病媒生物存在的時(shí)間區(qū)域,方便進(jìn)一步分析調(diào)查.滾動(dòng)式信息的報(bào)警方式可以更加顯著的提醒工作人員及時(shí)處理.檢測(cè)報(bào)警模塊的具體實(shí)現(xiàn)主要是利用Python 自帶的localtime 函數(shù)獲取具體時(shí)間,進(jìn)一步使用strftime 函數(shù)將時(shí)間信息格式轉(zhuǎn)換為年月日,后續(xù)綁定組件listview,使報(bào)警信息可以顯示在檢測(cè)界面的固定區(qū)域.
當(dāng)檢測(cè)到病媒生物時(shí),需要截取這一幀圖片作為檢測(cè)記錄,這張圖片可以再次顯示,也可以定向保存到文件夾,方便工作人員后期分析統(tǒng)計(jì).檢測(cè)記錄截取之后,綁定界面組件listview 和model,使其能夠顯示在檢測(cè)界面視頻下方,并利用OpenCV 的imwrite 將檢測(cè)記錄保存到本地文件夾中,并以報(bào)警信息的具體檢測(cè)時(shí)間命名.當(dāng)視頻區(qū)域未顯示視頻時(shí),可以通過(guò)點(diǎn)擊圖片將圖片顯示到視頻顯示區(qū)域,也可以打開(kāi)存儲(chǔ)檢測(cè)記錄的文件夾打開(kāi)圖片,進(jìn)行詳細(xì)查看.
經(jīng)過(guò)一系列測(cè)試,此集裝箱病媒生物檢測(cè)系統(tǒng)的開(kāi)發(fā)已達(dá)到預(yù)期目標(biāo),并且此系統(tǒng)的功能性、準(zhǔn)確性以及速度均達(dá)到了預(yù)期水平.完整的實(shí)現(xiàn)了集裝箱內(nèi)病媒生物的檢測(cè)以及檢測(cè)之后的報(bào)警、存儲(chǔ)和抓取清理一整套流程,經(jīng)過(guò)多次測(cè)試,其功能實(shí)現(xiàn)如圖6 所示; 完整實(shí)現(xiàn)打印發(fā)現(xiàn)病媒生物時(shí)間及顯示圖像,將圖像信息保存在電腦的固定文件夾中.功能完善且運(yùn)行順暢.
圖6 功能實(shí)現(xiàn)圖
根據(jù)實(shí)際情況,在此系統(tǒng)只對(duì)部分實(shí)驗(yàn)數(shù)據(jù)結(jié)果進(jìn)行展示.精度測(cè)試結(jié)果如表1 所示,展示了在光線充足和不充足的條件下,對(duì)病媒生物分別檢測(cè)10 次、20 次、40 次的平均檢測(cè)精度結(jié)果.
表1 平均檢測(cè)結(jié)果
在準(zhǔn)確性方面主要是體現(xiàn)在識(shí)別精度,在光線充足的條件下,平均精度可以達(dá)到0.9 左右,即使是在光線不充足的條件下,對(duì)病媒生物的識(shí)別平均精度也能達(dá)到0.8 以上; 在速度方面則是體現(xiàn)在對(duì)病媒生物的識(shí)別時(shí)間,單個(gè)病媒生物的識(shí)別時(shí)間控制在2 s 以內(nèi).
集裝箱病媒生物檢測(cè)系統(tǒng)是一種現(xiàn)代化的檢測(cè)管理方式,結(jié)合了深度學(xué)習(xí)的概念,代表了出入境檢測(cè)自動(dòng)化的發(fā)展趨勢(shì).圍繞機(jī)器視覺(jué)技術(shù)、網(wǎng)絡(luò)通信技術(shù)、深度學(xué)習(xí)方法等計(jì)算機(jī)視覺(jué)領(lǐng)域的相關(guān)知識(shí),經(jīng)過(guò)大量的研究,采用了YOLOv5 的訓(xùn)練模型方案并開(kāi)發(fā)實(shí)現(xiàn),經(jīng)過(guò)多次調(diào)試,最終實(shí)現(xiàn)了集裝箱病媒生物的檢測(cè).此外,該系統(tǒng)核心編程語(yǔ)言為Python,代碼可移植性高,擴(kuò)展性良好,對(duì)二次開(kāi)發(fā)友好.系統(tǒng)針對(duì)集裝箱傳統(tǒng)人工檢測(cè)方式的弊端,在智能自動(dòng)檢測(cè)方面不懈努力,對(duì)工業(yè)智能化、自動(dòng)化具有重要意義.