yolo 负样本_目标检测介绍之YOLO与SSD
? ? ?當前,目標檢測的方法主要有兩類,一類被稱為兩階段方法,一類被稱為一階段方法。兩階段方法和一階段方法都是基于目標應位于某個矩形框內這樣一個假設,區別在于兩階段方法多了一個框的篩選階段(Region Proposal),一般來說,兩階段方法以復雜度為代價換取精度的提升。?
? ? ? 兩階段的代表算法主要有R-CNN,Fast-RCNN,Faster-RCNN及Mask-RCNN,具體介紹見文章:目標檢測介紹之--RCNN系列?。一階段的開山之作為YOLO,幾乎同一時期的SSD結合YOLO和Faster R-CNN的優點,取得了更好的精度和速度。本篇介紹YOLO和SSD的檢測方法。
1. 分類與回歸
? ? ? 在介紹YOLO和SSD之前,我們先看兩個概念:分類和回歸。
? ? ??分類問題是指輸出變量為有限個離散變量的預測問題,而回歸問題是指輸出變量均為連續變量的預測問題。由于卷積神經網絡在圖像分類的巨大成功,人們將目標檢測問題轉化為分類問題,如R-CNN系列(“候選框+分類”)。另一方面,也是因為目標檢測問題難以直接應用回歸方法去解決。
?? ? ?對于單個目標的檢測問題,很容易將它看作一個回歸問題,即預測目標所屬類的分數和位置的量,如下圖所示。?
? ? ? ?但是對于多個且不確定的目標檢測,因為需要回歸的變量個數不確定,這個方法變得不可行了。比如下圖中鴨媽媽帶了很多只小鴨子,具體數目并不是一目了然,或者說需要檢測的目標個數預先并不知曉。
? ? ? 2016年,Joseph Redmon提出了YOLO模型,將檢測問題看做回歸問題,提出了端到端(end-to-end)的單一網絡直接預測邊界框和類概率,巧妙地運用回歸方法解決檢測問題。
2.? YOLO
? ? ? YOLO全稱是You Only Look Once,顧名思義就是你只需看一眼就能知道是什么。所以作者希望所提出的算法可以達到這種簡潔高效的檢測水平。它最大的優點在于執行速度很快。
? ? ? YOLO的思想大致如下:整張圖作為網絡的輸入,把目標檢測的問題轉化成一個回歸問題,直接輸出目標邊界框和類別概率。
? ? ? 前面說過,由于圖像中目標個數的不確定性,目標檢測問題難以轉化為回歸問題。那么,YOLO是怎么解決這個問題的呢?下面看一下它的解決思路。? ? ?
? ? ? 首先,YOLO的具體操作過程如下:把一張圖片劃分為S*S個格子(圖左),然后對每個格子預測B個邊界框及這些邊界框的可信度(圖中上方)及C類的概率(圖中下方),這些預測被編碼成一個S*S*(B*5+C)的張量,其中的5對應 BOX(x, y, w,h)?與 P(object)的5個值。
? ?
? ? ? ?當S=7,B=2,C=20時,輸出維度為7*7*30(上圖左)。每個1*1*30的維度對應原圖7*7個cell中的一個(上圖中的紅框),1*1*30中含有類別預測(20類)和2個物體框(bbox)坐標及可信度預測。
? ? ?可以看出,YOLO方法所確定的邊界框個數是確定的(RCNN系列中不確定),這也決定了圖像中目標個數的上限,在上面的假設中,7*7*2=98個。
? ? ??前面提到,每個網格預測B個邊界框。這些邊界框里面有些框包含了物體,有些并沒有包含物體,對沒有包含物體的邊界框進行回歸是沒有意義的。很多時候,邊界框與物體的真值(ground truth)并不是完全重合或者沒有任何交疊,而是有一部分相交。選擇哪些邊界框進行預測是非常重要的。在YOLO模型中,采取了這樣的策略:如果一個物體的中心落在某一個網格中,則該網格負責預測這個物體。一個網格有B個邊界框,則選擇與真值具有最大交并比(IOU)的框來預測物體。這導致了邊界框的專門化,它也使得在大小,寬長比,目標類別方面的預測更好,提高了整個網絡的召回率。以上也回答了YOLO是如何將檢測問題轉化為回歸問題的。
? ? ?需要指出的是,R-CNN里面也用到了回歸方法。不過,R-CNN是將回歸方法用在最后檢測出的邊界框修正上,降低了定位的誤差。? ??? ?
?? ? YOLO算法的損失函數由幾部分組成:坐標損失(前2項),類別損失(第3,4項)及類別概率(第5項),并分配了不同的權重,這些回歸參數均為連續量。
? ? ?雖然YOLO在速度上獲得了很大的提升,但精度卻相對于R-CNN差了點。主要由于基于格子進行劃分圖片一定程度上限制了物體框的大小以及位置,并且預測框的數目也非常有限,對于密集型或者較小的目標,效果不如意。
? ? ? ?在這張圖中,YOLO檢測器把上面的人識別成了飛機。
3.?SSD
? ? ? SSD全稱Single Shot multi box Detector,借鑒了Faster R-CNN和YOLO兩者的思想。既可以保證較快的速度,也可以有較高的精度。
? ? ?上圖是SSD的示意圖,輸入的是一張原始圖片和對應的真值(藍框和紅框),通過卷積網絡后,會得到不同大小的特征圖(如b圖8*8, c圖4*4)? ,這些特征圖的每個位置都對應不同尺寸和形狀的默認框(類似Faster R-CNN中的anchor box,這也是論文題目中 Multi box Detector的由來),每個默認框都包含框的形狀偏移量(loc)及所屬不同類別對應的值(conf)。在訓練階段,需要將這些默認框跟真值匹配,相匹配的框為正樣本,其余的則為負樣本。匹配的原則為選擇最大的交并比及交并比大于0.5的框。如b圖中有兩個藍框都滿足條件,因此被當做正樣本進行訓練。
?? ? ? ?上圖示意了在2層特征圖上取默認框。實際中,論文采取了在更多層上選取默認框,如下圖所示。下圖是SSD模型的結構,并與YOLO做了對比。
? ? ? 在SSD中,算法模型應用了VGG16網絡,輸入300*300的圖片,在conv5中得到38*38響應圖,每個位置上的默認框個數K取值為4,進一步降采樣后得到響應圖大小分別為19*19、10*10以及5*5,這三個響應圖k取值6,最后繼續降低采樣得到響應圖分辨率分別為3*3、1*1,k取值4,那么每一個類別就可以得到8732(38*38*4+(19*19+10*10+5*5)*6+(3*3+1*1)*4=8732)個默認框。而在YOLO中,輸入大小為448*448的圖像,若格子大小為7*7,每個格子默認預測2個物體框,最后每個類別就是7*7*2一共98個物體框。SSD相比YOLO來說,輸入的圖片更小,但得到的默認物體框數量高出很多,并且在速度上也很接近。
? ? ? ? 下圖是SSD的檢測效果圖??梢钥闯?#xff0c;檢測效果還不錯,但沒有檢測出玻璃花瓶。
4.? 小結? ?
? ? ? ? YOLO算法是一個非常有創意的檢測方法,它突破了“候選框+分類器”的統治框架。SSD算法采取在多個特征圖上檢測目標,借鑒了Faster-RCNN的錨框思想,在檢測精度和速度上都有提升。
參考:
?論文:You Only Look Once: Unified, Real-Time Object Detection
論文:SSD: Single Shot MultiBox Detector
斯坦福李飛飛的課程PPT http://cs231n.stanford.edu/syllabus.html 中Lecture 12: Detection and Segmentation
總結
以上是生活随笔為你收集整理的yolo 负样本_目标检测介绍之YOLO与SSD的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海航系10公斤以上活体包装要求
- 下一篇: 增量型旋转编码器CHCY是哪个品牌生产