沙學(xué)猛, 易克傳*,陳舜,任清長,陳艷艷,金齊林
(1.安徽科技學(xué)院 機(jī)械工程學(xué)院,安徽 鳳陽 233100;2.鳳陽縣小溪河農(nóng)機(jī)管理中心站 安徽 鳳陽 233100)
畜牧業(yè)為人們的日常生活提供大量的食品(肉、奶、蛋)和輕工業(yè)產(chǎn)品(毛、皮、絲),每年,超過600億只動物屠宰用于畜牧生產(chǎn),人們對于畜產(chǎn)品的消耗不僅是量的增加,品質(zhì)上也愈加重視[1]。
目前對農(nóng)場動物的照料由人工來完成,這種人工飼養(yǎng)的方式通常難以提供優(yōu)質(zhì)的畜產(chǎn)品。機(jī)器視覺(Machine Vision)是一項(xiàng)前沿的人工智能技術(shù),它的加入使得人們對畜禽的日常照料更加簡單高效。機(jī)器視覺能夠?qū)︷B(yǎng)殖動物進(jìn)行全天候的監(jiān)測,通過攝像機(jī)即可得到畜禽實(shí)時的體重、活動、飲食和健康等狀況。機(jī)器視覺在畜牧領(lǐng)域的應(yīng)用使得人工操作的密集型勞動實(shí)現(xiàn)了自動化管理,在保證產(chǎn)品質(zhì)量的同時也極大限度降低養(yǎng)殖場的生產(chǎn)運(yùn)營成本[2-3]。
機(jī)器視覺是用攝影機(jī)代替人眼對目標(biāo)進(jìn)行識別、跟蹤,旨在通過機(jī)器理解圖像或視頻中的內(nèi)容。隨著養(yǎng)殖業(yè)規(guī)模的擴(kuò)大,傳統(tǒng)的人工勞動已經(jīng)很難滿足畜牧業(yè)發(fā)展需要,機(jī)器視覺是一項(xiàng)最新的技術(shù),通過視頻監(jiān)控即可完成多項(xiàng)動物監(jiān)測任務(wù)[4]。機(jī)器視覺工作流程包括:圖像獲取、圖像預(yù)處理、特征提取和目標(biāo)檢測,如圖1所示。

