馮書慶,王志勇,諶志新,徐志強
(中國水產科學研究院漁業機械儀器研究所,上海 200092)
消費市場除對魚的品種品質有要求外,還對魚的規格質量等有消費細分需求,商品成魚配送報告除需詳列成魚的質量、規格外,也有條數信息登記要求,這有助于開展成魚安全配送、出庫核對等管理工作[1]。近年來魚類艙養發展蓬勃,單位體積艙養魚類的放養條數與密度影響著商品成魚的品質與健康,也是計算飼料投喂量的依據[2]。以上相關工作流程開展時,都需要對魚種的條數進行計數和統計,是現代漁業作業任務的分支。
隨著計算機科技的發展,基于圖像處理的目標檢測技術取得了很大進展[3],一些場合目標檢測算法應用效果表現較好,而高性能計算機GPU硬件供給等也為視覺檢測工程應用部署提供了更多方案[4]。
針對漁業計數需要,結合常用數字圖像處理目標檢測技術與方法,本研究設定了基于圖像特征的魚類圖像信息提取與標注研究內容、特征檢測研究內容等,并編制驗證程序測試實際效果,以探索基于機器視覺的目標識別檢測方法在漁業計數方面的應用。
為提升機器視覺處理速度及應用效果,在對圖像做識別處理之前常對原始圖片做圖像灰度化、干擾濾除[5]等系列預處理。
圖像灰度化處理時,原始圖像的光照強度差異會影響圖像灰度化后的灰度值分布區[6]、灰度值的整體升降會影響圖像特征向量的計算結果等。本研究的成魚檢測實際應用環境單一、改造難度小,可采用遮光棚附加人工光照的方法預設光照為統一光照,使灰度化后的圖像灰度值分布近似一致,以達到興趣目標突出顯示效果。
實際應用中,若有環境光線難以設定和控制情況發生時,可采取人工調整觀測統計最佳灰度閾值在圖片整體灰度值分布位置的方式,制定動態閾值計算算法對圖片實行自適應灰度化處理,也可提升和改善識別算法應用效果。
圖像背景干擾特征與目標特征相似時會影響目標識別判別效果及成功率,例如使用圖像角點特征對魚尾進行檢測時,成魚照片附近可能存在的交叉草葉等會對識別結果造成干擾。實際應用中若有此類情況發生時,可在算法預處理環節適當增加基于干擾顏色特征的濾波處理、語義分割濾波處理[7]等濾除干擾??紤]本研究現場可布置特性,如使用對稱重框(轉運框)不銹鋼板單一噴色的方法,可人為去除背景色及雜物(雜草)干擾,故在本算法驗證中,不過多討論此類干擾濾除算法。
同類魚種各個體頭部花紋紋理特征及尾部幾何特征幾乎相似一致,對魚體整體進行特征提取和識別無疑是最有優勢的。但在活魚裝箱時,因密度大或裝載傾倒等原因,常有個別魚部分身體被其他魚傾軋覆蓋現象,不能完整展現魚體整體,故基于完整魚體幾何特征的檢測算法難以應用于本研究中。
觀察魚類生物特性,魚體瀝水平放時,兩條近似圓柱狀的魚身不能完全重疊;而活魚個體也有不忍受雙眼同時(其上方眼睛)被遮擋的生物特性,魚群在從騷動到安靜的狀態調整過程中,遮擋方式往往表現為本魚魚頭遮擋了其他魚魚尾(各魚都可忍受)的平衡狀態。
基于以上場景特性,擬應用目標局部描述子特征方法對成魚進行目標檢測,目標局部截取區為魚類眼睛、鰓線等魚頭部位,目標區域在魚類各個體上分布唯一、魚群全體個體都檢測可達。
目標魚群在傾入轉運框后,各個體動態姿態調整適應中,會出現魚頭朝向隨機分布特性,故在算法設計時應考慮目標旋轉時的泛化檢測效能。設想魚群的品種一致、單體規格也經分級一致[8]、相機位置及焦距等參數設定一致,算法對目標的尺度一致性效能可不做過高要求。
技術推廣時,若檢測目標在圖像中全部完整可達,則調整局部目標描述區為整體目標描述區,可完成新的應用部署,如檢測封閉環境中品種一致、規格相近的游魚時,可選用魚體整體做目標區。增加圖像區域自動定位和分割選取算法后,可拓展算法應用至類似場景如指紋識別、車牌識別等。
結合上述環境和目標設定結論,根據實際應用需求,選用鰱魚圖像作為試驗圖像,側重對目標識別進行旋轉及泛化匹配驗證。
根據圖像灰度紋理變化及線條形狀幾何分布,可設計多種圖像特征描述算法,實現圖像特征提取和信息綜合演繹及稀疏化處理,減小計算工作量,提升算法應用效果[9]。
一副圖像中,目標的花紋、凸起等紋理和邊角形狀都以圖像相鄰像素的灰度值變化來表現。對圖像灰度值變化及變化梯度方向進行歸納與統計匯總,就能以一種特征格式的數據表格描述一副圖像的線條及區域變化信息[10]。取圖1內整魚的魚鰓部位進行灰度特征分析,截取鰓線部圖像如圖1左下分圖所示。

