深度學習-什麼是one stage,什麼是two stage 物件偵測

Tommy Huang
4 min readAug 29, 2018

--

在電腦視覺物件偵測中,一般作法都是先用特殊方法先選出物件,比如Selective Search,選出物件的過程稱為Region Proposal;然後針對選出的物件(Region Proposals)再進行物件辨識 (但因為選出的物件大小可能不一樣,所以物件辨識有可能只有分類,也可能包含特徵擷取加分類)。這種需要先找出Region Proposal然後再做辨識的做法通常就稱為two stage learning。

Two stage learning
Figure source: https://github.com/bourdakos1/Custom-Object-Detection

這類two stage的方法通常有一個問題是如果選出來的物件太多,假設一張圖選出一千個物件,後面的辨識就用重複做一千次(如下圖),假設辨識的部分用了一個很複雜的辨識系統,比如一個物件辨識要0.1秒,那一千個物件就要100秒了,除非你用一個很強的GPU平行運算,那還可能減低運算時間,但如果是手機這類型的算法幾乎沒辦法做到即時運算,因此才有one stage的方法。

Figure source: https://blog.goodaudience.com/a-year-in-computer-vision-part-1-of-4-eaeb040b6f46

One-stage Learning從名稱就很主觀,物件位置偵測和物件辨識一步到位,也就是一個神經網路能同時偵測物件位置也可以辨識物件,如同Google在2015年12月提出Single Shot Detector (SSD),Google在文章摘要第一句話就寫「We present a method for detecting objects in images using a single deep neural network.」,一個深度神經網路就可以做完所有的物件偵測。

這種方式通常速度很快,但整體辨識精度可能沒有two stage的方法來的好,但整體辨識率仍在可接受範圍內,因此One stage的方法是目前比較多人研發用在行動裝置上的方法。

One stage learning

Two stage 物件偵測的方法比較有名的方法為 Region-based convolutional neural network:

最早的R-CNN: Regions with CNN features

改良版 fast R-CNN

進化版 faster R-CNN

R-CNN, fast R-CNN, and faster R-CNN的差異
Source: https://read01.com/zh-tw/RxO842.html#.W4X3kegzaM8

One stage 物件偵測的方法比較有名的方法為

-YOLO (You only look once)系列: YOLOv1, YOLOv2, YOLOv3, Tiny YOLO

-Single Shot Detector (SSD)

最後來看一下一些實作影片吧

YOLO作者的影片比較有趣,從Joseph的Resume背景是彩虹小馬就可以看得出他是很有趣的人

Video from Youtube (Karol Majek)

Faster RCNN:

YOLOv3 video

YOLO作者(Joseph Redmon)提供有趣的影片(YOLOv2)

--

--

Tommy Huang
Tommy Huang

Written by Tommy Huang

怕老了忘記這些吃飯的知識,開始寫文章記錄機器/深度學習相關內容。Medium現在有打賞功能(每篇文章最後面都有連結),如果覺得寫的文章不錯,也可以Donate給個Tipping吧。黃志勝 Chih-Sheng Huang (Tommy), mail: chih.sheng.huang821@gmail.com