圖1 機(jī)器視覺工作流程圖
機(jī)器視覺所用到的圖像一般從視頻監(jiān)控中獲取,可以是視頻中某一幀的圖像,也可以是一個視頻段[5]。用于畜牧養(yǎng)殖的視頻監(jiān)控設(shè)備一般有 CCD攝像機(jī)(2D)、kinect攝像機(jī)(3D)、IRT攝像機(jī)(熱成像)。CCD攝像機(jī)是畜牧養(yǎng)殖中廣泛使用的監(jiān)控設(shè)備,通常由單個或多個攝像機(jī)組成,使用簡單且拍攝范圍廣泛,因此在農(nóng)場中較多使用[6]。kinect攝像機(jī)是一款3D相機(jī),它能夠感知物體和環(huán)境的深度,與2D成像系統(tǒng)相比,深度圖像可用于提取三維信息,能夠更好地提取特征,在光線較暗或背景嘈雜的養(yǎng)殖環(huán)境下,深度相機(jī)也有著更好的應(yīng)用效果。IRT是一種熱成像攝像機(jī),通過接受物體發(fā)出的紅外線來顯示成像,Fuentes等[7]在綿羊的視覺研究中,使用機(jī)器學(xué)習(xí)算法對農(nóng)場和運(yùn)輸中的綿羊建模,通過IRT進(jìn)行特征提取,成功測得了綿羊的皮膚溫度、呼吸率和心率,這極大方便了人們對綿羊健康狀況的掌握。
圖像預(yù)處理指的是對圖像進(jìn)行去噪、增強(qiáng)、分割、增廣,從而獲得易于后續(xù)工作進(jìn)行的圖像。圖像分割是一門重要的圖像預(yù)處理技術(shù),通過圖像分割可以得到目標(biāo)的輪廓外形,或者確定需要檢測的目標(biāo)區(qū)域[8]。圖像分割是分析養(yǎng)殖動物體尺體重及行為姿勢的基礎(chǔ),常用的圖像分割方法有:基于閾值的分割、基于邊緣的分割、基于光流的分割以及基于CNN的分割[9]。Kashiha[10]等人在分割豬的圖像時,使用直方圖均衡圖像,二維高斯低通濾波器對圖像進(jìn)行濾波,OTSU法計算全局閾值,再進(jìn)行固定閾值處理,最后得到追蹤所需的豬輪廓。基于CNN的圖像分割有語義分割、實(shí)例分割以及全景分割,三種分割方式都是像素級別分割。Johannes[11]等人在研究中成功使用實(shí)例分割技術(shù)精確分割并區(qū)分了個體豬只以及背景,與現(xiàn)有分割方法相比,實(shí)例分割能夠提取更精確的信息。
特征提取是學(xué)習(xí)目標(biāo)所擁有的特征,包括顏色、紋理、形狀以及CNN特征[12]。傳統(tǒng)特征提取方式有 SIFT特征、HOG特征以及Haar特征等,隨著深度學(xué)習(xí)的發(fā)展,CNN被廣泛用于圖像特征的提取[13]。CNN具有大規(guī)模圖像的特征表示能力,相較于需要大量的手工標(biāo)記傳統(tǒng)特征提取方式,CNN 給定標(biāo)簽即可自動學(xué)習(xí)。
特征提取是進(jìn)行目標(biāo)檢測的前提,基于所學(xué)習(xí)的特征對目標(biāo)進(jìn)行定位和分類,即為目標(biāo)檢測。傳統(tǒng)目標(biāo)檢測由不同模塊共同組成,如Cascade + HOG + SVM算法,Cascade選擇目標(biāo)區(qū)域,HOG提取特征,SVM進(jìn)行特征分類,三者共同完成對目標(biāo)的檢測。基于CNN目標(biāo)檢測算法有R-CNN、Fast R-CNN、YOLO、SSD等,這些深度學(xué)習(xí)算法與傳統(tǒng)算法工作方式類似,但擁有更加先進(jìn)的檢測能力[14]。Nasirahmadi[15]等人為了解豬只的日常狀況,使用基于區(qū)域的完全卷積網(wǎng)絡(luò)R-FCN對豬只的站立、側(cè)臥和俯臥姿勢進(jìn)行檢測,特征圖輸入感興趣區(qū)域(RoI)池后得到豬只位置及姿勢,三種姿勢平均檢測準(zhǔn)確度超過93%。
對養(yǎng)殖動物的監(jiān)測涉及到疾病、生產(chǎn)和動物福利等多項(xiàng)問題。目前對養(yǎng)殖動物的監(jiān)測通常由人來完成,然而過多的農(nóng)場人員并不適合現(xiàn)代化商業(yè)養(yǎng)殖,面對大量的畜禽,工作人員也難以做到照料每只動物[16]。使用視覺系統(tǒng)進(jìn)行追蹤、監(jiān)控,能夠兼顧每只飼養(yǎng)動物,同時能夠降低人為干擾及生產(chǎn)成本。
Kashiha[10]等人采用橢圓擬合的方法對豬只進(jìn)行了追蹤定位,并通過在豬背部繪制基本圖案的方式實(shí)現(xiàn)了對豬只的個體識別,但他們的方法有著經(jīng)典可見光相機(jī)的缺陷,有使用背景減法處理位圖的困難,針對于此,Mittek[17]等人使用橢球擬合進(jìn)行個體豬的跟蹤。他們使用的深度相機(jī)更容易處理背景且更好區(qū)分相互接觸的對象,而且能實(shí)現(xiàn)連續(xù)19.7分鐘跟蹤,但跟蹤目標(biāo)遇到環(huán)境變換、遮擋等消失后,需手動初始化為跟蹤器提供每只動物的起始位置和方向。Xiao[18]等人提出基于DT-ACR的跟蹤算法能夠在各種環(huán)境下長時間跟蹤個體豬只,失效后能夠從新的位置附近繼續(xù)跟蹤,但是面對過多的豬只時,跟蹤難以正常進(jìn)行。
以上這些傳統(tǒng)檢測算法的進(jìn)行需要大量耗時的手工標(biāo)記,Psota[16]等人使用完全卷積網(wǎng)絡(luò)FCN對豬只進(jìn)行檢測,相較于傳統(tǒng)檢測算法,基于CNN的算法則可以根據(jù)標(biāo)記自動學(xué)習(xí)。他們首先找到豬只相關(guān)身體部位,再將其相互關(guān)聯(lián)形成完整的豬只,在測試環(huán)境中達(dá)到了99%的追蹤率,在其他未經(jīng)訓(xùn)練的光照條件下依然擁有91%的準(zhǔn)確率,該監(jiān)測模型具有較強(qiáng)的魯棒性。Zhang[3]等人提出了一種數(shù)據(jù)基于SSD的關(guān)聯(lián)算法,將檢測器和跟蹤器耦合起來,在相當(dāng)復(fù)雜的環(huán)境中(光波動、豬的外觀相似、物體變形和遮擋)也能夠很好地運(yùn)行,而且遇到跟蹤障礙可重新初始化跟蹤,對個體豬的追蹤識別準(zhǔn)確率高達(dá)94.7%。
夜間對于養(yǎng)殖動物的檢測一直是個問題,即使使用深度相機(jī)也無法在夜間準(zhǔn)確地檢測到站立的豬只。Kim[19]等人專注于檢測夜間站立的豬只,通過YOLO算法與時空插值技術(shù)的配合,以94.47%的準(zhǔn)確率成功實(shí)現(xiàn)了夜間對站立豬只的監(jiān)控。Hansen[20]等人采用了一種基于CNN的方法對豬臉進(jìn)行個體識別,在任意的環(huán)境和姿勢下都可取得很好的檢測結(jié)果,準(zhǔn)確率高達(dá)96.7%。這項(xiàng)技術(shù)需配合采用俯視視角才能應(yīng)用于實(shí)際,但是為追蹤監(jiān)測提供了一個新的思路。表1匯總了上述目標(biāo)追蹤算法使用的主要技術(shù)及準(zhǔn)確率。

