小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

計(jì)算機(jī)視覺(jué)——YOLO算法原理

 長(zhǎng)沙7喜 2022-07-22 發(fā)布于廣東

重磅干貨,第一時(shí)間送達(dá)

YOLO:You only look once.

圖片

YOLO算法基本原理

  1. 將一張圖片等分為S*S個(gè)區(qū)域
  2. 每一個(gè)區(qū)域負(fù)責(zé)檢測(cè),目標(biāo)對(duì)象的中心落在本區(qū)域內(nèi)的物體
  3. 每個(gè)預(yù)測(cè)到的物體會(huì)產(chǎn)生多個(gè)可能的邊界框
  4. 每個(gè)單元格會(huì)產(chǎn)生一個(gè)[有無(wú)對(duì)象Pc,x,y,w,h,class1,class2,classN]向量

初次看到這個(gè)算法的過(guò)程,會(huì)很疑惑,因?yàn)檫@個(gè)過(guò)程缺少了一些細(xì)節(jié)。
例如:如何檢測(cè)物體的中心?如何產(chǎn)生可能的邊界框?如何判斷邊預(yù)測(cè)的界框是否正確?讓我們看后面的內(nèi)容。

交并比(IoU)

交并比是一個(gè)評(píng)估邊界預(yù)測(cè)好壞的評(píng)估算法。
通常,當(dāng)IoU>=0.5,視為預(yù)測(cè)正確。

0.5的取值完全認(rèn)為,可以設(shè)置其他的,根據(jù)具體精度要求來(lái)決定。
如果預(yù)測(cè)結(jié)果和真實(shí)結(jié)果完全重合,IoU=1.

圖片

訓(xùn)練方法

首先讓我們來(lái)看這個(gè)網(wǎng)絡(luò)結(jié)構(gòu),圖片該結(jié)構(gòu)是一個(gè)常規(guī)的卷積網(wǎng)絡(luò)結(jié)構(gòu)。從網(wǎng)絡(luò)中可以得到,適用卷積核,按照卷積核大小的步長(zhǎng)進(jìn)行卷積,這樣就實(shí)現(xiàn)了把一個(gè)圖片分成多一個(gè)區(qū)域。大大減少了圖片的卷積次數(shù),但是也降低了精準(zhǔn)度(相比滑動(dòng)窗口檢測(cè)方法)。

然后再來(lái)看Loss函數(shù),圖片Loss函數(shù)由四部分組成:

  1. 對(duì)象存在誤差
  2. 位置誤差
  3. 邊框大小誤差
  4. 類(lèi)別分類(lèi)誤差

的意思指,當(dāng)沒(méi)有對(duì)象時(shí)(no object)為1,否則為0.

非最大值抑制

如何檢測(cè)到物體的中心?
當(dāng)很多方框中都有要檢測(cè)的目標(biāo)的時(shí)候,
這些方框會(huì)說(shuō),嘿!我的區(qū)域里面有你要的對(duì)象!
那么這個(gè)時(shí)候,到底哪個(gè)方框才是物體的中心呢?
也確實(shí)沒(méi)辦法知道,所以就讓這些方框都進(jìn)行檢測(cè)這個(gè)物體。
那么就會(huì)得到一個(gè)物體,被多個(gè)方框所框住。

通過(guò)非最大值抑制算法可以實(shí)現(xiàn),確保圖片中的每一個(gè)物體,只被一個(gè)方框給框住,而不會(huì)出現(xiàn)同一個(gè)物體上出現(xiàn)多個(gè)方框。

具體的過(guò)程:
有無(wú)對(duì)象(Pc),在'算法原理'中提到

  1. 通過(guò)YOLO算法進(jìn)行預(yù)測(cè)
  2. 有無(wú)對(duì)象(Pc)<0.6(或者其他值)的結(jié)果去除
  3. 對(duì)剩下的結(jié)果進(jìn)行以下循環(huán):
    1. 找到Pc最大的一個(gè)數(shù)據(jù),這個(gè)就是最終要的結(jié)果
    2. 通過(guò)計(jì)算其他產(chǎn)生的邊界框Pc最大的數(shù)據(jù)的邊界框進(jìn)行IoU計(jì)算,去除IoU>=0.5的其他邊界框。
    3. 直到?jīng)]有新的最終結(jié)果的產(chǎn)生

通過(guò)這個(gè)循環(huán),我們最終就會(huì)得到,確保每一個(gè)物體只有一個(gè)邊界框,且這個(gè)邊界框是可能性最大的。

在實(shí)際操作中,對(duì)于多個(gè)類(lèi)型的物體,例如汽車(chē),人,自行車(chē)等
應(yīng)該對(duì)這三種類(lèi)型進(jìn)行三次的獨(dú)立非最大值抑制
因?yàn)槿绻黄疬M(jìn)行非最大值抑制的話(huà),當(dāng)人遮擋汽車(chē)的時(shí)候,人和車(chē)的結(jié)果就會(huì)不準(zhǔn)確。兩者的IoU比較大。

錨點(diǎn)框(Anchor Boxes)

為什么會(huì)產(chǎn)生這個(gè)算法呢?
在以下條件下:

  1. YOLO的區(qū)域數(shù)量比較小,每個(gè)區(qū)域比較大
  2. 人遮擋車(chē)

導(dǎo)致,人和車(chē)的中心點(diǎn)不巧剛好落到同一個(gè)區(qū)域內(nèi),
而每個(gè)區(qū)域只能輸出一個(gè)[有無(wú)對(duì)象Pc,x,y,w,h,class1,class2,classN]向量,那么CNN就會(huì)隨機(jī)輸出人或者車(chē)。

那么如何解決這個(gè)問(wèn)題呢?
人是豎著的,車(chē)是橫著的,那么我們可以讓每一個(gè)區(qū)域負(fù)責(zé)去識(shí)別兩次(由錨點(diǎn)框的數(shù)量決定)。
產(chǎn)生這樣的一個(gè)向量:
[有無(wú)對(duì)象Pc,x,y,w,h,class1,class2,classN,有無(wú)對(duì)象Pc,x,y,w,h,class1,class2,classN],即[2*n],你也可以把,這個(gè)拆成[2,n]。

將結(jié)果分成兩個(gè)區(qū)域,第一個(gè)是豎著的錨點(diǎn)框,第二個(gè)是橫著的錨點(diǎn)框。
存放的時(shí)候,計(jì)算w/h(寬高比),和錨點(diǎn)的寬高比進(jìn)行比較,相近即屬于該錨點(diǎn)框。如此就可以解決這個(gè)問(wèn)題了。

但是其實(shí)這個(gè)并不能解決3個(gè)物體重疊的情況, 也不能解決錨點(diǎn)框相似的情況的重疊,

不過(guò)值得慶幸的是,當(dāng)YOLO的區(qū)域足夠多的時(shí)候,發(fā)生重疊的概率比較小,如果不幸發(fā)生了,那就需要寫(xiě)一個(gè)選擇算法,選擇其中一個(gè)。

YOLO算法實(shí)現(xiàn)

借助YOLO算法,實(shí)現(xiàn)對(duì)水表的表盤(pán)目標(biāo)檢測(cè)。去Github下載

本文僅做學(xué)術(shù)分享,如有侵權(quán),請(qǐng)聯(lián)系刪文。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多