本文中將簡單總結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個步驟:
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 工作流程如下圖所示:
為了識別圖像中的不同對象及其位置,使用多尺度滑動窗口掃描整個圖像,因為對象可以在圖像的每個部分以不同的大小顯示。提取滑動窗口的最佳大小和數(shù)量是很重要的,而且這是計算密集型的因為不同數(shù)量的候選或不相關的候選會影響結果。通過這種方式YOLO可以與傳統(tǒng)算法相媲美,并且速度更快。這些步驟的示例如下圖所示。
YOLO V1的優(yōu)勢:可以高速實時檢測物,能夠理解廣義對象表示,模型也不太復雜。
YOLO V1 的局限性:如果小對象以集群或組的形式出現(xiàn),則模型效果,例如下圖所示
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 更簡單的模型。
上表中看到,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;小改進,大提升
在YOLO V3[9]中,只對YOLO的設計添加了一些更改,從而實現(xiàn)了更準確、更好和更快的設計。在預測邊界的新結構中,繼續(xù)使用V2的結構,但是增加了邏輯回歸用于預測每個邊界框的得分。當一個邊界框在與真實對象重疊之預測結果比任何其他邊界框都多時,預測結果就為 1。當邊界框不是最佳但與真實對象重疊超過閾值時,預測則被忽略,并且還引入了Faster R -CNN的方法,在 YOLO V3 中將優(yōu)先只考慮一個邊界框。
下圖顯示了YOLO V3 上的性能對比
下圖則對 YOLO v2 與 V3 的比較。很在 YOLO V3 中可以檢測到一些較小的對象,而 V2 無法檢測到。
除了準確性和比較之外,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)它們結構良好、文檔齊全且免費使用。
審核編輯:郭婷
-
計算機
+關注
關注
19文章
7383瀏覽量
87641 -
人工智能
+關注
關注
1791文章
46691瀏覽量
237179
原文標題:目標檢測YOLO系列算法的進化史
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論