深度學(xué)習(xí)在計算機視覺領(lǐng)域取得了巨大成功,在分類、檢測甚至跟蹤任務(wù)上都有了巨大的進步,可以產(chǎn)生實時的高質(zhì)量預(yù)測,但高速的實例分割的發(fā)展卻落后于目標檢測的進步。在目標檢測領(lǐng)域,我們已經(jīng)擁有了高效的SSD和YOLO,但實例分割領(lǐng)域?qū)τ谀P捅憩F(xiàn)更多的重視、使得網(wǎng)絡(luò)的速度進展緩慢。
SSD和YOLO的加速主要通過移除Faster R-CNN這類網(wǎng)絡(luò)的第二個階段,通過單階段來提升速度,并通過其他的手段來彌補精度的下降。但實例分割的難度遠大于目標檢測,這樣的方法不能簡單的拓展到實例分割中。先進的實例分割算法強烈依賴于特征的定位來預(yù)測mask,通過將特定區(qū)域的特征進行“池化”后輸入到mask預(yù)測器中,這種串行的運行的方法難以加速。雖然也有像FCIS等單階段的方法,但他們卻需要較為復(fù)雜的后處理操作,難以保證實時性。
為了解決這個問題、提高實例分割的速度,研究人員提出了一種快速、單階段的實例分割模型YOLACT,在單個Titan Xp上實現(xiàn)了30幀以上的實例分割速度,并在MS COCO上實現(xiàn)了約30mAP的表現(xiàn)。這種方法拋棄了先前方法中的定位步驟,將實例分割分為了兩個并行的任務(wù):一方面在整幅圖像上生成一系列mask原型,另一方面為每個實例預(yù)測出一系列線性疊加系數(shù)。隨后對于圖中的每個實例,基于線性疊加系數(shù)對原型mask進行組合并利用預(yù)測框進行剪切實現(xiàn)最后的實例輸出。在此過程中,網(wǎng)絡(luò)學(xué)會了如何定位不同位置、顏色和語義實例的mask。
此外,由于mask原型的預(yù)測不依賴于類別的數(shù)量,這一模型學(xué)習(xí)到如何組合mask原型的表示可以被所用類別所共享。這種表示的學(xué)習(xí)使得原型空間可以表示圖像中不同的位置、定位實例、檢測邊緣和編碼位置敏感信息,并對這些結(jié)果進行有效組合。
YOLACT通過并行的計算架構(gòu)和輕量化的組合過程加速了實例分割的過程,在單階段檢測基礎(chǔ)網(wǎng)絡(luò)上僅僅添加了少量的計算,使得它可以輕松達到30fps。
YOLACT預(yù)測的mask由于充分利用了圖像空間的信息,不受特征池化的影響,對于大物體預(yù)測有著明顯的提升。而這種基于mask原型和mask系數(shù)的思想可以移植到很多先進的目標檢測架構(gòu)上,實現(xiàn)快速精確的實例分割。
具體實現(xiàn)
先前的實例分割主要在提升精度上下功夫,Mask-RCNN是兩階段方法的代表,而單階段的方法主要基于位置敏感圖池化來實現(xiàn)實例分割,這些計算極大的限制了模型運行的速度。而目前的實時實例分割方法要么在精度上無法與先進的實例分割方法比擬,要么所面對的分割情形較為簡單。
在這篇文章的工作中,研究人員通過在現(xiàn)有的單階段目標檢測網(wǎng)絡(luò)上加上mask預(yù)測分支,但去除了精確的定位步驟(eg feature repooling)。在模型中一個分支利用FCN來產(chǎn)生一系列不依賴與實例的原型mask,第二個分支則是在目標檢測模塊后加上了預(yù)測mask系數(shù)的結(jié)構(gòu)(每個 anchor),用于編碼實例在原型空間中的表示。
研究人員首先利用FCN實現(xiàn)了對于原型mask的預(yù)測。在基礎(chǔ)網(wǎng)絡(luò)特征層后添加了輸出為k通道的Protonet,它將生成k個獨立的mask原型。為了保證生成原型mask的穩(wěn)定,研究人員選用了基礎(chǔ)網(wǎng)絡(luò)中更深層的特征圖,這還有益于提高原型mask的分辨率,對于提高mask的質(zhì)量和小物體的效果有著重要的作用。
對于mask系數(shù)的預(yù)測,研究人員對現(xiàn)有的單階段目標檢測網(wǎng)絡(luò)進行了改造,為每個anchor添加了k個預(yù)測,并利用tanh對k個系數(shù)進行操作提高穩(wěn)定性。
最后對生成的mask原型和系數(shù)進行線性組合即可得到最終的mask。
值得一提的是,研究人員還在這一工作中實現(xiàn)了一種快速非極大值抑制方法Fast NMS,比傳統(tǒng)的方法提高了11-16ms的速度。通過基于GPU實現(xiàn)的批量排序算法和IoU計算實現(xiàn)了加速,并利用矩陣運算和閾值找到每類需要保留的檢測結(jié)果。最后,研究人員還使用了語義分割損失在訓(xùn)練中補償FastNMS帶來的下降(0.1-0.3mAP),通過在基礎(chǔ)網(wǎng)絡(luò)P3上添加1*1卷積,和sigmoid激活實現(xiàn)了0.4mAP的提升。
下表顯示了YOLACT在不同基礎(chǔ)網(wǎng)絡(luò)與輸入圖像尺寸上的表現(xiàn),可以看到在保持較高mAP時實現(xiàn)了較快的速度。
FastNMS算法只會造成算法表現(xiàn)輕微的下降,但在速度上有較大的提升:
讓我們再來圍觀一下網(wǎng)絡(luò)的表現(xiàn),對于重疊的物體表現(xiàn)依舊優(yōu)異:
目前這一代碼已經(jīng)開源,可以在下面的地址中找到:code:https://github.com/dbolya/yolact它基于Pytorch 1.0.1實現(xiàn),并依賴于一些額外的python包:
# Cython needs to be installed before pycocotoolspip install cython opencv-python pillow pycocotools matplotlib
直接將代碼下載到本地即可開始調(diào)試:
git clone https://github.com/dbolya/yolact.gitcd yolact
現(xiàn)在就可以開始進行訓(xùn)練或者測試了,當然測試之前需要先下載coco數(shù)據(jù)集
# Train setsh data/scripts/COCO.sh# Test setsh data/scripts/COCO.sh
# Display qualitative results on the specified image.python eval.py --trained_model=weights/yolact_base_54_800000.pth --score_threshold=0.3 --top_k=100 --image=my_image.png# Display qualitative results on the specified image.python eval.py --trained_model=weights/yolact_base_54_800000.pth --score_threshold=0.3 --top_k=100 --image=input_image.png:output_image.png# Process a whole folder of images.python eval.py --trained_model=weights/yolact_base_54_800000.pth --score_threshold=0.3 --top_k=100 --images=path/to/input/folder:path/to/output/folder
愉快的開始分割吧!
-
圖像
+關(guān)注
關(guān)注
2文章
1092瀏覽量
41038 -
計算機視覺
+關(guān)注
關(guān)注
9文章
1706瀏覽量
46580 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5555瀏覽量
122499
原文標題:實例分割太慢怎么破?戴維斯分校提出實時分割框架YOLACT突破速度邊界
文章出處:【微信號:thejiangmen,微信公眾號:將門創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
通過任務(wù)分割提高嵌入式系統(tǒng)的實時性
圖像分割和圖像邊緣檢測

加州大學(xué)戴維斯分校利用RFID跟蹤蜂鳥活動
如何進行面向農(nóng)業(yè)應(yīng)用的無人機遙感影像地塊邊界提取資料說明

高通財務(wù)長戴維斯宣布離職 將轉(zhuǎn)任英特爾財務(wù)長
算法 | 超Mask RCNN速度4倍,僅在單個GPU訓(xùn)練的實時實例分割算法
使用無人機進行農(nóng)業(yè)邊界提取的遙感影像說明
“反太陽能電池板”被提出 將在黑暗中發(fā)電
如何使用無人機遙感影像地塊邊界提取應(yīng)用在農(nóng)業(yè)方面詳細資料概述

詳解ENet:CPU可以實時的道路分割網(wǎng)絡(luò)
用于弱監(jiān)督大規(guī)模點云語義分割的混合對比正則化框架
中科院提出FastSAM快速分割一切模型!比Meta原版提速50倍!

戴維斯正弦發(fā)生器應(yīng)用說明

評論