OpenCV DNN支持的對象檢測模型
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
本文轉(zhuǎn)自:opencv學(xué)堂
OpenCV DNN不光支持圖像分類,對象檢測作為計(jì)算機(jī)視覺主要任務(wù)之一,OpenCV DNN支持多種對象檢測模型,可以快速實(shí)現(xiàn)基于COCO數(shù)據(jù)集與Pascal VOC數(shù)據(jù)集的對象檢測。此外基于自定義數(shù)據(jù)集,通過tensorflow對象檢測框架或者pytorch的ONNX格式還可以支持自定義對象檢測模型訓(xùn)練導(dǎo)出與部署。本文總結(jié)了OpenCV DNN支持的各種對象檢測模型與它們的輸入輸出。
SSD對象檢測模型的全稱是Single Shot MultiBox Detector,是一階段的對象檢測網(wǎng)絡(luò),基于回歸思想在多個(gè)特征層實(shí)現(xiàn)對象檢測,其主要的思想可以用下面一張圖表示:

可以看出越是分辨率大的對象在高層特征抽象上畢竟容易被預(yù)測檢測,分辨率小的對象在底層特征會(huì)被檢測,如果分辨率過小則有可能無法檢測,所以SSD對象檢測是對微小目標(biāo)檢測效果不佳的對象檢測方法,根據(jù)使用的特征網(wǎng)絡(luò)不同可以分為VGG-SSD,MobileNet-SSD等,下圖是基于VGG16的SSD對象檢測網(wǎng)絡(luò)模型結(jié)構(gòu):

OpenCV DNN支持SSD-VGG, SSD-MobileNet兩種SSD對象檢測模型。
YOLO對象檢測模型得全稱是You Only Look Once,也是一階段得對象檢測模型。最初的YOLO對象檢測模型跟SSD對象檢測模型相比,它只有一個(gè)輸出層,無法實(shí)現(xiàn)多分辨率特征的預(yù)測,雖然速度很快,但是精度不夠,后來改進(jìn)的YOLOv2,YOLOv3,YOLOv4都具有多個(gè)輸出層,實(shí)現(xiàn)了多尺度的對象檢測,檢測精度跟準(zhǔn)確率得到提高。YOLO網(wǎng)絡(luò)結(jié)構(gòu)

多個(gè)輸出層。OpenCV DNN模塊支持最新版本的YOLOv4對象檢測模型部署,同時(shí)還支持Tiny-YOLO網(wǎng)絡(luò)。


YOLOv2與YOLOv3版本模型跟SSD模型之間的輸出對比

Faster-RCNN是典型的兩階段對象檢測網(wǎng)絡(luò),基于RPN實(shí)現(xiàn)區(qū)域推薦,

網(wǎng)絡(luò)結(jié)構(gòu)如下:

該模型也是兩階段網(wǎng)絡(luò),在輸出時(shí)候多出了一個(gè)實(shí)例分割的分支,但是該實(shí)例分割嚴(yán)格意義上來說并沒有進(jìn)行上采樣,不是pixelwise的實(shí)例分割模型,可以看成是blockwise/patch wise的實(shí)例分割輸出。整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)跟Faster-RCNN很相似,網(wǎng)絡(luò)模型結(jié)構(gòu)如下:

OpenCV支持Caffe與Tensorflow Object DetectionAPI中的mask-rcnn模型部署推理。
2016年提出的對象檢測網(wǎng)絡(luò),全稱為Region-based Fully Convolutional Network (R-FCN)其核心思想是基于全卷積神經(jīng)網(wǎng)絡(luò)生成一個(gè)3x3的位置敏感卷積實(shí)現(xiàn)對位置信息編碼,完成預(yù)測,實(shí)現(xiàn)對象檢測。

該網(wǎng)絡(luò)同樣是兩階段的對象檢測網(wǎng)絡(luò),模型架構(gòu)如下:

位置敏感ROI矩形解碼

該模型是一階段的對象檢測網(wǎng)絡(luò),在2019年提出,tensorflow2.x的對象檢測網(wǎng)絡(luò)框架支持的網(wǎng)絡(luò)模型。模型的結(jié)構(gòu)如下:

基于EfficientNet網(wǎng)絡(luò)作為基礎(chǔ)網(wǎng)絡(luò),使用多尺度雙向金字塔特征融合技術(shù),其中權(quán)重特征融合使用了交叉尺度鏈接與權(quán)重快速歸一化融合。下圖是普通的金字塔特征融合到雙向金字塔特征融合各種方法:

對,你沒看錯(cuò),OpenCV4.4最新版本支持該模型。
交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競賽等微信群(以后會(huì)逐漸細(xì)分),請掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請進(jìn)入相關(guān)微信群。請勿在群內(nèi)發(fā)送廣告,否則會(huì)請出群,謝謝理解~

