国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法

這篇具有很好參考價值的文章主要介紹了OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

2012年,隨著深度學習技術的不斷突破,開始興起基于深度學習的目標檢測算法的研究浪潮。

2014年,Girshick等人首次采用深度神經(jīng)網(wǎng)絡實現(xiàn)目標檢測,設計出R-CNN網(wǎng)絡結構,實驗結果表明,在檢測任務中性能比DPM算法優(yōu)越。同時,何愷明等人針對卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)計算復雜度高的問題,引入空間金字塔池化層,設計出基于SPP-Net的目標檢測網(wǎng)絡,不但提高了目標檢測速度,而且支持任意尺寸大小的圖像輸入。

2015年,Girshick在R-CNN目標檢測網(wǎng)絡的基礎上針對候選框特征重復提取進行優(yōu)化,提出了Fast R-CNN(Fast Regions with CNN,F(xiàn)ast R-CNN)網(wǎng)絡結構,實現(xiàn)了端對端式的訓練,并且所有網(wǎng)絡層的參數(shù)在不斷更新。任少卿和何愷明等人采用區(qū)域建議網(wǎng)絡(Region Proposal Network,RPN)和Fast R-CNN網(wǎng)絡結合的方式,設計出新的目標檢測網(wǎng)絡,該網(wǎng)絡使得目標檢測精度和速度得到很大的提升。

傳統(tǒng)的目標檢測算法的基本思路一般都是先對圖像進行預處理,然后使用滑動窗口策略在整個圖像均勻間隔的區(qū)域上提取特征,最后利用機器學習中的分類器判斷是否存在目標,比如之前的DMP系統(tǒng)不但檢測流程復雜,而且檢測過程中卷積計算量較大,無法滿足現(xiàn)實生活中檢測的實時性。對于該算法的不足,Joseph Redmon等人提出了YOLO算法,主要利用的是將目標檢測任務的問題轉(zhuǎn)換為回歸問題,其設計的網(wǎng)絡只要進行一次計算,就能直接得到完整圖像中目標的邊界框和類別概率。同時,該網(wǎng)絡結構單一,實現(xiàn)端對端式的訓練。因此,YOLO檢測算法的檢測速度可滿足實際的檢測需求。下面我們從檢測流程、網(wǎng)絡架構、網(wǎng)絡訓練模型3個角度來分析YOLO算法。

基于YOLO算法的目標檢測流程大致可分為3個步驟:

(1)把待檢測的圖像調(diào)整大小為448×448。

(2)將圖像放到CNN輸出待檢測目標邊界框的坐標信息和類別概率。

(3)使用非極大抑制算法去除冗余的標注框,篩選出最終的目標檢測結果。

OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法,OpenCV,opencv,深度學習,目標檢測

1.YOLO算法檢測流程

YOLO算法的整體檢測思路為:首先將待檢測圖像劃分為S×S個網(wǎng)格,然后對每個網(wǎng)格都預測B個邊界框(bounding boxes)和這些邊界框所對應的自信得分(confidence scores)。YOLO算法具體的檢測示意圖如圖所示。

OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法,OpenCV,opencv,深度學習,目標檢測

此時,若有目標的中心點落在某個格子單元中,則該格子將負責檢測這個目標,而confidence score負責檢測該網(wǎng)絡模型的單元格中是否有目標,以及對預測位置的精確度。當單元格中沒有目標時,confidence score為0,如果存在目標,則為預測的boxes與真實的boxes之間的IoU值。
OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法,OpenCV,opencv,深度學習,目標檢測

每個邊界框都包含了5個預測值:x,y,w,h,confidence。其中,坐標(x,y)代表邊界框的中心坐標,與網(wǎng)格單元對齊(相當于當前網(wǎng)格單元的偏移值),使得范圍變成[0,1];坐標(w,h)代表預測的邊框相對于整個圖像的高度和寬度的比例。每個網(wǎng)格還要預測一個類別信息,記為C類,則C個類別條件概率值為Pr( | )。在測試階段,每個邊界框的具體類別的自信得分計算公式如下:

OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法,OpenCV,opencv,深度學習,目標檢測

上式得到的結果中既包含了邊界框中預測類別的概率信息,也反映了邊界框中是否含有目標和邊界框位置的精確度。

2.YOLO算法網(wǎng)絡架構

通過上述分析YOLO的檢測流程可以看出,YOLO算法將格子數(shù)S設置為7×7的大小,網(wǎng)絡方面采用GooleNet的思想,其中包含了24個卷積層和2個全連接層,如圖所示。卷積層主要用來提取特征,全連接層主要用來預測類別概率和坐標,與GooleNet的不同之處在于YOLO檢測網(wǎng)絡沒有采用Inception結構,而采用1×1和3×3的卷積層代替了Inception。從上述網(wǎng)絡檢測流程的分析可以看出,每個單元需要預測(B×5+C)值,假設將輸入圖像劃分為S×S個網(wǎng)格單元,那么最終的預測值為S×S×(B×5+C)大小的張量,對于PASCAL VOC數(shù)據(jù),最終的預測結果為7×7×30大小的張量。

OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法,OpenCV,opencv,深度學習,目標檢測
可以看出,網(wǎng)絡的最終輸出為7×7×30大小的張量,這和前面的分析一致。該張量所代表的具體含義如圖所示。對于每一個單元格,最后20個元素代表類別概率值,其中前面10個中有兩個是邊界框置信度,兩者的乘積就是類別置信度,剩下8個元素代表邊界框的(x,y,w,h)。

OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法,OpenCV,opencv,深度學習,目標檢測

3.網(wǎng)絡訓練模型

3.1 訓練策略

在訓練之前,先在ImageNet上進行預訓練,其預訓練的分類模型采用圖15-12中前20個卷積層,然后添加一個average-pool層和全連接層。預訓練之后,在預訓練得到的20層卷積層之上加上隨機初始化的4個卷積層和2個全連接層。由于檢測任務一般需要更高清的圖片,因此將網(wǎng)絡的輸入從224×224增加到448×448。整個網(wǎng)絡的流程如圖所示。

OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法,OpenCV,opencv,深度學習,目標檢測
YOLO算法開始并沒有像Goole Net那樣直接構建24層的卷積網(wǎng)絡,而是構建20層的卷積網(wǎng)絡,然后在ImageNet數(shù)據(jù)集上預訓練了前面的20層卷積層。Ren等人采用將卷積層和全連接層添加到預訓練網(wǎng)絡中的策略,進一步提高了網(wǎng)絡的性能。因此,YOLO采用基于該原理在初始的20層卷積網(wǎng)絡基礎上,隨機初始化后面的4層卷積層和2層全連接層。由于在檢測中需要更詳細的視覺信息,因此YOLO將網(wǎng)絡模型的輸入圖像大小由224×224調(diào)整為448×448。網(wǎng)絡最終預測輸出結果的邊界框的信息是(x,y,w,h),但是坐標(x,y)用對應網(wǎng)格的偏移量表示,然后歸一化到(0,1)之間,坐標(w,h)用圖像width和height歸一化到(0,1)之間。由于在訓練的過程中一般的激活函數(shù)Sigmoid會出現(xiàn)梯度消失、梯度爆炸的現(xiàn)象,因此YOLO采用LeakyReLU線性激活函數(shù)作為激活函數(shù),其函數(shù)表達式如下:

OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法,OpenCV,opencv,深度學習,目標檢測

3.2 代價函數(shù)的設定

YOLO算法的最終輸出結果包含邊界框的坐標、置信度得分、類別概率值3個部分,代價函數(shù)的設計目標是讓這三方面達到很好的平衡。剛開始,YOLO簡單地采用平方和誤差作為代價函數(shù),通過梯度下降法很容易達到最優(yōu)化,但是這種代價函數(shù)的設計最終導致的結果是模型的擬合能力很差,主要原因在于代價函數(shù)的設定不合適,同時造成的不足之處有以下兩個方面:

(1)8維的坐標誤差和20維的類別概率誤差,采用平方差誤差時,兩者視為同等重要,這顯然是不合理的。

(2)在一幅圖像中,如果一個網(wǎng)絡中沒有目標,就將這些網(wǎng)絡中的格子單元的置信度設置為0。相比于較少的有目標的網(wǎng)絡,這種方法是不可取的,會導致網(wǎng)絡不穩(wěn)定甚至不收斂?;谏鲜龅牟蛔悖琘OLO進一步改進代價函數(shù),更重視8維坐標預測的誤差損失,對其賦予更大的權值,同時減小不包含目標的單元格的置信度預測的權值。對于包含目標的單元格的置信度和類別概率預測的誤差損失保持不變,同時將其權值設定為1。平方和誤差同時對大邊界框和小邊界框中的誤差采用相同的權值,改進后小邊界框中的微小偏差顯得尤為重要。因此,網(wǎng)絡的代價函數(shù)將原來的w、h分別用[插圖]和[插圖]代替,這樣做的好處在于進一步降低了敏感度之間的差異。最終,代價函數(shù)設計如下:

OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法,OpenCV,opencv,深度學習,目標檢測

其中,第一項是邊界框中心坐標的誤差項,[插圖]用于判斷第i個網(wǎng)格中第j個邊界框是否檢測該目標,λcoord表示邊界框坐標誤差損失的權值,[插圖]用于判斷目標是否出現(xiàn)在網(wǎng)格中,λnoobj表示不包含目標邊界框的置信度預測的誤差權值。在上述代價函數(shù)中,只有當某個網(wǎng)絡中有目標時才對預測誤差進行懲罰,即增加權重系數(shù)。

總之,YOLO算法的缺點有兩個方面:一方面,難以檢測小目標,導致對視頻中運動目標的檢測出現(xiàn)漏檢的現(xiàn)象;另一方面,對目標的定位不準,檢測到的目標與實際目標之間存在偏差。文章來源地址http://www.zghlxwxcb.cn/news/detail-644679.html

到了這里,關于OpenCV實例(九)基于深度學習的運動目標檢測(一)YOLO運動目標檢測算法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包