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

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

3天內(nèi)不再提示

目標檢測YOLO系列算法的發(fā)展過程

新機器視覺 ? 來源:DeepHub IMBA ? 作者:Dr. Abduljabbar Asadi ? 2022-10-27 17:45 ? 次閱讀

本文中將簡單總結YOLO的發(fā)展歷史,YOLO是計算機視覺領域中著名的模型之一,與其他的分類方法,例如R-CNN不同,R-CNN將檢測結果分為兩部分求解:物體類別(分類問題),物體位置即bounding box(回歸問題)不同,YOLO將任務統(tǒng)一為一個回歸問題。也就是相對于R-CNN系列的“看兩眼”(候選框提取與分類),YOLO只需要 You Only Look Once。

目標檢測

我們?nèi)祟愔恍枰匆谎蹐D像就能知道圖像里面包含了那些物體,能夠知道這些物體在哪里,以及他們之間的相互關系。這是人類進行目標檢測的過程,但是當談到人工智能計算機視覺中的視頻和圖像分析時,目標檢測是一個有趣和不斷發(fā)展的主題,它從圖像和視頻中提供有意義和有價值的信息,可以為醫(yī)療保健、產(chǎn)品優(yōu)化、人臉識別、自動駕駛,衛(wèi)星圖像分析等不同領域提供巨大的幫助。檢測一個對象并從圖像中獲得高層次的語義或理解將通過3個步驟:

eddf98b4-4286-11ed-96c9-dac502259ad0.png

1、分類:這是一個有監(jiān)督的學習任務,它將訓練一個模型,如支持向量機(SVM), AdaBoost來理解一個對象是否在圖像中

2、定位:通過邊界框來區(qū)分對象圖像,顯示對象是否在圖像中(分類)

3、檢測:精確檢測物體所在的位置(物體定位)和它們所屬的組(物體分類)的過程。

下圖顯示了目標檢測模型的結構。像人工智能中的所有算法一樣,它從輸入層開始(輸入一個圖像),目標檢測的兩個主要部分是Backbone和Head。Backbone的作用是提取特征,提供輸入的特征映射表示,一般都會使用ImageNet上的預訓練模型。Head基于特征進行訓練,預測圖像中物體的類別及其邊界框。

在兩階段目標檢測模型中, Faster R-CNN (Region-based Convolutional Neural Networks),使用區(qū)域建議網(wǎng)絡在第一階段和第二階段生成和選擇感興趣區(qū)域,并將區(qū)域建議向下發(fā)送并使用卷積神經(jīng)網(wǎng)絡進行目標分類和邊界框回歸。兩階段檢測器模型具有最高的準確率,但通常較慢,因為必須對每個選定區(qū)域進行預測。因此很難將其用作實時對象檢測器。

單階段目標檢測器,本文的YOLO(You Only Look Once),通過創(chuàng)建輸入圖像的特征圖、學習類別概率和整個圖像的邊界框坐標,將目標識別視為一個簡單的回歸問題。算法只運行一次。這樣的模型雖然準確率稍微有所下降,但比兩階段目標檢測器快得多,通常用于實時目標檢測任務。

YOLO Version 1; 統(tǒng)一的實時目標檢測框架

YOLO 是一個簡單的且不復雜的對象檢測模型,它對圖片進行分析只需要“看一眼”,就可以預測目標對象及其在輸入圖片上的位置。該算法將目標檢測定義為單個回歸問題。將每個給定的圖像劃分為一個 S * S 網(wǎng)格系統(tǒng),該網(wǎng)格系統(tǒng)是圖像的子集或一部分,每個網(wǎng)格通過預測網(wǎng)格內(nèi)對象的邊界框數(shù)量來識別對象。

YOLO 執(zhí)行一個神經(jīng)卷積網(wǎng)絡來識別網(wǎng)格中的對象,預測對象周圍的邊界框以及它們屬于哪個類別的概率。概率被用作置信水平。卷積網(wǎng)絡的初始層從圖像中提取特征,全連接層預測概率。YOLO 工作流程如下圖所示:

ee0ceb5c-4286-11ed-96c9-dac502259ad0.png

為了識別圖像中的不同對象及其位置,使用多尺度滑動窗口掃描整個圖像,因為對象可以在圖像的每個部分以不同的大小顯示。提取滑動窗口的最佳大小和數(shù)量是很重要的,而且這是計算密集型的因為不同數(shù)量的候選或不相關的候選會影響結果。通過這種方式YOLO可以與傳統(tǒng)算法相媲美,并且速度更快。這些步驟的示例如下圖所示。

