YOLO系列論文筆記--YOLOv1

YOLOv1

優點

--預測爲false positives的樣例比較少,主要表現在YOLO是對整張圖片進行處理,能夠索取整體圖片的上下文信息,不像滑動窗口和基於區域建議技術(如Fast R-CNN),它是以圖像塊爲單位,用以對目標進行識別;

--YOLO比DPM和R-CNN等頂級檢測方法更具優勢,在實驗上表現在利用自然圖像訓練並在藝術品測試,其檢測性能更優,究其本質,是由於YOLO學習目標特徵的普遍化;

缺點

--其準確率落後於最新的檢測系統;YOLO能夠很快識別圖像中的物體,但是很難精確的定位,尤其是小物體;(a原因?)

速度

--YOLO:45 frames per second(fps)(在沒有批處理,硬件環境:Titan X GPU);意味着處理視頻流的實時性少於25毫秒的延遲;

--Fast YOLO(tiny YOLO):155fps;與其他實時監測系統相比,該模型的mAP是其他系統的兩倍;

檢測流程(建模)

--模型流程(詳細的建模步驟和後面的網絡模型並沒有嚴格的匹配,可以認爲網絡也可以按照這個流程完成目標的檢測):


--將輸入圖片分割成S*S的網格

--每個網格預測B個bounding boxes(bounding boxes包括置信度分數confidence和其座標或者偏置(x,y,w,h),(x,y)爲中心座標,w爲該box的寬,h爲高,confidence表示預測的box與任意真實box的IOU;

confidence=分數

--每個網格還會預測C個條件概率,表示該網格包含目標的概率;

--由以上可知,類出現在盒子的概率與預測的目標框適合真實目標的程度爲:

--根據以上流程,如下的網絡只需預測一個S*S*(B*(4+1)+C)的向量,該向量用於最終迴歸框的生成,以及訓練時損失的計算;

網絡框架

--網絡模型受GoogleLeNet啓發;包含24個卷積層和2個全連接層;Fast YOLO使用9個卷積層;


訓練

--預訓練模型:利用如上網絡框架的前20個卷積層+1平均池化層+1全連接層組成分類框架和ImageNet 1000-class比賽數據集訓練大約一週的時間,並且在ImageNet2012驗證集上single crop top-5準確率達到88%;其訓練集圖片設計爲224*224(因爲後期用於檢測時需要細粒度視覺信息),YOLO網絡訓練集圖片大小的一半;

--YOLO的網絡框架是預訓練模型框架後添加4個卷積層和2個全連接層,在訓練時隨機初始化;(實驗發現,在預訓練模型後添加捲積層和全連接層能夠提高性能。)

--最終層激活函數爲linear(y=x);其他所有層激活函數爲leaky;


--預測輸出:class probabilities和BBs座標((x,y)爲中心座標的偏置,處於0-1;w,h爲BBs的寬和高,利用圖像的寬和高正則化爲0-1之間);

--損失優化時,(1)由於每張圖片中的許多網格中不包含目標,使得其計算的置信度分數趨於0,如果誤差和中各種誤差的權重相等,則會導致模型的不穩定性以及在訓練過程中提前出現分歧;其處理方法爲使包含目標的網格擁有大的梯度,也就是說,其誤差在誤差和中有一個大的比重;所以在最終損失中,包含目標的boundingbox的損失權重設置爲5,不包含的設置爲0.5;(2)爲了解決小boundingbox的小偏差比大BBs的重要,模型預測BBs的寬和高的平方根(由於預測的寬和高處於0到1之間,平方根屬於比寬和高大的值,在計算損失時,就緩和了小BBs對小偏差的敏感程度)已達到目的;

--損失函數:


--特此說明,對爲什麼這樣計算損失的理解:每個網格期望有一個最優目標框(具有該網格預測的目標框與真實目標框的最大IOU值)。在計算損失時,認爲該網格預測的置信度分數和該網格預測目標框與真實目標框的最大IOU值有關。置信度的損失是利用每個Cell的最優目標框與ground truth的IOU作爲監督信息計算(IOU爲0時,就證明無目標,就會計算無目標對象的置信度損失);當Cell在ground truth內時,計算當前cell的分類損失;座標損失只計算最優目標框的,包括中心座標該框的寬和高的平方根的損失

--數據集:PASCAL VOC 2007和2012的訓練集和驗證集上訓練;VOC2007的測試集上測試;

--訓練參數:135 epochs;momentum 0.9;decay 0.0005;學習率:前75epochs:開始時爲10^-3,然後慢慢的變爲10^-2,開始時的高學習率會因爲模型的不穩定使得模型分歧;接下來的30epochs爲10^-3;最後的30epochs爲10^-4;

--知識點積累:(1)epoch代表過完一次所有的訓練數據;(2)momentum,動量來源於牛頓定律,基本思想是爲了找到最優加入“慣性”的影響,當誤差曲面中存在平坦區域,SGD就可以更快的學習;(3)decay,上述decay指的是權值訓練過程中,正則化權值的衰減係數(參照機器學習的正則化L1、L2);

動量的公式

--防止過擬合採取的措施:(1)dropout,0.5;(2)擴展數據集:對隨機縮放和翻轉的比例是原始圖片大小的20%,並隨機調整圖片的曝光度和飽和度,調節因子爲1.5;

模型分析分析

--網格(grid cell)設計boundingbox的預測中增加了其空間的多樣性,無論訓練以何種方式計算損失,但在預測時,它能夠把大的目標或者網格中有相鄰邊界的目標在多個網格中進行多次預測,使得這些目標能夠被很好的預測;非極大值抑制的方法使mAP增加了1-2個百分點;

--YOLO的侷限性:(1)強加在boundingbox上空間約束(每個網格只能預測兩個boxes和一個類)限制了模型預測相鄰目標的box的數量;模型不能夠很好的預測成羣出現的小目標;(2)模型所能預測的box的比例和大小有限(所能預測的比例和大小隻能是訓練數據中出現的);預測box的特徵比較粗糙(訓練經歷了多次下采樣);(3)損失函數的近似性(處理小box和大box的誤差的方法相同,沒有充分考慮到小誤差對於小box的IOU比大box的大,使得主要錯誤來源於定位錯誤);

與其他檢測系統的比較

--DPM(Deformable parts models):建立圖片金子塔,計算每層的31維特徵圖譜,運用訓練好的模型(rootfilter和part filter)進行卷積,然後累加,最終達到檢測的目的;

DPM詳情:https://blog.csdn.net/sysu_yuhaibao/article/details/76599926?fps=1&locationNum=6

區別:DPM使用分離步驟提取靜態特徵、分類區域並且對高分區域預測boundingbox;而YOLO利用統一的網絡實現特徵提取、邊界框預測、非最大值抑制和上下文推理。由於YOLO優化的動態性,使得該框架比DPM模型具更快更準確;

--RCNN:流程:Selective Search生成潛在的boundingboxes——卷積神經網絡提取特徵——SVM判別是目標的分數並且用線性模型調整boundingbox的位置——非最大值迴歸淘汰重複的boxes;由於每個過程需獨立調整進行精確調整,使得非常耗時(測試一張圖片40ms以上);

區別:兩者具有相似之處,都使用卷積特徵預測出潛在的box以及這些box的分數;YOLO的grid cell方法具有空間侷限性,減輕了同一目標的多次檢測,並且YOLO將多個單一的部分組合成單一流程,最終能夠聯合優化;

--其它Fast檢測器(Fast R-CNN和Faster R-CNN):Fast 和Fater總體來說是通過共享計算能力和利用卷積神經網絡代替SS方法提高R-CNN的速度,儘管如此(速度和準確率普遍提高),其仍不能達到實時性能;

--總結性知識:很多研究都集中在加速DPM通道(加速HOG計算、使用級聯和使用GPU加速),最終,30HZ DPM達到實時性要求;而YOLO提出了一種全新的思路;很多檢測器利用更少的變化在單一類上進行優化,而YOLO屬於通用目標檢測;

--DeepMultiBox:定位+識別;MultiBox不能執行通用目標檢測,它仍然是一個大的通道;兩者都使用卷積神經網絡預測boundingbox,但Yolo是整體檢測流程;

--OverFeat:分類+定位;訓練一個卷積神經網絡來執行定位和調整定位器來執行檢測;非連貫性系統;

--MultiGrasp:預測一個可能包含的目標的抓取區域,不需要估計大小、位置、目標的邊界和類;


實驗

--與其它檢測系統的比較:


--在VOC2007上的錯誤分析:Correct: correct class and IOU > 0.5; Localization: correct class, 0.1 < IOU <0.5; Similar: class is similar, IOU > 0.1;Other: class is wrong, IOU > 0.1; Background: IOU <0.1 for any object;


    

--Fast R-CNN與YOLO的聯合使用


由於YOLO與Fast R-CNN在測試時出現不同類型的錯誤,所以聯合起來才能更有效的提升Fast R-CNN的檢測性能;

--在VOC2012上的結果


--藝術作品中人的檢測



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章