close
- YoloV3的核心思想
YoloV3的核心思想就是利用整張圖做為網路的輸入,直接在輸出層回歸bounding box(邊界框)的位置及其所屬類別。YoloV3規劃了三層名叫”yolo”來當作物件偵測層,其層產生的feature map即是用來回算bounding box的資訊,若要了解如何回推物件的最佳bounding box前,須了解何謂anchor box及YoloV3檢測思路。
- YoloV3實現的方法
將原始影像利用捲積神經網路的滑動視窗演算法,將圖片分成SxS個網格(grid cell)來偵測物件所在,如果某個物件的中心點落在此網格內,則這網格負責預測這個物件。YoloV3裡,使用移動步伐(stride)的方式,將圖片縮小至1/32、1/16、1/8不同大小來偵測大中小物件,以輸入照片原始大小為416x416為例,則會產生13x13、16x26、52x52的網格,分別位於第82、第94、第106層,其網格內容存放的資訊是預測資訊(邊界框的坐標、類別標籤等)。
- 錨點框(Anchor box)
Anchor box是一種先驗知識,是在訓練階段產生的數值,在測試階段,可透過anchor box的長寬及網路預測的數值產生物件的bounding box,在yoloV3裡,因為每個cell都帶有預測3 個邊界框,每個邊界框都搭配一個Anchor box來修正成最後正確的邊界,所以每層yolo的每個cell都有三分anchor box。透過下三張圖,可以看到第82、94、106層的anchor box的配置,mask代表此層要拿第幾組anchor box,classes代表有幾種物件要判斷。其anchor box的數值並非是座標位置,是anchor box的大小(pixel value),代表長跟寬。
- Yolo輸出層解釋
前一段落有提到每個cell都帶有預測3 個邊界框數量,根據YOLO 的論文,這些B 邊界框中的每一個都可能專門用於檢測某種對象。每個邊界框都有5+C 個屬性,分別描述每個邊界框的中心坐標、維度、objectness 分數和C 類置信度。分別是x, y, w, h, confidence,(x, y)表示box中心相對於grid cell的位移,而w, h為b-box長寬,confidence即為IOU (between predicted box and any ground truth box)。其邊界框結構如下:
每個cell分別有三個預測框數量
所以此yolo層的feature map數量為S x S x B x (5 + classes)
- 邊界框預測結果
使用yolo層的預測結果(bounding box)加上anchor box來正確框出物件位置,公式轉換如下:
pw / ph : anchor box長寬
tx / ty / tw / th: 網路預測四個值
cx / cy: 某個cell距離物件的top left corner距離
如上圖,透過公式,找出藍色框框,其籃框是最符合物件大小的。
輸出處理
416 x 416 的圖像,YOLO 預測((52 x 52) + (26 x 26) + 13 x 13)) x 3 = 10647 個邊界框。但是,我們的示例中只有一個對象——一隻狗。那麼我們怎麼才能將檢測次數從10647 減少到1 呢?objectness 分數過濾邊界框。通常,分數低於閾值的邊界框會被忽略。非極大值抑制:非極大值抑制(NMS)可解決對同一個圖像的多次檢測的問題。例如,紅色網格單元的3 個邊界框可以檢測一個框,或者臨近網格可檢測相同對象。
全站熱搜
留言列表