ee35c540-4286-11ed-96c9-dac502259ad0.png

YOLO V1的優(yōu)勢:可以高速實時檢測物,能夠理解廣義對象表示,模型也不太復雜。

YOLO V1 的局限性:如果小對象以集群或組的形式出現(xiàn),則模型效果,例如下圖所示

ee93062e-4286-11ed-96c9-dac502259ad0.png

YOLO V1 訓練是基于損失函數(shù)來展示檢測性能的,而損失函數(shù)沒有考慮窗口的大小,大框中的小錯誤是顯而易見的,但其實小框中的錯誤其實應該更加被關注,因為他對交并比的影響更大,交并比是一種評估指標,用于衡量數(shù)據(jù)集上對象檢測器模型的準確性 [6]。

YOLO Version 2;YOLO9000:更快,更好,更強

對象檢測模型應該快速、準確,并且可以識別各種對象類別?;谶@個想法YOLO V2 出現(xiàn)了,與 YOLO V1 相比,在速度、準確性和檢測大量物體的能力方面有各種改進。這個新版本訓練了 9000 個新類別,所以被稱作 YOLO9000。它將不同的數(shù)據(jù)集 ImageNet 和 COCO 結合起來,以提供更大量的分類數(shù)據(jù),擴大檢測模型的范圍,并提高召回率 。COCO 用于目標檢測,包含 80 個類別的 100,000 張圖像。

YOLO V2 結構中使用Softmax 為每個邊界框提供客觀性分數(shù)。Softmax為每一類多類分類任務分配一個在0到1之間的十進制概率,在YOLO V2中,它也為圖像中的對象提供了多類分類的可能性。召回率則衡量正確檢測到真值對象的概率。YOLO V2 在分類和檢測數(shù)據(jù)集上聯(lián)合訓練。該方法對圖像進行標記以進行檢測,識別邊界框和對常見對象進行分類。還是用僅具有類標簽的圖像用于擴展算法可以檢測的類別。YOLO V2 中一個有趣的點,除了試圖提供更好和準確的結果外,還提供了一個比 YOLO V1 更簡單的模型。

eece8820-4286-11ed-96c9-dac502259ad0.png

上表中看到,V2中增加了BN的操作。通過BN層對來自前一層的輸入執(zhí)行標準化和規(guī)范化,將輸入值縮放轉換。在Yolo V2中,Yolo V1的所有卷積層上添加BN,從而在Yolo V2中獲得2%以上的精度提升。BN還有助于穩(wěn)定訓練,加速收斂,并在不過度擬合的情況下從模型中去除dropout。另一種提高準確率的技術是使用更高分辨率的輸入,將輸入尺寸從224*224更改為448*448,這將提高4%的MAP(平均平均精度)。

YOLO Version 3;小改進,大提升

eef53cae-4286-11ed-96c9-dac502259ad0.png

在YOLO V3[9]中,只對YOLO的設計添加了一些更改,從而實現(xiàn)了更準確、更好和更快的設計。在預測邊界的新結構中,繼續(xù)使用V2的結構,但是增加了邏輯回歸用于預測每個邊界框的得分。當一個邊界框在與真實對象重疊之預測結果比任何其他邊界框都多時,預測結果就為 1。當邊界框不是最佳但與真實對象重疊超過閾值時,預測則被忽略,并且還引入了Faster R -CNN的方法,在 YOLO V3 中將優(yōu)先只考慮一個邊界框。

下圖顯示了YOLO V3 上的性能對比

ef3b0f22-4286-11ed-96c9-dac502259ad0.png

下圖則對 YOLO v2 與 V3 的比較。很在 YOLO V3 中可以檢測到一些較小的對象,而 V2 無法檢測到。

ef58fe24-4286-11ed-96c9-dac502259ad0.png

除了準確性和比較之外,Redmon 和 Farhadi 在他們的論文中提到的重要一點是道德和計算機視覺的使用。由于軍事研究小組非常關注這一領域,他們希望人們使用他們的新技術不是為了殺人,而是為了讓別人快樂,讓他們的生活更美好。這是論文中的原話:

we have a responsibility to at least consider the harm our work might be doing and think of ways to mitigate it. We owe the world that much.

這也是 Joseph Redmon 退出目標檢測領域研究的原因,有興趣的可以去搜下他TED的演講。

