基於卷積神經網路的奶牛個體身份識別

最近看了一個有趣的人工智慧應用,給大家分享一下~

這是一個人工智慧與農業的結合,在農業中我們經常需要給個體動物做標記,目的是對奶牛做身份識別,然後可以對動物做養殖和繁殖的跟蹤,從而提供養殖管理的決策支持。我們比較熟悉的可能是人的人臉識別,於是,就有人想動物是否也可以做臉部識別來做身份識別呢?誠然,確實有研究在這麼做,但是動物的臉部捕捉比人的臉部捕捉要難太多,特別是在戶外的情況下,於是,大家進一步探討的就是,能否通過動物的軀幹信息做身份識別呢?

本文就是通過奶牛的軀幹信息做身份識別。

傳統方法

個體身份識別方法是自動分析奶牛行為的技術前提和應用基礎。動物個體識別常採用無線射頻識別(RFID)技術。但RFID技術識別視頻視野中的奶牛個體時需要額外的設備與同步識別方法,增加了奶牛行為視頻分析系統的複雜度和成本。然而奶牛視頻中包含奶牛的個體信息,可直接對視頻進行圖像處理實現奶牛個體識別。

識別方法介紹

該方法採集奶牛直線行走時的側視視頻,用幀間差值法計算奶牛粗略輪廓,並對其二值圖像進行分段跨度分析,定位奶牛軀幹區域,通過二值圖像比對跟蹤奶牛軀幹目標,得到每幀圖像中奶牛軀幹區域圖像。將軀幹圖像灰度化後經插值運算和歸一化變換為48×48大小的矩陣,作為4c-2s-6c-2s-30o結構的卷積神經網路的輸入進行個體識別。對30頭奶牛共採集360段視頻,隨機選取訓練數據60000幀和測試數據21730幀。結果表明,在訓練次數為10次時,代價函數收斂至0.0060,視頻段樣本的識別率為93.33%,單幀圖像樣本的識別率為90.55%。該方法可實現養殖場中奶牛個體無接觸精確識別,具有適用性強、成本低的特點。

1. 軀幹定位

幀間差值法對目標的運動邊緣具有優良的檢測性能,對奶牛進行幀間差值處理可得到奶牛的粗略輪廓,對得到的二值圖像進行跨度分析,以剔除外部干擾,並分割出尾巴、頭和頸部,最終得到軀幹區域。

如左圖所示,將得到的幀間差值圖像劃分成等間距的片段,分別計算每個片段內二值圖像真值的上邊界和下邊界,並計算兩者的差值作為圖像跨度。

計算修剪後的二值圖像的外接矩形,其上半部分為軀幹區域,下半部分為奶牛四肢。對於荷斯坦品種的奶牛,其軀幹縱向高度與體高之比rb/t變化幅度較小。因此,本研究對30頭奶牛通過試驗確定rb/t平均值為0.6。將定位的軀幹區域以中心為基點縮小到80%,以去除邊界處的背景區塊。軀幹定位結果如右圖所示。

2. 軀幹跟蹤

考慮到奶牛行走過程中軀幹無明顯的幾何變化,只產生平移運動,故採用在後續幀中跟蹤軀幹的策略,以提高軀幹圖像提取精度。常用的跟蹤方法有粒子濾波跟蹤法和Meanshift演算法,粒子濾波對大目標跟蹤耗時長,不適於奶牛目標的跟蹤;試驗發現,Meanshift演算法不能準確跟蹤行走中的奶牛目標。主要原因是基於顏色直方圖的Meanshift演算法對於顏色變化敏感,奶牛軀幹主要由白色和黑色組成,而背景中包含了過多的顏色信息,導致Meanshift極易跟蹤到背景區域。因此,用模板比對法對奶牛軀幹區域進行跟蹤。其基本原理是以當前幀軀幹區域所在的位置為中心,在下一幀中尋找與軀幹區域最接近的圖像。

3. 卷積神經網路構建

為減少數據量並保證輸入圖像的細節信息,將奶牛軀幹圖像灰度化後通過插值計算變化為48×48的圖像,併除以255歸一化後作為輸入數據。

採用2組卷積和下採樣層,由於軀幹圖像基本不存在扭轉、變形等影響,因此減少2個卷積層中特徵圖的數量,以提高網路對圖像宏觀信息的利用率。下採樣時對連接區域求均值得到輸出,不使用權重係數和閾值,省略函數轉換過程。

奶牛個體識別中的信息匹配可以通過單層感知器實現,在第2次下採樣後直接與輸出層連接,以大幅度簡化網路中的感知層。本研究牛群中共有30頭奶牛,故輸出層為30個感知器,與上一層全連接,輸出編碼採用one-of-c方式,即每種奶牛個體作為一個模式。

考慮到sigmoid函數有良好的非線性映射特性,故變換函數統一採用sigmoid函數。網路訓練中學習率取為1,訓練批大小為50,訓練終止條件為代價函數值小於0.01。由於變換函數為sigmoid函數,故網路輸出為一個長度為30的浮點型向量,將該向量中最大值置為1,其餘元素置0作為網路的輸出模式。若輸出模式與該輸入圖像的真實模式不匹配,則表明識別錯誤。

為進一步確定卷積層特徵圖最佳個數,對不同結構的卷積神經網路進行識別準確率及平均耗時試驗,結果表明,當兩個卷積層中特徵圖個數分別為4和6時,網路識別率和效率最高。

4. 實驗結果

卷積神經網路的識別準確率及效率:

圖像檢索法與卷積神經網路奶牛個體識別結果比較:

編者觀點

本文的特點是在於非常好的一個實際應用,具有很大的創新性,但是測試數據本身採集難度比較大,並且數據量還不算多,所以該方法的普適性並不能確保,另外結果對比中,與傳統方法的對比有點避重就輕,過於簡單,如果能和其他的網路結構作對比則更好。但是總體來說不妨礙這篇文章的趣味性,因為做了一個很好的嘗試和應用。

論文鏈接

基於卷積神經網路的奶牛個體身份識別方法-Recognition of individual dairy cattle based on convolutional neural networks

---人工智慧應用系列·介紹---

本系列介紹各領域的一些有趣的人工智慧應用,原理可能並沒有那麼複雜,目的是開拓大家的視野和思路,也許人工智慧能做的事情比我們想像的還要多。

專欄地址:人工智慧應用系列 - 知乎專欄 (歡迎投稿和關注)

本人的Live:「跨領域人工智慧應用」系列Live的開篇--如何做跨領域人工智慧應用


推薦閱讀:

vivo重金髮布首部人工智慧產品,vivo X20全面屏手機值得買嗎?
Dimensionality Reduction——LDA線性判別分析原理篇
飛機為什麼不能一鍵啟動?
腦芯編 | 窺腦究竟,結網造芯(三)

TAG:人工智能 | 计算机视觉 |