更藏卓瑪 安見才讓
摘? 要: 深度學習作為機器學習的一大重要分支,近年來在圖像處理與自然語言處理領域應用極為廣泛,隨著深度學習被應用于各行各業(yè),越來越多復雜的問題也隨之簡化。本文利用深度學習中的卷積神經(jīng)網(wǎng)絡模型進行研究,采用當下較為流行的YOLO框架,設計并實現(xiàn)了一套實用于青藏高原畜牧業(yè)動物圖像檢索的系統(tǒng),該系統(tǒng)可根據(jù)相應需求檢索單目標和多目標圖像,在多次實驗結果反饋中正確率較高,可在一定范圍內滿足實際應用。
關鍵詞: 深度學習;卷積神經(jīng)網(wǎng)絡;圖像檢索系統(tǒng)
中圖分類號: TP391.4 ???文獻標識碼: A??? DOI:10.3969/j.issn.1003-6970.2020.07.025
本文著錄格式:更藏卓瑪,安見才讓. 基于深度學習的青藏高原畜牧業(yè)多目標動物圖像檢索研究[J]. 軟件,2020,41(07):126-131
Research on Multi-objective Animal Image Retrieval of Animal Husbandryin Qinghai Tibet Plateau Based on Deep Learning
GENG ZANG Zhuo-ma, AN JIAN Cai-rang
(Qinghai Nationalities University, qinghai 810000)
【Abstract】: As an important branch of machine learning, deep learning has been widely used in the field of image processing and natural language processing in recent years. With the application of deep learning in all walks of life, more and more complex problems are also simplified. In this paper, the convolution neural network model in deep learning is used for research, and a set of practical animal image retrieval system is designed and implemented based on the current popular yo framework. The system can retrieve single target and multi-target images according to the corresponding needs. The accuracy of the system is high in multiple experimental results feedback, and it can meet the practical application in a certain range.
【Key words】: Deep learning; Convolutional neural network; Image retrieval system
0? 引言
目前,在國內有很多動物圖像檢索方面的研究,并取得了突破性的成績。但都是在研究基于養(yǎng)殖場環(huán)境下的動物圖像檢索,而且是單目標的圖像檢索。在養(yǎng)殖場環(huán)境下光線較穩(wěn)定,這有利于圖像特征提取。在國內目前很少有基于青藏高原自然環(huán)境下并且是多目標的圖像檢索的研究,青藏高原畜牧業(yè)動物圖像中動物對象的形式又是各種各樣的,所以需要研究出各種狀態(tài)下的動物圖像檢索方法具有一定的意義。
在深度學習中,卷積神經(jīng)網(wǎng)絡由于其相對簡單高效地提取特征方法使得其成為了目前最常用的一項技術。深度學習模型,特別是深度卷積神經(jīng)網(wǎng)絡模型,在不同的視覺任務比如圖像分類、注釋、檢索和目標檢測方面由于其強大的表達學習能力取得了巨大的成功。國內一些研究人員開始對基于CNNs的算法在圖像檢索方面進行了探索并取得了一定的成果。
國內學者高姍[1]等在文獻中提出了一種基于多目標區(qū)域的圖像檢索模型,并實現(xiàn)了一款高效的檢索算法。該方法先使用某些目標檢測算法找出并定位出圖像中的目標,接著使用卷積神經(jīng)網(wǎng)絡(CNN)提取到各個目標的像素特征,同時提出了一種新的多目標區(qū)域相似度測量方法使得多目標檢測。文獻所提出的新算法在PASCAL VOC2007[2]圖像庫中使用后平均查準率達到43.47%。在PASCAL VOC2012圖像庫中使用后平均查準率達到44.85%。相比于傳統(tǒng)算法在檢索的準確性上得到了一個大的提升。隨著發(fā)展,越來越多優(yōu)秀并且成熟的模型不斷的橫空出世,進入到大眾視野,比如模型準確率較高的R-CNN[3]系算法,適合處理實時問題的YOLO[4]算法等等,都可以處理多目標圖像的檢索問題,采用合適的框架進行訓練模型,經(jīng)過合適的調節(jié)參數(shù),模型可以達到很高的正確率,能夠應用到實際生產(chǎn)生活中。
基于以上所述,本文根據(jù)YOLO算法的計算速度快,誤檢測率低,準確率高等的優(yōu)勢特點,采用YOLO模型作為本文的網(wǎng)絡模型,并結合新提出的方法—G-Method,實現(xiàn)了一款較實用的青藏高原畜牧業(yè)多目標動物圖像檢索系統(tǒng),并檢索結果用藏文進行表示。
1 ?多目標區(qū)域檢索架構
為了完成多目標區(qū)域檢索系統(tǒng),需要將目標從目標源中提取并分割。提取目標源將使用YOLO模型,YOLO模型能夠給出目標的特征與相對位置,但是YOLO模型給出的特征與相對位置在一般情況下都是含有噪聲,也就是說目標特征與目標位置信息是存在偏差,為了降低這種偏差使得特征與目標位置更加精準,本文建立G-Method方法:
(1)在一般情況下,YOLO模型的精準度容易受到訓練樣本數(shù)量與質量的影響,為了降低最終輸出的噪聲,G-Method將從訓練樣本入手。首先將訓練樣本送入預訓練好的VGG模型,獲得樣本集比較好的Embedding 權重參數(shù)向量,即各個CNN層的參數(shù)向量。
(2)在CNN層訓練完畢之后,將在CNN層后加上一個K維的全連接層,記為G-Layer。G-Layer使用多分類損失函數(shù),并且以Softmax作為激活函數(shù)。當模型訓練完畢之后,將每一個樣本送入G-Layer模型,最終每一個訓練樣本將產(chǎn)生一個K維的Embedding向量,這個Embedding向量包含了訓練樣本的所有有效特征信息。
(3)將所有K維的Embedding向量存入Faiss數(shù)據(jù)庫中,等待與預測結果向量做內積,這里所有的向量均為單位向量。
(4)使用YOLO模型的輸出的分類與位置信息將原始輸入特征向量分割,分別送往Faiss中與其做內積,并設定內積結果閾值,如果結果內積值高于閾值,那么認為此結果可信,并且是與現(xiàn)有數(shù)據(jù)樣本非常接近的結果。
流程圖如下。
2 ?多目標區(qū)域定位
YOLO算法中的核心思想是會將輸入的圖像切割成S*S的網(wǎng)格(cell)。每一個網(wǎng)格都需要預測B個邊框值(bounding box),邊框值包括目標的中心坐標(x,y),它是相對于每個單元格來計算的,并且經(jīng)過了歸一化的處理,設該單元格的坐標為(xcol,yrow),該圖片的長、寬的坐標設為(xc,yc),則具體的計算公式為:
其中x為網(wǎng)格的橫坐標,y為網(wǎng)格的縱坐標。w為網(wǎng)格的寬度,h為網(wǎng)格的高度。邊框的長和寬(w,h),同理也是相對于整張圖片計算得到的,設預測的邊界框的寬和高分別表示為,即計算公式為:
同時每個邊界框需要預測出一個置信度(confidence score),置信度主要分為兩個部分,一是判斷網(wǎng)格中是否有目標值,二是邊框值的準確度,表示為:
公式中的IOU為非極大抑制輸出結果,若網(wǎng)格中含有目標值,則,此時置信度的值就為IOU的值,文章后續(xù)將會對IOU展開進行解釋說明。若網(wǎng)格中不包含目標值,則,此時置信度的值為0。綜上所述,每個網(wǎng)格都需要預測B*(4+1)個值,假設每個網(wǎng)格需要預測C個類別,則每個網(wǎng)格都對應一個S*S*(B*5+C)維的向量。
3 ?多目標特征提取
在計算置信區(qū)間時提出了IOU的概念,它反應的是邊界框與真實的框之間的重合程度,值越大,說明預測的位置更加接近于真實的位置,預測結果更加準確。IOU可以表示為:預測邊界框面積交集比上預測邊框面積的并集,即:
IOU=預測邊框的交集/預測邊框的并集??? (4)
IOU用于測量真實和預測之間的相關度,相關度的程度越高,該值越高,也就越能代表預測的目標區(qū)域越準確。
另外在多目標的預測過程中,YOLO算法中主要通過NMS(non maximum supperssion),非極大限制抑制來進行對結果的預測。它的核心思想是選擇高分輸出,與輸出重疊的目標去掉,并且不斷重復該過程。每個網(wǎng)格中,設ci為第i個邊界框分數(shù)(score)。即score=p(ci|obfect)?confidence。設置閾值為0.5,過濾掉置信度較低得分的邊界框,從而保證留下來的邊界框是置信度較高的預測區(qū)域。
詳細算法如下:
根據(jù)候選框的類別分類概率做一個排序:a1< a2 (1)首先標記最大概率矩形框a6是要保留下來的; (2)從最大概率矩形框a6作為開始,分別判斷a1-a5與a6的IOU是否大于某個預先設定的閾值,假設a2、a4與a6的IOU超過預先設定的閾值,那么就剔除a2、a4; (3)從剩下的矩形框a1、a3、a5中,選擇概率最大矩形框,將其標記為需要保留下來的矩形邊框,然后判讀a5與a1、a3的IOU,剔除超過閾值的矩形邊框。 4? 損失函數(shù)的計算 YOLO的損失函數(shù)包含三部分:位置誤差、置信度誤差和分類誤差。 損失函數(shù)的計算就是為了計算坐標的、置信度和分類結果這三個方面達到平衡,其中有寶蓋帽子符號為預測值,無帽子的為訓練標記值。表示物體落入格子i的第j個邊界框內。如果某個網(wǎng)格內沒有目標,就不對分類誤差進行反向傳播。 5? 檢索性能評價指標 實驗采用查準率-查全率曲線(Precision—Recall curve)和平均查準率(mean Average Precision, mAP)作為性能評價標準,公式如下: 其中TP是真正例,FP是假正例,FN是假負例。通過precision和recall的結果,就可以來計算AP,AP就是表示由precision和recall組成曲線的下方面積。 由于在一般情況下曲線下方的面積是無法計算的,所以VOC大賽采取11點[5]的原則: AP的計算是以11個點作為基礎進行代替計算,然后將11個點的AP進行一個平均即可得到mAP: 6 ?實驗與分析 基于YOLO本文采用了Darknet框架,它是由C語言和CUDA實現(xiàn)的,對GPU的利用率相比與CPU要高一些,并且易移植到其他平臺。其中yolo層和upsample層在YOLO-V1中使用。yolo層主要 指定邊界框等信息,計算當中的損失函數(shù)等。它自身具有很多優(yōu)點,相比于其他框架,易于安裝,沒有其他的依賴項,可以不用依賴任何庫。即使Darknet框架是有C語言程序編寫的,但也提供了友好的python接口,YOLO采用多尺度預測,每一種尺度預測2個邊界框,并且使用的是多個Logistic分類器代替softmax分類器,這樣準確率不會下降,從而提高模型的擬合程度。最后經(jīng)過YOLO模型訓練所獲得的分類與位置信息將原始輸入特征向量分割分別送往Faiss數(shù)據(jù)庫中。并結合本章新提出的G-Method流程,所產(chǎn)生的k維向量存入到Faiss數(shù)據(jù)庫中,與預測結果向量做內積,并設定內積結果閾值,如果結果內積值高于閾值,那么認為現(xiàn)有的數(shù)據(jù)樣本非常接近預測結果。 ①在有限的訓練成本和訓練時間的條件下,上圖是對于yak的多目標檢測,可以看到,不同位置的yak已經(jīng)能夠被檢測出來,yak后面的部分表示模型給出該類別下的置信度,由上到下分別為0.6,0.88,0.49。此時模型已經(jīng)不再像單。 目標搜索只能檢測出單一的物體,而是能夠識別途中所有的目標類別以及其對應的位置。圖中也有一個小yak并沒有被檢測出來,這是因為在給定的置信度與NMS下,這個位置的預測結果在候選區(qū)中被剔除了,因為對于應用方面需要的結果是可? 信的、可靠的,而不是為了求全而獲排列出所有的結果。 ②對于最下方的yak而言,可以發(fā)現(xiàn)雖然這個對象最大,但是它的姿勢或者說像素點的排列并沒有在訓練樣本中大量的出現(xiàn),從而導致置信度偏低,可以揣測,模型只“看到了”耗牛角(因為在單目標中,耗牛角也是模型學習到的一部分內容),導致模型可以相信這個地方的類別是耗牛,但是不愿意給出較高的置信度,因為耗牛身體并不是訓練集中常常出現(xiàn)的像素排列。圖3為牦牛多目標檢索結果。 圖4檢測目標為sheep,在sheep的檢測過程中,大部分的sheep已經(jīng)被檢測出來,但是可以發(fā)現(xiàn)檢測結果中出現(xiàn)了一個錯誤的目標,即右側將sheep識別為yak,但錯誤目標對象極度模糊,也就是使用肉眼觀察都需要相對仔細才能觀察到。而模型卻能將位置精確的找到,將類別識別錯誤,并且置信度也比較低。這說明模型在一定程度上是比肉眼初步觀察更加優(yōu)秀。對于檢測目標的前面兩個sheep而言,置信度都相對比較低,這是因為: 第一,受到了圖片分辨率的影響,由于低分辨率導致像素排列不緊密,模型無法較好的預測像素排列結果。 第二,依然和yak的檢測結果類似,模型實際上只能夠識別sheep的臉部區(qū)域,無法通過其他卷積層學得的身體相關部分給出更加高的置信度值。 上圖為horse的檢測結果,在檢測的結果中可以發(fā)現(xiàn),雖然目標是horse但是模型也檢測出了yak。 實際上在更一般的情況下,多目標檢測更多的用于一張圖片中含有多個不同的類,需要找出各個類別以及相應的位置,那么下面來看看混合型的情況。 (4)混合型(Mixture) 上圖顯示的就是在一般情況下的檢索,檢索的目標對象基本正確,其中可以發(fā)現(xiàn)檢測過程中有2個誤差。分別是將sheep識別為yak,以及將sheep識別為horse。但是仔細觀察可以發(fā)現(xiàn),雖然將類別識別錯誤,但是識別的位置卻是正確的。 (5)檢索性能分析 本章實驗在圖像數(shù)據(jù)集中隨機選擇了3000幅圖像作為查詢圖像,檢索的平均查準率如表1所示。 表1可得,閾值為0.5時,yak的Map是最高的,但是不管是哪一個類,隨著閾值的增大查準率就降低了。雖然更高的閾值表示更加精準的輸出,那么有些結果雖然是正確的,但是由于不滿足精度需求也會過濾掉。 圖9、圖10和圖11分別展示了模型在三個類的圖像數(shù)據(jù)集上的PR曲線圖,從圖中可以看到,模型在yak類數(shù)據(jù)集上的查準率明顯優(yōu)于其他兩種數(shù)據(jù)集上查準率。 7 ?總結 本文為畜牧業(yè)動物圖像檢索建立了一個基于深度學習的網(wǎng)頁端系統(tǒng)。利用卷積神經(jīng)網(wǎng)絡,單目標圖像檢索,多目標圖像檢索等基礎理論,構造了一個由網(wǎng)頁端可以實現(xiàn)對畜牧業(yè)動物進行分類預測的圖像檢索系統(tǒng),無論是對簡單的圖像目標還是對于繁瑣目標的圖像,模型都可以以較高的準確率來判斷出圖像中目標的類別,并給出準確度。對于較小目標的圖像,模型依舊存在誤判,但并不影響實際 應用。采用的YOLO模型框架在實現(xiàn)的過程中表現(xiàn)的效果符合預期想要達到的目標,經(jīng)過相關參數(shù)的調試后,最終確定為本文圖像檢索系統(tǒng)中采用的模型。實驗結果證明,采用YOLO框架的模型擬合程度較高。 參考文獻
高珊, 李秀華, 張峰, 宋立明. 基于多目標區(qū)域的圖像檢索[J]. 電視技術, 2018, 42(4): 55-61.
M. Everingham, L. Van Gool, C. K. I. williams, J. Winn, and A. Zis-Serman. The PASCAL Visual Object Classes Challenge[J]. Int J comput vis, 2010, 88: 303-338.
Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[J]. Computer Vision and Pattern Recognition, 2013, 1(April): 580-587.
Joseph Redmon, Santosh Divvala, Ross Girshick. You Only Look Once: Unified, Real-Time Object Detection[J]. Computer Vision and Pattern Recognition, 2016.
葉虎, 趙一凡. 最完整的檢測模型評估指標mAP計算指南[DB/OL]. https://blog.csdn. net/l7H9JA4/article/details/80745028. 2018, 06, 19.
王曉華. OpenCV+TensorFlow深度學習與計算機視覺實戰(zhàn)[M]. 清華大學出版社, 2019, 2月, 第-版.
朱嘯天. 基于深度學習的動物圖像檢索算法研究[D]. 學位論文, 沈陽理工大學, 2015.
猿輔導研究團隊. 深度學習核心技術與實踐[M]. 北京:電子工業(yè)出版社, 2018.
李釗, 蘆葦, 邢薇薇. CNN視覺特征的圖像檢索[J]. 北京郵電大學學報, 2015, 38(b06): 103-106.
海林鵬, 文運平. 基于圖像分塊目標區(qū)域的檢索技術研究[J]. 河南理工大學學報(自然科學版), 2013, 32(1): 73-75.
侯貴洋, 趙桂杰, 王璐瑤. 草莓采摘機器人圖像識別系統(tǒng)研究[J]. 軟件, 2018, 39(6): 184-188.
張傳棟, 徐漢飛, 陳弘毅, 等. 基于超紅圖像與輪廓曲率的蘋果目標識別與定位方法研究[J]. 軟件, 2015, 36(8): 30-35.
王聰興, 劉寶亮. 一種基于圖像處理的表面故障裂紋檢測系統(tǒng)[J]. 軟件, 2018, 39(5): 144-150.
彭云聰, 任心晴, 石浩森. 基于核加權KNN和多目標優(yōu)化的眾包平臺定價系統(tǒng)設計[J]. 軟件, 2018, 39(6): 150-154.
王浩, 楊德宏, 滿亞洲. 基于 GIS 技術的動物物種管理及保護[J]. 軟件, 2018, 39(12): 111-115.