參考:《計算機視覺中的深度學習》
概述
目標檢測的挑戰(zhàn):
- 減少目標定位的準確度
- 減少背景干擾
- 提高目標定位的準確度
目標檢測系統(tǒng)常用評價指標:檢測速度和精度
提高精度:有效排除背景,光照和噪聲的影響
提高檢測速度:精簡檢測流程,簡化圖像處理算法
算法概述:傳統(tǒng)目標算法、基于候選區(qū)域的兩步算法、基于回歸的單步算法
1.傳統(tǒng)目標算法
對于區(qū)域選擇,傳統(tǒng)目標檢測最常用的兩種模型是滑動窗口模型與縮放窗口模型?;瑒哟翱谀P?,顧名思義,是通過設計好的窗口在圖像上進行滑動來檢測目標?;诨瑒哟暗臋z測算法的主要實現(xiàn)方法有兩種,分別為縮放檢測圖像法和縮放窗口法??s放檢測圖像法將待檢圖像進行不同尺度的縮放,形成一個縮放圖像集,然后用固定大小的滑動窗口掃描縮放圖像集中的每幅圖像,利用訓練好的分類器對掃描窗口進行判定,將目標窗口標記出來得到最終結果;縮放窗口法,其改變前一種算法對圖像進行縮放的思想,改為對窗口進行縮放,利用多種尺度和移動步長的掃描窗口掃描待檢圖像,最終同樣利用分類器進行判定并輸出結果。
2、基于候選區(qū)域的兩步算法
基于候選區(qū)域的目標檢測算法指需要兩步實現(xiàn)的采用 CNN 的目標檢測方法。首先需要進行區(qū)域生成(region proposal),獲得有可能包含待檢物體的候選框:然后對對應區(qū)域使用 CNN 對特征進行提取;再對樣本分類:最后回歸候選框使其包含區(qū)域更加精確??傮w流程可歸納為“區(qū)域生成一特征提取→分類及定位回歸一后處理”
該類算法使用候選區(qū)域替代原有的滑動窗口來實現(xiàn)特征區(qū)域的提取?;诤蜻x區(qū)域的兩步算法的目的是:在幾乎所有目標物體都有能夠區(qū)別于背景信息的特性的前提下,找到目標物體可能的存在位置,作為候選區(qū)域的形式輸出;再對這些候選區(qū)域提取特征向量,利用訓練好的分類器判定候選區(qū)域是否包含目標物體并輸出結果。這樣做的優(yōu)點在于大大減少了需要提取特征的圖像塊,可以使用復雜的特征和分類器對目標物體進行描述,以此提高目標檢測的性能。
該類算法通過將候選區(qū)域選取與特征提取兩個步驟加入深度學習優(yōu)化框架中,實現(xiàn)了端到端的優(yōu)化,相較于傳統(tǒng)方法得到了更優(yōu)秀的結果。
3.基于回歸的單步算法
Faster R-CNN作為基于候選區(qū)域的目標檢測算法的經(jīng)典代表,將一直以來分離的候選區(qū)域選取和卷積網(wǎng)絡融為一個整體,使用端到端網(wǎng)絡進行目標檢測。這樣的處理使得模型在速度上和精度上都得到了有效的提高。雖然在一定程度上解決了效率問題,但 FasteR-CNN 還是達不到實時的目標檢測的要求。因此,雖然候選區(qū)域算法和 CNN 極大地推動了目標檢測的發(fā)展,但是候選區(qū)域的生成需要耗費大量時間,達不到實時檢測的要求,這使得候選區(qū)域成為實時檢測的瓶頸。
2015 年提出的 YOLO(You Only Look Once)!模型將目標檢測問題看成一個回歸問題,把輸入圖像分割成邊界框和相應類別的概率。YOLO模型使用單一的網(wǎng)絡,能夠直接從整幅圖像輸出預測邊界框和所屬類別的概率。因為整個檢測在同一個網(wǎng)絡內進行,所以它可以實現(xiàn)真正的端到端的訓練和檢測,還能夠達到實時目標檢測的要求。YOLO模型把目標框的生成與識別進行結合,可以做到一步輸出。由于沒有候選區(qū)域的限制,模型能夠考慮更多的上下文信息,從而在很大程度上減少背景樣本的干擾,更能夠滿足目標檢測應用領域對實時性的要求。然而 YOLO 模型是通過提取整幅圖像的特征來預測邊框的,而在許多圖像中背景區(qū)域遠遠大于目標區(qū)域,這使得這類沒有候選區(qū)域的目標檢測算法在一些滉下表現(xiàn)并不好,因此 YOLO 模型在精度上比 Faster R-CNN 等基于候選區(qū)域的模型略微遜色,但是速度上的巨大提升依然體現(xiàn)出基于回歸的但不算法潛力,隨后推出的SSD,YOLO哥哥版本改進都推動了基于回歸的單步算法改進
評價指標
準確率,精確度,召回率,AP,mAP,IOU
傳統(tǒng)目標檢測算法
找到一個劃分超平面,讓訓練樣本與超平面之間有最大距離間隔,保證分類結果健壯性。
2.AdaBoost
AdaBoost 算法是 Boosting 算法的改進版,其核心思想是將多個弱分類器組合起來構成強分類器,且這些弱分類器是針對同一訓練集訓練的。在訓練的過程中,首先賦予訓練樣本相同的初始權值。在經(jīng)過不同的弱分類器過程中,樣本分類的準確度決定了該樣本的權重值,即樣本若被正確分類,則在構建下一級分類器時其權重值降低,選中的概率隨之減小,反之提高。這樣使得在構建分類器的過程中更加關注被錯誤分類的樣本,錯誤樣本在不斷地經(jīng)過分類器訓練后,被正確分類的概率提高,最終達到提高分類器準確度的目的。
基于候選區(qū)域的兩步算法
候選區(qū)域的思想與圖像興趣點檢測的思想類似,圖像興趣點利用人們自動將注意力放在一幅圖像中最顯著且最具分辨力的位置上的視覺特性,計算出這些點的位置,這大大減少了后續(xù)圖像處理的計算量:類似地,目標候選區(qū)域通過計算出可能存在目標物體的窗口,這大大減少了目標檢測計算量。
6.3.1 R-CNN 的實現(xiàn)
R-CNN(Region-CNN)3]是Ross Girshick于 2013年提出的基于候選區(qū)域的 CNN 結構。該網(wǎng)絡首次表明,將CNN與候選區(qū)域和特征提取結合,能夠比手工特征提取在目標檢測網(wǎng)絡上得到更好的性能,深度學習方法也自此在目標檢測領域確立了絕對的優(yōu)勢。其檢測過程如圖 6-7,具體如下
① 利用選擇性搜索(Selective Search)算法對輸入圖像進行區(qū)域選擇,提取 2000個左右的候選區(qū)域。
②)由于網(wǎng)絡結構中存在全連接層,需要將提取出的候選區(qū)域統(tǒng)一尺寸,此處將尺寸縮放至 227 像素x227 像素,再適當擴大以獲取更多上下文信息。
③ 使用卷積網(wǎng)絡對每個歸一化后的候選區(qū)域做特征提取操作,從每個候選區(qū)域提取4096 維的特征向量。
④)使用 SVM 對提取到的特征進行分類識別,
⑤使用邊框回歸(Bounding Box Regression)微調邊框位置:
基于回歸的單步算法
2015年提出的Yolo【You Only Look Once】模型將目標檢測問題看成一個回歸問題,把輸入圖像分割成邊界框和相應類別的概率。
YOLO算法本質:將圖片特征均勻分成n*n不重疊區(qū)域,每個區(qū)域生成錨框,對每個區(qū)域做softmax和bounding box預測。
優(yōu)點:
- 端到端訓練(End-to-End Training):YOLO直接從整張圖片預測邊界框和類別,不需要復雜的多步驟流程,簡化了訓練過程,使得模型更加緊湊和高效。比SSD還簡單
- 整體上下文感知(Context Awareness):由于YOLO在整個圖像上進行全局預測,因此它可以更好地捕捉到目標間的空間關系和全局上下文信息
- 實時性(Speed):YOLO算法的核心優(yōu)勢在于其快速的檢測速度。通過一次性對整個圖像進行預測,而不是像滑動窗口或多階段檢測那樣逐個區(qū)域處理,大大減少了計算量,從而實現(xiàn)了接近實時甚至實時的檢測速度。
缺點:
-
對小物體檢測精度不高:
由于YOLO算法將輸入圖像劃分為固定的格子(grid cells),每個格子負責預測一定數(shù)量的邊界框(bounding boxes)。對于較小的目標,它們可能會落在一個格子的較小部分,導致預測的邊界框不夠精確或者漏檢。YOLO早期版本可能存在網(wǎng)格劃分過粗的問題,導致對小目標特征提取不足。
-
對重疊和密集物體檢測不佳:
YOLO在面對緊密排列或嚴重重疊的目標時,可能出現(xiàn)分配錯誤的問題,即一個格子可能無法準確地為多個相互覆蓋的目標分別生成合適的邊界框。 -
精度相對較低:
相比于兩階段檢測器如Faster R-CNN,在同等條件下,YOLO可能犧牲了一定的定位精度以換取速度。特別是在早期版本中,YOLO在回歸邊界框的位置和尺寸時的誤差較大,從而影響最終檢測的精度。
隨著YOLO算法的迭代更新,比如YOLOv3以及后續(xù)版本,針對上述部分問題進行了改進,如引入多尺度預測機制以提高對不同尺寸目標的檢測性能,采用更好的主干網(wǎng)絡架構增強特征提取能力,以及調整損失函數(shù)改善定位精度等措施。
在的關聯(lián)性
約束力位置預測的范圍后,網(wǎng)絡參數(shù)變得更容易學習,網(wǎng)絡變得穩(wěn)定,與唯獨聚類結合后,使用直接位置預測的 YOLOv2與手選錨框預測偏移值的方法相比,mAP 提高了約 5%。
6.多尺度訓練
YOLO 的網(wǎng)絡采用固定輸入 448x448 像素,為了使輸入圖像能夠實現(xiàn)多尺寸,YOLOv2每經(jīng)過 10輪的訓練,會重新選擇圖像的輸入尺寸,圖像的尺寸在320x320到608x608 像素之間,以 32的倍數(shù)遞增,調整好圖像尺寸后,調節(jié)網(wǎng)絡到相應的維度繼續(xù)進行訓練。這種策略使得網(wǎng)絡針對不同分辨率的圖像可以更好地預測,更適用于實際的檢測場景。此外,YOLOv2 還提出了一種新的分類骨干網(wǎng) Darknet-19,它有 19個卷積層和五個最大池化層,處理圖像所需的操作較少,但精度較高。以Resnet作為主干網(wǎng)的Faster R-CNN能實現(xiàn) 76.4%的 mAP 和5幀/秒,SSD500 能實現(xiàn) 76.8%的 mAP 和 19 幀/秒,而 Yolov2 能達到 78.6%的 mAP 和 40 幀/秒。如上所述,YOLOv2 可以實現(xiàn)高精度和高速度,這得益于七項主要的改進和一個新的主干網(wǎng)絡。
YOLO 多個版本改進
YOLO算法各個版本的改進和效果
YOLO(You Only Look Once)算法自2016年首次提出以來,經(jīng)歷了多個重要版本的改進,每個版本都在速度、精度、小目標檢測能力等方面有所突破。下面列舉幾個關鍵版本的改進點和效果:
-
YOLOv1
提出時間:2016年
主要特點:首次引入了端到端的目標檢測方法,通過單次前向傳播就能預測出圖像中的多個邊界框及其所屬類別,實現(xiàn)了非常快的速度。
改進點:相比傳統(tǒng)的多階段檢測方法,YOLO大幅度提升了檢測速度,但精度相對較低,特別是對于小目標的檢測效果一般。 -
YOLOv2
提出時間:2017年
主要改進:
引入了批量歸一化(Batch Normalization),加快了訓練速度并提高了模型的泛化能力。
使用了 anchor boxes(先驗框)的概念,有助于更好定位不同尺寸和比例的目標。
采用了更高效的卷積層設計,比如使用了稱為“Darknet-19”的新型網(wǎng)絡結構。
實現(xiàn)了Anchor-based目標檢測,提升了對多種尺寸目標的檢測效果。
提出了維度聚類(Dimension Clusters)方法優(yōu)化先驗框的選擇。
通過細粒度特征融合,整合了不同層次的特征圖,增強了對小目標的檢測能力。
效果:YOLOv2在保持較快的速度基礎上,顯著提高了檢測精度。 -
YOLOv3
提出時間:2018年
主要改進:
使用了更深更大的網(wǎng)絡結構Darknet-53作為基礎網(wǎng)絡,增加了特征提取的能力。
引入了多尺度預測機制,分別從不同分辨率的特征圖上預測邊界框,提升了對不同大小目標的適應性。
使用更多的錨框數(shù)量,進一步優(yōu)化目標匹配策略。
對損失函數(shù)進行了調整,使模型在訓練過程中能更好地平衡各種類型目標的學習。
效果:YOLOv3在保持實時性的同時,進一步提高了檢測精度,尤其是對小目標的識別能力有了顯著提升。 -
YOLOv4
提出時間:2020年
主要改進:
應用了更強大的Backbone網(wǎng)絡CSPDarknet53,融合了Cross-Stage Partial Network (CSPNet) 架構,減少冗余計算,提高效率。
引入了Spatial Pyramid Pooling (SPP) 和 Path Aggregation Network (PANet),聚合多尺度特征,加強特征表達能力。
使用了Mish激活函數(shù)、DropBlock正則化等新技術優(yōu)化模型性能。
在訓練策略上使用了多種數(shù)據(jù)增強方法,以及CIOU loss來改進邊界框定位誤差。
效果:YOLOv4在各項指標上取得了重大突破,不僅保持了原有的實時性,而且在COCO數(shù)據(jù)集上的mAP(平均精度均值)大幅提高,成為當時性能極佳的實時目標檢測模型。文章來源:http://www.zghlxwxcb.cn/news/detail-843767.html -
YOLOv5
提出時間:2020年后
主要改進:
由 Ultralytics 團隊開發(fā),基于PyTorch框架實現(xiàn),代碼開源易于使用和擴展。
結構上繼續(xù)優(yōu)化,網(wǎng)絡更為輕量化,針對移動端和嵌入式設備做了適配。
使用跨層特征融合和輕量級Backbone,例如CSPDarknet-tiny、CSPDarknet-S等。
在訓練技巧上也有多項改進,包括對預訓練權重的選擇、數(shù)據(jù)增強策略、模型量化等方面。
效果:YOLOv5在保持實時性的同時,進一步提升了模型性能,尤其適合于對速度要求較高的應用場景,同時在資源受限的環(huán)境下也能良好運行。
總體來說,YOLO系列算法的每次升級都圍繞著提高檢測精度、優(yōu)化小目標檢測、提高運行速度和減輕模型體積等方面進行,不斷推動著目標檢測技術的發(fā)展。文章來源地址http://www.zghlxwxcb.cn/news/detail-843767.html
到了這里,關于《計算機視覺中的深度學習》之目標檢測算法原理的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!