重磅干貨,第一時間送達(dá)
本文中將簡單總結(jié)YOLO的發(fā)展歷史,YOLO是計算機視覺領(lǐng)域中著名的模型之一,與其他的分類方法,例如R-CNN不同,R-CNN將檢測結(jié)果分為兩部分求解:物體類別(分類問題),物體位置即bounding box(回歸問題)不同,YOLO將任務(wù)統(tǒng)一為一個回歸問題。也就是相對于R-CNN系列的'看兩眼'(候選框提取與分類),YOLO只需要 You Only Look Once。
我們?nèi)祟愔恍枰匆谎蹐D像就能知道圖像里面包含了那些物體,能夠知道這些物體在哪里,以及他們之間的相互關(guān)系。這是人類進行目標(biāo)檢測的過程,但是當(dāng)談到人工智能計算機視覺中的視頻和圖像分析時,目標(biāo)檢測是一個有趣和不斷發(fā)展的主題,它從圖像和視頻中提供有意義和有價值的信息,可以為醫(yī)療保健、產(chǎn)品優(yōu)化、人臉識別、自動駕駛,衛(wèi)星圖像分析等不同領(lǐng)域提供巨大的幫助。檢測一個對象并從圖像中獲得高層次的語義或理解將通過3個步驟:
1、分類:這是一個有監(jiān)督的學(xué)習(xí)任務(wù),它將訓(xùn)練一個模型,如支持向量機(SVM), AdaBoost來理解一個對象是否在圖像中
2、定位:通過邊界框來區(qū)分對象圖像,顯示對象是否在圖像中(分類)
3、檢測:精確檢測物體所在的位置(物體定位)和它們所屬的組(物體分類)的過程。
下圖顯示了目標(biāo)檢測模型的結(jié)構(gòu)。像人工智能中的所有算法一樣,它從輸入層開始(輸入一個圖像),目標(biāo)檢測的兩個主要部分是Backbone和Head。Backbone的作用是提取特征,提供輸入的特征映射表示,一般都會使用ImageNet上的預(yù)訓(xùn)練模型。Head基于特征進行訓(xùn)練,預(yù)測圖像中物體的類別及其邊界框。
在兩階段目標(biāo)檢測模型中, Faster R-CNN (Region-based Convolutional Neural Networks),使用區(qū)域建議網(wǎng)絡(luò)在第一階段和第二階段生成和選擇感興趣區(qū)域,并將區(qū)域建議向下發(fā)送并使用卷積神經(jīng)網(wǎng)絡(luò)進行目標(biāo)分類和邊界框回歸。兩階段檢測器模型具有最高的準(zhǔn)確率,但通常較慢,因為必須對每個選定區(qū)域進行預(yù)測。因此很難將其用作實時對象檢測器。
單階段目標(biāo)檢測器,本文的YOLO(You Only Look Once),通過創(chuàng)建輸入圖像的特征圖、學(xué)習(xí)類別概率和整個圖像的邊界框坐標(biāo),將目標(biāo)識別視為一個簡單的回歸問題。算法只運行一次。這樣的模型雖然準(zhǔn)確率稍微有所下降,但比兩階段目標(biāo)檢測器快得多,通常用于實時目標(biāo)檢測任務(wù)。
YOLO 是一個簡單的且不復(fù)雜的對象檢測模型,它對圖片進行分析只需要“看一眼”,就可以預(yù)測目標(biāo)對象及其在輸入圖片上的位置。該算法將目標(biāo)檢測定義為單個回歸問題。將每個給定的圖像劃分為一個 S * S 網(wǎng)格系統(tǒng),該網(wǎng)格系統(tǒng)是圖像的子集或一部分,每個網(wǎng)格通過預(yù)測網(wǎng)格內(nèi)對象的邊界框數(shù)量來識別對象。
YOLO 執(zhí)行一個神經(jīng)卷積網(wǎng)絡(luò)來識別網(wǎng)格中的對象,預(yù)測對象周圍的邊界框以及它們屬于哪個類別的概率。概率被用作置信水平。卷積網(wǎng)絡(luò)的初始層從圖像中提取特征,全連接層預(yù)測概率。YOLO 工作流程如下圖所示:
為了識別圖像中的不同對象及其位置,使用多尺度滑動窗口掃描整個圖像,因為對象可以在圖像的每個部分以不同的大小顯示。提取滑動窗口的最佳大小和數(shù)量是很重要的,而且這是計算密集型的因為不同數(shù)量的候選或不相關(guān)的候選會影響結(jié)果。通過這種方式Y(jié)OLO可以與傳統(tǒng)算法相媲美,并且速度更快。這些步驟的示例如下圖所示。
YOLO V1的優(yōu)勢:可以高速實時檢測物,能夠理解廣義對象表示,模型也不太復(fù)雜。
YOLO V1 的局限性:如果小對象以集群或組的形式出現(xiàn),則模型效果,例如下圖所示
YOLO V1 訓(xùn)練是基于損失函數(shù)來展示檢測性能的,而損失函數(shù)沒有考慮窗口的大小,大框中的小錯誤是顯而易見的,但其實小框中的錯誤其實應(yīng)該更加被關(guān)注,因為他對交并比的影響更大,交并比是一種評估指標(biāo),用于衡量數(shù)據(jù)集上對象檢測器模型的準(zhǔn)確性 [6]。
對象檢測模型應(yīng)該快速、準(zhǔn)確,并且可以識別各種對象類別?;谶@個想法YOLO V2 出現(xiàn)了,與 YOLO V1 相比,在速度、準(zhǔn)確性和檢測大量物體的能力方面有各種改進。這個新版本訓(xùn)練了 9000 個新類別,所以被稱作 YOLO9000。它將不同的數(shù)據(jù)集 ImageNet 和 COCO 結(jié)合起來,以提供更大量的分類數(shù)據(jù),擴大檢測模型的范圍,并提高召回率 。COCO 用于目標(biāo)檢測,包含 80 個類別的 100,000 張圖像。
YOLO V2 結(jié)構(gòu)中使用Softmax 為每個邊界框提供客觀性分?jǐn)?shù)。Softmax為每一類多類分類任務(wù)分配一個在0到1之間的十進制概率,在YOLO V2中,它也為圖像中的對象提供了多類分類的可能性。召回率則衡量正確檢測到真值對象的概率。YOLO V2 在分類和檢測數(shù)據(jù)集上聯(lián)合訓(xùn)練。該方法對圖像進行標(biāo)記以進行檢測,識別邊界框和對常見對象進行分類。還是用僅具有類標(biāo)簽的圖像用于擴展算法可以檢測的類別。YOLO V2 中一個有趣的點,除了試圖提供更好和準(zhǔn)確的結(jié)果外,還提供了一個比 YOLO V1 更簡單的模型。
上表中看到,V2中增加了BN的操作。通過BN層對來自前一層的輸入執(zhí)行標(biāo)準(zhǔn)化和規(guī)范化,將輸入值縮放轉(zhuǎn)換。在Yolo V2中,Yolo V1的所有卷積層上添加BN,從而在Yolo V2中獲得2%以上的精度提升。BN還有助于穩(wěn)定訓(xùn)練,加速收斂,并在不過度擬合的情況下從模型中去除dropout。另一種提高準(zhǔn)確率的技術(shù)是使用更高分辨率的輸入,將輸入尺寸從224*224更改為448*448,這將提高4%的MAP(平均平均精度)。
在YOLO V3[9]中,只對YOLO的設(shè)計添加了一些更改,從而實現(xiàn)了更準(zhǔn)確、更好和更快的設(shè)計。在預(yù)測邊界的新結(jié)構(gòu)中,繼續(xù)使用V2的結(jié)構(gòu),但是增加了邏輯回歸用于預(yù)測每個邊界框的得分。當(dāng)一個邊界框在與真實對象重疊之預(yù)測結(jié)果比任何其他邊界框都多時,預(yù)測結(jié)果就為 1。當(dāng)邊界框不是最佳但與真實對象重疊超過閾值時,預(yù)測則被忽略,并且還引入了Faster R -CNN的方法,在 YOLO V3 中將優(yōu)先只考慮一個邊界框。
下圖顯示了YOLO V3 上的性能對比
下圖則對 YOLO v2 與 V3 的比較。很在 YOLO V3 中可以檢測到一些較小的對象,而 V2 無法檢測到。
除了準(zhǔn)確性和比較之外,Redmon 和 Farhadi 在他們的論文中提到的重要一點是道德和計算機視覺的使用。由于軍事研究小組非常關(guān)注這一領(lǐng)域,他們希望人們使用他們的新技術(shù)不是為了殺人,而是為了讓別人快樂,讓他們的生活更美好。這是論文中的原話:
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 退出目標(biāo)檢測領(lǐng)域研究的原因,有興趣的可以去搜下他TED的演講。
目標(biāo)檢測研究的重點是改進在該領(lǐng)域執(zhí)行的模型的速度。隨著時間的推移,YOLO 的應(yīng)用在全球范圍內(nèi)不斷增長,研究領(lǐng)域也增加了許多新的變化,在卷積神經(jīng)網(wǎng)絡(luò) (CNN) 中,一些想法可以提高模型的準(zhǔn)確性。YOLO V4 的主要目標(biāo)是開發(fā)一種速度更快的目標(biāo)檢測器,并且具有易于訓(xùn)練和使用的并行計算能力。通過添加和組合一些新功能,例如加權(quán)殘差連接 (WRC)、跨階段部分連接 (CSP)、跨小批量標(biāo)準(zhǔn)化 (CmBN)、自我對抗訓(xùn)練 (SAT)、Mish激活函數(shù)、Mosaic 數(shù)據(jù)增強、DropBlock 正則化和 CIoU 損失等等,在 YOLO V4中實現(xiàn)了更好更快的模型。YOLO V4 討論的一個重要主題是一個實時傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型,該模型只需要傳統(tǒng) GPU 進行訓(xùn)練,從而為使用一般 GPU 的任何人提供訓(xùn)練、測試、實現(xiàn)實時、高質(zhì)量的可能性,以及令人信服的目標(biāo)檢測模型。
下面是 YOLO V4 。這個新版本速度更快,并且表現(xiàn)出可比的性能。
在 YOLO V4 中,Alexey Bochkovskiy 等人總結(jié)了他們的主要貢獻(xiàn):
開發(fā)了一個高效而強大的目標(biāo)檢測模型,這使得每個使用 1080 Ti 或 2080 Ti GPU 的人都可以訓(xùn)練和測試一個超快速、實時、準(zhǔn)確的目標(biāo)檢測模型。
他們在訓(xùn)練期間驗證了最先進的 Bag-of-Freebies 和 Bag-of-Specials 檢測方法的影響。
修改了state-of-the-art的方法,包括(Cross-iteration batch normalization)、PAN(Path aggregation network)等,使它們更高效,更適合單GPU訓(xùn)練。
如果你查看 YOLO 的結(jié)構(gòu)、源代碼和包,就會發(fā)現(xiàn)它們結(jié)構(gòu)良好、文檔齊全且免費使用。所以這里要感謝所有關(guān)注這個話題并推動他們努力的人,因為這對于新手來說簡直太有好了。
雖然還有很多的YOLO 類模型,例如 YOLOv5,YOLO X 甚至剛剛發(fā)布的YOLO v6,但是Joseph Redmon 已經(jīng)退出,“沒有馬云的阿里巴巴還是阿里巴巴”嗎?
引用:
You Only Look Once: Unified, Real-Time Object Detection, Joseph Redmon and et. all, https://pjreddie.com/media/files/papers/yolo.pdf
Optimizing the Trade-off between Single-Stage and Two-Stage Object Detectors using Image Difficulty Prediction, Petru Soviany, Radu Tudor Ionescu, https://arxiv.org/abs/1803.08707
YOLOv4: Optimal Speed and Accuracy of Object Detection, Alexey Bochkovskiy et. all, https://arxiv.org/pdf/2004.10934.pdf
A Model for Real-Time Traffic Signs Recognition Based on the YOLO Algorithm — A Case Study Using Vietnamese Traffic Signs Tran et al, 2019, published in: Future Data and Security Engineering
D. Zhou et al., “IoU Loss for 2D/3D Object Detection,” 2019 International Conference on 3D Vision (3DV), Québec City, QC, Canada, 2019, pp. 85–94, doi: 10.1109/3DV.2019.00019.
J. Redmon and A. Farhadi, “YOLO9000: Better, Faster, Stronger,” 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Honolulu, HI, 2017, pp. 6517–6525, doi: 10.1109/CVPR.2017.690.
Manal El Aidouni, 2019, Evaluating Object Detection Models: Guide to Performance Metrics, https://manalelaidouni.github.io/
Redmon, Joseph & Farhadi, Ali. (2018). YOLOv3: An Incremental Improvement.
S. Ren, K. He, R. Girshick, and J. Sun. Faster r-cnn: Towards real-time object detection with region proposal networks. arXiv preprint arXiv:1506.01497, 2015
T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollar, and C. L. Zitnick. Microsoft coco: Com- ′ mon objects in context. In European conference on computer vision, pages 740–755. Springer, 2014
Alexey Bochkovskiy, Chien-Yao Wang, and Hong-Yuan Mark Liao. Yolov4: Optimal speed and accuracy of object detection. arXiv preprint arXiv:2004.10934, 2020.
作者:Dr. Abduljabbar Asadi
聯(lián)系客服