圖1 圖像灰度值排列圖Fig.1 Arrangement diagram of image gray value
統計鰓線部圖像細胞(CELL)區中心像素點的4個臨近像素灰度值如圖1右下分圖所示(藍色區為該中心點)。則該魚鰓圖區中心點的圖像灰度梯度大小特征GM及梯度方向特征GA分別以公式1和公式2進行計算。

(1)
(2)
該魚鰓圖區中心點的一種圖像特征為灰度變化GM大小 60.2、灰度變化梯度方向GA為41°40′。
依據圖像灰度特征分析理論,選擇目前主流的幾種算法,對魚類圖像進行特征提取和可視化標注,以觀察選優、應用于本研究中。
Dalal等[11]提出一種基于像素變化梯度及方向的特征提取HOG算法。HOG算法以如下步驟對灰度圖像進行信息特征提取:1)圖像灰度Gamma矯正,使得圖像灰度變化均衡分布,利于圖像特征均勻展開。2)計算每個像素周邊像素的梯度信息。3)以8×8像素組合為細胞(CELL),依梯度方向分類統計梯度直方圖及梯度值。4)使用2×2細胞的面積組建塊區(BLOG),使用塊區依次劃過細胞,并計算塊區的向量值。5)統計圖像中所有塊區的梯度值和向量值,列為該幅圖片的HOG向量特征值。
依據研究預設,選取鰱魚成魚圖像為目標,編制程序對目標圖像進行HOG特征提取和可視化標注,軟件運行界面截圖如圖2所示。
圖2中,截圖左區的條紋圖像是對鰱魚圖像進行HOG特征提取和可視化單獨顯示的圖像,截圖右區是HOG特征可視化復加原始圖像標注的圖像。由圖2可知,HOG特征算法有效地提取了圖像紋理和邊緣部分的灰度變化速率及梯度方向,還原了算法所設想的圖像特征提取,但在圖像紋理層次信息復雜的魚頭部分,特征標注不夠明顯細致。
Lowe[12]提出了一種對目標圖像全局和脈絡主體特征描繪的尺度不變特征變換SIFT(Scale Invariant Feature Transform)特征提取算法。該類算法首先對目標圖像進行圖像金字塔立體擴展,方法為以原始圖像及原始圖像(4種)不同正態標準差(σ)的高斯模糊圖像進行堆疊為圖像金字塔的第一層(Octave 1);以原始圖像隔點采樣的降維圖像及降維圖像的高斯模糊圖像進行堆疊作為圖像金字塔的第二層(Octave 2);及使用對第二層圖像再次降維和高斯模糊方式,擴展堆疊圖像金字塔的更上層數據等。
對各層圖像像素灰度值做對應兩兩相減計算,建立圖像差值金字塔,最后計算圖像差值金字塔中各像素位置在金字塔立體空間內的梯度變化和向量,作為該點的SIFT特征。
SIFT圖像差值金字塔構建的理論依據見公式3和公式4所示。
(3)
(4)
因SIFT算法擴展包含了原圖像的高斯模糊圖片、隔點降維采樣圖片等,故該類算法在目標尺度變化檢測、旋轉變化檢測等能力泛化上表現優秀,為該類圖像應用特征提取及檢測的優選算法[13]。
依據研究預設,編制程序對魚類目標圖像進行SIFT特征提取和可視化標注。軟件運行界面截圖如圖3所示。圖3中,截圖左區為原始魚頭圖像,截圖右區是SIFT特征可視化復加原始圖像標注的圖片。可知,SIFT特征算法對圖像紋理和邊緣部分的特征提取和標注還是很清楚的,線條灰度變化明顯的魚鰓和紋理線條部分,特征值計算結果也相對較大。

