尚誠,王美麗,2,3*,寧紀(jì)鋒,李群輝,姜雨,王小龍
1.西北農(nóng)林科技大學(xué)信息工程學(xué)院,楊凌 712100;2.農(nóng)業(yè)農(nóng)村部農(nóng)業(yè)物聯(lián)網(wǎng)重點實驗室,楊凌 712100;3.陜西省農(nóng)業(yè)信息與智能服務(wù)重點實驗室,楊凌 712100;4.長安大學(xué)理學(xué)院,西安 710064;5.西北農(nóng)林科技大學(xué)動物科技學(xué)院,楊凌 712100
在現(xiàn)代化養(yǎng)殖與育種工作中,畜牧業(yè)作為農(nóng)業(yè)發(fā)展中至關(guān)重要的一個分支,特別是對于中國西北地區(qū)來說,提高畜牧業(yè)的智慧發(fā)展程度更是提高農(nóng)村經(jīng)濟和農(nóng)業(yè)生活水平的關(guān)鍵。對個體實時檢測和識別是智慧養(yǎng)殖中亟需解決的首要問題,通過對動物個體或群體的實時信息掌握,可以預(yù)警突發(fā)事件,也可以通過構(gòu)建不同的評價指標(biāo)實時掌握動物個體的健康狀況。同時,個體識別也是實現(xiàn)大數(shù)據(jù)管理蓄種的基礎(chǔ)技術(shù)之一。
牲畜的傳統(tǒng)身份標(biāo)記方法分為具有永久性損傷的刻烙印法、耳標(biāo)外置標(biāo)簽法及外置RFID(radio frequency identification)設(shè)備標(biāo)簽等。傳統(tǒng)標(biāo)記動物方法,無論是刻耳烙印或耳標(biāo)外置等都容易對動物造成不同程度的傷害??汤佑》▽游锎碳ず艽螅瑫ι笤斐梢欢▊?,如圖1(a)所示。耳標(biāo)外置標(biāo)簽法不僅會使動物耳部易發(fā)生感染,也會因為動物本身活動導(dǎo)致耳標(biāo)丟失等,如圖1(b)所示。
圖1 傳統(tǒng)動物識別技術(shù)Fig.1 Traditional animal marking methods((a)engraving method;(b)external ear tag method)
劉冬等人(2016)提出對動物個體進行實時信息掌握和群體信息實時跟蹤,有助于對突發(fā)事件進行緊急預(yù)警,且多項指標(biāo)的動態(tài)更新有利于畜種生產(chǎn)性能的預(yù)測,從而及時了解個體的健康狀況。個體識別技術(shù)是實現(xiàn)智慧農(nóng)業(yè)管理畜牧類動物的基礎(chǔ)。本文以西北農(nóng)林科技大學(xué)薩能奶山羊為研究對象,提出一種基于深度學(xué)習(xí)識別動物個體的方法,通過對原始奶山羊數(shù)據(jù)集進行預(yù)處理,在不丟失奶山羊身體特征信息的基礎(chǔ)上降低背景干擾,然后通過殘差網(wǎng)絡(luò)進行奶山羊身體特征學(xué)習(xí),最后提出針對奶山羊個體特征適用的三元組損失函數(shù)與交叉熵?fù)p失函數(shù)組合而成的聯(lián)合損失函數(shù),結(jié)合調(diào)參得到最終的訓(xùn)練結(jié)果。本文主要貢獻如下:1)利用Triplet-Loss與CrossEntropy-Loss聯(lián)合優(yōu)化的方法,使網(wǎng)絡(luò)在多個函數(shù)聯(lián)合優(yōu)化下增強識別能力,提高奶山羊個體識別的準(zhǔn)確率。2)研究中的奶山羊圖像采用SSD(single shot MultiBox detector)進行數(shù)據(jù)集的預(yù)處理,提高數(shù)據(jù)集的質(zhì)量,減小了數(shù)據(jù)集中無關(guān)背景的影響。3)通過孿生網(wǎng)絡(luò)(siamese network)驗證奶山羊的個體之間的相似度高的特點,加強Triplet-Loss方式的訓(xùn)練效果,從而提高奶山羊個體身份識別的準(zhǔn)確率。
動物個體識別與人臉識別相似,均屬于圖像分類研究,并且人臉識別的分類算法與本項目中的奶山羊個體身份識別類似,二者均需要進行特征提取,將分類器統(tǒng)一在一個環(huán)境之下,最后分析個體的圖像特征并進行分類,所以本研究中的奶山羊個體身份識別可以借鑒人臉識別算法。
Taigman等人(2014)提出了基于卷積神經(jīng)網(wǎng)絡(luò)的人臉識別方法DeepFace,該算法采集4 000個人的人臉圖像進行訓(xùn)練,并利用3D模型對人臉圖像等進行對齊,用于訓(xùn)練的神經(jīng)網(wǎng)絡(luò)共9層,整個訓(xùn)練過程中前2個卷積層采用共享卷積核,后3個卷積層采用不共享卷積核,倒數(shù)第2層采用全連接層提取出對應(yīng)的人臉特征,最后一層是1個softmax分類層。該方法在公開人臉數(shù)據(jù)集LFW(labled faces in the wild)上準(zhǔn)確率為97.25%。Sun等人(2014a,b)提出了DeepID(deep hidden identity features)和DeepID2等方法,使用人臉驗證與分類進行網(wǎng)絡(luò)訓(xùn)練,在公開人臉數(shù)據(jù)集LFW上測試效果分別為97.45%與99.15%。但是,由于DeepFace需要采取不同的訓(xùn)練方式才能保證準(zhǔn)確率,而奶山羊的養(yǎng)殖會存在定期購進或其他方式增加奶山羊數(shù)量問題,所以上述煩瑣過程不適合應(yīng)用于畜牧業(yè)養(yǎng)殖。對于DeepID與DeepID2,當(dāng)數(shù)據(jù)庫中存在大量干擾人臉時,會對辨識率和準(zhǔn)確率造成影響,尤其在姿態(tài)識別上。本項目中奶山羊個體屬于十分活躍的識別目標(biāo),姿勢動作隨機且多變,由于奶山羊的好動特點,難以采集固定的姿勢圖像,且本項目數(shù)據(jù)集中可能存在多只羊或包含人的非單只羊圖像,所以該類網(wǎng)絡(luò)不適合本項目。
Vinyals 等人(2016)提出了一種人臉識別算法one-shot learning,可以在訓(xùn)練樣本不足的情況下實現(xiàn)較為精準(zhǔn)的分類。該算法的主要貢獻在于提出了matching networks,將注意力機制和記憶機制引入快速學(xué)習(xí)任務(wù),每個類別中僅用很少樣本進行訓(xùn)練便可以取得較好效果,解決了無法獲得大量有效數(shù)據(jù)集的應(yīng)用場景問題。但本研究中奶山羊的檢測和識別數(shù)據(jù)需要實時獲得,不適用于光照強度不同和側(cè)身角度不同以及含有遮擋等情況,同時因為數(shù)據(jù)樣本過少,無法做到實時檢測以及準(zhǔn)確識別。
Chopra 等人(2005)提出了孿生網(wǎng)絡(luò)(siamese network),由兩個相同的卷積神經(jīng)網(wǎng)絡(luò)組成,輸入圖像后,將兩個網(wǎng)絡(luò)的計算結(jié)果反饋給對比損失函數(shù),計算兩個輸入圖像之間的相似度?;趯\生網(wǎng)絡(luò)的人像識別,主要是將同一個人的不同圖像及非同一個人的多幅圖像作為訓(xùn)練數(shù)據(jù),通過網(wǎng)絡(luò)學(xué)習(xí)人臉部位的特征信息。但是由于孿生網(wǎng)絡(luò)更適合區(qū)別非同一人的兩幅圖像的特征信息,所以對同一個人的識別率較低,并且應(yīng)用到非人臉識別時的閾值無法確定,故不適用奶山羊的身份識別。
Schroff 等人(2015)提出了人臉識別算法Facenet,將獨特的Triplet-Loss與特有的hard-batch組合應(yīng)用到人臉識別領(lǐng)域,取得了很好效果。該算法以圖像在多維空間的映射距離作為相似度的評價標(biāo)準(zhǔn),即在同一個人的兩幅人臉圖像的多維空間中空間距離小于非同一個人的兩幅人臉圖像的多維空間中的空間距離。具體的做法是將兩幅未知是否為同一個人的人臉圖像利用神經(jīng)網(wǎng)絡(luò)將其映射到歐氏空間上,通過計算不同輸入圖像的多維空間的空間距離對比判斷是否為同一人。該網(wǎng)絡(luò)采用hard-batch組合,取得了很好的識別效果,但是應(yīng)用于非人臉識別(如動物的個體識別)卻不能達到預(yù)期效果,因為無法像人臉一樣提取到足夠的特征。出于實際的農(nóng)業(yè)畜牧業(yè)發(fā)展對精準(zhǔn)度的要求,該應(yīng)用在準(zhǔn)確率上不能滿足需要,加之其僅能識別正臉圖像的局限性,故單純的Facenet的Triplet-Loss方法不足夠用于本研究。本研究將在Triplet-Loss的基礎(chǔ)上進行改進,利用Triplet-Loss獨特的損失函數(shù)結(jié)構(gòu)構(gòu)造聯(lián)合損失函數(shù),使網(wǎng)絡(luò)在聯(lián)合損失的基礎(chǔ)上增強表征能力。
近些年,研究者針對家畜展開了多項研究。劉偉等人(2020)提出利用SSD網(wǎng)絡(luò)對豬個體進行檢測,為后續(xù)其他物種個體識別的研究奠定了基礎(chǔ)。秦興和宋各方(2019)提出了基于卷積神經(jīng)網(wǎng)絡(luò)的豬臉識別算法,將神經(jīng)網(wǎng)絡(luò)改進為雙線性模式并采用遷移學(xué)習(xí)方式對200頭豬進行特征學(xué)習(xí),可以應(yīng)對不同的復(fù)雜環(huán)境等問題,但是該算法需要通過人工手段對特征進行分割。
針對奶牛個體的識別,梁坤和張哲純(2013)、陳紅莉(2016)、蒙賀偉等人(2015)、張海峰和沈媛萍(2012)應(yīng)用了RFID技術(shù),但是其成本仍不可忽略。張滿囤等人(2018)采用特征圖融合的方式對奶牛個體進行識別。黃俊華和田壯(2019)選取改進的VGG-16(Visual Geometry Group network 16-layer)卷積神經(jīng)網(wǎng)絡(luò)方法對奶牛個體進行識別。
關(guān)于羊個體檢測識別的研究較少,部分研究者對羊的聲音進行了深入研究。宣傳忠等人(2015,2016a,b)以聲音作為依據(jù),對于羊的行為、疾病特征做出準(zhǔn)確判斷,為羊個體識別奠定了基礎(chǔ)。
本研究對高相似度奶山羊的個體識別進行研究,為奶山羊躺臥時間過久且不進食以及頻繁打斗等異常行為的預(yù)警提供基礎(chǔ)。
本文的技術(shù)路線如圖2所示,首先采用SSD網(wǎng)絡(luò)的邊界框識別,對奶山羊的個體進行檢測,切割裁剪預(yù)處理后作為實驗的數(shù)據(jù)集;然后利用殘差神經(jīng)網(wǎng)絡(luò)ResNet18(residual neural network)對奶山羊的數(shù)據(jù)進行特征分析;最后利用聯(lián)合損失函數(shù)對網(wǎng)絡(luò)的學(xué)習(xí)進行評價,通過相關(guān)調(diào)參以及實驗對比得到最佳效果。
圖2 技術(shù)路線圖Fig.2 Technology road map
為減少圖像背景信息的干擾,并盡可能地保證奶山羊個體的身體特征信息完整,本研究首先通過對SSD網(wǎng)絡(luò)(劉冬 等,2016)檢測后的目標(biāo)進行切割,重新形成數(shù)據(jù)集,然后對數(shù)據(jù)集不平衡部分,采用翻轉(zhuǎn)、旋轉(zhuǎn)、調(diào)整對比度、調(diào)整亮度以及調(diào)整色度飽和度、Fancy PCA(fancy principal components analysis)等方式對數(shù)據(jù)集擴容,保障其三元組損失函數(shù)中需要的negative對和positive對的數(shù)據(jù)集組合的完整與豐富。
SSD的網(wǎng)絡(luò)結(jié)構(gòu)中第1部分為VGG-16結(jié)構(gòu),主要目的是提取低尺度的特征映射圖;第2部分為連接上一部分網(wǎng)絡(luò)輸出的特征映射圖,通過卷積神經(jīng)網(wǎng)絡(luò)輸出4個高尺度的特征信息,主要任務(wù)是提取高尺度的特征映射圖;第3部分是預(yù)測特征映射圖中每個點的矩形框信息和所屬類信息。對應(yīng)的損失函數(shù)由預(yù)測框位置的損失和預(yù)測類的損失組成。
在本實驗中,采用SSD網(wǎng)絡(luò)預(yù)訓(xùn)練模型,對奶山羊的數(shù)據(jù)集進行初步檢測,預(yù)處理結(jié)果如圖3(a)(b)所示,在檢測出奶山羊個體的同時,對個體進行邊界框的切割處理,如圖3(c)所示。
圖3 利用SSD網(wǎng)絡(luò)對數(shù)據(jù)集進行預(yù)處理Fig.3 Use SSD network to preprocess the dataset((a)input image;(b)SSD network detection effect;(c)image detected and cut by SSD)
奶山羊具有個體間相似度高的特點,所以訓(xùn)練模型需要較深層次的網(wǎng)絡(luò)結(jié)構(gòu),但是較深層次的網(wǎng)絡(luò)結(jié)構(gòu)會帶來梯度消失和梯度爆炸問題,故本研究選取殘差神經(jīng)網(wǎng)絡(luò)(ResNet)(He等,2016)。ResNet利用快捷連接(shortcut connection)加深網(wǎng)絡(luò)結(jié)構(gòu),有效解決了上述問題。該結(jié)構(gòu)不僅可以在相鄰的網(wǎng)絡(luò)層之間建立連接,也可以完成跨層連接,這種神經(jīng)網(wǎng)絡(luò)不僅計算量小,并且可以使深度層數(shù)明顯增加。本研究中奶山羊的身份識別算法中的網(wǎng)絡(luò)結(jié)構(gòu)部分使用基于ResNet18的預(yù)訓(xùn)練網(wǎng)絡(luò)模型作為初始化網(wǎng)絡(luò)進行遷移學(xué)習(xí),而并非隨機初始化網(wǎng)絡(luò)參數(shù)。網(wǎng)絡(luò)結(jié)構(gòu)ResNet18,數(shù)字代表網(wǎng)絡(luò)深度,18表示17層卷積層和1層全連接層,不包括池化層和批歸一化(batch normalization,BN)層。實驗表明,采用殘差神經(jīng)網(wǎng)絡(luò)作為網(wǎng)絡(luò)結(jié)構(gòu),孿生網(wǎng)絡(luò)的識別效果得到了很好提升。
2.3.1 Triplet-Loss訓(xùn)練
由于奶山羊個體之間相似度高,因此高質(zhì)量的數(shù)據(jù)集是十分重要的,然而奶山羊天性膽小好動,很難配合拍照人員采集數(shù)據(jù),獲取大量有效的奶山羊圖像具有一定的挑戰(zhàn)性。本文在數(shù)據(jù)集較少卻需要獲得較高的分類效果方面,采用Triplet-Loss作為損失函數(shù)訓(xùn)練數(shù)據(jù),通過增大困難三元組(hard-batch)的方式組建數(shù)據(jù)組合,從而解決因數(shù)據(jù)集不足引起的識別不精準(zhǔn)問題。
圖像經(jīng)過ResNet18網(wǎng)絡(luò)結(jié)構(gòu)之后,由特征矩陣提取信息,再經(jīng)過L2范數(shù)完成歸一化,映射為一個128維的特征向量,然后由Triplet-Loss完成最后的訓(xùn)練。Triplet-Loss可以將屬于同一個體的樣本之間的差距縮小,將非同一個體的差距擴大。奶山羊個體訓(xùn)練過程如圖4所示,圖像anchor和positive是同一只但最不像同一只羊的不同圖像,anchor和 negative是不同羊的相似圖像,其三元組損失函數(shù)為
圖4 奶山羊個體訓(xùn)練過程Fig.4 Training process on individual dairy goats
(1)
從式(1)可以看出,損失函數(shù)使圖像anchor與positive在高維空間中的距離更近,與negative的距離更遠(yuǎn)。
對于Triplet-Loss中可以起到有效分類的hard-batch組合,siamese network網(wǎng)絡(luò)的實驗結(jié)果表明,奶山羊本身為高相似度的個體不需要再額外區(qū)分hard-batch組合。
2.3.2 CrossEntropy-Loss分類
交叉熵?fù)p失函數(shù)在常見多分類問題中應(yīng)用廣泛,本研究采用交叉熵?fù)p失函數(shù)作為聯(lián)合損失函數(shù)的組合部分。交叉熵用來衡量概率之間的距離,從而判斷其差距的大小,交叉熵的值越大,概率分布越遠(yuǎn);值越小,分布越近。假設(shè)概率分布p為期望輸出,概率分布q為實際輸出,則交叉熵H(p,q)為
(2)
式中,x是離散型隨機變量。
例如,本研究共3只奶山羊,記N=3。若期望輸出p=(1,0,0),實際輸出q1=(0.4,0.5,0.6),q2=(0.5,0.5,0.6),則H(p,q1)=0.92,H(p,q2)=0.82。
可以看出,q2與p交叉熵更小,兩者概率分布更接近。
交叉熵計算結(jié)合了LogSoftmax函數(shù)與NLLLoss函數(shù),即
(3)
式中,x為隨機變量,p(x)和q(x)分別為兩個單獨的概率分布。
損失函數(shù)為
(4)
式中,x為數(shù)據(jù)的條數(shù),class表示分類的數(shù)量。
利用CrossEntropy-Loss 作為損失函數(shù)解決了奶山羊多分類問題。
2.3.3 聯(lián)合損失函數(shù)
聯(lián)合損失函數(shù)將多類損失函數(shù)結(jié)合起來,對整體結(jié)果起到聯(lián)合優(yōu)化效果,本研究采用Triplet-Loss與CrossEntropy-Loss聯(lián)合優(yōu)化的方式,使網(wǎng)絡(luò)在多個函數(shù)聯(lián)合優(yōu)化下,提高表征能力。具體為
lossall=λlosstriplet+ηlossCrossEntropy
(5)
式中,lossall表示本研究的損失函數(shù),losstriplet代表三元組損失函數(shù),λ為三元組損失函數(shù)的參數(shù),取λ=0.5,lossCrossEntropy代表交叉熵?fù)p失函數(shù),η為交叉熵?fù)p失函數(shù)的參數(shù),取η=0.5。
對經(jīng)SSD預(yù)處理和未經(jīng)SSD預(yù)處理的數(shù)據(jù)集進行訓(xùn)練并測試,然后在薩能奶山羊高相似度數(shù)據(jù)集上對YOLOv3(you only look once)(Redmon和Farhadi,2017)、siamese network、ResNet18(損失函數(shù)Triplet-Loss)、ResNet50(損失函數(shù)Triplet-Loss)、ResNet18(損失函數(shù)CrossEntropy-Loss)、ResNet18(聯(lián)合損失函數(shù))和ResNet50(聯(lián)合損失函數(shù))等網(wǎng)絡(luò)進行對比實驗,每組實驗結(jié)果為同一參數(shù)10次實驗中最佳結(jié)果。
采用SSD網(wǎng)絡(luò)對數(shù)據(jù)集預(yù)處理,參數(shù)設(shè)置批大小為32,迭代輪次為11,學(xué)習(xí)率為0.001,優(yōu)化器采用自適應(yīng)矩估計(Adam)優(yōu)化器,隨機種子的值為1,隨機將輸入張量中部分元素設(shè)置為0的概率為0.2,用于計算梯度以及梯度平方的運行平均值的系數(shù)為(0.9,0.99)。ResNet18模型在經(jīng)SSD網(wǎng)絡(luò)預(yù)處理和未經(jīng)SSD網(wǎng)絡(luò)預(yù)處理的數(shù)據(jù)集上的效果對比如表1所示,可以看出,對數(shù)據(jù)集進行預(yù)處理可以有效提升預(yù)測準(zhǔn)確率。
表1 在預(yù)處理和未預(yù)處理數(shù)據(jù)集上的準(zhǔn)確率比較Table 1 Comparison of accuracy between on preprocessed dataset and not
采用YOLOv3網(wǎng)絡(luò)對數(shù)據(jù)集特性進行初步驗證,參數(shù)設(shè)置批大小為64,一次性送入訓(xùn)練器的樣本數(shù)量為4,學(xué)習(xí)率為0.000 5,最大迭代次數(shù)為32 000,動量設(shè)置為0.9,權(quán)重衰減設(shè)置為0.000 5,曝光量調(diào)整的值為1.5,學(xué)習(xí)率的調(diào)整策略為steps方式,飽和度調(diào)整的值為1.5,色調(diào)調(diào)整的值為0.1。
本文通過網(wǎng)絡(luò)獲取了貴州白山羊、湖羊、灘羊、新疆細(xì)毛羊和小尾羊等不同品種羊的圖像。YOLOv3網(wǎng)絡(luò)對不同品種羊個體的檢測效果如表2所示,羊的編號代表一個品種的羊。可以看出,YOLOv3可以完成相關(guān)品種的基礎(chǔ)區(qū)分,但效果較差,如表2中除新疆細(xì)毛羊和奶山羊外,其他羊品種區(qū)分效果不理想,說明不同品種的羊個體之間特征區(qū)分不顯著。
表2 YOLOv3網(wǎng)絡(luò)對不同品種羊個體檢測效果Table 2 Individual detection results of different breeds of sheep by YOLOv3
YOLOv3網(wǎng)絡(luò)在奶山羊數(shù)據(jù)集的測試結(jié)果如表3所示,個體編號代表一只奶山羊。實驗?zāi)康氖呛饬繉W(xué)習(xí)出來的模型在羊數(shù)據(jù)集每個類別或同品種情況下每只羊的檢測精度。可以看出,僅對奶山羊數(shù)據(jù)區(qū)分時,精確度為0(表3),從側(cè)面印證了奶山羊個體圖像相似性極高的特點。
表3 YOLOv3網(wǎng)絡(luò)對同品種奶山羊個體身份檢測效果Table 3 Results of individual identification of the same breed of dairy goats by YOLOv3
從表2和表3可以得到如下初步結(jié)論:羊的分類無論是區(qū)分不同品種還是從同類品種中區(qū)分不同個體都具有較高難度,YOLOv3網(wǎng)絡(luò)不能作出足夠的識別。
采用孿生網(wǎng)絡(luò)在奶山羊數(shù)據(jù)集上分別以隨機梯度下降(stochastic gradient descent,SGD)、RMSprop(root mean square prop)和Adam(adaptive momentum)為優(yōu)化策略進行實驗,結(jié)果如表4所示??梢钥闯觯瑑?yōu)化策略為RMSprop時的準(zhǔn)確率為52.6%,較另外兩種方式有更有效的提升。3種策略中,結(jié)合多種優(yōu)化算法的Adam的準(zhǔn)確率較差。實驗結(jié)果表明應(yīng)該選擇RMSprop策略。
表4 孿生網(wǎng)絡(luò)采用不同優(yōu)化策略的精確度對比Table 4 Comparison of accuracy among different optimization strategies by siamese network /%
針對奶山羊臉部相似度高的特點,采用VGG網(wǎng)絡(luò)對奶山羊臉部和整只奶山羊圖像進行對比,實驗結(jié)果如表5所示??梢钥闯觯词拐{(diào)整了網(wǎng)絡(luò)結(jié)構(gòu),孿生網(wǎng)絡(luò)的準(zhǔn)確率也無法進一步提升。然而,相較于僅學(xué)習(xí)臉部特征,將羊整體特征進行網(wǎng)絡(luò)學(xué)習(xí)更有效。
表5 VGG網(wǎng)絡(luò)對羊臉和羊整體的檢測結(jié)果Table 5 Experimental results of sheep face and whole sheep by VGG network /%
將Triplet-Loss作為損失函數(shù),以VGGFace和ResNet作為網(wǎng)絡(luò)結(jié)構(gòu)分別對羊臉和羊整體進行數(shù)據(jù)訓(xùn)練并進行驗證,參數(shù)設(shè)置批大小為32,迭代輪次為40,學(xué)習(xí)率為0.001,采用Adam優(yōu)化器,實驗結(jié)果如表6所示??梢钥闯?,Triplet-Loss作為損失函數(shù)時準(zhǔn)確率得到較好的提高,并且羊整體圖像識別效果優(yōu)于僅靠臉部進行學(xué)習(xí)的效果。實驗結(jié)果表明,進行高相似度奶山羊個體識別時更換損失函數(shù)是必要的,但是準(zhǔn)確率依然沒有達到理想精度。
表6 Triplet-Loss為損失函數(shù)時采用遷移學(xué)習(xí)的實驗結(jié)果Table 6 Experimental results of transfer learning with Triplet-Loss as loss function /%
將CrossEntropy-Loss作為損失函數(shù),采用網(wǎng)絡(luò)結(jié)構(gòu)ResNet18分別以SGD與Adam為學(xué)習(xí)率優(yōu)化策略對羊整體識別進行對比。隨機梯度下降(SGD)優(yōu)化器為學(xué)習(xí)率優(yōu)化策略的實驗參數(shù)批大小為32,迭代輪次為11,學(xué)習(xí)率為0.005,動量設(shè)置為0.9,隨機種子的值為1,隨機將輸入張量中部分元素設(shè)置為0的概率為0.2;自適應(yīng)矩估計(Adam)優(yōu)化器算法為學(xué)習(xí)率優(yōu)化策略的實驗參數(shù)批大小為32,迭代輪次為11,學(xué)習(xí)率為0.005,隨機種子的值為1,隨機將輸入張量中部分元素設(shè)置為0的概率為0.2,用于計算梯度以及梯度平方的運行平均值的系數(shù)為(0.9,0.99)。實驗結(jié)果如表7所示,可以看出,CrossEntropy-Loss作為損失函數(shù)時準(zhǔn)確率相比三元組損失函數(shù)得到明顯提高。實驗結(jié)果表明,調(diào)整損失函數(shù)可以達到較高的準(zhǔn)確率。但Triplet-Loss作為損失函數(shù)在一定程度上對本項目數(shù)據(jù)集具有不可忽略的積極作用,所以考慮將兩個函數(shù)作為聯(lián)合損失函數(shù)。
表7 CrossEntropy-Loss為損失函數(shù)時不同優(yōu)化策略的識別結(jié)果Table 7 Experimental results of different optimization strategies under Crossentropy-Loss function
將Triplet-Loss和CrossEntropy-Loss兩種損失函數(shù)結(jié)合作為損失函數(shù),分別利用網(wǎng)絡(luò)結(jié)構(gòu)Resnet18和Resnet50,以SGD、Adam和RMSprop為學(xué)習(xí)率優(yōu)化策略對羊整體識別進行對比。SGD為學(xué)習(xí)率優(yōu)化策略的實驗參數(shù)批大小為32,迭代輪次為11,學(xué)習(xí)率為0.005,動量因子為0.9,隨機種子的值為1,隨機將輸入張量中部分元素設(shè)置為0的概率為0.2;自適應(yīng)矩估計(Adam)優(yōu)化器算法為學(xué)習(xí)率優(yōu)化策略的實驗參數(shù)批大小為32,迭代輪次為11,學(xué)習(xí)率為0.001,隨機種子的值為1,隨機將輸入張量中部分元素設(shè)置為0的概率為0.2,用于計算梯度以及梯度平方的運行平均值的系數(shù)為(0.9,0.99);前向均方根梯度下降(RMSprop)優(yōu)化器算法為學(xué)習(xí)率優(yōu)化策略的實驗參數(shù)批大小為32,迭代輪次為11,學(xué)習(xí)率為0.000 5,動量因子為0.9,隨機種子的值為1,隨機將輸入張量中部分元素設(shè)置為0的概率為0.2,平滑常數(shù)為0.9。實驗結(jié)果如表8所示,可以看出,采用聯(lián)合損失函數(shù)為損失函數(shù),以Adam為學(xué)習(xí)率優(yōu)化策略,殘差神經(jīng)網(wǎng)絡(luò)ResNet18取得了最好的效果。
表8 不同網(wǎng)絡(luò)結(jié)構(gòu)采用聯(lián)合損失函數(shù)在不同優(yōu)化策略的羊整體識別實驗結(jié)果Table 8 Experimental results of sheep body recognition with different optimization strategies and different network structures under joint loss function
采用聯(lián)合損失函數(shù)作為損失函數(shù),參數(shù)λ和η取不同值時ResNet18網(wǎng)絡(luò)的實驗結(jié)果如圖9所示。實驗參數(shù)批大小為32,迭代輪次為11,學(xué)習(xí)率為0.001,自適應(yīng)矩估計(Adam)優(yōu)化器算法為學(xué)習(xí)率優(yōu)化策略,隨機種子的值為1,隨機將輸入張量中部分元素設(shè)置為0的概率為0.2,用于計算梯度以及梯度平方的運行平均值的系數(shù)為(0.9,0.99)。從圖9可以看出,當(dāng)參數(shù)λ=0.5,η=0.5時,薩能奶山羊數(shù)據(jù)集的訓(xùn)練與測試效果最佳。
為了實現(xiàn)高相似度奶山羊個體識別,本文提出了一種基于改進的Triplet-Loss方法,通過實驗驗證了方法的有效性和可行性,得到以下結(jié)論:1)通過孿生網(wǎng)絡(luò)與YOLOv3網(wǎng)絡(luò)測試可知奶山羊臉部相似度高,所以需要更多的特征完成識別,故選擇完整奶山羊個體圖像而非奶山羊的臉部圖像。2)本研究在Triplet-Loss的hard-batch組合問題上,利用YOLOv3和孿生網(wǎng)絡(luò)驗證了奶山羊個體之間不僅面部圖像的相似度高的問題,也證明了其本身物種具有高相似度的特點,從而不需要再單獨制作hard-batch。3)基于Triplet-Loss與CrossEntropy-Loss聯(lián)合優(yōu)化的方法,使網(wǎng)絡(luò)在多個函數(shù)聯(lián)合優(yōu)化下增強了表征能力。4)相較于傳統(tǒng)方法,本文方法選擇了無接觸、低成本、高收益和無傷害的深度學(xué)習(xí)方法,優(yōu)于傳統(tǒng)的動物個體標(biāo)記識別辦法。5)本研究中的奶山羊圖像采用SSD進行圖像處理,從而提高數(shù)據(jù)集的質(zhì)量,盡可能縮小無關(guān)背景的影響。6)本文方法仍存在不足,如僅利用相關(guān)網(wǎng)絡(luò)實現(xiàn)單個奶山羊的個體識別。今后將考慮引入Mask R-CNN (region convolutional neural network)等網(wǎng)絡(luò)結(jié)構(gòu)對羊群進行掩膜處理,實現(xiàn)多個奶山羊的個體識別。
表9 參數(shù)λ、η取不同值時ResNet18模型的實驗結(jié)果Table 9 Parameters λ and η are the experimental results with different value