楊奕銘 邸馨瑤 宋懷波



摘要:為了實現奶牛軀干的精確分割,以荷斯坦奶牛為研究對象,首先采用超像素分割算法(simple linear iterative cluster,簡稱SLIC)與顯著性分析相結合的方法獲得完整奶牛目標;然后通過設置傅里葉描述子以平滑Canny算子邊緣檢測的奶牛輪廓;最后采用基于奶牛肢體特征的分割點提取方法提取各分割點并依次連接生成奶牛軀干的分割線。為了驗證本研究結果的有效性,使用試驗圖像庫中隨機抽取的20幅圖像進行了測試,試驗結果表明,本研究所提取的奶牛目標與手動提取目標的平均重疊率為96.83%,可以實現不同背景下奶牛目標的準確分割。本研究所提出的奶牛軀干分割方法的平均重疊率為99.86%,表明該方法在奶牛軀干精確分割中準確率較高且相對穩定,可以實現不同站立體態奶牛的高精度分割。
關鍵詞:奶牛;軀干分割;SLIC算法;顯著性分析;傅里葉描述子
中圖分類號: TP391.41 ?文獻標志碼: A ?文章編號:1002-1302(2020)15-0253-07
奶牛的頭部、頸部、軀干及四肢包含著諸多奶牛的運動信息,開展奶牛軀干的精細分割方法研究,可為奶牛體態檢測、體況評價、運動評分、目標識別及行為分析等研究奠定基礎,對于提升奶牛養殖場的現代化和智能化水平具有重要的促進作用[1-5]。
在奶牛目標識別、分割、行為分析等方面,國內外研究已經取得了大量成果。在奶牛行為識別方面,Martiskainen等使用三軸加速度計和支持向量機(support vector machine,簡稱SVM)方法,實現了奶牛站立、躺臥、反芻、進食、正常行走和跛行等行為的識別,平均識別正確率為78.00%[6]。顧靜秋等提出了一種基于圖像熵的奶牛目標識別方法[7],利用最小包圍盒面積識別奶牛連續7 d的運動量,該方法對奶牛發情、蹄病行為的識別率超過80.00%。Ahn等提出了基于運動歷史圖像特征的SVM分類器識別奶牛行為,識別準確率為72.00%[8]。在奶牛目標分割與軀干精確分割方面,金一初等將奶牛圖像轉換到LUV顏色空間并對各子塊進行塊內顏色聚類,基于奶牛顏色和紋理特征對子塊作區域生長,實現了奶牛目標的分割,準確率在80.00%以上[9]。Nahari等利用局部閾值分割與K-means聚類算法相結合的方法將奶牛圖像分為2簇并提取奶牛目標,分割結果優于局部閾值分割與邊緣檢測相結合的方法[10]。趙凱旋等基于深度圖像的機器學習方法,選取不同采樣半徑下的像素點帶閾值局部二值式序列作為深度特征值,并用決策樹森林機器學習方法實現了奶牛軀干的精細分割,平均識別率為95.15%[11]。李國強等提出了基于奶牛骨架特征的肢體分割方法,在提取奶牛肢體骨架的基礎上,以骨架分叉點作為奶牛肢體的分解線來分割奶牛肢體,該方法對各肢體分解的平均正確率為95.09%[12]。
綜上所述,在動物軀干分割方面,基于深度圖像的奶牛分割方法易受圖像背景環境、光照及奶牛毛色變化等因素的影響[13];輪廓提取算法得到的輪廓冗余信息較多,不利于軀干分割點提取[14];角點檢測算法存在誤差較大等問題[15-17]。針對上述問題,本研究擬從奶牛目標提取方法、奶牛輪廓提取方法及奶牛軀干分割方法這3個方面展開研究。通過結合SLIC算法與顯著性分析方法提取奶牛目標,并采用Canny算子獲得奶牛目標輪廓,再設定傅里葉描述子個數得到相對平滑的奶牛目標輪廓。最后,利用奶牛肢體特征提取奶牛軀干部位的分割特征點,并按照設定的約束條件生成分割線,以期實現奶牛軀干的精確分割,為進行奶牛體況評價、體姿和體態監管等研究奠定基礎。
1 材料與方法
1.1 試驗材料
本研究試驗數據采集于陜西省楊凌高新農業示范區楊凌科元克隆股份有限公司的奶牛養殖場,采用布置于牛場的DS-2DM1-714圓頂攝像機(海康威視,中國杭州)的監控視頻作為原始試驗數據。為方便后續研究,所有奶牛圖像分辨率統一設置為670×420像素,JPEG格式。圖像庫共包含210幅不同姿態的奶牛圖像,其中,奶牛抬頭圖像90幅,低頭圖像120幅。在210幅圖像中,奶牛四肢存在重疊的圖像80幅。本研究使用的計算機配置如下:Intel Core i3 CPU,i3-330 M,內存2 GB,顯卡為NVDIA GeForce G 310M,所有算法均在MATLAB 2017a上運行。
1.2 方法
1.2.1 基于SLIC算法的奶牛目標分割 SLIC算法首先確定超像素種子點。若圖像有N個像素點,預計分割為K個相同超像素,則每個超像素的大小為N/K,相鄰種子點的距離為S=sqrt(N/K)。然后計算種子點的3×3鄰域內所有像素點的梯度值,將種子點移到鄰域內梯度值最小的區域,在每個種子點周圍的鄰域內為每個像素點分配標簽[18]。其次利用{L,a*,b*,X,Y}向量計算距離度量,如公式(1)~公式(3)所示:
式中:NS=S=sqrt(N/K)為類內最大空間距離,Nc為設定的最大顏色距離,dc為顏色距離,dS為空間距離,D′為像素點與聚類中心的距離。同一個像素點可被多個種子點搜索,取每一個像素點與周圍種子點之間的距離最小值所對應的種子點作為標記像素點,可通過多次迭代減少誤差。SLIC算法將圖像轉換為La*b*顏色空間,在XY坐標下提取圖像{L,a*,b*,X,Y}向量并構造距離度量標準[19],對各像素進行局部聚類處理,可以較好地保持目標輪廓。
基于上述方法分割的結果見圖1,示例為奶牛處于低頭姿態的圖像,圖1-a為奶牛的原始圖像,圖1-b為提取出的奶牛目標。其中圖1-c、圖1-e、圖1-g所示像素塊K個數分別選用80、200、500個像素塊分割圖像,其對應的顯著性分析結果如圖1-d、圖1-f、圖1-h所示。可見當選擇 K=80時分割結果不夠精細,且顯著性檢測結果中目標部分區域與背景環境相連,無法實現奶牛目標的完整分割;K=200、K=500時分割結果更加準確且可以較好地分割奶牛目標;考慮到算法執行效率因素,本研究選擇K=200進行分割。
1.2.2 顯著性檢測與閾值分割 目標的準確識別是奶牛軀干分割的基礎。顯著性檢測通過模擬人類的視覺注意機制來篩選圖像中顯著的目標,將顯著區域作為目標輸出。利用SLIC算法將圖像分為K個像素塊,將任一像素塊Pi與其他像素塊Pj在La*b*空間作對比,差距越大像素塊Pi越顯著。同時利用顯著性區域越相似的區域距離越接近的原理計算2像素塊間的差異值,如公式(4)所示。
對奶牛SLIC超像素分割結果顯著性檢測結果見圖2-a。為得到完整的奶牛目標,采用自適應大津法對奶牛顯著性圖進行分割,結果見圖2-b,可見目標分割完整,可為奶牛的輪廓提取與軀干分割奠定良好基礎。
1.2.3 奶牛邊緣輪廓提取檢測算法 目標輪廓的準確提取是奶牛軀干精確分割的前提。本研究使用Sobel算子與Canny算子提取奶牛圖像輪廓的結果見圖3,可見Canny算子對邊緣點定位較好,所提取的結果對輪廓細節信息響應較強,因此,本研究采用Canny算子提取奶牛邊緣輪廓。
1.2.4 基于傅里葉描述子的奶牛邊緣平滑 Canny算子提取的奶牛輪廓上毛刺等冗余信息較多,影響對輪廓特征點的提取。因此,本研究采用傅里葉描述子平滑奶牛輪廓[20-21]。傅里葉描述子的關鍵是確定合適的傅里葉描述子個數P,在能夠表達原始輪廓的前提下得到盡可能平滑的輪廓[22]。隨著P的減小,邊界細節會被刪減從而得到更為平滑的輪廓。分別令P=240、P=80、P=50、P=30、P=15、P=8,得到的圖像輪廓結果如圖4所示。圖4-a、圖4-b分別使用240、80個傅里葉描述子描述奶牛輪廓,顯示的輪廓邊界與圖像原始邊界對應緊密,圖4-c、圖4-d減少描述邊緣的傅里葉描述子個數,顯示的邊界圖像相對平滑,并且保留了圖像的基本形狀。圖4-e、圖4-f出現了失真,邊界的主要特征丟失。利用傅里葉描述子描繪圖像邊緣要求在選擇傅里葉描述子個數時,既要保留邊緣的主要特征,又要保證邊緣相對平滑,使得圖像特征描述最優,因此本研究P選擇為50個。
1.3 奶牛肢體精確分割
1.3.1 基于肢體特征的奶牛輪廓分割點提取 本研究提出基于肢體特征的方式提取奶牛肢體特征點,即利用奶牛軀干、四肢、頭部與頸部的幾何形狀特征對肢體各部位分割點進行提取。具體描述如下:
1.3.1.1 軀干分割點提取 奶牛軀干形態近似于橢圓形且占據奶牛整體大部分區域。在奶牛輪廓內部擬合最大橢圓,擬合橢圓近似為奶牛的軀干部
位,利用奶牛輪廓最大內接矩形得到最大內接矩形與奶牛輪廓的交點即為奶牛軀干的分割點。從圖5可以看出,當奶牛抬頭時,最大內接矩形的左上角點和左下角點與奶牛輪廓相交即為奶牛頸部與軀干的分割點。當奶牛俯首時,由于最大內接矩形左下角點與奶牛輪廓不相交,故此時只取最大內接矩形左上角點作為軀干分割上角點,下角點由四肢分割點提取算法提取,方式如公式(2)所述。
1.3.1.2 四肢分割點提取 根據奶牛四肢的分割點位于奶牛四肢輪廓線距圖像下邊框距離最大處的特點,將奶牛四肢輪廓描繪成輪廓曲線。對輪廓曲線的峰值點進行標記,所標記的峰值點即為奶牛四肢的分割特征點。
1.3.1.3 頭部與頸部分割點提取 奶牛俯首時上頸部輪廓線與下頸部輪廓線近似平行,而頭部輪廓線則成聚攏狀。通過檢測平行線截止位置,即為奶牛俯身時奶牛頭部與頸部的分割點。奶牛抬頭時,頸部長度較短,分割點相對不明顯,但頸部長度近似與奶牛頭部長度相近。因此采用奶牛頭頸部位中值點作為奶牛抬頭時頭部與頸部分割特征點。
1.3.2 奶牛軀干分割線生成 針對特征點的位置特征,首先將其頭部特征點相連接,形成分割線來分割奶牛頭部與頸部,即連接圖6-a、圖6-c中A、B 2點。其次,當奶牛俯首時,輪廓最大內接矩形的左上交點C點與奶牛四肢分割點D點作為奶牛頸部與軀干的分割點;當奶牛抬頭時,取輪廓最大內接矩形的左上交點C點與左下交點D點作為奶牛頸部與軀干的分割點。最后分割奶牛四肢部位,即連接圖6中D、F 2點分割奶牛前肢,若存在E點則過E點向上做垂線將奶牛前肢分割為左前肢與右前肢,連接G、J 2點分割奶牛后肢,若存在I點則過I點向上做垂線將奶牛后肢分割為左后肢與右后肢。分割線連接方式如圖6-b、圖6-d所示。
2 結果與分析
2.1 評價指標
本研究采用的評價指標為假陰系數、假陽系數以及重疊率。
重疊率w為分割結果目標S1與奶牛真實目標S2的重疊面積與奶牛真實目標S2面積的比值,如公式(10)所示,其值越高則說明分割效果越好。
2.2.1 重疊率 試驗結果表明,采用SLIC算法與顯著性分析算法提取的奶牛目標與手動提取的奶牛目標平均重疊率為96.83%。并且在軀干分割結果中,奶牛頭部分割結果w高達99.77%;頸部分割結果w高達99.80%;軀干分割結果w高達99.70%;左前肢分割結果w高達99.95%;右前肢分割結果w高達99.95%;左后肢分割結果w高達99.93%;右后肢分割結果w高達99.92%,其中w最小為99.70%,最大為99.95%。
2.2.2 假陰系數 奶牛頭部分割結果中a值平均為2.00×10-3;頸部分割結果中a值平均為1.60×10-3;軀干分割結果中a值平均為1.70×10-3;左前肢分割結果中a值平均為2.00×10-4;右前肢分割結果中a值平均為2.00×10-4;左后肢分割結果中a值平均為4.00×10-4;右后肢分割結果中a值平均為4.00×10-4;總體平均值為9.29×10-4。
2.2.3 假陽系數 奶牛頭部分割結果中b值平均為5.00×10-4;頸部分割結果中b值平均為2.00×10-3;軀干分割結果中b值平均為1.60×10-3;左前肢分割結果中b值平均為5.00×10-4;右前肢分割結果中b值平均為2.00×10-4;左后肢分割結果中b值平均為3.00×10-3;右后肢分割結果中b值平均為2.00×10-4;總體平均值為1.14×10-3。
2.2.4 誤差分析 對奶牛頭部、頸部、軀干、左前肢、右前肢、左后肢及右后肢分別進行誤差分析的結果如圖7至圖9所示,其橫坐標為奶牛圖像序號,縱坐標分別為假陰系數、假陽系數及重疊率。
從圖7-a可見,第14幅圖像頭部a值最大為4.90×10-3,而其所對應的假陽系數、重疊率遠低于平均值,說明該圖像頭部分割結果包含于奶牛頭部真實部位,因此該算法頭部頸部分割線較真實分界線偏向頭部;對奶牛右前肢分割結果中,絕大多數圖像假陰系數均小于或等于假陰系數平均值,方差為5.59×10-8,相對而言較大,說明該算法在奶牛右前肢分割結果中準確率較高、穩定性相對較差。第6幅圖像頸部重疊率最高,而其對應的a值為0.00,且假陽系數低于分割結果的平均值假陽系數,說明該幅圖像頸部分割效果最佳。從圖7、圖8、圖9綜合可以看出,本研究算法在奶牛軀干分割結果誤差分析中平均假陰系數與平均假陽系數近似相等且重疊率較高,說明本研究算法分割的軀干部位與奶牛軀干實際面積近似相等,誤差較小;此外,本研究算法對奶牛左前肢的分割結果中,95.00%以上的奶牛圖像前肢分割結果w高達99.92%以上,且假陰系數與假陽系數較低,可以較好地實現奶牛軀干與左前肢的精確分割。
從圖9可以看出,本研究算法對奶牛左后肢的分割結果中第18~20幅圖像奶牛左后肢的分割結果均具有很高的重疊率,a值均為0.00,說明奶牛左后肢的分割結果具有較高的準確率且分割結果完全包含了奶牛左后肢的真實部位,而其假陽系數較低卻均不為零說明該算法分割其左后肢結果中仍有極小部分溢出,該誤差可能是由于手動分割奶牛目標產生誤差或在奶牛目標分割算法中產生誤差等原因所導致。
3 討論與結論
本研究提取的奶牛目標與手動提取的奶牛重疊率為96.83%,表明該方法具有較好的目標提取效果。基于奶牛肢體特征的分割點提取方法所得到奶牛軀干分割效果較好,其平均重疊率為99.86%,平均假陰系數為9.29×10-4,平均假陽系數為1.14×10-3。表明該方法在奶牛軀干精確分割中準確率較高且相對穩定,可以實現不同體態奶牛的高精度分割,為進行奶牛體況評價、體姿和體態監管等研究奠定基礎。
李國強等基于骨架特征的奶牛肢體分解方法[12]與本研究的目的相似,其中本研究方法定義了重疊率來驗證奶牛肢體的分割是否準確。本研究算法對頭部、頸部、軀干、前肢、后肢的分割正確率均能分別高7.61%、10.00%、2.95%、1.48%、2.11%。同時,本研究未考慮奶牛四肢遮擋、奶牛間的相互遮擋及欄桿遮擋的問題,如何將本方法應用于更加復雜的奶牛養殖環境,尚需進一步分析。
本研究以荷斯坦奶牛為研究對象,從奶牛目標提取、輪廓提取、軀干分割3部分展開,較好地實現了奶牛軀干的精確分割。主要結論:(1)將SLIC分割算法與顯著性分析算法相結合能夠較好地實現奶牛目標的準確分割,其準確率為96.83%,可為奶牛軀干的精確分割奠定基礎。(2)在Canny算子提取的奶牛目標輪廓基礎上,通過設定合適的傅里葉描述子個數,可以較好地平滑奶牛目標輪廓,為奶牛軀干分割及分割點的選擇奠定基礎。(3)采用基于奶牛肢體特征的分割點提取方法,在提取奶牛目標軀干分割特征點的基礎上,通過設定的分割點連接規則,可較好地實現奶牛軀干的精確分割。(4)本研究未考慮奶牛遮擋等更為復雜的情況,如何將本方法加以改進,使之更加符合復雜的奶牛養殖環境需求,尚需進一步研究。
參考文獻:
[1]Yan J J,Yu Y A,Zhu X Y,et al. Object detection by labeling superpixels[C]//IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2015:5107-5116.
[2]Donghun Yeo,Son J,Han B,et al. Superpixel-based tracking-by-segmentation using markov chains[C]//IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2017:1812-1821.
[3]何東健,孟凡昌,趙凱旋,等. 基于視頻分析的犢牛基本行為識別[J]. 農業機械學報,2016,47(9):294-300.
[4]張滿囤,單新媛,于 洋,等. 基于小波變換和改進KPCA的奶牛個體識別研究[J]. 浙江農業學報,2017,29(12):2000-2008.
[5]黃文明,張 勇,郭海明,等. 荷斯坦后備奶牛生長發育規律的研究進展[J]. 畜牧與獸醫,2016,48(5):131-135.
[6]Martiskainen P,Jrvinen M,Jukka-Pekka S,et al. Cow behaviour pattern recognition using a three-dimensional accelerometer and support vector machines[J]. Applied Animal Behaviour Science,2009,119(1/2):32-38.
[7]顧靜秋,王志海,高榮華,等. 基于融合圖像與運動量的奶牛行為識別方法[J]. 農業機械學報,2017,48(6):145-151.
[8]Ahn S J,Ko D M,Choi K S. Cow behavior recognition using motion history image feature[C]. International Conference Image Analysis and Recognition,2017.