圖3 圖像SIFT特征標注Fig.3 Image SIFT feature annotation
Haar[14]算法是一種常用的圖像紋理線條特征檢測算法。設計算法矩陣對圖像進行卷積,實現圖4中各對應橙色區域與綠色區域像素的差值計算,可完成圖像在算法矩陣指定方向上的邊緣變化特征檢測、線變化特征檢測、中心變化特征檢測及對角線變化特征檢測等。

圖4 Haar特征檢測算法原理Fig.4 Principle of Haar feature algorithm
依據Haar算法原理,Herbert等[15]提出加速穩健特征SURF(Speed Up Robust Feature)算法,也在圖像特征提取與檢測的應用中備受關注。
SURF算法基于Haar原理構建黑森(Hessian)矩陣實現對目標圖像的線條和邊緣特征提取。為了增加算法的泛化特性,算法在黑森矩陣前預加高斯濾波器,完成圖像的細節模糊功能。
黑森矩陣的常規表達式見式5所示。
(5)
混合高斯濾波后的黑森矩陣表達式見公式6所示。
(6)
尺度空間處理方面,SURF采用不同尺度的黑森矩陣模板完成圖像不同層次的特征泛化,而不對不同層次的圖像做尺寸調整。圖像SURF的特征值和特征方向計算處理上與SIFT方法相似。
SURF特征提取算法所定義的黑森矩陣大小也是可以設定的。若需要提取圖像細節紋理時,需要選擇較小維度的黑森矩陣;而傾向于輪廓、角點類特征提取時,應增大黑森矩陣的維度。
編制程序對魚類目標圖像進行SURF特征提取和可視化標注。軟件運行界面截圖如圖5所示。圖5中,截圖左區為原始魚頭圖像,截圖右區是SURF特征可視化復加成魚圖像標注的圖片。可知,相對于SIFT特征提取和標注,SURF特征關注點更為廣泛和細致,不單純聚焦于圖像紋理線條層次變化明顯的地方。

圖5 圖像SURF特征標注Fig.5 Image SURF feature annotation
根據以上特征可視化標注效果,選用SIFT特征和SURF特征作為成魚圖像特征提取算法,進一步開展目標特征提取與目標匹配尋找的相關研究。
基于圖像特征的匹配算法有暴力匹配算法BF_Matcher(Brute Force Matcher)和快速近鄰匹配算法FLANN_Matcher(Fast Approximate Nearest Neighbor Search Library)等,基本原理都是將目標圖像各特征向量與搜索圖像的所有特征向量進行歐氏距離匹配,并統計排序最為接近的特征向量為當前最佳匹配向量點[16]。
參考邵進達等[17]基于SIFT特征和FLANN_Matcher匹配算法設計等,設計和編制SIFT+FLANN匹配檢測算法對成魚目標圖像和搜索區圖像進行SIFT特征提取,然后再對雙方特征提取結果進行FLANN搜索匹配和匹配點可視化標注,軟件界面截圖如圖6所示。