YOLO Version 4;最佳速度和準確性

目標檢測研究的重點是改進在該領域執(zhí)行的模型的速度。隨著時間的推移,YOLO 的應用在全球范圍內(nèi)不斷增長,研究領域也增加了許多新的變化,在卷積神經(jīng)網(wǎng)絡 (CNN) 中,一些想法可以提高模型的準確性。YOLO V4 的主要目標是開發(fā)一種速度更快的目標檢測器,并且具有易于訓練和使用的并行計算能力。通過添加和組合一些新功能,例如加權殘差連接 (WRC)、跨階段部分連接 (CSP)、跨小批量標準化 (CmBN)、自我對抗訓練 (SAT)、Mish激活函數(shù)、Mosaic 數(shù)據(jù)增強、DropBlock 正則化和 CIoU 損失等等,在 YOLO V4中實現(xiàn)了更好更快的模型。YOLO V4 討論的一個重要主題是一個實時傳統(tǒng)神經(jīng)網(wǎng)絡模型,該模型只需要傳統(tǒng) GPU 進行訓練,從而為使用一般 GPU 的任何人提供訓練、測試、實現(xiàn)實時、高質(zhì)量的可能性,以及令人信服的目標檢測模型。

下面是 YOLO V4 。這個新版本速度更快,并且表現(xiàn)出可比的性能。

在 YOLO V4 中,Alexey Bochkovskiy 等人總結了他們的主要貢獻:

開發(fā)了一個高效而強大的目標檢測模型,這使得每個使用 1080 Ti 或 2080 Ti GPU 的人都可以訓練和測試一個超快速、實時、準確的目標檢測模型。

他們在訓練期間驗證了最先進的 Bag-of-Freebies 和 Bag-of-Specials 檢測方法的影響。

修改了state-of-the-art的方法,包括(Cross-iteration batch normalization)、PAN(Path aggregation network)等,使它們更高效,更適合單GPU訓練。

總結

如果你查看 YOLO 的結構、源代碼和包,就會發(fā)現(xiàn)它們結構良好、文檔齊全且免費使用。

審核編輯:郭婷

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

    關注

    19

    文章

    7383

    瀏覽量

    87641
  • 人工智能
    +關注

    關注

    1791

    文章

    46691

    瀏覽量

    237179

