0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

目標檢測算法YOLO的發(fā)展史和原理

jt_rfid5 ? 來源:新機器視覺 ? 2023-11-18 10:33 ? 次閱讀

01YOLO發(fā)展史

大家或許知道,首字母縮寫YOLO在英文語境下較為流行的含義,即You Only Live Once,你只能活一次。我們今天要介紹的YOLO卻有著與前者不一樣的含義。在算法的世界中,YOLO寓意You Only Look Once,你只需要看一眼——這不失為一種來自開發(fā)者的羅曼蒂克。

在講解YOLO的算法原理之前,先簡要介紹YOLO的發(fā)展史。YOLO開創(chuàng)了一階段檢測算法的先河。它將目標分類和定位用一個神經網絡統(tǒng)一起來,實現(xiàn)了端到端的目標檢測。

YOLO檢測系統(tǒng)

YOLO最初于2016年由華盛頓大學的博士研究生Joseph Redmon提出。Joseph Redmon的這篇提出YOLO的論文You Only Look Once: Unified, Real-Time Object Detection也發(fā)表在了CVPR 2016上,并獲得了CVPR 2016的最佳人氣獎。自此,Joseph Redmon開始不斷推出YOLO的新版本,YOLO也在不斷的迭代中越來越強。

2017年,Joseph Redmon與導師合著發(fā)表了論文YOLO9000: Better, Faster, Stronger,這篇論文也標志著YOLO v2的誕生。該論文獲得了CVPR 2017最佳論文榮譽提名獎。YOLO v2能夠檢測9000中不同的對象,因此也被稱為YOLO9000。

2018年,Joseph Redmon又提出了YOLO新版本YOLO v3,這一版本的YOLO在保持原有算法的速度優(yōu)勢的同時,提升了模型的精度,補齊了小目標檢測以及重疊遮擋目標識別的短板。雖然,Joseph Redmon在2020年出于個人對職業(yè)倫理恪守的原因終止了CV研究,但之后便出現(xiàn)新的YOLO維護者繼續(xù)接手YOLO的進一步研發(fā)項目。

02YOLO算法原理

YOLO的核心理念是:把目標檢測問題轉換為直接從圖像中提取邊界框和類別概率的單回歸問題,即一次就可檢測出目標的類別和位置。正因如此,YOLO模型的運行速度非常快 ,從而可以滿足實時性應用要求。

YOLO模型做統(tǒng)一檢測(unified detection)的流程為:

YOLO模型

首先,把輸入圖像分成S×S個小格子。每個格子預測N個邊界框,每個邊界框用五個預測值表示:x,y,w,h和confidence(置信度)。其中,(x,y)是邊界框的中心坐標,w和h是邊界框的寬度和高度,這四個值都被歸一化到[0,1]區(qū)間以便于訓練。

置信度會對當前邊界框中存在目標的可能性Pr(Object)以及預測框與真實框的交并比進行綜合考慮,即

20b5ef3a-8535-11ee-939d-92fbcf53809c.png

其中

20cb159a-8535-11ee-939d-92fbcf53809c.png

根據(jù)以上定義,若一個框內沒有物體,則confidence = 0,反之則confidence等于交并比。我們在訓練時可以計算出每一個框的置信度。

其次,我們要預測每個格子分別屬于每種目標類別的條件概率(|),其中 = 0,1,…,C,其中C是數(shù)據(jù)集中目標類別的數(shù)量。

在測試時,屬于某個格子的N個邊界框共享C個類別的條件概率,則每個邊界框屬于某個目標類別的置信度(類別置信度)為

20d9a5d8-8535-11ee-939d-92fbcf53809c.png

最后,我們會輸出一個維度為S×S×(N×5+C) 的張量(tensor)。在此需要提示的是,5代表的是在第一步中對應的五個預測值,且因為每個格子的N個邊界框是共享C個類別的條件概率的,因此在張量維度大小的計算公式中,我們在N×5與C之間采用的運算是加法而非乘法。

