沙學猛, 易克傳*,陳舜,任清長,陳艷艷,金齊林
(1.安徽科技學院 機械工程學院,安徽 鳳陽 233100;2.鳳陽縣小溪河農機管理中心站 安徽 鳳陽 233100)
畜牧業(yè)為人們的日常生活提供大量的食品(肉、奶、蛋)和輕工業(yè)產品(毛、皮、絲),每年,超過600億只動物屠宰用于畜牧生產,人們對于畜產品的消耗不僅是量的增加,品質上也愈加重視[1]。
目前對農場動物的照料由人工來完成,這種人工飼養(yǎng)的方式通常難以提供優(yōu)質的畜產品。機器視覺(Machine Vision)是一項前沿的人工智能技術,它的加入使得人們對畜禽的日常照料更加簡單高效。機器視覺能夠對養(yǎng)殖動物進行全天候的監(jiān)測,通過攝像機即可得到畜禽實時的體重、活動、飲食和健康等狀況。機器視覺在畜牧領域的應用使得人工操作的密集型勞動實現(xiàn)了自動化管理,在保證產品質量的同時也極大限度降低養(yǎng)殖場的生產運營成本[2-3]。
機器視覺是用攝影機代替人眼對目標進行識別、跟蹤,旨在通過機器理解圖像或視頻中的內容。隨著養(yǎng)殖業(yè)規(guī)模的擴大,傳統(tǒng)的人工勞動已經很難滿足畜牧業(yè)發(fā)展需要,機器視覺是一項最新的技術,通過視頻監(jiān)控即可完成多項動物監(jiān)測任務[4]。機器視覺工作流程包括:圖像獲取、圖像預處理、特征提取和目標檢測,如圖1所示。
圖1 機器視覺工作流程圖
機器視覺所用到的圖像一般從視頻監(jiān)控中獲取,可以是視頻中某一幀的圖像,也可以是一個視頻段[5]。用于畜牧養(yǎng)殖的視頻監(jiān)控設備一般有 CCD攝像機(2D)、kinect攝像機(3D)、IRT攝像機(熱成像)。CCD攝像機是畜牧養(yǎng)殖中廣泛使用的監(jiān)控設備,通常由單個或多個攝像機組成,使用簡單且拍攝范圍廣泛,因此在農場中較多使用[6]。kinect攝像機是一款3D相機,它能夠感知物體和環(huán)境的深度,與2D成像系統(tǒng)相比,深度圖像可用于提取三維信息,能夠更好地提取特征,在光線較暗或背景嘈雜的養(yǎng)殖環(huán)境下,深度相機也有著更好的應用效果。IRT是一種熱成像攝像機,通過接受物體發(fā)出的紅外線來顯示成像,Fuentes等[7]在綿羊的視覺研究中,使用機器學習算法對農場和運輸中的綿羊建模,通過IRT進行特征提取,成功測得了綿羊的皮膚溫度、呼吸率和心率,這極大方便了人們對綿羊健康狀況的掌握。
圖像預處理指的是對圖像進行去噪、增強、分割、增廣,從而獲得易于后續(xù)工作進行的圖像。圖像分割是一門重要的圖像預處理技術,通過圖像分割可以得到目標的輪廓外形,或者確定需要檢測的目標區(qū)域[8]。圖像分割是分析養(yǎng)殖動物體尺體重及行為姿勢的基礎,常用的圖像分割方法有:基于閾值的分割、基于邊緣的分割、基于光流的分割以及基于CNN的分割[9]。Kashiha[10]等人在分割豬的圖像時,使用直方圖均衡圖像,二維高斯低通濾波器對圖像進行濾波,OTSU法計算全局閾值,再進行固定閾值處理,最后得到追蹤所需的豬輪廓?;贑NN的圖像分割有語義分割、實例分割以及全景分割,三種分割方式都是像素級別分割。Johannes[11]等人在研究中成功使用實例分割技術精確分割并區(qū)分了個體豬只以及背景,與現(xiàn)有分割方法相比,實例分割能夠提取更精確的信息。
特征提取是學習目標所擁有的特征,包括顏色、紋理、形狀以及CNN特征[12]。傳統(tǒng)特征提取方式有 SIFT特征、HOG特征以及Haar特征等,隨著深度學習的發(fā)展,CNN被廣泛用于圖像特征的提取[13]。CNN具有大規(guī)模圖像的特征表示能力,相較于需要大量的手工標記傳統(tǒng)特征提取方式,CNN 給定標簽即可自動學習。
特征提取是進行目標檢測的前提,基于所學習的特征對目標進行定位和分類,即為目標檢測。傳統(tǒng)目標檢測由不同模塊共同組成,如Cascade + HOG + SVM算法,Cascade選擇目標區(qū)域,HOG提取特征,SVM進行特征分類,三者共同完成對目標的檢測?;贑NN目標檢測算法有R-CNN、Fast R-CNN、YOLO、SSD等,這些深度學習算法與傳統(tǒng)算法工作方式類似,但擁有更加先進的檢測能力[14]。Nasirahmadi[15]等人為了解豬只的日常狀況,使用基于區(qū)域的完全卷積網絡R-FCN對豬只的站立、側臥和俯臥姿勢進行檢測,特征圖輸入感興趣區(qū)域(RoI)池后得到豬只位置及姿勢,三種姿勢平均檢測準確度超過93%。
對養(yǎng)殖動物的監(jiān)測涉及到疾病、生產和動物福利等多項問題。目前對養(yǎng)殖動物的監(jiān)測通常由人來完成,然而過多的農場人員并不適合現(xiàn)代化商業(yè)養(yǎng)殖,面對大量的畜禽,工作人員也難以做到照料每只動物[16]。使用視覺系統(tǒng)進行追蹤、監(jiān)控,能夠兼顧每只飼養(yǎng)動物,同時能夠降低人為干擾及生產成本。
Kashiha[10]等人采用橢圓擬合的方法對豬只進行了追蹤定位,并通過在豬背部繪制基本圖案的方式實現(xiàn)了對豬只的個體識別,但他們的方法有著經典可見光相機的缺陷,有使用背景減法處理位圖的困難,針對于此,Mittek[17]等人使用橢球擬合進行個體豬的跟蹤。他們使用的深度相機更容易處理背景且更好區(qū)分相互接觸的對象,而且能實現(xiàn)連續(xù)19.7分鐘跟蹤,但跟蹤目標遇到環(huán)境變換、遮擋等消失后,需手動初始化為跟蹤器提供每只動物的起始位置和方向。Xiao[18]等人提出基于DT-ACR的跟蹤算法能夠在各種環(huán)境下長時間跟蹤個體豬只,失效后能夠從新的位置附近繼續(xù)跟蹤,但是面對過多的豬只時,跟蹤難以正常進行。
以上這些傳統(tǒng)檢測算法的進行需要大量耗時的手工標記,Psota[16]等人使用完全卷積網絡FCN對豬只進行檢測,相較于傳統(tǒng)檢測算法,基于CNN的算法則可以根據(jù)標記自動學習。他們首先找到豬只相關身體部位,再將其相互關聯(lián)形成完整的豬只,在測試環(huán)境中達到了99%的追蹤率,在其他未經訓練的光照條件下依然擁有91%的準確率,該監(jiān)測模型具有較強的魯棒性。Zhang[3]等人提出了一種數(shù)據(jù)基于SSD的關聯(lián)算法,將檢測器和跟蹤器耦合起來,在相當復雜的環(huán)境中(光波動、豬的外觀相似、物體變形和遮擋)也能夠很好地運行,而且遇到跟蹤障礙可重新初始化跟蹤,對個體豬的追蹤識別準確率高達94.7%。
夜間對于養(yǎng)殖動物的檢測一直是個問題,即使使用深度相機也無法在夜間準確地檢測到站立的豬只。Kim[19]等人專注于檢測夜間站立的豬只,通過YOLO算法與時空插值技術的配合,以94.47%的準確率成功實現(xiàn)了夜間對站立豬只的監(jiān)控。Hansen[20]等人采用了一種基于CNN的方法對豬臉進行個體識別,在任意的環(huán)境和姿勢下都可取得很好的檢測結果,準確率高達96.7%。這項技術需配合采用俯視視角才能應用于實際,但是為追蹤監(jiān)測提供了一個新的思路。表1匯總了上述目標追蹤算法使用的主要技術及準確率。
表1 目標追蹤匯總
體尺參數(shù)和體重經常被用作評估畜禽的生長性能、繁殖性能和疾病狀況,這對生產中的產品質量和經濟效益都起著至關重要的作用[21]。
畜禽體尺參數(shù)包含體長、體寬、身高、胸圍等,為了更加簡便地獲取這些參數(shù),Tasdemir[22]等人設計一個分析軟件(IA),該軟件可以從原始數(shù)字圖像中,以像素為單位對長度、面積等測量。他們手動測量奶牛的體尺參數(shù)并記錄,隨后從不同的方向對這些奶牛進行拍攝,將照片輸入IA進行分析比較,從而確定IA圖像系統(tǒng)的可行性。實驗結果證明IA運行高速有效,也避免了人為測量中的困難,同時記錄的數(shù)據(jù)自動存于系統(tǒng),可用于未來的長期分析和統(tǒng)計研究。畜禽的運動會給體尺測量造成很大影響,深度相機則不易受到運動時偽影造成的影響。王等人[21]通過兩個視點捕捉場景中的點云并進行配準,采用隨機樣本一致性去除背景點云,歐氏聚類法提取前景豬點云,姿勢歸一化和形態(tài)約束進行身體測量,該方法可以在多個場景中實現(xiàn)豬只體寬、臀圍以及身高等參數(shù)的獲取。
Pezzuolo[23]等人在研究中發(fā)現(xiàn),畜禽的體尺與體重有著極強的相關性,他們提出了一種基于深度相機的體尺測量方法,同時建立起體尺與體重的回歸方程。通過測量檢驗,視覺回歸方程獲取的畜禽動物體重誤差小于0.5 kg。張[24]等人基于多元輸出回歸CNN設計了一種豬體型和體重全自動快速估計模型,該模型適用于多種養(yǎng)殖場合中測量。CNN通過訓練后,輸入處理過后的圖像便可以得到豬只的肩寬、臀寬、體重等六個參數(shù),用于其他品種豬只測量時,只需收集少量數(shù)據(jù)對原始模型修改即可,同時該模型也適用于估計其他動物的體重和體型。針對于相互擠壓遮擋的豬只,嚴[25]等人基于Faster-RCNN設計了一款新型體重估計模型,當豬只重疊面積小于30%時,輸入俯視深度相機中的豬背便可以得到豬的體重,相對誤差僅為0.374%,同時該系統(tǒng)可以識別定位豬只。Khin[26]等人采用結構光投影來獲取豬的三維形狀信息,這種方式獲得的圖像極少受到灰塵、泥土等環(huán)境信息的影響,系統(tǒng)運行時,豬只通過監(jiān)測區(qū)域便可得到豬只的重量,在現(xiàn)實生產中取得良好的應用效果。
畜禽的躺、站、臥等姿勢可以表明群體的互動和生長狀況,對動物姿勢的分析需要耗費大量人力,或者易犯主觀上的錯誤,同時人的存在會影響動物行為的改變,機器視覺則可以很好地解決這一問題[27]。
任[28]等人建立了一種綿羊站立和躺臥行為自動檢測的三維機器視覺系統(tǒng),該系統(tǒng)由多攝像頭視頻系統(tǒng)和軟件共同組成。由于綿羊谷倉內沒有足夠的照明,他們通過檢測紅外視頻中的前景和背景來提取綿羊的真實形狀,利用多攝像頭視頻記錄系統(tǒng)采集到綿羊的深度視頻流,在HSV顏色空間中對紅外圖像進行處理,并通過閾值化將綿羊區(qū)域與背景分離。在立體攝影中,他們使用三角測量從兩個“分離”相機之間的視差計算深度,以輸出深度測量值;在激光投影儀的幫助下,相機進行3D掃描,以實現(xiàn)場景感知和增強攝影效果,通過對深度視頻圖像的深度信息進行閾值化,從而分離出綿羊的站立和躺臥行為。
鄭[27]等人使用Kinect v2和Faster R-CNN識別了哺乳母豬的站、坐、胸臥、腹臥和側臥五種姿勢,在24h的監(jiān)測中,他們還發(fā)現(xiàn)母豬一整天活動并不均勻。在喂食之前或之后,母豬會在圍欄周圍走動,而在中午或晚上則會躺臥休息,躺臥休息發(fā)生在提前設計好的休息區(qū)域,飲水也發(fā)生在特定的飲水區(qū)域,母豬行為與區(qū)域設計之間存在某種特殊的關系。邵[29]等人建立了世界上第一個人類注釋豬姿勢識別數(shù)據(jù)集,包括站立、側臥等四種姿勢。他們使用最新的YOLOv5 算法識別個體豬只,通過語義分割提取豬的輪廓,最后用殘差神經網絡Resnet區(qū)分豬只的姿勢,這種聯(lián)合訓練的方法在豬場豬姿勢判別中取得了極好的效果,在實際的評估應用中具有較高的價值,聯(lián)合訓練也為相關動物的姿勢識別提供了新的思路。
在動物生長過程中,合理的飲水飲食飼養(yǎng)對畜禽的健康發(fā)育以及疾病治療都十分重要[30]。
豬只飲水時有著特定的飲水姿態(tài),譚[31]等人使用圖像二值化、大津算法等圖像分割方式提取豬只飲水時的輪廓特征,采取輪廓擬合的方法進行識別,經檢驗,采用該種方法進行豬只飲水識別準確率高達93.75%。朱[32]等人從視頻片段中提取豬的多元特征,包括豬的背部面積、周長、臀部圓度等,進行了個體飲水豬只的識別。他們利用豬只和水槽之間距離,成功確定了正在飲水的豬只。楊[33]等人采用輪廓特征和手工背部字母的方式識別個體豬只,頭部與料槽距離識別豬只飲食行為,再使用關聯(lián)算法將豬只與飲食進行算法融合,從而做到精確識別個體豬的飲食行為。郭[34]等人將家禽飼養(yǎng)場布置為飲水區(qū)、進食區(qū)和休息區(qū),鑒于肉雞體型變換較快,他們采取生長期內多組肉雞照片進行BP神經網絡的訓練,訓練好的模型首先分析圍欄中的雞總數(shù),然后量化它們在每個區(qū)域中的分布。BP模型監(jiān)測結果與現(xiàn)實一致,該模型有著很好的識別特性,同時動物的行為與區(qū)域有著很強的聯(lián)系。
飼養(yǎng)過程中,豬之間相互攻擊會導致受傷、皮膚感染甚至危及生命,從而造成豬只生長速度減緩、豬肉產量降低。因此,攻擊行為被認為是現(xiàn)代生豬生產系統(tǒng)中最重要的健康、福利和經濟問題之一。
Viazzi[35]等人開發(fā)一種通過圖像處理連續(xù)自動檢測豬攻擊行為的方法,該方法從運動歷史圖像的分割區(qū)域中提取兩個特征,并基于此使用線性判別分析對攻擊性互動行為進行分類,從而來區(qū)分豬只是否發(fā)生了攻擊性行為。 Lee[36]等人開發(fā)了一套低成本、自動化的原型系統(tǒng)監(jiān)測商業(yè)養(yǎng)豬場中的動物活動。系統(tǒng)使用Kinect深度傳感器獲取豬只相關的深度信息,檢測和分類模塊以分層方式使用兩個二元分類器支持向量機,第一個向量機區(qū)分豬只攻擊行為,第二個向量機將其區(qū)分為撞擊和追逐兩個攻擊性子類型,當養(yǎng)豬場中發(fā)生攻擊行為時,系統(tǒng)會將攻擊情況通知農民。陳[37]等人采用基于計算機視覺的方法自動識別群體飼養(yǎng)豬的攻擊行為,根據(jù)攻擊行為豬只的連續(xù)性和大比例粘附的特點,將攻擊豬視為一個整體矩形,通過分析該矩形四邊在相鄰幀之間的位移變化,提取加速度特征,并采用層次聚類法計算其閾值,基于這一特征,設計了中、高級豬只攻擊性的識別規(guī)則。
陳等人對于畜禽攻擊行為做了持續(xù)深入的研究。2018年,他們將豬頭部和4個扭點的坐標用來建立豬攻擊的動能模型,視頻幀之間的動能差作為特征,從而進行豬中、高攻擊性能的檢測[38]。2019年,他們結合幀到幀距離設置和幀差方法,通過設置連通區(qū)域閾值,去除非攻擊行為引起的運動像素,經過濾波的運動像素的運動形狀指數(shù)(MSI)作為特征,利用支持向量機對這些特征進行分類,以檢測豬之間的攻擊行為[39]。咬尾是全世界室內生豬生產者面臨的一個重大福利和經濟問題,它同樣導致豬福利和豬生產盈利能力下降[40]。劉[41]等人采用處理視頻片段的方法來識別豬的咬尾行為,他們將卷積神經網絡(CNN)和遞歸神經網絡(RNN)相結合,提取時空特征對攻擊行為進行分類,標記出豬之間發(fā)生的咬尾行為。
機器視覺在畜牧領域的技術更迭主要在克服四個問題,算法在不同環(huán)境的適應性、CNN訓練所需要的標記用時、個體養(yǎng)殖動物的識別以及基于時空特征的行為檢測。
復雜多變的環(huán)境一直以來是機器視覺在養(yǎng)殖中所面臨的問題,目標檢測算法與機器視覺系統(tǒng)的突破升級在現(xiàn)實養(yǎng)殖中仍未達到預期的效果,復雜多變的環(huán)境需要適應性更廣、魯棒性更好的檢測算法[42-43]。CNN具有強大特征提取能力,類屬監(jiān)督學習的一種,雖然不需要傳統(tǒng)算法中大量的手工標記,但仍需對數(shù)據(jù)進行標記學習。無監(jiān)督學習和半監(jiān)督學習僅需要少量標記甚至不標記就可以訓練算法模型,是機器視覺在畜牧生產中發(fā)展的方向[44]。
目標檢測是指得到養(yǎng)殖動物的位置和類別,但不具體分辨是哪一只動物[45]。在以往的檢測中,研究人員會結合一些其他手工標簽協(xié)助識別個體動物,或者通過改造算法對少量動物進行個體識別,這遠不足以滿足現(xiàn)實中畜牧生產的需求,能夠分辨大量個體養(yǎng)殖動物的目標檢測算法是畜牧生產中所需要的。現(xiàn)階段對于養(yǎng)殖動物行為的識別,主要以視頻中某一幀的圖像為基礎,再通過特征或者區(qū)域來確定,行為本質是一個動態(tài)過程,通過完整的視頻動作來判斷更加準確。在人的行為識別中,基于時空特征的算法已經成為主流,這種算法能夠同時提取目標外觀特征和光流特征進行聚合,生成完整動作發(fā)生的光流特征描述,將人行為識別中的時空特征算法應用于蓄禽識別中對整個畜牧生產意義巨大。
機器視覺的加入為畜牧生產注入了新的力量,相較于傳統(tǒng)的人工飼養(yǎng),機器視覺對于畜禽的飲食、活動等狀況的監(jiān)測是全天候、自動化的,精細化飼養(yǎng)的同時也減少了人對動物生長的影響,這對產品的質量有著十分重要的保障。此外,機器視覺也極大程度地降低了高昂的人力成本以及傳統(tǒng)飼養(yǎng)所帶來的飼料浪費、攻擊受傷、疾病感染等成本。本文著重介紹了機器視覺在畜牧生產中多方面的應用技術發(fā)展,伴隨機器視覺技術的不斷突破,畜牧生產必將邁入發(fā)展的快車道。