圖6 FLANN_Matcher匹配及標注Fig.6 FLANN_ Matcher matching and labeling
圖6中,截圖左區左上角為目標圖像魚頭部分(該圖像截取于三魚圖像中的最右魚頭部分),截圖右區是目標圖像復加被搜索圖像及目標特征匹配可視化的圖像,界面清晰地表述了目標圖像與被搜索圖像的匹配結果,可直觀地觀察了解算法應用效果。
結合2.1節所述特征提取算法,選用FLANN_Matcher匹配算法,分別設計SIFT特征提取+ FLANN_Matcher匹配的目標檢測算法、SURF特征提取+FLANN_Matcher匹配的目標檢測算法等,對預設的成魚搜索圖像進行旋轉匹配測試和泛化匹配測試,以比對測試效果、選擇最優目標檢測識別方案。
編制基于SIFT特征和FLANN_Matcher匹配算法程序,截取三魚圖像中的最右魚魚頭作為目標圖像,分別對三魚目標的原圖、旋轉90°圖、旋轉180°圖、旋轉270°圖進行算法匹配識別和匹配點統計,測試該型算法對魚頭目標旋轉檢測的容忍效果及旋轉泛化檢測效果。匯總檢測結果如圖7所示。

圖7 SIFT特征目標旋轉檢測及標注Fig.7 SIFT feature object rotation detection and annotation
分別對三魚目標的原圖、單目標原圖、單泛化目標1圖、單泛化目標2圖進行算法匹配識別和匹配點統計,測試該型算法對泛化目標的識別效果。匯總檢測結果如圖8所示。

圖8 SIFT特征目標泛化檢測及標注Fig.8 SIFT feature target generalization detection and annotation
統計基于SIFT特征和FLANN_Matcher匹配的測試點結果如表1所示。

表1 SIFT特征檢測符合性統計Tab.1 SIFT feature detection compliance statistics
據SIFT特征檢測符合性統計表,測試匹配點大多都在目標區域或泛化區域(即其他魚頭圖像區)中(除項目4圖像的非ROI區命中點數最多為8個外),這驗證了大部分SIFT特征還是真實地描述了目標圖像向量特征的,表明該類算法在魚頭圖像識別中整體可靠有效。
項目3、4、6、7中SIFT特征在泛化目標上的匹配點數評分較高,說明SIFT特征在相似目標的檢測上有較強的泛化功能,也即對具有相似特征的同類目標有較好的識別能力。
參考周志偉等[18]所提及的算法設計,編制基于SURF特征和FLANN_Matcher匹配算法程序,截取三魚圖像中的中間魚魚頭作為目標圖像,分別對三魚目標的原圖、旋轉90°圖、旋轉180°圖、旋轉270°圖進行算法匹配識別和匹配點統計,測試該型算法對魚頭目標旋轉檢測的容忍效果及旋轉泛化檢測效果。匯總檢測結果如圖9所示。

圖9 SURF特征目標旋轉檢測及標注Fig.9 SURF feature target rotation detection and annotation
分別對三魚目標的原圖、單目標原圖、單泛化目標1圖、單泛化目標2圖進行算法匹配識別和匹配點統計,測試該型算法對泛化目標的識別效果。匯總檢測結果如圖10所示。

圖10 SURF特征目標泛化檢測及標注Fig.10 SURF feature target generalization detection and annotation
統計基于SURF特征和FLANN_Matcher匹配的測試點結果如表2所示。

