張瑞紅,趙凱旋,姬江濤,朱雪峰
(河南科技大學農業(yè)裝備工程學院,河南 洛陽 471003)
隨著大型奶牛養(yǎng)殖場的奶牛數(shù)量不斷增加,奶牛個體的健康和福利水平已成為影響奶牛產量的重要指標[1]。奶牛個體活動的實時感知和行為分析系統(tǒng)逐漸成為當今的研究熱點[2-4],奶牛個體身份識別是上述系統(tǒng)實現(xiàn)的前提和基礎[5]。無線射頻技術(radio frequency identification,RFID)是動物個體識別中常用的技術手段[6-7],利用射頻信號可以對目標對象進行自動識別并讀取相關數(shù)據(jù)[8]。但這種技術需要將電子標簽附著在動物身上,影響動物福利,且只有當奶牛的運動速度和活動區(qū)域在某個范圍內,才能達到較好的識別效果[9]。最重要的是,這種技術所需的設備比較復雜,成本較高[10]?;趫D像處理的非接觸個體識別技術不僅成本低,而且隨著特征提取方法和人工神經網(wǎng)絡的不斷發(fā)展,其準確性和魯棒性也得以不斷提高[11-13]。
許多學者研究了采用圖像或視頻識別奶牛個體的方法。Xia等[14]提出1種基于稀疏表示分類器(sparse representation classifier,SRC)的牛臉識別系統(tǒng),通過使用主成分分析法提取特征,結合稀疏表示分類器對奶牛臉部圖像進行分類和識別。Zhao等[4]提出1種基于模板匹配的奶牛識別方法,通過提取所有奶牛的軀干圖像特征生成特征模板庫,將待測奶牛的軀干圖像特征與模板庫中的特征進行匹配實現(xiàn)奶牛個體的識別。但是,淺層的結構和有限的特征難以有效解決復雜的分類問題[15],因此學者們開始在深度學習的基礎上解決分類識別問題。Kim等[16]基于奶牛的身體區(qū)域圖像開發(fā)了1套奶牛識別系統(tǒng),通過將奶牛的軀干圖像二值化處理,并分塊提取特征,作為輸入層訓練人工神經網(wǎng)絡識別奶牛個體。趙凱旋等[17]提出1種基于卷積神經網(wǎng)絡的奶牛個體識別方法,該系統(tǒng)從奶牛的軀干圖像中提取48×48大小的矩陣作為特征值,構建并訓練1個6層的卷積神經網(wǎng)絡,在測試中有90.55%的圖像被正確識別。Bergamini等[18]提出1種基于深度學習的牛臉識別框架,該系統(tǒng)將同一頭牛的2個視圖分別放入卷積神經網(wǎng)絡中提取特征,并合并特征繼續(xù)向后傳遞訓練卷積神經網(wǎng)絡模型。
在訓練數(shù)據(jù)充足的前提下,基于機器學習的分類識別方法能夠最大程度地適應不同的場景。但是,采用基于奶牛生物特征(牛臉、體斑等)圖像訓練識別模型時,易受外界干擾,算法復雜度高。另外,網(wǎng)絡的輸出端對應牛群中奶牛的ID,當奶牛的數(shù)量增加,網(wǎng)絡的規(guī)模將呈指數(shù)級增長,一旦有新的奶牛加入,整個網(wǎng)絡需要重新訓練[4]。而利用奶牛頸環(huán)ID識別奶牛身份不僅有效減小網(wǎng)絡規(guī)模,且標牌的識別相較于奶牛的生物圖像分類具有更高的魯棒性。因此,本文提出1種基于機器學習的奶牛頸環(huán)ID自動定位與識別系統(tǒng),通過檢測奶牛頸部佩戴的標牌以及識別標牌上的ID實現(xiàn)奶牛個體的識別。
試驗視頻采集自美國肯塔基大學Coldstream研究型奶牛場,采集時間為2016年8月,試驗對象為處于泌乳期的荷斯坦奶牛。當奶牛擠完奶后回到牛棚的過程中,會經過一段平坦的直線過道,該過道使用4道電氣圍欄限制奶牛的活動區(qū)域(前后各2道),過道的寬度為2 m。將尼康D5200相機安裝在距離過道3.5 m、離地面1.5 m的三腳架上。采用35 mm鏡頭(尼康AF-S DX 35mm f/1.8G),選擇ISO 400、自動曝光、自動對焦模式。采用人工干預確保每次僅有1頭奶牛通過過道。在奶牛通過相機視野的過程中相機以固定的時間間隔連續(xù)拍照,圖像的分辨率為6 000像素(水平)×4 000像素(垂直)。使用電子羅盤調整相機,使其與奶牛的行走方向平行。在奶牛和相機之間有2條電子圍欄,每個圍欄的寬度約為1 cm。圖像采集時間為晴天的16:00至18:00。拍攝在自然光照條件下進行。所拍攝到的原始圖像如圖1所示。拍攝的照片被存儲在相機的本地存儲卡中。被拍攝的奶牛均佩戴有如圖2所示的頸環(huán),該頸環(huán)包含4個正方形藍色塑料塊,上面的數(shù)字構成奶牛的唯一4位標號,其中標號數(shù)字為白色。最終共得到80頭奶牛的1 782幅圖像,剔除無奶牛、標牌上有遮擋、過曝光的圖像368幅,剩余圖像1 414幅。將圖像分為訓練集和測試集。訓練集圖像用于構建級聯(lián)檢測器和字符識別模型;測試集圖像用于模型的精度驗證。隨機選擇58頭奶牛的圖像作為訓練集,共968幅;剩余22頭奶牛的圖像作為測試集,共446幅。由于奶牛通過視野時的運動速度不同,所以個體間的樣本數(shù)量不同。
圖1 原始圖像Fig.1 The original image
圖2 奶牛頸環(huán)結構示意圖Fig.2 Schematic diagram of neck collar1.卡扣Buckle;2.頸帶Neck band;3.字符塊Character block;4.數(shù)字標號Digital label;5.配重Weight.
標牌定位是指從圖像中找出奶牛頸部佩戴的標牌位置,這是標牌識別的第一步,也是關鍵的一步。級聯(lián)檢測器在人臉檢測、行人檢測、交通標志檢測等任務中均具有較好的表現(xiàn)[19-21],采用這種方法定位標牌能適應復雜的識別場景。由于奶牛的活動(例如行走、低頭、扭頭)會造成所佩戴標牌發(fā)生幾何偏轉,直接對原始圖像進行檢測易產生較高的漏檢率。對圖像進行旋轉再使用級聯(lián)檢測器能夠顯著提高標牌定位的召回率。
級聯(lián)檢測器是一系列強分類器的串聯(lián)組合,其中每個強分類器是若干個弱分類器的加權并聯(lián)組合,負責判斷樣本是否具有某個特征。級聯(lián)檢測器工作時,串聯(lián)的強分類器會對滑動窗口中的樣本進行特征檢測,根據(jù)檢測結果將其標記為正樣本或負樣本。如果標記為負樣本,認為當前窗口中的區(qū)域不是所查找的目標,檢測窗口將會移動到下一個位置繼續(xù)進行判斷。如果標記為正樣本,則該樣本進入下一級分類器的特征檢測。如果所有強分類器都將圖像標記為正樣本,那么檢測器認為當前窗口中的區(qū)域即為所查找的目標。大部分的負樣本會在前幾個分類器中被剔除,因此這種級聯(lián)結構可以提高檢測效率和準確率,滿足檢測的實時性要求。級聯(lián)目標檢測器工作過程如圖3所示。奶牛所佩戴的標牌外形規(guī)則,長寬比變化不大,有利于采用級聯(lián)檢測器的滑動窗口查找對象。
圖3 級聯(lián)目標檢測器工作過程Fig.3 Working process of cascade detector
2.2.1 訓練樣本訓練之前首先準備用于訓練的正、負樣本。將訓練集圖像中含有目標的區(qū)域剪裁下來作為正樣本。負樣本選擇與目標相關的背景圖像以及與目標外觀相似的非目標圖像,以提高檢測器的工作性能。另外,將每一次訓練中誤判為正樣本的圖像作為下一次訓練的負樣本,可以提高級聯(lián)檢測器的檢測精度。
2.2.2 樣本特征Haar、局部二值模式(local binary pattern,LBP)和梯度方向直方圖(histogram of oriented gradient,HOG)是級聯(lián)檢測器常用的特征描述子,用來提取待檢測圖像的特征樣本。其中,Haar特征是描述圖像在特定方向上(水平、垂直、對角)具有明顯像素模塊梯度變化的特征,而標牌圖像中數(shù)字與背景之間的梯度變化方向是任意的,不具有明顯的規(guī)則。LBP特征是針對圖像紋理細節(jié)的描述,標牌中所包含的紋理信息較少,而圖像背景中的紋理信息豐富,因此標牌區(qū)域的LBP特征與背景相比不具有明顯的區(qū)分性。
HOG特征通過計算和統(tǒng)計圖像局部區(qū)域的梯度直方圖來構成特征。由于所有標牌圖像中的數(shù)字分布位置是相同的,因此標牌之間具有相似的局部梯度直方圖,且HOG特征對光學的形變和較小的幾何形變能夠保持良好的不變性,因此,HOG特征更適合作為描述圖像的特征樣本。另外,在相同的訓練參數(shù)下對3種特征檢測器進行試驗,結果表明HOG特征在精度和耗時方面的表現(xiàn)明顯優(yōu)于另外2種特征。因此采用HOG模式提取圖像的特征樣本。
2.2.3 分類器訓練時采用GAB(Gentle AdaBoost)分類器。分類器的性能是決定檢測器效果的關鍵,其核心思想是訓練不同的弱分類器并將其加權組合構成強分類器。GAB分類器使用“樣本集中度”表示弱分類器對每個樣本的分類結果,使結果的度量從“絕對”變成“相似度”(概率)。采用加權平方和誤差(weighted square error,WSE)計算權重誤差:
(1)
式中:wi為權重;f(xi)為弱分類器對樣本xi的輸出值;yi為樣本xi的標簽。
通過WSE計算的權重誤差“平滑”更新權重,可以有效避免訓練時的過擬合現(xiàn)象。
2.2.4 訓練參數(shù)根據(jù)對標牌長度和高度的統(tǒng)計,選擇輸出樣本的寬和高分別為40和160像素。對模型性能影響較大的訓練參數(shù)包括分類器的級數(shù)(Sn)、分類器每一級希望得到的最小檢測率(Hmin)、分類器每一級希望得到的最大誤檢率(Fmax)。理論上,級聯(lián)檢測器總的檢測率(true positive rate,TPR)和誤檢率(false positive rate,FPR)的計算公式如下:
TPR=HminSn
(2)
FPR=FmaxSn
(3)
級聯(lián)檢測器的檢測率和誤檢率隨著級數(shù)的增加呈指數(shù)級增長,因此,當分類器的級數(shù)大于10,最小檢測率要盡量接近1,最大誤檢率一般低于0.5即可。將最小檢測率固定為0.995,改變分類器的級數(shù)和每一級希望得到的最大誤檢率進行級聯(lián)檢測器的訓練試驗。
將測試集中的圖像分別放入不同訓練參數(shù)下的級聯(lián)檢測器中進行試驗。若檢測出來的圖像中完整包含4個數(shù)字且標牌的面積占圖像總面積的3/4以上,認為是準確檢測到的目標。
準確率和召回率是評價級聯(lián)檢測器性能的2個重要指標。準確率(precision,P)反映檢測器的精度,表示所有被分類為正樣本的實例中實際為正樣本的比例,計算公式為:
P=Nd/(Nd+Nf)
(4)
式中:Nf表示誤檢為目標的負樣本數(shù);Nd表示級聯(lián)檢測器準確檢測到的目標數(shù)。
召回率(recall,R)反映檢測器的查全率,表示所有正樣本的實例中被正確分類為正樣本的比例,計算公式為:
R=Nd/Nt
(5)
式中:Nt表示實際存在的目標數(shù)。
訓練結果(表1)表明:隨著分類器級數(shù)的增加和每一級最大誤檢率的減小,準確率逐漸提高,召回率逐漸降低,兩者是相互矛盾的。另外,級聯(lián)檢測器的準確率表現(xiàn)較好,訓練模型的準確率最高達到 97.34%。但召回率較低,表現(xiàn)最好的召回率僅為47.27%。
表1 不同訓練參數(shù)的級聯(lián)檢測器的試驗結果Table 1 Test results of cascade detectors with different training parameters
圖4-A為正確檢測出來的標牌圖像。由于HOG特征對光學形變保持良好的不變性,所以級聯(lián)檢測器正確檢測到不同光照強度下的標牌。圖4-B為部分誤檢的負樣本圖像。負樣本圖像主要包括2類:一類是與標牌具有相似的局部梯度特征的背景圖像,例如奶牛體部的花紋、背景中的欄桿等;另一類是檢測出的圖像僅包含部分標牌,未能包含所有數(shù)字,這種情況下的圖像往往檢測到2張標牌,一張是完全包含標牌的目標圖像,另一張是包含部分標牌的負樣本圖像。其原因是負樣本圖像中包含部分正確的局部梯度特征,但是與正樣本的交并比(intersection over union,IoU)小于設定的閾值,因此作為誤檢的負樣本出現(xiàn)。通過增加分類器的級數(shù)和減小每一級最大誤檢率可有效減少上述負樣本的數(shù)量。圖4-C為從漏檢的圖像中截取的像素為100×200的標牌圖像。在拍攝過程中,奶牛的活動(例如行走、低頭、扭頭)會造成所佩戴標牌發(fā)生幾何位置的變化,使標牌并不處于垂直位置。當這種變化量較大,包含標牌圖像的局部梯度特征也會發(fā)生變化,導致級聯(lián)檢測器不能準確檢測到圖像中的標牌。
圖4 部分檢測結果Fig.4 Partial test results
針對上述標牌幾何位置變化的問題,提出1種多角度檢測的識別方法,對于未檢測到目標的圖像,將其進行旋轉,使圖像中的標牌近似處于豎直位置,再進行檢測。在未被檢測出目標的圖像中隨機選擇201張圖像,經統(tǒng)計圖像在-40°、-30°、-20°、-10°、10°、20°、30°、40°(逆時針為正)旋轉角度下級聯(lián)檢測器正確檢測出的目標數(shù)分別為0、0、7、55、94、30、6、3。通過旋轉未定位到標牌的圖像,共檢測出195個目標。當圖像逆時針旋轉10°時,檢測出的目標數(shù)最多,當旋轉角度為-10°時次之,其次是20°,其余旋轉角度下檢測到的目標數(shù)較少??紤]到檢測的實時性要求,確定多角度檢測的具體流程如圖5所示。將圖像送入檢測器中進行檢測,若檢測到目標則檢測結束;若未檢測出目標時,將圖像進行旋轉再次送入檢測器中檢測,旋轉角度α依次取10°、-10°、20°和-20°;若圖像經過4次旋轉依然未檢測到目標,則檢測結束。經過判斷是否檢測到目標和對圖像的旋轉操作,可以有效提高目標的檢測率和檢測效率。
圖5 多角度檢測的流程Fig.5 Process of multi-angle detection
采用多角度檢測的方法對測試集圖像進行測試試驗。從表2可以看出:多角度檢測方法在不明顯降低準確率的前提下顯著提高召回率,召回率從之前的38%~47%提高到74%~81%。其中當最大誤檢率為0.25,分類器級數(shù)為13時,準確率達到96.98%,召回率達到80.23%,是綜合準確率和召回率因素表現(xiàn)最好的級聯(lián)檢測器模型。
表2 多角度檢測方法的試驗結果Table 2 Test results of the multi-angle detection method
但是,多角度檢測方法只能識別出圖像中發(fā)生平面內旋轉的標牌,對于繞平面發(fā)生旋轉的目標依然不能將其準確識別出來。但是這種情況在所有圖像中所占比例較少。
傳統(tǒng)目標檢測方法主要基于顏色特征和邊緣特征,本文提出的級聯(lián)檢測器標牌定位方法是1種基于HOG特征的監(jiān)督學習算法,將本方法與基于顏色特征和邊緣特征的奶牛頸環(huán)ID定位方法進行比較。由于圖像中包含大量的背景信息,背景中的草地、樹木、奶牛身上的花紋等的邊緣都會對定位造成大量干擾(圖6),且待檢測目標較小,不具有明顯的特征,因此采用基于邊緣特征的檢測方法未能檢測出標牌。
圖6 基于邊緣特征的標牌定位方法Fig.6 Sign location method based on edge feature
基于顏色特征的頸環(huán)標牌定位過程包含以下步驟:1)將原始RGB圖像轉換為HSV圖像并進行歸一化;2)根據(jù)藍色標牌在HSV空間的顏色分量范圍,將同時滿足條件0.6 圖7 基于級聯(lián)檢測器(A)和基于顏色特征(B)的檢測方法對比Fig.7 Comparison of detection methods based on cascade detector(A)and color feature(B) 檢測出來的標牌圖像亮度不均、包含大量冗余信息,不能直接作為字符識別模型的輸入。所以對圖像進行字符分割,將單個字符從整張圖像中分割出來。字符分割包含以下幾個步驟。 1)灰度化處理。通過標牌定位獲得的圖像為RGB圖像,為了減少數(shù)據(jù)處理時的冗余數(shù)據(jù)量,保留主要信息,對圖像進行灰度化處理。采用加權平均法將R、G、B這3個分量合成為1個值: F(i,j)=0.298×R(i,j)+0.587×G(i,j)+0.114×B(i,j) (6) 2)灰度變換。部分圖像亮度較低導致圖像中的數(shù)字不清晰,為了改善圖像質量,對灰度圖像進行線性變換,增加圖像的對比度。經過多次試驗,發(fā)現(xiàn)圖像的灰度直方圖主要集中在前半段,因此將灰度圖像中[0.05,0.6]之間的灰度值映射到[0 1]中。 3)二值化分割。采用最大類間方差法(Otsu)自動選擇灰度圖像二值化最佳閾值,將灰度圖像轉換為二值化圖像,實現(xiàn)圖像中數(shù)字與背景分割(白色像素代表目標,黑色像素代表背景),從而提取出字符。 4)去除四周背景像素。通過統(tǒng)計圖像左右兩側、上下兩側的每一行和每一列的黑白跳變個數(shù)以及白色像素的個數(shù)確定圖像四周的背景區(qū)域,并將其裁去。 5)形態(tài)學處理。估計圖像中目標面積與總面積的比值,若大于某一閾值(t1),對圖像進行開運算;若小于閾值(t2),對圖像進行閉運算。開運算和閉運算均采用2×2的單位矩陣作為模板。經過多次試驗,當t1=0.365、t2=0.235時形態(tài)學操作效果最好。刪除圖像中面積小于50的連通區(qū)域,以去除多余的干擾像素。 6)斷開連續(xù)的文字。若圖像中的干擾像素存在于2個數(shù)字之間使其處于連通狀態(tài),會對后續(xù)的字符分割造成較大的影響。因此以第1行為起點,統(tǒng)計連續(xù)出現(xiàn)白色像素的行數(shù),若大于圖像高度的1/3,則在上述行中尋找白色像素最少的那一行作為斷開點,將此行所有像素置為0(背景)。 7)字符分割。由于圖像中部分字符內部不連通,故采用統(tǒng)計直方圖的方法分割字符。以第1行為起點,統(tǒng)計連續(xù)出現(xiàn)白色像素的行數(shù),若大于圖像高度的1/5,則將上述行裁剪下來作為分割出來的單個字符;否則認為是干擾像素,將上述行的像素值置為0(背景)并裁去。繼續(xù)分割直到分割出4個字符。 8)字符歸一化。為了便于后續(xù)的字符識別,將分割出來的圖像采用雙三次差值法歸一化為28×28。 經過上述操作,彩色的標牌圖像被分割成4張分別包含單個字符的二值圖像,且圖像中的字符為白色,背景為黑色。 將級聯(lián)檢測器檢測出來的正樣本進行字符分割處理,得到單個字符圖像。級聯(lián)檢測器定位得到的354張標牌圖像共分割出1 062張字符圖像,其中8張標牌中的9個字符對應的字符圖像是空白的,標牌的完整檢出率為97.74%,字符的檢出率為99.15%。 造成部分標牌分割失敗的原因主要有2個:1)部分圖像由于整體亮度較低或者光照不均勻,二值化分割后字符內部斷開,經過形態(tài)學變換等處理后,導致對應的字符丟失。2)對于連通的字符,未能找到正確的分割點,將2個字符分割到同一張圖像中,從而缺少1張字符圖像。圖8為分割失敗的標牌。 圖8 分割失敗的標牌Fig.8 Signs of failed segmentationA. 未完整分割出字符的標牌圖像The sign image with incomplete character segmentation;B. 由于連通字符未正確斷開造成分割失敗的標牌圖像Sign images that fail to be segmented due to improper disconnection of connected characters. a. 原圖像The original image;b. 二值化后的圖像Image after binarization;c. 形態(tài)學處理后的圖像Morphologically processed image;d. 最終分割出來的4張字符圖像4 character images finally segmented. 根據(jù)單個字符圖像的像素信息判斷字符的分類,是標牌識別的最后一步。常見的字符識別方法有模板匹配法、特征分析匹配法、機器學習法[22]。本文所要識別的標牌字符相較于車牌字符識別具有更大的挑戰(zhàn)性。在拍攝奶牛側視行走圖像時,在奶牛和相機之間有2個約1 cm寬的電子圍欄,圍欄在部分標牌上留下白色直線,對標牌上的字符識別造成影響。另外,標牌的幾何位置變化導致字符的幾何形態(tài)的改變、標牌上可能存在的污漬等,都增加了字符識別的難度。 卷積神經網(wǎng)絡作為深度學習中的一種,在處理圖像和辨別語音方面有著相當大的優(yōu)越性[23],能適應圖像中目標的位置移動、大小調整、拉伸彎折的變化,且圖像可以直接作為網(wǎng)絡的輸入,避免了傳統(tǒng)識別算法中復雜的特征提取和數(shù)據(jù)重建的過程。 卷積神經網(wǎng)絡的基本結構有輸入層、卷積層、池化層、全連接層及輸出層[24]。卷積層是卷積神經網(wǎng)絡的核心,對輸入圖像進行卷積運算并加上偏置項,通過激活函數(shù)得到其特征圖[25]。池化層在卷積層之后,對卷積操作得到的特征圖進行降采樣,提取最顯著的特征。全連接層整合得到的局部特征,計算樣本屬于每個類別的概率,通過誤差反向傳播算法(back propagation),調整網(wǎng)絡各層的權重和偏置參數(shù),從而完成卷積神經網(wǎng)絡的訓練。 LeNet-5是LeCun等[26]在1998年提出的卷積神經網(wǎng)絡算法,用于解決手寫數(shù)字的識別問題。本文的字符識別任務與LeNet-5的識別任務相似,都是對數(shù)字的識別,但是用已訓練好的LeNet-5模型識別本文中的數(shù)字,沒有達到理想的效果。其原因包括以下方面:1)本文所識別的數(shù)字為打印體,與手寫數(shù)字的特征存在一定差異。2)用于訓練LeNet-5的mnist數(shù)據(jù)集圖像中的數(shù)字較細,位置集中,且四周有留白,沒有多余的干擾像素。而本文所識別的數(shù)字圖像的有效信息可能分布在整個圖像中,數(shù)字四周可能會有干擾像素。圖9為mnist數(shù)據(jù)集中的手寫數(shù)字圖像和本文要識別的數(shù)字圖像。 圖9 手寫數(shù)字圖像(A)和本文要識別的數(shù)字圖像(B)Fig.9 Handwritten digital images(A)and digital images to be recognized in this article(B) 本文在LeNet-5模型的基礎上進行了一些改進,構建1個新的數(shù)字識別模型,改進后的基本結構如圖10 所示。為了達到足夠的感受野并減少計算量,卷積神經網(wǎng)絡中采用3層卷積層(C1、C3、C5),每一層的卷積核大小均為3×3,步長為1。經過多次調整參數(shù),發(fā)現(xiàn)當3個卷積層的特征圖個數(shù)分別為8(C1)、16(C3)、32(C5)時,模型的識別率和效率最高。由于圖像中的數(shù)字位置分布不均勻,需要保留邊界信息,因此采用數(shù)字0填充圖像矩陣邊界,使輸出圖像與輸入圖像具有相同的尺寸。卷積后的特征圖進行批量標準化處理(batch normalization),以提高網(wǎng)絡的訓練速度。采用非線性激活函數(shù)ReLU增加神經網(wǎng)絡模型的稀疏性,使網(wǎng)絡能夠擬合復雜的非線性函數(shù)。最大池化層(S2、S4)的池化子區(qū)域的大小為2×2,步長為2。全連接層的輸出為10,對應10個分類。采用softmax回歸函數(shù)對全連接層的輸出進行歸一化。采用交叉熵損失函數(shù)(cross entropy)計算損失,更新神經網(wǎng)絡各層的權重和偏置參數(shù)。 在深度學習中,用來訓練的數(shù)據(jù)規(guī)模越大,模型的泛化能力和識別準確性越好??紤]到從上一步分割出來的數(shù)據(jù)量較少,且存在數(shù)據(jù)不平衡問題,所以在訓練模型之前通過圖像數(shù)據(jù)增強來擴大用于訓練的數(shù)據(jù)量。在真實場景下,奶牛標牌上的數(shù)字通常會發(fā)生幾何位置的變化,因此在增強數(shù)據(jù)時,通過對原始數(shù)據(jù)進行隨機的平移和旋轉變換得到新的數(shù)據(jù),旋轉角度為(-10°,10°),沿垂直和水平方向均進行平移,平移距離為(-3,3)。經過數(shù)據(jù)增強后,最終每個數(shù)字的圖像數(shù)量均在4 000張左右,總的圖像數(shù)據(jù)量在 36 000 張左右。 訓練時的優(yōu)化算法采用動量隨機梯度下降算法(stochastic gradient descent momentum,SGDM),優(yōu)化算法的作用是對損失函數(shù)進行迭代優(yōu)化。SGDM算法引入一階動量加速梯度下降,抑制振蕩,加快收斂。訓練時初始學習率為0.01。 為了更客觀地評估模型的準確性,采用十折交叉驗證訓練卷積神經網(wǎng)絡。具體實現(xiàn)方法:將數(shù)據(jù)集分成10份,輪流將其中9份作為訓練集,另外1份作為驗證集,將10次結果的均值作為評價模型精度的標準。10次訓練中驗證集的平均正確率為98.10%。 將測試集圖像中分割得到的字符圖像放入訓練好的字符識別模型中測試模型的性能。結果顯示:在正確分割出的1 053張字符圖像中共準確識別出983個字符,字符識別的準確率為93.35%;在346張標牌中,正確且完整地識別出300張,標牌識別的準確率為86.71%。基于卷積神經網(wǎng)絡的字符識別模型能夠適應不同干擾情況下的識別任務,例如圍欄在部分標牌上留下的白色直線、分割過程中未被去除的多余干擾像素以及缺失的部分像素信息。 但是,對于分割失敗造成的字符重疊,模型無法正確識別出其中的任何一個字符。部分字符圖像上的干擾像素或缺失部分對于模型的判斷具有誤導性,例如在字符“0”中間存在的白色直線會使模型誤認為是“8”。表3所示為部分識別正確和識別錯誤的字符圖像。 表3 部分正確識別和錯誤識別的字符圖像Table 3 Partial correctly identified and wrongly identified character images 本文的試驗數(shù)據(jù)是在奶牛的飼養(yǎng)場景下采集的。在奶牛擠完奶后回到牛棚的過程中,會經過一段平坦的直線過道,在奶牛通過視野的過程中相機以固定的時間間隔連續(xù)拍照,從而獲取不同奶牛的多幅側視行走圖像。奶牛通過相機視野時奶牛的活動(例如行走、低頭、扭頭)不受人為干預,拍攝是在自然光照條件下進行的。在實際應用場景中,如果能根據(jù)多幅圖像的識別結果最終處理成一個正確的標牌數(shù)字輸出,即可認為完成了奶牛標牌的識別任務。 因此將同一頭奶牛的側視行走圖像放在同一個文件夾中,采用最大誤檢率為0.25、分類器級數(shù)為13的級聯(lián)檢測器模型結合多角度檢測方法檢測同一個文件夾中的所有圖像。然后采用投票制,找出出現(xiàn)次數(shù)最多的識別結果作為最終輸出。測試結果表明,測試集的22頭奶牛中21頭奶牛的身份ID被正確識別,系統(tǒng)的檢測精度為95.45%。其中有一頭奶牛未被正確識別出身份ID的原因是標牌上的數(shù)字上有大面積污漬,造成多幅標牌圖像均未分割出完整的字符,導致識別失敗。 奶牛的側視行走圖像中包含奶牛的多項體況信息,例如跛足、呼吸檢測、體況評分等,通過識別側視圖像中奶牛頸部佩戴的頸環(huán)ID標牌識別奶牛個體,可以將奶牛的體況信息和身份信息一一對應,從而實現(xiàn)基于圖像處理的奶牛多種信息融合感知系統(tǒng)。 1)提出1種基于HOG特征的級聯(lián)檢測器結合多角度檢測的定位方法,能夠解決復雜場景下由于目標偏轉引起的檢測率較低的問題。最終標牌定位的準確率為96.98%,召回率為80.23%。相較于傳統(tǒng)的標牌定位方法具有較高的精度和良好的魯棒性。 2)提出1種標牌的分割算法,將單個字符的二值圖像從標牌中分割出來。標牌的完整檢出率為97.74%,字符的檢出率為99.15%。 3)在LeNet-5的基礎上優(yōu)化了卷積神經網(wǎng)絡的結構和參數(shù),通過圖像數(shù)據(jù)增強技術增加了訓練集中的字符圖像并用于訓練字符識別模型。單個字符識別準確率達到93.35%,對連續(xù)圖像序列中奶牛標牌ID的識別率為95.45%,識別模型對光線變化、污漬沾染、旋轉角度等具有良好的魯棒性,具有代替?zhèn)鹘y(tǒng)動物個體識別方法的潛力。3 字符分割
3.1 分割算法
3.2 字符分割結果
4 字符識別
4.1 卷積神經網(wǎng)絡的構建
4.2 卷積神經網(wǎng)絡的訓練
4.3 字符識別結果
4.4 連續(xù)幀檢測
5 結論