YOLO使用PASCALVOC檢測數(shù)據(jù)集。YOLO將圖像分為7×7=49個小格子,其中,每個格子里有兩個邊界框,即S=7,N=2。因為VOC數(shù)據(jù)集中有20種類別,因此C=20。最終的預測結果是一個7×7×30的張量。

YOLO借鑒了GoogLeNet的設計思想,其網絡結構中包括24個卷積層和2個全連接層。YOLO沒有使用Inception模塊,而是直接用1×1卷積層及隨后的3×3卷積層。YOLO的最終輸出是7×7×30的張量。

20ec7afa-8535-11ee-939d-92fbcf53809c.png

YOLO網絡結構

需要強調的是,上圖中出現(xiàn)在數(shù)字右下角的“-s-2”的下標代表該卷積層或池化層的stride(步距)為2。

此外,YOLO使用Leaky ReLU作為激活函數(shù),即

20ff121e-8535-11ee-939d-92fbcf53809c.png

總言之,YOLO算法通過把“統(tǒng)一檢測候選框與類別概率”的思想和 “用一個卷積神經網絡來實現(xiàn)”的操作結合,從而開創(chuàng)了一階段目標檢測算法。

03YOLO算法的閃光點與局限性

相對于傳統(tǒng)目標檢測算法而言, 使用統(tǒng)一檢測模型的YOLO的閃光點在于:

其一,檢測速度非???。YOLO將目標檢測重建為單一回歸問題從而對輸入圖像直接處理。此外,還同時輸出邊界框坐標和分類概率,而且每張圖像只預測98個邊界框。因此,YOLO的檢測速度非常快。其中,YOLO在Titan X GPU上的檢測速度能達到45幀/秒,F(xiàn)ast YOLO的檢測速度則可以達到155幀/秒。

其二,背景誤判少。以往基于滑動窗口或候選區(qū)域提取的目標檢測算法只能看到圖像的局部信息,因此會把圖像背景誤認為檢測目標。而YOLO在訓練和測試時每個格子都可以看到全局信息,因此不容易把圖像背景預測為目標。

其三,泛化性更好。YOLO能夠學習到目標的泛化表示,從而能夠遷移到其他領域。在泛化能力上,YOLO的性能遠優(yōu)于DPM、R-CNN等。

但除了以上閃光點外,YOLO也存在著局限性。雖然YOLO的目標檢測速度很快,但其預測精度不是很高。究其原因,主要是由于——

其一,YOLO的每個格子只能預測兩個邊界框和一種目標的分類。YOLO將一張圖像均分為49個格子,若在同一單元格內存在多個物體的中心,那么該單元格內只能預測出一個類別的物體,并丟掉其他的物體,從而降低了預測精度。

其二,損失函數(shù)的設計過于簡單。雖然邊界框的坐標和分類表征的內容不同,但YOLO都用其均方誤差作為損失函數(shù)。

其三,YOLO直接預測邊界框的坐標位置,這會導致模型不易訓練。

不過,以上在YOLO原版中出現(xiàn)的問題在后來的YOLO v2、YOLO v3等版本中都逐步得到了改進。

來源:新機器視覺

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

原文標題:【光電智造】目標檢測算法YOLO的發(fā)展史及優(yōu)勢