表1 目標(biāo)追蹤匯總
體尺參數(shù)和體重經(jīng)常被用作評估畜禽的生長性能、繁殖性能和疾病狀況,這對生產(chǎn)中的產(chǎn)品質(zhì)量和經(jīng)濟(jì)效益都起著至關(guān)重要的作用[21]。
畜禽體尺參數(shù)包含體長、體寬、身高、胸圍等,為了更加簡便地獲取這些參數(shù),Tasdemir[22]等人設(shè)計一個分析軟件(IA),該軟件可以從原始數(shù)字圖像中,以像素為單位對長度、面積等測量。他們手動測量奶牛的體尺參數(shù)并記錄,隨后從不同的方向?qū)@些奶牛進(jìn)行拍攝,將照片輸入IA進(jìn)行分析比較,從而確定IA圖像系統(tǒng)的可行性。實(shí)驗(yàn)結(jié)果證明IA運(yùn)行高速有效,也避免了人為測量中的困難,同時記錄的數(shù)據(jù)自動存于系統(tǒng),可用于未來的長期分析和統(tǒng)計研究。畜禽的運(yùn)動會給體尺測量造成很大影響,深度相機(jī)則不易受到運(yùn)動時偽影造成的影響。王等人[21]通過兩個視點(diǎn)捕捉場景中的點(diǎn)云并進(jìn)行配準(zhǔn),采用隨機(jī)樣本一致性去除背景點(diǎn)云,歐氏聚類法提取前景豬點(diǎn)云,姿勢歸一化和形態(tài)約束進(jìn)行身體測量,該方法可以在多個場景中實(shí)現(xiàn)豬只體寬、臀圍以及身高等參數(shù)的獲取。
Pezzuolo[23]等人在研究中發(fā)現(xiàn),畜禽的體尺與體重有著極強(qiáng)的相關(guān)性,他們提出了一種基于深度相機(jī)的體尺測量方法,同時建立起體尺與體重的回歸方程。通過測量檢驗(yàn),視覺回歸方程獲取的畜禽動物體重誤差小于0.5 kg。張[24]等人基于多元輸出回歸CNN設(shè)計了一種豬體型和體重全自動快速估計模型,該模型適用于多種養(yǎng)殖場合中測量。CNN通過訓(xùn)練后,輸入處理過后的圖像便可以得到豬只的肩寬、臀寬、體重等六個參數(shù),用于其他品種豬只測量時,只需收集少量數(shù)據(jù)對原始模型修改即可,同時該模型也適用于估計其他動物的體重和體型。針對于相互擠壓遮擋的豬只,嚴(yán)[25]等人基于Faster-RCNN設(shè)計了一款新型體重估計模型,當(dāng)豬只重疊面積小于30%時,輸入俯視深度相機(jī)中的豬背便可以得到豬的體重,相對誤差僅為0.374%,同時該系統(tǒng)可以識別定位豬只。Khin[26]等人采用結(jié)構(gòu)光投影來獲取豬的三維形狀信息,這種方式獲得的圖像極少受到灰塵、泥土等環(huán)境信息的影響,系統(tǒng)運(yùn)行時,豬只通過監(jiān)測區(qū)域便可得到豬只的重量,在現(xiàn)實(shí)生產(chǎn)中取得良好的應(yīng)用效果。
畜禽的躺、站、臥等姿勢可以表明群體的互動和生長狀況,對動物姿勢的分析需要耗費(fèi)大量人力,或者易犯主觀上的錯誤,同時人的存在會影響動物行為的改變,機(jī)器視覺則可以很好地解決這一問題[27]。
任[28]等人建立了一種綿羊站立和躺臥行為自動檢測的三維機(jī)器視覺系統(tǒng),該系統(tǒng)由多攝像頭視頻系統(tǒng)和軟件共同組成。由于綿羊谷倉內(nèi)沒有足夠的照明,他們通過檢測紅外視頻中的前景和背景來提取綿羊的真實(shí)形狀,利用多攝像頭視頻記錄系統(tǒng)采集到綿羊的深度視頻流,在HSV顏色空間中對紅外圖像進(jìn)行處理,并通過閾值化將綿羊區(qū)域與背景分離。在立體攝影中,他們使用三角測量從兩個“分離”相機(jī)之間的視差計算深度,以輸出深度測量值;在激光投影儀的幫助下,相機(jī)進(jìn)行3D掃描,以實(shí)現(xiàn)場景感知和增強(qiáng)攝影效果,通過對深度視頻圖像的深度信息進(jìn)行閾值化,從而分離出綿羊的站立和躺臥行為。
鄭[27]等人使用Kinect v2和Faster R-CNN識別了哺乳母豬的站、坐、胸臥、腹臥和側(cè)臥五種姿勢,在24h的監(jiān)測中,他們還發(fā)現(xiàn)母豬一整天活動并不均勻。在喂食之前或之后,母豬會在圍欄周圍走動,而在中午或晚上則會躺臥休息,躺臥休息發(fā)生在提前設(shè)計好的休息區(qū)域,飲水也發(fā)生在特定的飲水區(qū)域,母豬行為與區(qū)域設(shè)計之間存在某種特殊的關(guān)系。邵[29]等人建立了世界上第一個人類注釋豬姿勢識別數(shù)據(jù)集,包括站立、側(cè)臥等四種姿勢。他們使用最新的YOLOv5 算法識別個體豬只,通過語義分割提取豬的輪廓,最后用殘差神經(jīng)網(wǎng)絡(luò)Resnet區(qū)分豬只的姿勢,這種聯(lián)合訓(xùn)練的方法在豬場豬姿勢判別中取得了極好的效果,在實(shí)際的評估應(yīng)用中具有較高的價值,聯(lián)合訓(xùn)練也為相關(guān)動物的姿勢識別提供了新的思路。
在動物生長過程中,合理的飲水飲食飼養(yǎng)對畜禽的健康發(fā)育以及疾病治療都十分重要[30]。
豬只飲水時有著特定的飲水姿態(tài),譚[31]等人使用圖像二值化、大津算法等圖像分割方式提取豬只飲水時的輪廓特征,采取輪廓擬合的方法進(jìn)行識別,經(jīng)檢驗(yàn),采用該種方法進(jìn)行豬只飲水識別準(zhǔn)確率高達(dá)93.75%。朱[32]等人從視頻片段中提取豬的多元特征,包括豬的背部面積、周長、臀部圓度等,進(jìn)行了個體飲水豬只的識別。他們利用豬只和水槽之間距離,成功確定了正在飲水的豬只。楊[33]等人采用輪廓特征和手工背部字母的方式識別個體豬只,頭部與料槽距離識別豬只飲食行為,再使用關(guān)聯(lián)算法將豬只與飲食進(jìn)行算法融合,從而做到精確識別個體豬的飲食行為。郭[34]等人將家禽飼養(yǎng)場布置為飲水區(qū)、進(jìn)食區(qū)和休息區(qū),鑒于肉雞體型變換較快,他們采取生長期內(nèi)多組肉雞照片進(jìn)行BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,訓(xùn)練好的模型首先分析圍欄中的雞總數(shù),然后量化它們在每個區(qū)域中的分布。BP模型監(jiān)測結(jié)果與現(xiàn)實(shí)一致,該模型有著很好的識別特性,同時動物的行為與區(qū)域有著很強(qiáng)的聯(lián)系。
飼養(yǎng)過程中,豬之間相互攻擊會導(dǎo)致受傷、皮膚感染甚至危及生命,從而造成豬只生長速度減緩、豬肉產(chǎn)量降低。因此,攻擊行為被認(rèn)為是現(xiàn)代生豬生產(chǎn)系統(tǒng)中最重要的健康、福利和經(jīng)濟(jì)問題之一。
Viazzi[35]等人開發(fā)一種通過圖像處理連續(xù)自動檢測豬攻擊行為的方法,該方法從運(yùn)動歷史圖像的分割區(qū)域中提取兩個特征,并基于此使用線性判別分析對攻擊性互動行為進(jìn)行分類,從而來區(qū)分豬只是否發(fā)生了攻擊性行為。 Lee[36]等人開發(fā)了一套低成本、自動化的原型系統(tǒng)監(jiān)測商業(yè)養(yǎng)豬場中的動物活動。系統(tǒng)使用Kinect深度傳感器獲取豬只相關(guān)的深度信息,檢測和分類模塊以分層方式使用兩個二元分類器支持向量機(jī),第一個向量機(jī)區(qū)分豬只攻擊行為,第二個向量機(jī)將其區(qū)分為撞擊和追逐兩個攻擊性子類型,當(dāng)養(yǎng)豬場中發(fā)生攻擊行為時,系統(tǒng)會將攻擊情況通知農(nóng)民。陳[37]等人采用基于計算機(jī)視覺的方法自動識別群體飼養(yǎng)豬的攻擊行為,根據(jù)攻擊行為豬只的連續(xù)性和大比例粘附的特點(diǎn),將攻擊豬視為一個整體矩形,通過分析該矩形四邊在相鄰幀之間的位移變化,提取加速度特征,并采用層次聚類法計算其閾值,基于這一特征,設(shè)計了中、高級豬只攻擊性的識別規(guī)則。
陳等人對于畜禽攻擊行為做了持續(xù)深入的研究。2018年,他們將豬頭部和4個扭點(diǎn)的坐標(biāo)用來建立豬攻擊的動能模型,視頻幀之間的動能差作為特征,從而進(jìn)行豬中、高攻擊性能的檢測[38]。2019年,他們結(jié)合幀到幀距離設(shè)置和幀差方法,通過設(shè)置連通區(qū)域閾值,去除非攻擊行為引起的運(yùn)動像素,經(jīng)過濾波的運(yùn)動像素的運(yùn)動形狀指數(shù)(MSI)作為特征,利用支持向量機(jī)對這些特征進(jìn)行分類,以檢測豬之間的攻擊行為[39]。咬尾是全世界室內(nèi)生豬生產(chǎn)者面臨的一個重大福利和經(jīng)濟(jì)問題,它同樣導(dǎo)致豬福利和豬生產(chǎn)盈利能力下降[40]。劉[41]等人采用處理視頻片段的方法來識別豬的咬尾行為,他們將卷積神經(jīng)網(wǎng)絡(luò)(CNN)和遞歸神經(jīng)網(wǎng)絡(luò)(RNN)相結(jié)合,提取時空特征對攻擊行為進(jìn)行分類,標(biāo)記出豬之間發(fā)生的咬尾行為。
機(jī)器視覺在畜牧領(lǐng)域的技術(shù)更迭主要在克服四個問題,算法在不同環(huán)境的適應(yīng)性、CNN訓(xùn)練所需要的標(biāo)記用時、個體養(yǎng)殖動物的識別以及基于時空特征的行為檢測。
復(fù)雜多變的環(huán)境一直以來是機(jī)器視覺在養(yǎng)殖中所面臨的問題,目標(biāo)檢測算法與機(jī)器視覺系統(tǒng)的突破升級在現(xiàn)實(shí)養(yǎng)殖中仍未達(dá)到預(yù)期的效果,復(fù)雜多變的環(huán)境需要適應(yīng)性更廣、魯棒性更好的檢測算法[42-43]。CNN具有強(qiáng)大特征提取能力,類屬監(jiān)督學(xué)習(xí)的一種,雖然不需要傳統(tǒng)算法中大量的手工標(biāo)記,但仍需對數(shù)據(jù)進(jìn)行標(biāo)記學(xué)習(xí)。無監(jiān)督學(xué)習(xí)和半監(jiān)督學(xué)習(xí)僅需要少量標(biāo)記甚至不標(biāo)記就可以訓(xùn)練算法模型,是機(jī)器視覺在畜牧生產(chǎn)中發(fā)展的方向[44]。
目標(biāo)檢測是指得到養(yǎng)殖動物的位置和類別,但不具體分辨是哪一只動物[45]。在以往的檢測中,研究人員會結(jié)合一些其他手工標(biāo)簽協(xié)助識別個體動物,或者通過改造算法對少量動物進(jìn)行個體識別,這遠(yuǎn)不足以滿足現(xiàn)實(shí)中畜牧生產(chǎn)的需求,能夠分辨大量個體養(yǎng)殖動物的目標(biāo)檢測算法是畜牧生產(chǎn)中所需要的。現(xiàn)階段對于養(yǎng)殖動物行為的識別,主要以視頻中某一幀的圖像為基礎(chǔ),再通過特征或者區(qū)域來確定,行為本質(zhì)是一個動態(tài)過程,通過完整的視頻動作來判斷更加準(zhǔn)確。在人的行為識別中,基于時空特征的算法已經(jīng)成為主流,這種算法能夠同時提取目標(biāo)外觀特征和光流特征進(jìn)行聚合,生成完整動作發(fā)生的光流特征描述,將人行為識別中的時空特征算法應(yīng)用于蓄禽識別中對整個畜牧生產(chǎn)意義巨大。
機(jī)器視覺的加入為畜牧生產(chǎn)注入了新的力量,相較于傳統(tǒng)的人工飼養(yǎng),機(jī)器視覺對于畜禽的飲食、活動等狀況的監(jiān)測是全天候、自動化的,精細(xì)化飼養(yǎng)的同時也減少了人對動物生長的影響,這對產(chǎn)品的質(zhì)量有著十分重要的保障。此外,機(jī)器視覺也極大程度地降低了高昂的人力成本以及傳統(tǒng)飼養(yǎng)所帶來的飼料浪費(fèi)、攻擊受傷、疾病感染等成本。本文著重介紹了機(jī)器視覺在畜牧生產(chǎn)中多方面的應(yīng)用技術(shù)發(fā)展,伴隨機(jī)器視覺技術(shù)的不斷突破,畜牧生產(chǎn)必將邁入發(fā)展的快車道。