close
  • YoloV3的核心思想
    YoloV3的核心思想就是利用整張圖做為網路的輸入,直接在輸出層回歸bounding box(邊界框)的位置及其所屬類別。YoloV3規劃了三層名叫”yolo”來當作物件偵測層,其層產生的feature map即是用來回算bounding box的資訊,若要了解如何回推物件的最佳bounding box前,須了解何謂anchor boxYoloV3檢測思路。
     
  • YoloV3實現的方法
    將原始影像利用捲積神經網路的滑動視窗演算法,將圖片分成SxS個網格(grid cell)來偵測物件所在,如果某個物件的中心點落在此網格內,則這網格負責預測這個物件。YoloV3裡,使用移動步伐(stride)的方式,將圖片縮小至1/321/161/8不同大小來偵測大中小物件,以輸入照片原始大小為416x416為例,則會產生13x1316x2652x52的網格,分別位於第82、第94、第106層,其網格內容存放的資訊是預測資訊(邊界框的坐標、類別標籤等)。

  •  
  • 錨點框(Anchor box)
    Anchor box是一種先驗知識,是在訓練階段產生的數值,在測試階段,可透過anchor box的長寬及網路預測的數值產生物件的bounding box,在yoloV3裡,因為每個cell都帶有預測3 個邊界框,每個邊界框都搭配一個Anchor box來修正成最後正確的邊界,所以每層yolo的每個cell都有三分anchor box。透過下三張圖,可以看到第8294106層的anchor box的配置,mask代表此層要拿第幾組anchor boxclasses代表有幾種物件要判斷。其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, hb-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 個邊界框可以檢測一個框,或者臨近網格可檢測相同對象。

參考網址:  https://xmfbit.github.io/2018/04/01/paper-yolov3/

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ^_^ 的頭像
    ^_^

    一切的安排,都是最好的安排

    ^_^ 發表在 痞客邦 留言(0) 人氣()