原文標題:目標檢測YOLO系列算法的進化史

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    《DNK210使用指南 -CanMV版 V1.0》第三十九章 YOLO2人臉檢測實驗

    第三十九章 YOLO2人臉檢測實驗 從本章開始,將通過幾個實例介紹Kendryte K210上的KPU,以及CanMV下KPU的使用方法,本章將先介紹YOLO2網(wǎng)絡的人臉檢測應用在Ca
    發(fā)表于 11-13 09:37

    使用OpenVINO C# API部署YOLO-World實現(xiàn)實時開放詞匯對象檢測

    YOLO-World是一個融合了實時目標檢測與增強現(xiàn)實(AR)技術的創(chuàng)新平臺,旨在將現(xiàn)實世界與數(shù)字世界無縫對接。該平臺以YOLO(You Only Look Once)
    的頭像 發(fā)表于 08-30 16:27 ?527次閱讀
    使用OpenVINO C# API部署<b class='flag-5'>YOLO</b>-World實現(xiàn)實時開放詞匯對象<b class='flag-5'>檢測</b>

    目標檢測與識別技術有哪些

    目標檢測與識別技術是計算機視覺領域的重要研究方向,廣泛應用于安全監(jiān)控、自動駕駛、醫(yī)療診斷、工業(yè)自動化等領域。 目標檢測與識別技術的基本概念 目標
    的頭像 發(fā)表于 07-17 09:40 ?516次閱讀

    目標檢測與識別技術的關系是什么

    目標檢測與識別技術是計算機視覺領域的兩個重要研究方向,它們之間存在著密切的聯(lián)系和相互依賴的關系。 一、目標檢測與識別技術的概念 目標
    的頭像 發(fā)表于 07-17 09:38 ?475次閱讀

    慧視小目標識別算法 解決目標檢測中的老大難問題

    隨著深度學習和人工智能技術的興起與技術成熟,一大批如FasterR-CNN、RetinaNet、YOLO等可以在工業(yè)界使用的目標檢測算法已逐步成熟并進入實際應用,大多數(shù)場景下的目標
    的頭像 發(fā)表于 07-17 08:29 ?372次閱讀
    慧視小<b class='flag-5'>目標</b>識別<b class='flag-5'>算法</b>   解決<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>中的老大難問題

    基于深度學習的小目標檢測

    在計算機視覺領域,目標檢測一直是研究的熱點和難點之一。特別是在小目標檢測方面,由于小目標在圖像中所占比例小、特征不明顯,使得
    的頭像 發(fā)表于 07-04 17:25 ?708次閱讀

    安全帽佩戴檢測算法

    安全帽佩戴監(jiān)控是鐵路工程施工人員安全管理中的重點和難點,它對檢測算法的準確 率與檢測速度都有較高的要求。本文提出一種基于神經(jīng)網(wǎng)絡架構搜索的安全帽佩戴檢測算法 NAS-YOLO。該神經(jīng)網(wǎng)
    的頭像 發(fā)表于 06-26 22:22 ?354次閱讀
    安全帽佩戴<b class='flag-5'>檢測算法</b>

    OpenVINO? C# API部署YOLOv9目標檢測和實例分割模型

    YOLOv9模型是YOLO系列實時目標檢測算法中的最新版本,代表著該系列在準確性、速度和效率方面的又一次重大飛躍。
    的頭像 發(fā)表于 04-03 17:35 ?703次閱讀
    OpenVINO? C# API部署YOLOv9<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>和實例分割模型

    縱觀全局:YOLO助力實時物體檢測原理及代碼

    YOLO 流程的最后一步是將邊界框預測與類別概率相結合,以提供完整的檢測輸出。每個邊界框的置信度分數(shù)由類別概率調(diào)整,確保檢測既反映邊界框的準確性,又反映模型對對象類別的置信度。
    的頭像 發(fā)表于 03-30 14:43 ?2166次閱讀

    【EASY EAI Nano】RV1126實時讀取攝像頭并進行yolo檢測顯示

    實現(xiàn)了三個并行模塊,分別是 攝像頭讀取,使用opencv轉換到適合大小 yolo檢測 托管到Qt進行現(xiàn)實 檢測的DEMO從每幀10次改到每幀2次,可以看到還是具備一定實時性。 代碼:倉庫
    發(fā)表于 01-14 18:53

    深入淺出Yolov3和Yolov4

    Yolov3是目標檢測Yolo系列非常非常經(jīng)典的算法,不過很多同學拿到Yolov3或者Yolov4的cfg文件時,并不知道如何直觀的可視化查
    的頭像 發(fā)表于 01-11 10:42 ?727次閱讀
    深入淺出Yolov3和Yolov4

    在英特爾AI開發(fā)板上用OpenVINO NNCF優(yōu)化YOLOv7

    提高了性能和效率。YOLO算法作為one-stage目標檢測算法最典型的代表,其基于深度神經(jīng)網(wǎng)絡進行對象的識別和定位,運行速度很快,可以用于實時系統(tǒng)。YOLOv7 是
    的頭像 發(fā)表于 01-05 09:29 ?671次閱讀
    在英特爾AI開發(fā)板上用OpenVINO NNCF優(yōu)化YOLOv7

    基于YOLO技術的植物檢測與計數(shù)

    利用Roboflow平臺對數(shù)據(jù)進行有效的管理和標注。對于植物檢測,使用實時目標檢測能力強的YOLO方法。YOLO通過將輸入圖像劃分為網(wǎng)格并預
    的頭像 發(fā)表于 12-12 09:41 ?794次閱讀
    基于<b class='flag-5'>YOLO</b>技術的植物<b class='flag-5'>檢測</b>與計數(shù)

    怎樣使用YOLOv8構建目標計數(shù)GUI呢?

    檢測是在圖片或視頻中定位物體的過程。其中一個著名的目標檢測框架是YOLO(You Only Look Once)。
    的頭像 發(fā)表于 11-30 11:03 ?725次閱讀
    怎樣使用YOLOv8構建<b class='flag-5'>目標</b>計數(shù)GUI呢?

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

    大家或許知道,首字母縮寫YOLO在英文語境下較為流行的含義,即You Only Live Once,你只能活一次。我們今天要介紹的YOLO卻有著與前者不一樣的含義。在算法的世界中,YOLO
    的頭像 發(fā)表于 11-18 10:33 ?5617次閱讀
    <b class='flag-5'>目標</b><b class='flag-5'>檢測算法</b><b class='flag-5'>YOLO</b>的<b class='flag-5'>發(fā)展</b>史和原理