你要的2019最全目標檢測都在這裡啦!
大資料文摘出品
編譯:張睿毅、寧靜
計算機視覺是一門研究如何對數字影像或視訊進行高層語義理解的交叉學科,它賦予機器“看”的智慧,需要實現人的大腦中(主要是視覺皮層區)的視覺能力。
想象一下,如果我們想為盲人設計一款導盲產品,盲人過馬路時系統攝像機拍到了如下的影像,那麼需要完成那些視覺任務呢?
影像分類:為圖片中出現的物體目標分類出其所屬類別的標籤,如畫面中的人、樓房、街道、車輛數目等;
目標檢測:將圖片或者視訊中感興趣的目標提取出來,對於導盲系統來說,各類的車輛、行人、交通標識、紅綠燈都是需要關注的物件;
影像語義分割:將視野中的車輛和道路勾勒出來是必要的,這需要影像語義分割技術做為支撐,勾勒出影像物體中的前景物體的輪廓;
場景文字識別:道路名、綠燈倒數計時秒數、商店名稱等,這些文字對於導盲功能的實現也是至關重要的。
以上已經囊括了計算機視覺(CV)領域的四大任務,在CV領域主要有八項任務,其他四大任務包括:影像生成、人體關鍵點檢測、視訊分類、度量學習等。
目標檢測作為CV的一大任務之一,其對於圖片的理解也發揮著重要的作用,在本文中,我們將介紹目標檢測的基礎知識,並回顧一些最常用的演算法和一些全新的方法。(注:每個小節展示的論文圖片,均在節末給出了具體的連結)
目標檢測如何運作
目標檢測定點陣圖像中物體的位置,並在該物體周圍繪製邊界框,這通常涉及兩個過程,分類物體型別,然後在該物件周圍繪製一個框。現在讓我們回顧一下用於目標檢測的一些常見模型架構:
R-CNN
Fast R-CNN
Faster R-CNN
Mask R-CNN
SSD (Single Shot MultiBox Defender)
YOLO (You Only Look Once)
R-CNN
該技術結合了兩種主要方法:將高容量卷積神經網路應用於自下而上的候選區域,以便對物體進行區域性化和分割,並監督輔助任務的預訓練。接下來是特定領域的微調,從而產生高效能提升。論文的作者將演算法命名為R-CNN(具有CNN特徵的區域),因為它將候選區域與卷積神經網路相結合。
模型接收影像並提取約2000個自下而上的候選區域,然後,它使用大型CNN計算每個候選區域的特徵,此後,它使用特定類的線性支援向量機(SVM)對每個區域進行分類,該模型在PASCAL VOC 2010上實現了53.7%的平均精度。
模型中的物體檢測系統有三個模組:第一個負責生成與類別無關的候選區域,這些候選區域定義了模型檢測器可用的候選檢測器集;第二個模組是一個大型卷積神經網路,負責從每個區域提取固定長度的特徵向量;第三個模組由一類支援向量機組成。
模型內部使用選擇性搜尋來生成區域類別,選擇性搜尋根據顏色、紋理、形狀和大小對相似的區域進行分組。對於特徵提取,該模型通過在每個候選區域上應用Caffe CNN(卷積神經網路)得到4096維特徵向量,227×227 的RGB影像,通過五個卷積層和兩個全連線層前向傳播來計算特徵,節末連結中的論文解釋的模型相對於PASCAL VOC 2012的先前結果實現了30%的改進。
R-CNN的一些缺點是:
訓練是一個多階段的任務,調整物體區域的卷積神經網路,使SVM(支援向量機)適應ConvNet(卷積網路)功能,最後學習邊界框迴歸;
訓練在空間和時間上都很昂貴,因為VGG16是佔用大量空間的深層網路;
目標檢測很慢,因為它為每個候選區域都要執行ConvNet前向傳播。
相關論文和參考內容連結:
https://arxiv.org/abs/1311.2524?source=post_page
http://host.robots.ox.ac.uk/pascal/VOC/voc2010/index.html?source=post_page
https://heartbeat.fritz.ai/a-beginners-guide-to-convolutional-neural-networks-cnn-cf26c5ee17ed?source=post_page
Fast R-CNN
下圖中展示的論文提出了一種基於快速區域的卷積網路方法(Fast R-CNN)進行目標檢測,它在Caffe(使用Python和C ++)中實現,該模型在PASCAL VOC 2012上實現了66%的平均精度,而R-CNN則為62%。
與R-CNN相比,Fast R-CNN具有更高的平均精度,單階段訓練,更新所有網路層的訓練,以及特徵快取不需要磁碟儲存。
在其結構中,Fast R-CNN將影像作為輸入同時獲得候選區域集,然後,它使用卷積和最大池化圖層處理影像,以生成卷積特徵圖,在每個特徵圖中,對每個候選區域的感興趣區域(ROI)池化層提取固定大小的特徵向量。
這些特徵向量之後將送到全連線層,然後它們分支成兩個輸出層,一個產生幾個物件類softmax概率估計,而另一個產生每個物件類的四個實數值,這4個數字表示每個物件的邊界框的位置。
相關內容參考連結:
https://github.com/rbgirshick/fast-rcnn?source=post_page
Faster R-CNN
Faster R-CNN:利用候選區域網路實現實時目標檢測,提出了一種訓練機制,可以對候選區域任務進行微調,並對目標檢測進行微調。
Faster R-CNN模型由兩個模組組成:提取候選區域的深度卷積網路,以及使用這些區域FastR-CNN檢測器, Region Proposal Network將影像作為輸入並生成矩形候選區域的輸出,每個矩形都具有檢測得分。
相關論文參考連結:
https://arxiv.org/abs/1506.01497?source=post_page
Mask R-CNN
下面論文中提出的模型是上述Faster R-CNN架構的擴充套件,它還能夠估計人體姿勢。
在此模型中,物體通過邊界框和語義分割實現分類和區域性化,語義分割是將圖片中每個畫素分類。該模型通過在每個感興趣區域(ROI)新增分割掩模的預測來擴充套件Faster R-CNN, Mask R-CNN產生兩個輸出,類標籤和邊界框。
相關論文參考連結:
https://arxiv.org/abs/1703.06870?source=post_page
SSD: Single Shot MultiBox Detectorz
下面的論文提出了一種使用單個深度神經網路預測影像中物體的模型。網路使用特徵圖的小卷積濾波器為每個物件類別生成分數。
該方法使用前饋卷積神經網路,產生特定目標的一組邊界框和分數,新增了卷積特徵圖層,允許在多個尺度上進行特徵檢測,在此模型中,每個特徵圖單元格都關聯到一組預設邊界框,下圖顯示了SSD512模型在動物,車輛和傢俱上的表現。
相關內容參考連結:
https://arxiv.org/abs/1512.02325?source=post_page
You Only Look Once (YOLO)
下圖中展示的文章提出了一種單一的神經網路,可以在單次評估中預測影像中的邊界框和類概率。
YOLO模型實時處理每秒45幀,YOLO將影像檢測視為迴歸問題,這使得其管道非常簡單因此該模型非常快。
它可以實時處理流視訊,延遲小於25秒,在訓練過程中,YOLO可以看到整個影像,因此能夠在目標檢測中包含上下文。
在YOLO中,每個邊界框都是通過整個影像的特徵來預測的,每個邊界框有5個預測,x,y,w,h和置信度,(x,y)表示相對於網格單元邊界的邊界框中心, w和h是整個影像的預測寬度和高度。
該模型通過卷積神經網路實現,並在PASCAL VOC檢測資料集上進行評估。網路的卷積層負責提取特徵,而全連線的層預測座標和輸出概率。
該模型的網路架構受到用於影像分類的GoogLeNet模型的啟發,網路有24個卷積層和2個完全連線的層,模型的主要挑戰是它只能預測一個類,並且它在諸如鳥類之類的小物體上表現不佳。
此模型的平均AP精度為52.7%,但能夠達到63.4%。
參考連結:
https://arxiv.org/abs/1506.02640?source=post_page
將目標看做點
下圖中的論文提出將物件建模為單點,它使用關鍵點估計來查詢中心點,並回歸到所有其它物件屬性。
這些屬性包括3D位置,姿勢方向和大小。它使用CenterNet,這是一種基於中心點的方法,與其它邊界框檢測器相比,它更快,更準確。
物件大小和姿勢等屬性根據中心位置的影像特徵進行迴歸,在該模型中,影像被送到卷積神經網路中生成熱力圖,這些熱力圖中的最大值表示影像中物件的中心。為了估計人體姿勢,該模型檢查2D關節位置並在中心點位置對它們進行迴歸。
此模型以每秒1.4幀的速度實現了45.1%的COCO平均精度,下圖顯示了這與其他研究論文中的結果進行比較的結果。
論文參考連結:
https://arxiv.org/abs/1904.07850v2?source=post_page
用於目標檢測的資料增強策略
資料增強通過旋轉和調整原始圖片大小等方式來建立新影像資料。
雖然該策略本身不是模型結構,但下面這篇論文提出了轉換的建立,轉換是指可應用於轉移到其他目標檢測資料集的物件檢測資料集。轉換通常應用在訓練中。
在此模型中,增廣策略被定義為在訓練過程中隨機選擇的一組n個策略,在此模型中應用的一些操作包括顏色通道畸變,幾何影像畸變,以及僅邊界框註釋中的畫素畸變。對COCO資料集的實驗表明,優化資料增強策略能夠將檢測精度提高超過+2.3平均精度,這允許單個推理模型實現50.7平均精度的準確度。
相關論文參考連結:
https://arxiv.org/abs/1906.11172v1?source=post_page
總結
我們現在應該跟上一些最常見的——以及一些最近在各種環境中應用的目標檢測技術。上面提到並連結到的論文/摘要也包含其程式碼實現的連結。不要自我設限,目標檢測也可以存在於智慧手機內部,總之,需要我們不停地探索學習。
相關報導:
https://heartbeat.fritz.ai/a-2019-guide-to-object-detection-9509987954c3
- END -
如果看到這裡,說明你喜歡這篇文章,請轉發、點贊。掃描下方二維碼或者微信搜尋「perfect_iscas」,新增好友後即可獲得10套程式設計師全棧課程+1000套PPT和簡歷模板,向我私聊「進群」二字即可進入高質量交流群。
↓掃描二維碼進群↓
喜歡文章,點個在看
相關文章
- 做目標檢測,這一篇就夠了!2019最全目標檢測指南
- 你要的AI Agent工具都在這裡AI
- 你要的介面資料都在這裡了
- 目標檢測演算法盤點(最全)演算法
- 2019 年的目標檢測指南
- 目標檢測
- 九、目標檢測
- 這才是目標檢測YOLOv3的真實面目YOLO
- 增加檢測類別?這是一份目標檢測的基礎指南
- 目標檢測---教你利用yolov5訓練自己的目標檢測模型YOLO模型
- 不是吧!! ! jQuery選擇器,你要的都在這!!!jQuery
- 目標檢測面面觀
- 目標檢測之SSD
- 目標檢測綜述
- 28-目標檢測
- 目標檢測:二維碼檢測方案
- SOTA!目標檢測開源框架YOLOv6 3.0版本來啦框架YOLO
- 電子書開放下載!這應該是最全的一份目標檢測演算法&模型盤點演算法模型
- SSD 目標檢測 Keras 版Keras
- 目標檢測發展方向
- 目標檢測之YOLO系列YOLO
- 【目標檢測】R-CNNCNN
- 發福利啦!史上最全顏色收集網站,我要給你“好看”!網站
- 你要的 AI版 “←2017 2019→” 來啦!AI
- 佔領頭條的Windows 10,你該知道的都在這裡Windows
- 深度學習之目標檢測與目標識別深度學習
- HTTP面試題都在這裡HTTP面試題
- 你想了解的Promise,都在這裡!!Promise
- 處理字串的方法都在這裡字串
- 目標檢測相關論文
- 【目標檢測】Bounding Box Regression
- 深度學習之目標檢測深度學習
- 目標檢測:Segmentation is All You Need ?Segmentation
- 目標檢測資料集分析
- 2018目標檢測
- 目標檢測(Object Detection)總覽Object
- 目標檢測之RetinaNetNaN
- Object Detection(目標檢測神文)Object