文章出處:【微信號:今日光電,微信公眾號:今日光電】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    恒壓變壓器的發(fā)展史

    本電子書匯集了各類恒壓變壓器原理、產品以及它的的發(fā)展史,它的各項特性在電子行業(yè)得到普遍認可和廣泛使用。清版主刪除,以為附件超大了不能上傳[此貼子已經被作者于2008-7-29 15:14:40編輯過]
    發(fā)表于 07-29 14:55

    PowerPC小目標檢測算法怎么實現(xiàn)?

    檢測系統(tǒng)在低功耗、輕小型化等方面提出了更高的要求。因此,完成小目標檢測任務不僅需要尋求合理的小目標檢測算法,在實現(xiàn)時還需要考慮處理性能和體積
    發(fā)表于 08-09 07:07

    Linux系統(tǒng)發(fā)展史及版本更迭

    運維必知Linux系統(tǒng)發(fā)展史及版本更迭
    發(fā)表于 04-29 14:15

    【大聯(lián)大世平Intel?神經計算棒NCS2試用申請】基于RK3399+Intel NCS2加速YOLO4目標檢測算法加速方案

    項目名稱:基于RK3399+Intel NCS2加速YOLO4目標檢測算法加速方案試用計劃:項目名稱:基于RK3399+Intel NCS2加速YOLO4
    發(fā)表于 06-30 16:04

    5G的發(fā)展史

    5G到底是什么?為什么引得一眾通訊巨頭相繼搶占先機?在這里,將用一組圖帶您梳理一下5G的發(fā)展史。在視頻、游戲霸屏移動端的今天,4G已不能滿足龐大的流量需求。4G即將成為明日黃花,5G即將接棒流量市場
    發(fā)表于 12-24 06:25

    基于YOLOX目標檢測算法的改進

    基礎的 AlexNet 算法框架,極大的提升了算法的速度和準確度。相比于傳統(tǒng)目標檢測算法,以CNN 為核心的目標
    發(fā)表于 03-06 13:55

    聲卡的發(fā)展史

    聲卡的發(fā)展史    
    發(fā)表于 12-26 11:23 ?1345次閱讀

    基于碼本模型的運動目標檢測算法

    本內容提供了基于碼本模型的運動目標檢測算法
    發(fā)表于 05-19 10:54 ?32次下載
    基于碼本模型的運動<b class='flag-5'>目標</b><b class='flag-5'>檢測算法</b>

    改進的ViBe運動目標檢測算法_劉春

    改進的ViBe運動目標檢測算法_劉春
    發(fā)表于 03-19 11:41 ?0次下載

    基于yolo算法進行改進的高效衛(wèi)星圖像目標檢測算法

    同時目標檢測算法對于不常見的的比例或新的圖像分布缺乏一定的泛化能力。由于物體可能的方向和尺寸比例各不相同,算法有限的比例變化對于特殊目標檢測
    的頭像 發(fā)表于 06-01 16:35 ?1.2w次閱讀

    基于深度學習的目標檢測算法

    整體框架 目標檢測算法主要包括:【兩階段】目標檢測算法、【多階段】目標檢測算法、【單階段】
    的頭像 發(fā)表于 04-30 10:22 ?1w次閱讀
    基于深度學習的<b class='flag-5'>目標</b><b class='flag-5'>檢測算法</b>

    目標檢測YOLO的重要性!

    表示。 從個人學習來看:優(yōu)秀的計算機視覺工程師,目標檢測的學習避免不了,而目標檢測的核心就是YOLO。Y
    的頭像 發(fā)表于 06-10 15:45 ?4167次閱讀

    淺談紅外弱小目標檢測算法

    紅外單幀弱小目標檢測算法主要通過圖像預處理突出小目標同時抑制背景噪聲干擾,之后采用閾值分割提取疑似目標,最后根據(jù)特征信息進行目標確認。
    的頭像 發(fā)表于 08-04 17:20 ?5729次閱讀

    基于Transformer的目標檢測算法

    掌握基于Transformer的目標檢測算法的思路和創(chuàng)新點,一些Transformer論文涉及的新概念比較多,話術沒有那么通俗易懂,讀完論文仍然不理解算法的細節(jié)部分。
    發(fā)表于 08-16 10:51 ?604次閱讀
    基于Transformer的<b class='flag-5'>目標</b><b class='flag-5'>檢測算法</b>

    電阻柜的發(fā)展史

    電阻柜發(fā)展史
    的頭像 發(fā)表于 03-08 15:22 ?349次閱讀