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