表2 SURF特征檢測符合性統計Tab.2 SURF feature detection compliance statistics
據SURF特征檢測符合性統計表,但凡有原始目標出現的項目1、2、3、4、5中,所統計的最優匹配點都落在了原始圖像內,這證明SURF特征嚴謹而忠實地描述了目標圖像特征,且泛化誤差小,這在指紋匹配、(車牌)字符等個體識別應用場景中無疑是有巨大優勢的。
而在只有泛化目標的第6、7項中,其識別有效點分別為18和27點,對應的非ROI區的落點數則分別為26和22點,這在區域裁剪類模式識別應用方面,也是具有應用優勢的。
綜合分析可知,基于SIFT特征和FLANN_Matcher匹配算法應用于成魚目標識別和統計中時更有優勢。
FLANN_Matcher特征匹配算法是基于特征向量片段匹配的算法,在模板加深泛化特性處理后更容易出現圖像碎片化匹配[19],即模板的特征向量可能匹配到搜索圖像的各個區域,而非平行映射到目標所在區,從而造成錯誤評分和目標誤配;此外,FLANN_Matcher匹配算法在搜索區域中只匹配一組最佳組合,而對多目標檢測需要時該類算法不能有效工作。
傳統基于模板匹配的目標搜索算法為模板圖像Tx,y在被搜索圖像上Sw,h上逐步進行右移及下移,卷積計算模板圖像與當前掃描位置圖像的灰度值,通過卷積值判斷模板與目標相關性并判斷是否為搜索目標[20]。
傳統模板匹配的算法弊端主要在于對搜索區域關于尺度變化、旋轉變化及整體灰度偏移二值化圖像適應性差,實際應用中的檢測效果魯棒性弱、效果欠佳。模板匹配目標檢測運算時,模板數據是以一種數據集的方式,去搜索圖像各局部區域數據集并卷積計算兩則相關性的,而這種(二值化值)數據集也是目標圖像數據所具有的特征,也是可以利用的信息。
朱鳴鏑[21]提出了一種基于特征點匹配的改進模板匹配算法,但該種算法在多目標搜索匹配應用中效果未知。
借用模板匹配的數據集算法優勢,應用SIFT特征檢測在目標尺度、旋轉、灰度偏移等變化上的強適應性,設計了一種基于圖片局部掃描裁取的模板匹配特征檢測算法,完成圖像SIFT特征模板聚類匹配及評分,以復現圖像數據集合特性,實現多目標檢測功能。
對于基于SIFT特征的FLANN_Matcher模板匹配檢測,可定義單點檢測值的計算公式如下式7所示。
FS(i,j)=FM(Ty,x,Si,j,l)
(7)
式中:FM為FLANN_Matcher算法,FS(i,j)為搜索圖像中第i行第j列所在坐標區域與模板圖像SIFT特征的FLANN關聯評分,l為模板圖像的長邊Ty。
特征模板匹配掃描檢測如圖11所示。

圖11 模板掃描特征檢測Fig.11 Template scanning feature detection
圖11中,目標圖像的區域長寬為Tx和Ty,以長邊Ty取正方形區在被搜索區域Sw,h以固定步長向右及向下掃描滑動截取緩沖區,對截取的局部目標圖像使用SIFT特征+FLANN_Matcher算法提取目標特征匹配評分,并保存于評分區對應的截取滑動計數坐標中,直至圖像掃描完成,保存為特征匹配評分圖。
圖中緩沖區正方形的邊長取為特征目標圖像的長邊,設計目的是為了適應目標圖像在被搜索圖中的旋轉,以截取較為完整的目標圖像。
算法應用時,應注意被搜索實際圖像尺寸不能小于模板目標圖像太多,否則容易造成緩存區同時截取多個目標的情況,造成圖片碎片化匹配檢測乃至目標多檢。被搜索圖像相鄰兩個目標距離不能過近,防止緩存區同時包含了兩個半幅圖像的情況發生。參數設置時,可根據情況調整模板圖像尺寸或相機拍攝圖像的大小。
根據模板匹配算法可知:當被搜索區接近目標所在位置時,目標與模板的相關性逐步遞增、目標確認置信度逐漸提升;當搜索區恰好完整覆蓋目標時,模板與目標取得相關極值、目標確認置信度最高。故理論上,模板與目標及周邊區域的匹配相關值(置信度)為峰坡分布狀態,并非為完整階躍特性,且各目標匹配處的極值數值也未必一致。若簡單使用閾值法來確認目標覆蓋匹配時,閾值判定值設定過低時可能發生周邊區域重復認定、設定過高可能發生目標漏選錯誤等,有應用弊端。
被檢索目標與被搜索區匹配置信度值在二維展開時可如圖12所示。

