日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

【目标检测】(5) YOLOV1 目标检测原理解析

發布時間:2023/11/27 生活经验 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【目标检测】(5) YOLOV1 目标检测原理解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

各位同學好,今天和大家分享一下YOLOV1目標檢測的原理。

1. 預測階段--前向傳播

預測階段就是在模型已經成功訓練之后,輸入未知圖片,對圖片預測。此時只需要前向傳播運行這個模型

流程如下圖,模型輸入圖像的shape為 [448,448,3],經過若干個卷積層和池化層,輸出特征圖的shape為 [7,7,1024];再將這個特征圖拉平放到有4096個神經元的全連接層中,輸出 4096 維的向量;再將該向量輸入至 1470 個的神經元的全連接層中,輸出 1470 維的向量;最后將該向量reshape成 [7,7,30] 的特征圖

在預測階段,YOLOV1模型相當于一個黑箱子,輸入 [448,448,3] 的圖像,輸出 [7,7,30] 的特征圖。輸出的 tensor 中包含了所有預測框的坐標,置信度,類別結果


輸出特征圖的shape是 [7,7,30] 可以理解為:

(1)首先,網絡將圖像劃分成 SxS 個網格(grid cell),在YOLOv1中S=7,因此每張圖像都劃分成 7x7 的網格。

(2)每個網格(grid cell)能預測出 b 個預測框(bounding box),在YOLOv1中b=2,每個網格能預測出2個預測框。這個兩個預測框可能大小形狀差別很大,只要預測框的中心點落在該網格中,就說明這個檢測框是由該網格生成的。所以每個網格生成的兩個預測框的中心點肯定落在該網格中。

(3)每個預測框包含中心點坐標(x, y),寬高(w, h)這四個定位坐標確定預測框的位置;包含預測框中的物體是不是目標物體的置信度 c;包含所有類別的條件概率假設在預測框已經包含目標物體的情況下,該物體是某一個類別的概率。如:在包含目標物體的情況下是狗的概率。

(4)將每個預測框的置信度乘以類別的條件概率,就能獲得每個預測框屬于各個類別的概率。

(5)輸出特征圖的通道數是30,可以理解為,每個網格生成2個預測框,每個預測框包含5各參數(x, y, w, h, c),那么兩個預測框就有10個參數,在VOC數據集中包含20個類別,即每個網格包含這20個類別的條件概率。

因此,每個網格包含5+5+20個參數,每張圖片被劃分成7x7的網格,一張圖片有7x7x30個參數


如下面左圖,每個網格預測出兩個預測框,預測框的置信度高的用粗線表示,置信度低的用細線表示,保留下置信度高的預測框。

每個網格還能生成20個類別的條件概率,如右圖,展示了條件概率高的類別所占有的網格。如綠色代表狗的條件概率較高的區域。每個網格只有一個類別,選擇20個條件概率中最高的那一個類別

每一網格只能識別一個目標物體,7x7的網格最多能預測出49個物體,這也是YOLOv1在小目標和密集目標識別性能差的原因


2. 預測階段--后處理

將紛繁復雜的預測出的98個預測框篩選過濾(NMS非極大值抑制),去除低置信度的預測框,重復的預測框只保留一個,獲得最終目標檢測的結果。

后處理就是將網絡輸出的 7x7x30 的特征圖變成最后的目標檢測結果

從 7x7 個網格中取出一個網格來研究,首先如第一節所述,每個網格包含2個預測框參數(x,y,w,h,c)和20個類別的條件概率(假設預測框包含目標物體,它是某個類別的概率),即5+5+20個參數

接下來,將每個預測框的置信度和每個網格屬于20個類別的條件概率相乘,得到網格真正屬于某個類別的概率。第一個預測框的置信度乘以20個類別的條件概率,得到第一個預測框屬于20個類別的全概率。一個20維的向量,代表一個預測框屬于每個類別的概率。

那么每個網格就有2個概率向量,每個向量有20個元素。7x7個網格就有98個向量

現在獲得了98個概率向量,以狗這個類別為例,某些預測框計算出的狗這個類別的概率很小,現在設置一個閾值如0.2,將所有檢測框預測狗的概率小于0.2的概率值全部變成0,然后按照狗類別的概率值高低排序所有的預測框。


對排序后的預測框使用非極大值抑制NMS

先把概率值最大的預測框拿出來,然后把剩下的預測框逐一和概率最大的預測框比較,如果兩個框的IOU(交并比)大于某個閾值,就認為這兩個檢測框重復識別了同一個目標物體,把低概率的預測框過濾掉。把交并比滿足要求的預測框保留下來

如下圖,橘色預測框和綠色預測框的交并比大于0.5,表明兩個框預測了同一個目標物體,將概率小的綠框的概率值變成0

接下來再把概率值第二高的預測框拿出來,和剩下的預測框逐一計算交并比。藍框和紫框的交并比超過閾值,表示重合,概率值小的紫框的概率值置為0。同理依次對所有預測框比較。

最終比較完剩下橘框和藍框預測結果是狗被保留下來,然后分別對這20個類別使用NMS,最終的計算結果一個稀疏矩陣,有很多元素被置為0將98個預測框中概率值不為0的框找出來,找到類別索引和概率值,就能獲得最終的目標檢測結果。


3. 訓練階段

監督學習的訓練是通過梯度下降和方向傳播方法,迭代微調神經元的權重,使得損失函數最小化。

目標檢測是一個典型的監督學習問題,在訓練集上已經人工畫出了真實目標的檢測框,而算法要使得預測框盡量去擬合真實檢測框。

真實檢測框的中心點落在哪個網格中,就需要哪個網格生成的預測框去擬合真實的檢測框。每個網格生成兩個預測框,那么就需要這兩個預測框中的一個框去擬合真實檢測框。并且這個網格輸出的類別也必須是該真實檢測框的類別。

如下圖,藍色實線框是真實檢測框,中心點落在紅色網格中,該網格生成了兩個預測框,黃色和橘色虛線框。預測框和真實框的IOU交并比大的預測框負責擬合真實框,下圖就是黃色虛線框來擬合真實框。調整預測框盡量逼近真實框的樣子。讓交并比小的預測框的置信度越小越好。


損失函數

損失函數包含五項,都是回歸問題的損失函數,預測出一個連續的值,將該值和標注值比較,越接近越好。

(1)第一個是負責檢測物體的預測框的中心點定位誤差。預測框和真實框在橫縱坐標上盡可能的一致

(2)第二項是負責檢測物體的預測框的寬高定位誤差。預測框的寬高要和真實框的寬高盡可能一致,求根號能使小框對誤差更敏感。

(3)第三項是負責檢測物體的預測框的置信度誤差。標簽值是預測框和真實框的IOU交并比,預測值需要和標簽值越接近越好。

(4)第四項是不負責檢測物體的預測框的置信度誤差。所有不用來擬合真實框的預測框的標簽值IOU最好都等于0

(5)第五項是負責檢測物體物體的網格的分類誤差。若某個網格負責預測狗,那么這個網格在20個類別中狗這個類別的概率越接近于1越好。

?代表第 i 個網格是否包含物體,即真實框的中心點是否落在該網格中。若有則為1,否則為0

?代表第 i 個網格的第 j 個預測框,若負責預測物體則為1,否則為0

?代表第 i 個網格的第 j 個預測框,若不負責預測物體則為1,否則為0

?代表給真正負責檢測物體的預測框的誤差給予更多的權重

?代表給不負責檢測物體的預測框的誤差給予很小的權重

總結

以上是生活随笔為你收集整理的【目标检测】(5) YOLOV1 目标检测原理解析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。