對象檢測是一種圖像分類,其中神經網絡預測圖像中的項目並在它們周圍繪製邊界框。 檢測和定位圖像中符合預設類集的事物稱為對象檢測。
對象檢測(也稱為對象識別)是計算機視覺的一個特別重要的子領域,因為檢測、識別和定位等任務在現實世界中有著廣泛的應用。
YOLO 方法可以幫助您完成這些任務。 在本文中,我們將仔細研究 YOLO,包括它是什麼、它如何工作、不同的變體等等。
那麼,YOLO是什麼?
YOLO 是一種實時識別和識別照片中物體的方法。 它是 You Only Look Once 的縮寫。 雷德蒙德等人。 最初於 2015 年在 IEEE/CVF 計算機視覺和模式識別會議 (CVPR) 上發表的一篇論文中提出了該方法。
該論文榮獲 OpenCV 人民選擇獎。 與之前重新利用分類器進行檢測的對象識別方法不同,YOLO 提出使用端到端 神經網絡 同時預測邊界框和類概率。
YOLO 通過採用全新的對象識別方法產生了最先進的結果,輕鬆超越了以前的實時對象檢測方法。
YOLO工作
YOLO方法將圖片分為N個網格,每個網格都有大小相等的SxS維扇區。 這 N 個網格中的每一個都負責檢測和定位其包含的對象。
這些網格依次預測相對於單元格坐標的 B 邊界框坐標,以及項目名稱和單元格中存在對象的可能性。 由於許多細胞使用不同的邊界框預測來預測同一項目,因此該技術大大減少了計算量,因為檢測和識別都是由圖片中的細胞處理的。
然而,它會產生很多重複的預測。 為了解決這個問題,YOLO 採用了非極大值抑制。 YOLO 在非極大值抑制中抑制所有概率分數較低的邊界框。
YOLO 通過檢查與每個選項相關的概率分數並選擇分數最高的選項來實現這一點。 然後抑制與當前高概率邊界框具有最大交集的邊界框。
繼續此過程直到邊界框完成。
YOLO 的不同變體
我們將看看一些最常見的 YOLO 版本。 讓我們開始吧。
1.YOLOv1
最初的 YOLO 版本於 2015 年在出版物《您只需查看一次:統一、實時的物體檢測” 作者:約瑟夫·雷德蒙、桑托什·迪夫瓦拉、羅斯·吉爾希克和阿里·法哈迪。
由於其速度、準確性和學習能力,YOLO 很快在物體識別領域佔據主導地位,並成為使用最廣泛的算法。 作者沒有將對象檢測視為分類問題,而是將其視為具有地理上分離的邊界框和相關類概率的回歸問題,他們使用單個 神經網絡.
YOLOv1 以每秒 45 幀的速度實時處理照片,而較小的變體 Fast YOLO 以每秒 155 幀的速度處理,但仍然獲得了其他實時檢測器的兩倍的 mAP。
2.YOLOv2
一年後,即 2016 年,Joseph Redmon 和 Ali Farhadi 在論文《YOLO9000:更好、更快、更強“
該模型能夠在實時運行的情況下預測 9000 個不同的項目類別,因此獲得了 9000 的稱號。新模型版本不僅同時在對象檢測和分類數據集上進行訓練,而且還將 Darknet-19 作為新的基線模型。
由於 YOLOv2 也取得了巨大成功,並迅速成為下一個最先進的物體識別模型,其他工程師開始嘗試該算法並製作自己獨特的 YOLO 版本。 其中一些將在本文的不同點進行討論。
3.YOLOv3
論文中“YOLOv3:漸進式改進”,Joseph Redmon 和 Ali Farhadi 在 2018 年發布了該算法的新版本。它建立在 Darknet-53 架構之上。 獨立的邏輯分類器取代了YOLOv3中的softmax激活機制。
訓練期間使用二元交叉熵損失。 Darknet-19 得到增強並更名為 Darknet-53,現在有 53 個卷積層。 除此之外,預測是在三個不同的尺度上完成的,這有助於 YOLOv3 提高其預測微小事物的準確性。
YOLOv3 是 Joseph Redmon 的最終 YOLO 版本,因為他選擇不再對 YOLO 進行任何進一步的改進(甚至在計算機視覺領域),以避免他的工作對世界產生不利影響。 它現在主要用作構建獨特的對象檢測架構的起點。
4.約洛夫4
Alexey Bochkovskiy、Chien-Yao Wang 和 Hong-Yuan Mark Liao 發表了“YOLOv4:目標檢測的最佳速度和準確性”於2020年XNUMX月,這是YOLO算法的第四次迭代。
加權殘差連接、跨階段部分連接、跨小批量歸一化、自對抗訓練、mish 激活、drop block 和 CIoU 損失都作為 SPDarknet53 架構的一部分引入。
YOLOv4 是 YOLO 家族的後代,但它是由不同的科學家(不是 Joseph Redmon 和 Ali Farhadi)開發的。 SPDarknet53 主幹、空間金字塔池化、PANet 路徑聚合作為頸部、YOLOv3 頭部構成其架構。
因此,與其父代 YOLOv3 相比,YOLOv4 的平均精度提高了 10%,每秒幀數指標提高了 12%。
5.YOLOv5
YOLOv5 是一個開源項目,包括一系列基於 YOLO 模型的對象識別模型和算法,該模型已在 COCO 數據集上進行了預訓練。
YOLOv5 是複合尺度對象識別模型的集合 在 COCO 數據集上訓練,具有 TTA、模型組裝、超參數開發以及導出到 ONNX、CoreML 和 TFLite 的簡單功能。 由於 YOLOv5 沒有實現或開發任何獨特的方法,因此無法發布正式論文。 它只是 YOLOv3 的 PyTorch 擴展。
Ultranytics利用這一場景宣傳了其贊助的“新YOLO”版本。 由於還有五個預訓練模型可供訪問,因此 YOLOv5 主頁非常簡單且結構和編寫專業,包含許多有關訓練和使用 YOLOv5 模型的課程和建議。
YOLO 的局限性
儘管 YOLO 似乎是解決問題的最佳技術 目標檢測 問題,它有很多缺點。 由於每個網格只能識別一個項目,YOLO 很難檢測和分離圖片中成組出現的微小事物。 成群的小東西,比如一群螞蟻,YOLO 很難識別和定位。
與 Fast RCNN 等慢得多的目標識別方法相比,YOLO 同樣具有較低的準確度。
開始使用 YOLOv5
如果您有興趣了解 YOLOv5 的實際應用,請查看 官方GitHub 和 PyTorch 中的 YOLOv5.
結論
YOLOv5 的初始版本非常快速、高性能且易於使用。 雖然 YOLOv5 沒有向 YOLO 系列添加任何新的模型架構,但它確實提供了新的 PyTorch 訓練和部署框架,增強了對象檢測器的最先進水平。
此外,YOLOv5 非常用戶友好,並且“開箱即用”,可用於定制對象。
發表評論