圖12 多重識別示例Fig.12 Multiple identification example
M1和M2為兩處目標所在區域(相關極值點),當閾值判定值選擇為L1時,M1目標及所在區周邊識別為3次,M2為2次,有多次識別現象發生;當閾值選擇為L2時,目標M2漏選。
為防止上述錯誤統計現象發生,基于分水嶺最大穩定極值區域MSER(Maximally Stable Extremal Regions)圖像斑點分割算法[22]、非極大值抑制NMS(Non Maximum Suppression)多重包含剔除算法[23],分析參考了王靜等[24]、汪從敏等[25]及邢延超等[26]提出的MSER + NMS算法基礎等,設計了基于評分灰度圖圖像分割及目標聚類算法,統計連通區域為單個目標(圖12中,閾值選擇為L1時,m1位置藍線上方3段黃線為連通區,m2位置藍線上方2段橫坐標黃線為連通區),完成m1和m2目標識別與計數。
MSER + NMS的判斷算法設計優勢在于:1)對判定閾值的低值設定有較大包容性;算法為連通區判斷,只要能對目標波峰實現有效分割,就能有效判斷目標所在。2)連通區有支路連接有效特性,可以減少目標圖像局部被污染造成的低分相關值干擾,提高了目標判定算法的適應性和魯棒性。
經測試,上述算法在對圖中圖像進行識別匹配時,正確有效地識別并標注了目標,見下圖13所示。

圖13 模式識別Fig.13 Pattern Recognition
除傳統特征匹配模式識別外,目前流行的目標識別與分類算法還有支持向量機SVM目標識別與分類智能網絡算法[27]、基于TensorFlow框架的卷積神經網絡CNN算法[28]及基于Darknet的YOLOv3圖像目標識別分類算法[29]等,其基本理論和流程都是先構建多層神經元網絡層、選取激活函數和損失函數等,然后通過喂入大量已標注好類別的圖像對網絡進行多代訓練,直至將參數擬合至最優、測試驗證數據集效果最佳時,再將模型投放和進行實際的圖像分類識別應用等。
神經網絡類算法魯棒性強,適應能力高,在對復雜未知環境目標的檢測應用上,較傳統算法更有優勢。神經網絡類算法都需要依賴巨量的(數百幅以上)圖片整理和材料標注等[30],且考察在特定環境中實際檢測效果較傳統算法優勢不明顯,故未被選用。
根據漁業轉運及魚類入艙視覺識別統計需要,分析了HOG、SIFT和SURF特征提取算法及FLANN_Matcher、BF_Matcher匹配算法原理,測試證明SIFT特征+ FLANN_Matcher匹配識別算法在本研究上有應用優勢;針對匹配算法特征比對單一且碎片化應用弊端,設計使用模板掃描提取區域的方法擴展匹配算法為多重應用,滿足單圖多目標識別需要;應用MSER圖像連通分析方法對匹配結果進行統計濾波,保證了所述算法目標識別的準確性。經程序驗證,本研究的魚類圖像識別算法在圖像多目標檢測試驗中正確有效。該算法正規劃在千島湖某處碼頭開展部署調試和應用驗證,以期完成用戶成魚出庫識別和計數工作。