但唐朋 柴永磊 姚祉含
【摘 要】人工智能領域的發(fā)展拖動著社會的進步,而作為人工智能領域的重要部分,圖像識別近年來受到了學術界與工業(yè)界的廣泛關注。圖像識別中的目標檢測技術能夠幫助人們實現(xiàn)自動駕駛、無人機導航、圖像檢索等應用。而YOLO模型的提出極大地提高了目標檢測任務的效率,使得我們可以在本地搭建起系統(tǒng)來完成實時目標檢測。本文從YOLO模型出發(fā),對比了基于YOLO模型的深度學習方法與傳統(tǒng)目標檢測算法的差異,并利用YOLO模型進行編程在桌面端實現(xiàn)了目標檢測。
【關鍵詞】目標檢測;YOLO模型;應用實現(xiàn)
中圖分類號: TP391.41;TP183 文獻標識碼: A 文章編號: 2095-2457(2019)21-0118-002
DOI:10.19694/j.cnki.issn2095-2457.2019.21.053
1 背景與相關工作
視覺是人類的重要感官之一,有超過80%的信息是由視覺反饋的,所以機器視覺亦成為了當下的熱門研究領域,值得我們研究。要想建立真正意義上的智慧城市,我們就需要對城市中可能發(fā)生的各種狀況進行實時追蹤與檢測。交通事故、車流疏導、危險警告,智能化的城市一定會配有智能化的城市安防預警系統(tǒng),而目標檢測正是其中的關鍵。
國內外有不少學者在研究目標檢測問題,而且已經取得了一系列成果。比如R-CNN[1]、SPP-net、VGG[2]等識別網絡,這些網絡都能完成目標識別任務。但他們都基于區(qū)域提名法來進行圖像的切割和特征提取,很明顯這樣的效率是很低的。這是因為對于一張圖片,如果基于區(qū)域提名法來檢測物體,在定位的過程中我們需要對該圖片進行盡可能地切割,從空間角度來看我們會獲得數(shù)百或者數(shù)千倍大小的切割圖像,而且還需要利用卷積神經網絡對這些圖像進行學習,無疑在時間和空間上會有較大的浪費。而YOLO模型[3]則加快了目標檢測的整體速度。
2 傳統(tǒng)目標檢測模式與YOLO模型的差異
2.1 傳統(tǒng)目標識別模式
在傳統(tǒng)機器視覺領域,目標檢測是一個熱門的研究方向,基于傳統(tǒng)目標檢測方法某些特定對象的目標檢測有不錯的效果,例如人臉檢測以及行人檢測已經有較高的準確度而且在我們的生活中得到普及。但是,傳統(tǒng)的目標檢測難以在單次處理中完成對多個任意目標的事實檢測,這是因為與特定目標相比,傳統(tǒng)目標檢測算法對普通目標進行分析處理會占用較多系統(tǒng)資源,降低系統(tǒng)I/O效能,所以利用傳統(tǒng)目標檢測模式對普通目標進行識別的效果總是差強人意。
傳統(tǒng)目標檢測模式主要利用滑動窗口框架,主要包括以下三個步驟:
(1)利用不同尺寸的滑動窗口覆蓋圖片中某一部分區(qū)域作為候選計算區(qū);
(2)提取候選區(qū)域的視覺特征,如深度特征或者HOG特征;
(3)利用機器學習分類算法對特征進行學習建模,如SVM模型。
2.2 YOLO模型
在YOLO模型中,輸入的圖片覆蓋至大小為S×S的劃分網格,如果有某一個待測目標物體的中心落在該網格內,那么該網格就用來預測B這一目標的分類的可信度;同時每一個網格需要預測個邊界框以及這些邊界框的可信度。如下圖1所示,展示了YOLO模型預測是返回的相關參數(shù)。y代表整個返回域,其中包含了5個變量。它們分別是代表所檢測物體的中心絕對坐標位置(包含水平坐標x與豎直坐標y)、所檢測物體的寬度w和高度h。最后返回的是該區(qū)域內存在物體的可信度confidence。實際的檢測過程中,整張待測圖片會被分割為若干連續(xù)的區(qū)域并進行計算。實現(xiàn)整體的加速識別,最終只返回可信度confidence大于閾值的結果。與傳統(tǒng)目標檢測識別相比減小了不必要的運算,不需要對每一張圖重新計算,提高了效率。
3 應用軟件的實現(xiàn)
3.1 卷積操作
卷積操作或是卷積層,指的是使用卷積核對給定圖像進行特征提取和特征映射的一種操作方式,它廣泛地存在于人工神經網絡中。
卷積層完成的操作,可以認為是受局部感受野概念的啟發(fā)。與此相對應的是池化層,主要是為了降低數(shù)據維度;綜合起來說,人工神經網絡通過卷積來模擬特征區(qū)分,并且通過卷積的權值共享及池化,來降低網絡參數(shù)的數(shù)量級,最后通過傳統(tǒng)神經網絡完成分類等任務。
為什么一定要降低數(shù)量級和數(shù)據維度?因為對于一張圖片它可能存在10000×10000個像素。如果不降底維度,且采用全連接層運算的人工神經網絡不僅會增大參數(shù)的個數(shù)還會浪費了運算資源。與傳統(tǒng)機器學習需要更多的數(shù)據不同,在利用神經網絡完成目標檢測任務時,我們所依靠的不是100%的從圖片數(shù)據中獲得每一個像素的特征,而是從中提取出這張圖片的關鍵特征。所以我們要利用相關的降維技術來滿足我們的要求,使我們從原始圖像上獲得特征信息。
卷積操作是人工神經網絡中常見的數(shù)據壓縮方式,卷積過程可以理解為我們使用一個過濾器(卷積核)來過濾圖像的各個區(qū)域以得到各區(qū)域的特征值,實際訓練過程中卷積核的值是在學習過程中得到的。卷積操作涉及卷積核大小與步長(卷積核每一次移動的距離)的定義。
3.2 軟件展示
我們利用Python完成程序的編寫。在進入系統(tǒng)之后,我們會看到我們所設計的圖形界面,根據不同的功能需求,我們可以進入不一樣的子系統(tǒng)。下圖是我們進入系統(tǒng)軟件的主要界面。
實時目標檢測系統(tǒng)是我們的主要系統(tǒng),它能夠完成對視頻流的目標處理任務。如圖所示,我們的實時監(jiān)控系統(tǒng)完成了一段高速公路視頻的車輛檢測。不僅提取了車輛在視頻中所處的位置,還計算給出了整個道路中車輛的個個數(shù)。從軟件實際運行的結果來看,我們對于畫面中車輛的定位是準確的。從遠處到近處我們都能用范圍矩形定位該識別物體的位置和該物體類別的可信度。實際計算的過程中會存在許多背景噪聲,比如道路上的廣告牌、路燈等等,在傳統(tǒng)的目標識別研究中,一旦這些噪聲信息對我們的待測物體進行遮擋,程序可能就無法準確地進行目標檢測識別,而利用YOLO模型快速提取的車輛特征,只要被遮擋的部分不大于滿足識別的最低限度,我們還是可以將其準確識別的。從這一點來看,YOLO模型的準確程度也要優(yōu)于傳統(tǒng)目標檢測方法。
算法1主要幫助我們將經過FDNN網絡處理后的圖像進行輸出,形成視頻流來方便相關檢測人員的查看。
4 總結
本文介紹了深度學習中的YOLO模型,將該模型與傳統(tǒng)目標檢測算法進行了對比,并實際利用YOLO模型與深度學習理論完成了基本識別軟件的設計證明了YOLO模型的可靠,通過與其他相關成熟的神經網絡模型進行對比我們所采用的模型在Windows環(huán)境下有明顯的優(yōu)勢,而且對硬件要求較低,可以滿足日常生活中相關應用的需要。但是我們發(fā)現(xiàn),在實際軟件的運行過程中,如果有兩個待檢測物體過于靠近我們不能很好地將其區(qū)分。這說明我們軟件的準確度還有待提升,后期我們將著手改進YOLO模型,使其識別準確度更加精準。
【參考文獻】
[1]李曉光,付陳平,李曉莉,王章輝.面向多尺度目標檢測的改進Faster R-CNN算法[J].計算機輔助設計與圖形學學報,2019,31(07):1095-1101.
[2]陳毅,黃妙華,胡勝.基于改進VGG卷積神經網絡的前方車輛目標檢測[J].數(shù)字制造科學,2018,16(04):282-287.
[3]高軍,朱宏輝,Yi Lu Murphey.基于YOLO和RRN的運動目標跟蹤方法[J].計算機工程與設計,2019,40(07):2019-2025.