劉世晶,涂雪瀅,田昌鳳,徐 皓
(1 中國水產(chǎn)科學(xué)研究院漁業(yè)機(jī)械儀器研究所,上海 200092; 2 農(nóng)業(yè)農(nóng)村部漁業(yè)裝備與工程技術(shù)重點(diǎn)實(shí)驗(yàn)室,上海 200092)
吸魚泵作為魚類捕撈、收集的重要作業(yè)裝置已經(jīng)廣泛應(yīng)用在漁業(yè)生產(chǎn)過程中,實(shí)現(xiàn)吸魚泵過魚數(shù)量的精準(zhǔn)統(tǒng)計(jì),可有效提升裝置的生產(chǎn)工作效率和智能化水平[1]。受魚類運(yùn)動(dòng)和吸魚泵工作特性影響,魚類存在粘連、重疊、形變等外形特征,增加了計(jì)數(shù)難度,因此如何精準(zhǔn)統(tǒng)計(jì)吸魚泵過魚數(shù)量,已經(jīng)成為制約計(jì)數(shù)裝置大范圍應(yīng)用的技術(shù)難點(diǎn)。
目前,常用的通道流量統(tǒng)計(jì)方法主要包括人工、光電計(jì)數(shù)和機(jī)器視覺方法。其中,機(jī)器視覺技術(shù)因其非接觸、高精度、可量化等優(yōu)點(diǎn),已被廣泛應(yīng)用到人流、車輛等流量統(tǒng)計(jì)的應(yīng)用場景[2]。按照計(jì)數(shù)的方法和原理不同,現(xiàn)有的基于視覺計(jì)數(shù)的方法主要分為基于特征檢測的方法、基于區(qū)域回歸的方法以及基于興趣線(line-of-interest,LOI)的方法[3-5]。其中,基于特征檢測的方法主要利用運(yùn)動(dòng)物體典型外觀特征,通過構(gòu)建特征識(shí)別模型實(shí)現(xiàn)運(yùn)動(dòng)跟蹤計(jì)數(shù)。目前廣泛使用方向梯度直方圖(Histogram of oriented gradient,HOG)[6-7]、哈爾特征(Haar-like features,Harr)[8-9]、紋理特征[10-11]等檢測模式結(jié)合深度學(xué)習(xí)技術(shù)應(yīng)用,在行人和車輛計(jì)數(shù)方面取得了良好的試驗(yàn)效果,但是由于物體特征的多樣,需要投入大量的精力構(gòu)建不同特征模型,增加了算法應(yīng)用難度。另一方面,此類算法運(yùn)算復(fù)雜度較高,而魚類運(yùn)動(dòng)時(shí)不可避免地會(huì)產(chǎn)生氣泡、形變等特征遮擋或變化情況,進(jìn)一步增加了算法計(jì)算時(shí)間,無法滿足在線快速計(jì)數(shù)的使用要求?;趨^(qū)域回歸[12-14]的方法不關(guān)注個(gè)體目標(biāo)檢測,主要是通過建立目標(biāo)區(qū)域群體特征和目標(biāo)數(shù)量之間的回歸模型實(shí)現(xiàn)數(shù)量統(tǒng)計(jì)。Chan等[15]、Liang等[16]利用邊緣、紋理、面積等混合紋理特征結(jié)合高斯回歸模型和貝葉斯回歸模型實(shí)現(xiàn)人群和車流數(shù)量統(tǒng)計(jì),取得了較好的計(jì)數(shù)效果。此方法適用于大規(guī)模群體目標(biāo)數(shù)量統(tǒng)計(jì),針對(duì)吸魚泵管道成像應(yīng)用場景,受現(xiàn)場工況限制,一般采用近距離觀測方法,魚類個(gè)體成像面積較大,很難有效構(gòu)建群體特征和數(shù)量關(guān)系,技術(shù)應(yīng)用復(fù)雜度較大?;谂d趣線的方法[17-18]主要是通過計(jì)算不同時(shí)間切片條件下經(jīng)過特定LOI的物體數(shù)量,實(shí)現(xiàn)特定時(shí)間片段內(nèi)流量統(tǒng)計(jì)的方法。時(shí)間切片方法主要限制是需要根據(jù)物體運(yùn)動(dòng)速度在LOI的不同位置分配不同的數(shù)量權(quán)重,對(duì)于復(fù)雜場景,可能無法可靠地獲得LOI處的流速,降低了計(jì)數(shù)精度。此外,針對(duì)近距離魚道計(jì)數(shù),該方法同樣存在魚體成像面積較大引起的全局運(yùn)動(dòng)特征提取困難的問題。
綜上所述,現(xiàn)有流量計(jì)數(shù)方法在運(yùn)動(dòng)物體特征明顯、成像距離較遠(yuǎn)時(shí)取得了較好的計(jì)數(shù)效果,但是針對(duì)吸魚泵過魚數(shù)量統(tǒng)計(jì),由于魚體運(yùn)動(dòng)速度快、成像距離短,存在氣泡、重疊、形變等干擾噪聲影響,導(dǎo)致魚體特征穩(wěn)定性差、定位困難等問題,不能滿足設(shè)備高精度計(jì)數(shù)需要。
提出了一種基于機(jī)器視覺的吸魚泵過魚量計(jì)數(shù)系統(tǒng),該系統(tǒng)通過構(gòu)建背光照射方式,通過增強(qiáng)魚體和背景差異,以期降低氣泡、反光等噪聲對(duì)成像質(zhì)量的影響;整合區(qū)域回歸和LOI技術(shù)特點(diǎn),提出一種雙LOI計(jì)數(shù)方法,通過構(gòu)建輪廓面積時(shí)空變化模型,計(jì)算不同時(shí)間切片內(nèi)過魚數(shù)量,以期解決存在粘連、重疊、形變等異常條件魚類精準(zhǔn)計(jì)數(shù)問題。最后通過和經(jīng)典的學(xué)習(xí)算法比較,驗(yàn)證方法的有效性。
設(shè)計(jì)了過魚計(jì)數(shù)裝置(圖1),主要由相機(jī)、工業(yè)平板電腦、光源和過魚管道組成。其中單目相機(jī)焦距8 mm,采樣幀率24幀,工作距離300 mm,采用支架安裝,固定在管道上方;工業(yè)平板電腦(CPU 1.6 GHz,內(nèi)存 16 G)固定在采樣裝置側(cè)面,主要用于視頻在線處理和結(jié)果實(shí)時(shí)顯示;光源采用漫反射平行白光光源,面板尺寸300 mm×400 mm,安裝在裝置底部,主要用于黑箱內(nèi)魚體照明;過魚管道采用透明有機(jī)玻璃材質(zhì)制作,壁厚8 mm,內(nèi)徑200 mm,與吸魚泵管道內(nèi)徑一致。如圖2所示,計(jì)數(shù)裝置采用法蘭安裝形式與吸魚泵進(jìn)口和吸魚管道連接,采用可調(diào)節(jié)固定支架保證裝置安裝穩(wěn)定性。
圖1 過魚計(jì)數(shù)裝置結(jié)構(gòu)圖Fig.1 Structure diagram of fish counting device
系統(tǒng)工作時(shí),首先使用計(jì)數(shù)軟件打開相機(jī)和光源,并根據(jù)成像結(jié)果檢查設(shè)備工作狀態(tài);然后開啟計(jì)數(shù)模式,此時(shí)相機(jī)將使用固定幀率拍攝過魚管道介質(zhì)運(yùn)動(dòng)情況,并將拍攝圖片實(shí)時(shí)傳送到計(jì)數(shù)軟件中,系統(tǒng)軟件根據(jù)過魚情況統(tǒng)計(jì)過魚數(shù)量,并實(shí)時(shí)顯示。
圖2 計(jì)數(shù)裝置安裝示意圖Fig.2 Installation diagram of counting device
目前較為先進(jìn)的LOI計(jì)數(shù)方法主要是利用時(shí)間切片[19-20]統(tǒng)計(jì)運(yùn)動(dòng)物體數(shù)量,適用于相機(jī)工作距離較遠(yuǎn)、目標(biāo)個(gè)體較小的使用環(huán)境。針對(duì)吸魚泵計(jì)數(shù)工況,由于相機(jī)工作距離短、目標(biāo)運(yùn)動(dòng)速度快,導(dǎo)致目標(biāo)成像面積大,經(jīng)典的基于速度的時(shí)間切片方法不能滿足特征提取需要。針對(duì)此種情況,提出一種DLOI計(jì)數(shù)方法,如圖3所示,在單幀圖像內(nèi)設(shè)定固定位置的雙興趣線,根據(jù)魚類經(jīng)過興趣線不同特征,構(gòu)建視頻幀切片序列,然后通過建立不同視頻切片序列魚體特征與數(shù)量的回歸模型,實(shí)現(xiàn)過魚數(shù)量統(tǒng)計(jì),具體算法邏輯如下。
1)初始化興趣線:分析不同養(yǎng)殖對(duì)象外形長度,并綜合考慮光源和水流影響,選擇光照強(qiáng)度穩(wěn)定區(qū)域(如圖3所示)作為興趣線起始和終止位置。根據(jù)綜合分析結(jié)果,設(shè)定20 cm,30 cm和40 cm三個(gè)雙興趣線寬度選項(xiàng),吸魚泵工作前按照與魚體長度接近原則設(shè)定雙興趣線寬度。
2)選擇操作:按照魚體首次切割起始位置興趣線為視頻切片開始位置,以連續(xù)輪廓最后一幀切割終止興趣線為結(jié)束位置,構(gòu)建視頻幀切片。
3)分塊操作:當(dāng)同時(shí)存在雙線切割時(shí),采用canny算子結(jié)合膨脹腐蝕等形態(tài)學(xué)操作提取目標(biāo)輪廓[11-13],判斷視頻輪廓是否連續(xù),當(dāng)輪廓連續(xù)時(shí)繼續(xù)步驟2視頻切片構(gòu)建過程,當(dāng)輪廓不連續(xù)時(shí),按照步驟2方法,構(gòu)建新視頻切片(如圖3所示)。
4)異常操作:由于吸魚泵水力流速較快,存在魚體快速進(jìn)出,不切割興趣線的情況,結(jié)合數(shù)據(jù)分析可以發(fā)現(xiàn),基本未產(chǎn)生雙興趣線同時(shí)不切割狀態(tài),且大概率都是單條魚產(chǎn)生此種情況,即不會(huì)產(chǎn)生重疊和粘連情況。此外,由于魚體運(yùn)動(dòng)速度相對(duì)穩(wěn)定,可通過分析視頻圖像,找到單條魚在視頻中最長運(yùn)動(dòng)時(shí)間閾值,以此為標(biāo)準(zhǔn),當(dāng)存在單一進(jìn)線切割時(shí),到達(dá)時(shí)間閾值而不存在出線切割時(shí),構(gòu)建順序時(shí)間閾值長度的視頻切片,當(dāng)存在單一出線切割時(shí),構(gòu)建逆序時(shí)間閾值長度的視頻切片。
5)構(gòu)建特征:分析不同視頻切片,當(dāng)切片內(nèi)目標(biāo)輪廓連續(xù),且不存在多個(gè)輪廓時(shí),提取每幀圖像輪廓面積s,構(gòu)建視頻切片面積表征向量TS,TS=[s1,…,si] ,i=1,2,…,n,其中n為視頻切片中圖像幀的數(shù)量;當(dāng)視頻切片中存在分割輪廓時(shí),按照目標(biāo)運(yùn)動(dòng)方向,將離視頻運(yùn)動(dòng)起始位置較近的輪廓統(tǒng)計(jì)到后續(xù)視頻切片,反之統(tǒng)計(jì)到前序視頻切片。
圖3 視頻切片F(xiàn)ig.3 Video slices
將過魚視頻通過視頻切片的方法分割成了不同的片段,通過單位時(shí)間內(nèi)過魚數(shù)量實(shí)際上就是統(tǒng)計(jì)此時(shí)間段內(nèi)所有視頻切片中魚類數(shù)量的總和。通過分析不同視頻切片魚類運(yùn)動(dòng)特點(diǎn),可以發(fā)現(xiàn)發(fā)生4條以上魚類粘連運(yùn)動(dòng)的情況較少,因此可以將視頻切片中過魚數(shù)量估計(jì),轉(zhuǎn)化成分類問題。支持向量機(jī)(support vector machines,SVM)方法[21-23]在小樣本分析中取得了非常好的應(yīng)用效果,具備較好的魯棒性,由于吸魚泵過魚數(shù)量統(tǒng)計(jì),相關(guān)樣本來源較少,適用于小樣本預(yù)測,因此選擇SVM算法預(yù)測時(shí)間切片過魚數(shù)量。
由于魚體連續(xù)運(yùn)動(dòng)產(chǎn)生的視頻切片長度不一致,為了統(tǒng)一樣本空間,選擇連續(xù)運(yùn)動(dòng)最長幀數(shù)作為樣本向量長度,此外,根據(jù)樣本實(shí)際情況,發(fā)現(xiàn)幾乎未出現(xiàn)4條魚連續(xù)運(yùn)動(dòng)情況,因此以3條魚連續(xù)運(yùn)動(dòng)樣本最長的18幀圖像長度為樣本向量維度。為了充分利用魚體運(yùn)動(dòng)產(chǎn)生的投影面積時(shí)空變化特征,以單幀圖像魚體面積為特征向量參數(shù),構(gòu)建連續(xù)幀特征向量,當(dāng)視頻切片幀數(shù)不夠8幀時(shí),后續(xù)幀按照面積為0計(jì)算,得到樣本空間R={Si},Si= [TSi;0i+1,…,0n],其中TSi為視頻切片面積表征向量;n=18。聯(lián)立樣本空間和魚體數(shù)量可得到訓(xùn)練樣本集T= {R,R’},其中R’取值范圍為1~3。建立SVM預(yù)測模型,其邏輯表達(dá)式為:
(1)
(2)
式中:ω、b分別為超平面法向量和常數(shù)項(xiàng),C為懲罰因子,ξi為松弛變量,n為樣本數(shù)量。本研究采用RBF(徑向基)核函數(shù)進(jìn)行空間映射,該映射的函數(shù)表達(dá)式為:
(3)
式中:g為核參數(shù),控制函數(shù)的徑向作用范圍。
試驗(yàn)樣本全部為吸魚泵正式工作時(shí)采集,程序軟件采用C++編寫。吸魚泵采用全自動(dòng)控制,每次吸魚時(shí)長30 s,間隔時(shí)間10 s。本次試驗(yàn)對(duì)象為池塘養(yǎng)殖1齡異育銀鯽,平均體長20 cm,體質(zhì)量230 g左右,共購買84條試驗(yàn)用魚,按照約60 kg/m3密度放入試驗(yàn)用水箱暫養(yǎng),用于重復(fù)試驗(yàn)。試驗(yàn)共采集15段30 s視頻,共計(jì)吸魚520條,隨機(jī)選擇13段視頻共計(jì)433條魚作為訓(xùn)練樣本,剩余2段視頻87條魚作為測試樣本驗(yàn)證本文方法的有效性。
采用本文提出的雙興趣線方法將15段視頻進(jìn)行切片,其中13段訓(xùn)練視頻共得到含單條魚視頻切片263個(gè),含2條魚的視頻切片67個(gè),含3條魚視頻切片12個(gè),因此共得到訓(xùn)練集342個(gè)。2段測試樣本共有單條魚視頻切片41個(gè),2條魚視頻切片21個(gè),3條魚視頻切片4個(gè),共得到測試集66個(gè)。
將訓(xùn)練集和測試集樣本分別按照本研究提出的特征構(gòu)建方法生成標(biāo)準(zhǔn)樣本空間,利用遺傳算法[24-25]確定SVM模型參數(shù),其中懲罰因子C=20 000和核參數(shù)g=0.01,預(yù)測結(jié)果如表1所示。采用陽性準(zhǔn)確率Tp(precision),多數(shù)偏移Ti(increase)和少數(shù)偏移Td(decrease)三個(gè)指標(biāo)評(píng)價(jià)整體計(jì)數(shù)精度和不同重疊數(shù)量預(yù)測精度,其中:
(4)
(5)
(6)
式中:TTP(True Positive)為真陽性,即視頻切片中魚類數(shù)量的預(yù)測值和真實(shí)值一致;TTPN(True Positive Number)為不同分類真陽性,本研究中不同數(shù)量魚的視頻切片預(yù)測值和真實(shí)值一致;TFN(False Negative)為真陰性,即視頻切片中魚類數(shù)量判斷錯(cuò)誤與真實(shí)值不一致;TIN(Increase Negative)為正陰性,即預(yù)測數(shù)量比真實(shí)數(shù)量多;TDN(Decrease Negative)為負(fù)陰性,即預(yù)測數(shù)量比真實(shí)數(shù)量少。
從表1中可以看出,1條魚視頻切片魚類數(shù)量全部預(yù)測準(zhǔn)確,2條魚和3條魚視頻切片都只存在少數(shù)偏移情況,其中2條魚視頻切片少數(shù)偏移為19.05%,3條魚視頻切片少數(shù)偏移為50%。針對(duì)存在3條魚的情況,預(yù)測誤差較大,這主要是由于3條魚重疊出現(xiàn)的情況較少,預(yù)測樣本較少,導(dǎo)致預(yù)測精度受小樣本影響較大??傮w上看,兩個(gè)預(yù)測視頻段預(yù)測精度都達(dá)到或超過90%,其中預(yù)測視頻段1出現(xiàn)了2條魚預(yù)測誤差,預(yù)測視頻段2出現(xiàn)了1條魚預(yù)測誤差,分析誤差產(chǎn)生的視頻切片,發(fā)現(xiàn)當(dāng)兩條魚重疊度較高時(shí),誤差產(chǎn)生概率較大,僅僅依靠單目視覺二維圖像判斷很難達(dá)到良好識(shí)別效果。
針對(duì)小樣本預(yù)測需求,選擇BP神經(jīng)網(wǎng)絡(luò)[26-27]、NBC樸素貝葉斯[28-30]等典型算法與SVM算法進(jìn)行比較,比較結(jié)果如表1所示。
表1 不同預(yù)測算法比較
表1可以看出,BP神經(jīng)網(wǎng)絡(luò)預(yù)測精度優(yōu)于NBC樸素貝葉斯方法,但都低于SVM方法。從不同數(shù)量魚類視頻切片預(yù)測結(jié)果可以看出,單條魚視頻切片幾乎不存在預(yù)測誤差,不同預(yù)測算法預(yù)測誤差差異主要集中在兩條魚視頻切片中,相較于BP神經(jīng)網(wǎng)絡(luò)和本文采用的SVM方法,NBC樸素貝葉斯方法在3條魚預(yù)測中全部出現(xiàn)Td誤差。從不同視頻段過魚預(yù)測數(shù)量中可以看出,當(dāng)視頻中魚類重疊度較高時(shí),預(yù)測誤差增大,但從15個(gè)視頻段整體分析可以看出,當(dāng)魚類具備一定分散度通過計(jì)數(shù)裝置時(shí),平均預(yù)測精度基本可以超過85%。
針對(duì)吸魚泵等魚類被動(dòng)運(yùn)動(dòng)情況,運(yùn)動(dòng)魚類不可避免地出現(xiàn)粘連、重疊等運(yùn)動(dòng)特征,設(shè)計(jì)的計(jì)數(shù)裝置管道內(nèi)徑為200 mm,長度為500 mm,當(dāng)粘連或重疊魚類目標(biāo)經(jīng)過時(shí),相機(jī)捕捉的圖像可局部反映魚類運(yùn)動(dòng)的實(shí)時(shí)狀態(tài),但是由于魚類是柔性物體,很難準(zhǔn)確和大量構(gòu)建特征庫。此外,由于管道內(nèi)徑較大,靠近相機(jī)位置魚類成像面積明顯大于遠(yuǎn)離相機(jī)位置成像面積。因此,當(dāng)魚類重疊度較高或者沿水流方向并行運(yùn)動(dòng)時(shí),基于單目相機(jī)的觀測手段較難得到適用于判別的圖像特征,導(dǎo)致計(jì)數(shù)精度會(huì)出現(xiàn)隨機(jī)誤差。
提出的基于雙興趣線的視頻切片構(gòu)建方法,能夠根據(jù)魚類運(yùn)動(dòng)狀態(tài)準(zhǔn)確分割單條、重疊等不同情況魚類連續(xù)運(yùn)動(dòng)時(shí)間段,采用的特征構(gòu)建方法建立的運(yùn)動(dòng)特征不僅僅包含了每幀圖像的魚類面積,還包括了魚類運(yùn)動(dòng)面積變化趨勢和運(yùn)動(dòng)時(shí)長信息,能夠較全面的反應(yīng)魚類時(shí)空運(yùn)動(dòng)特征,因此基于雙興趣線的分類方法能夠獲得較好的分類效果。但是,基于面積變化構(gòu)建的時(shí)空特征不具備魚類運(yùn)動(dòng)輪廓特征表述能力,而輪廓特征又是重疊魚類運(yùn)動(dòng)有效描述子,因此下一步研究將著重圍繞輪廓變化進(jìn)一步豐富特征描述子,以期提高算法計(jì)數(shù)精度。
相較于BP神經(jīng)網(wǎng)絡(luò)和NBC樸素貝葉斯方法,SVM方法在魚類視頻切片識(shí)別精度更高,這主要是由于SVM算法對(duì)樣本維度和樣本數(shù)量不敏感,而NBC方法由于其基于概率的分類機(jī)理,當(dāng)樣本規(guī)模不均勻時(shí)容易導(dǎo)致小樣本分類誤差。而BP神經(jīng)網(wǎng)絡(luò)算法過于依賴樣本,對(duì)差異較小樣本或者規(guī)模差距較大樣本,區(qū)分能力較差。本文構(gòu)建的基于面積時(shí)空特征的訓(xùn)練樣本,由于發(fā)生3條魚重疊運(yùn)動(dòng)的情況較少,導(dǎo)致分類樣本不均勻,產(chǎn)生較大的計(jì)數(shù)誤差。下一步將通過構(gòu)建仿真平臺(tái),進(jìn)一步豐富樣本數(shù)量,以期進(jìn)一步提升分類精度。
試驗(yàn)裝置采用背光照射形式,主要用于規(guī)避氣泡、雜質(zhì)等隨機(jī)噪聲對(duì)魚類成像的影響,背光光照強(qiáng)度是采用人工方法調(diào)整,適用于水體較清澈、雜質(zhì)顆粒較小的工廠化或海水生產(chǎn)工況環(huán)境。針對(duì)池塘養(yǎng)殖環(huán)境,需要開展不同濁度魚類成像補(bǔ)光試驗(yàn)和補(bǔ)光環(huán)境測試試驗(yàn)。此外,還將開展多目相機(jī)計(jì)數(shù)技術(shù)研究,以期通過增加不同角度圖像,解決重疊引起的計(jì)數(shù)誤差。
為了驗(yàn)證本研究方法的有效性,采用60 kg/m3暫養(yǎng)密度開展吸魚計(jì)數(shù)試驗(yàn),取得了較好的試驗(yàn)效果。但是,相比于典型捕撈環(huán)境,魚體密度較低,導(dǎo)致過魚時(shí)發(fā)生3條及以上連續(xù)運(yùn)動(dòng)的情況較少。因此本研究下一步將基于提出的樣本構(gòu)建方法的理論基礎(chǔ),通過調(diào)節(jié)視頻切片時(shí)間長度,開展不同密度吸魚計(jì)數(shù)試驗(yàn),以期提升裝置的試用范圍。
針對(duì)吸魚泵過魚數(shù)量計(jì)數(shù)訴求,設(shè)計(jì)了一種基于機(jī)器視覺的過魚數(shù)量計(jì)數(shù)裝置,提出了一種基于雙興趣線和面積時(shí)空特征的計(jì)數(shù)方法。該計(jì)數(shù)方法魚類計(jì)數(shù)平均精度超過90%,取得了較好的計(jì)數(shù)效果;提出的視頻切片和運(yùn)動(dòng)特征構(gòu)建方法,能夠滿足在線計(jì)數(shù)的工作要求;計(jì)數(shù)裝置串接在吸魚泵進(jìn)口位置,不占用額外空間,且通過結(jié)構(gòu)和算法升級(jí)可應(yīng)用到多種工況環(huán)境。
□