3d max用不同目标做关键帧_基于光流的视频目标检测系列文章解读
全文5747字,預(yù)計(jì)閱讀時(shí)間15分鐘
1 簡介
目前針對(duì)于圖片的目標(biāo)檢測的方法大致分為兩類:
faster R-CNN/R-FCN一類:此類方法在進(jìn)行bbox回歸和分類之前,必須通過region proposal network(RPN)得到RoI,因此被稱作是two-stage的方法。YOLO/SSD一類:
此類方法不需要RPN,直接在輸入圖片上進(jìn)行bbox回歸和分類,因此是一種one-stage的方法。
總的來說,第一種方法的準(zhǔn)確率要比第二種方法要高,但是第二種方法的速度要快。在實(shí)際應(yīng)用中,攝像頭的數(shù)據(jù)以視頻的方式產(chǎn)生。為了處理這些視頻數(shù)據(jù),目前普遍的做法是對(duì)每一幀進(jìn)行目標(biāo)檢測和語意分割。然而,如圖1所示,這樣的處理方式有兩種問題:1)幀與幀之間有大量的冗余計(jì)算,導(dǎo)致滿足不了實(shí)時(shí)需求(fps>=15);2)由于移動(dòng)目標(biāo)存在失焦,遮擋等情況,導(dǎo)致目標(biāo)在單幀上不能被檢測到。為了解決這兩個(gè)問題,在處理視頻的時(shí)候需要利用幀與幀之間的上下文信息。因此,如何利用視頻的時(shí)序信息來提高檢測精度/速度,如何平衡accuracy speed tradeoff,是一個(gè)比較熱門的研究方向。本文主要調(diào)研了使用光流來利用視頻中時(shí)序信息的方法。
2 數(shù)據(jù)集
2.1 視頻目標(biāo)檢測
從2015年起,ImageNet新增了視頻目標(biāo)檢測的任務(wù),object detection from video (VID)。其數(shù)據(jù)集標(biāo)注了30類目標(biāo),是檢測(DET)數(shù)據(jù)集200類的一個(gè)子集。訓(xùn)練集共有3862個(gè)視頻片段,總幀數(shù)超過112萬。性能衡量的metric是mean average precision(mAP)。
2.2 視頻語義分割
目前比較流行的是Cityscape的數(shù)據(jù)集。每個(gè)視頻片段包含30幀,但只有其中的第20幀有g(shù)round truth標(biāo)注。標(biāo)注包含了30個(gè)語義分類。使用的metric是mean intersection-over-union(mIOU)。
3 Optical flow(光流)
3.1 光流簡介
光流常用于計(jì)算圖像中各個(gè)位置的瞬時(shí)移位,是依據(jù)視頻幀與幀之間的各像素相關(guān)性而計(jì)算得到的。輸入時(shí)序相鄰的兩幀
3.2 FlowNet
傳統(tǒng)計(jì)算光流的方法不在此贅述,可以參考其wikipedia頁面。傳統(tǒng)方法計(jì)算光流通常是在CPU上實(shí)現(xiàn)的,速度較慢。并且如果想在計(jì)算機(jī)視覺中應(yīng)用光流的話,用傳統(tǒng)方法不能夠end-to-end訓(xùn)練網(wǎng)絡(luò)。因此,FlowNet [1] 提出了用neural network來計(jì)算光流的方法。如下圖所示,其輸入是視頻片段中的兩幀,由于時(shí)間間隔較短,圖片之間具有強(qiáng)相關(guān)性。輸出是各個(gè)像素點(diǎn)的移位,通過移位,可以得知上一幀各目標(biāo)在下一幀的位置。
FlowNet的網(wǎng)絡(luò)結(jié)構(gòu)和用于semantic segmentation的網(wǎng)絡(luò)結(jié)構(gòu)類似,由兩部分構(gòu)成。FlowNet將之稱為contracting部分和refinement部分,分別用于downsampling提取特征和upsampling恢復(fù)分辨率,由conv和deconv操作實(shí)現(xiàn)。和semantic segmentation的輸入是一張圖片不同,此網(wǎng)絡(luò)輸入是兩張圖片。作者提出了兩種方式來處理,不過在后續(xù)工作中用的比較多的方法是直接將兩張圖片堆在一起作為一個(gè)有3+3=6個(gè)channel的圖片輸入給網(wǎng)絡(luò)。
4 基于光流的視頻識(shí)別
通過光流,我們能夠得知上一時(shí)刻的物體在下一時(shí)刻的位置,能否應(yīng)用光流來更好地解決視頻識(shí)別中的accuracy speed tradeoff呢?答案是肯定的。當(dāng)前計(jì)算機(jī)視覺使用到的神經(jīng)網(wǎng)絡(luò)從功能上可以分為兩部分:
也就是說,一個(gè)網(wǎng)絡(luò)由多層的,提取特征的
在上一節(jié)中,我們得知能夠通過光流得到上一時(shí)刻的物體在當(dāng)前時(shí)刻的位置,即光流表達(dá)了在pixel space上的對(duì)應(yīng)關(guān)系。那么光流在feature space上,是否也保持同樣的對(duì)應(yīng)關(guān)系呢?如果是的話,就可以不用重復(fù)計(jì)算每一幀的特征,而是將上一幀的特征傳播到當(dāng)前幀,從而大大減少計(jì)算量。如下圖所示,當(dāng)前幀通過ResNet-101得到的兩個(gè)特征圖(第二行),和通過光流將關(guān)鍵幀特征傳播而得到的特征圖(第三行)是非常相似的,因此可以假設(shè)是成立的,即可以通過光流來傳播feature。
4.1 更快
為了提高處理視頻的速度,首先將視頻中的各幀分為關(guān)鍵幀和非關(guān)鍵幀,且關(guān)鍵幀的數(shù)量遠(yuǎn)遠(yuǎn)小于非關(guān)鍵幀。在目標(biāo)檢測時(shí)候,只需要對(duì)關(guān)鍵幀通過
其中,
DFF的計(jì)算量和傳統(tǒng)對(duì)每幀進(jìn)行特征提取的方法的計(jì)算量比值為:
上式中兩個(gè)網(wǎng)絡(luò)的復(fù)雜度可以根據(jù)它們的FLOPs來測量,下表列出了不同
假設(shè)每隔 l 幀選擇一次關(guān)鍵幀,則DFF的整體加速為:
DFF和傳統(tǒng)基于每幀的方法在CityScape和ImageNet VID的表現(xiàn)如下表??梢钥吹?#xff0c;DFF在精度損失小于1%的情況下,能夠?qū)φZ意分割和目標(biāo)檢測分別達(dá)到3.7和5倍的加速。
4.2 更準(zhǔn)
如本文開頭所述,由于視頻中可能存在運(yùn)動(dòng)模糊,鏡頭失焦,遮擋等問題,導(dǎo)致在單幀上的目標(biāo)檢測失敗。Flow-Guided Feature Aggregation (FGFA) [3] 提出了聚合相鄰幀的特征來提升當(dāng)前幀的檢測效果的方法。其主要思想是,對(duì)當(dāng)前幀進(jìn)行目標(biāo)檢測的時(shí)候,
其中
是一個(gè)衡量傳播特征和此幀特征相似度的系數(shù)。下圖展示了FGFA的工作流程:
基于ResNet-101的FGFA在ImageNet VID上的表現(xiàn)如下表:
可以看到,FGFA雖然提高了精度,但是相對(duì)于per-frame的方法速度降低了接近3倍。4.3 更快+更準(zhǔn)以上兩小節(jié)分別討論了如何利用光流提高視頻目標(biāo)檢測的速度和精度,但是都不能在速度和精度上兩全其美。實(shí)際上,同時(shí)提高速度和精度也是可能的。首先,Impression Network(ImpNet) [4] 提供了一種思路。其主要思路是:FGFA在任意幀都聚合了其鄰近的2K+1幀的傳播特征,導(dǎo)致計(jì)算量增大。同時(shí),因?yàn)橄噜弾牟町愅苄?#xff0c;這樣密集的計(jì)算的信息冗余度也很高。因此ImpNet只對(duì)關(guān)鍵幀進(jìn)行特征聚合,而對(duì)非關(guān)鍵幀只計(jì)算由關(guān)鍵幀傳播得到的特征。
FGFA需要考慮當(dāng)前幀之前的K幀和之后的K幀的特征,而在實(shí)際應(yīng)用場景中是沒有當(dāng)前幀之后的K幀的信息的。因此,ImpNet并不直接應(yīng)用Eq. 1,而是使用它的遞歸形式來聚合關(guān)鍵幀之間的特征。
ImpNet通過對(duì)關(guān)鍵幀維持一個(gè)叫
的特征來實(shí)現(xiàn)上述兩點(diǎn)。對(duì)于相鄰的關(guān)鍵幀k和k’,對(duì)非關(guān)鍵幀,輸入到task網(wǎng)絡(luò)的特征為關(guān)鍵幀通過光流得到的傳播特征:
通過以上方式,ImpNet不僅通過光流傳播特征提高速度,也用多幀特征聚合提高了精度。其在ImageNet VID上的表現(xiàn)總結(jié)如下:
另一篇文章 [5] 提出了思路和ImpNet類似的方法,其主要特點(diǎn)是:
和ImpNet一樣,在關(guān)鍵幀上以遞歸的方式進(jìn)行特征聚合。對(duì)非關(guān)鍵幀,使用空間適應(yīng)(spatially-adaptive)的特征傳播,保證了傳播特征的質(zhì)量,減少因?yàn)楣饬鞑粶?zhǔn)確帶來的誤差。具體實(shí)現(xiàn)是在FlowNet上增加了預(yù)測傳播質(zhì)量的輸出, 如果某位置上的傳播質(zhì)量高于一定的界限,則使用傳播特征,否則使用自身的特征。
目前討論的方法在選擇關(guān)鍵幀的時(shí)候,都是單純地每隔一定數(shù)量(通常為10)的幀就選擇當(dāng)前幀為關(guān)鍵幀。此方法提出了使用時(shí)間適應(yīng)(temporally-adaptive)的關(guān)鍵幀選擇策略。此策略也依賴于FlowNet的傳播質(zhì)量輸出。如果關(guān)鍵幀到當(dāng)前幀的傳播質(zhì)量小于一定界限的位置占比達(dá)到全部位置的一定比例的時(shí)候,則把當(dāng)前幀設(shè)為關(guān)鍵幀:
此方法的示意如下圖所示:
圖7: 方法示意圖。(a)對(duì)應(yīng)于DFF,(b)對(duì)應(yīng)于FGFA,(c1-c3)分別對(duì)應(yīng)上一段的1,2,3。此方法在ImageNet VID數(shù)據(jù)集上的表現(xiàn)如下:
可以看到,此模型在保證速度的情況下,精度也達(dá)到最高,是后期工作的重點(diǎn)模型。
5 其他方法
目前在對(duì)視頻的識(shí)別任務(wù)中,除了使用光流以外,還有一些其他有意思的方法。下面例舉一二:
此方法和本文所講用光流進(jìn)行特征傳播不一樣的是,它通過被稱為Spatially variant convolution的操作來進(jìn)行特征的傳播。非關(guān)鍵幀上某一位置的特征是由關(guān)鍵幀上其鄰近位置的特征的加權(quán)平均Tubelet proposal network [7].得到,且這些加權(quán)值由一個(gè)小型網(wǎng)絡(luò)得到。同時(shí),其關(guān)鍵幀選擇也是通過一個(gè)小型網(wǎng)絡(luò)動(dòng)態(tài)確定,其網(wǎng)絡(luò)輸入為兩幀的低層特征,輸出為兩幀的偏離值。如果偏離值高于一定界限,則將當(dāng)前幀設(shè)為關(guān)鍵幀。此方法在Cityscape上語意分割的表現(xiàn)在精度和速度上均比DFF要好。Tubelet proposal network [7].
此方法首先生成某幀上的檢測結(jié)果,然后用視覺跟蹤得到bbox的tubelet proposals。對(duì)這些proposals進(jìn)行重新打分后得到目標(biāo)的bbox軌跡。此方法步驟太多,不能end-to-end training,不是特別看好。Spatio-temporal CNN (stf-CNN) [8].
此方法在傳統(tǒng)FCN的基礎(chǔ)上,在特征提取網(wǎng)絡(luò)之后對(duì)特征圖上的每一個(gè)位置增加了一個(gè)LSTM模塊,從而讓空間特征融合了時(shí)序信息變成空間-時(shí)序特征(故稱spatio-temporal CNN)。此方法對(duì)精度有提升,但是因?yàn)閷?duì)每一個(gè)位置都用LSTM,計(jì)算上開銷很大。
總結(jié)光流對(duì)視頻識(shí)別任務(wù)的幫助很大,特別是自從FlowNet提出后,將光流納入整個(gè)神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)之中來進(jìn)行end-to-end的訓(xùn)練,對(duì)視頻識(shí)別任務(wù)的精度和速度都有顯著提升。而且基于光流的方法對(duì)具體的識(shí)別任務(wù)不敏感,它在視頻目標(biāo)檢測和視頻語意分割上都能使用。因此,可以考慮將光流應(yīng)用于目前使用的深度模型當(dāng)中,來提高模型的性能。
參考文獻(xiàn)
感謝閱讀
本文首發(fā)于微信公眾號(hào)【美團(tuán)無人配送】,歡迎大家搜索關(guān)注,微信后臺(tái)回復(fù)"書單",給你一份美團(tuán)技術(shù)團(tuán)隊(duì)書單合集
作者的其他文章:
美團(tuán)無人配送:PointNet系列論文解讀?zhuanlan.zhihu.com覺得好看,點(diǎn)個(gè)贊吧~~
總結(jié)
以上是生活随笔為你收集整理的3d max用不同目标做关键帧_基于光流的视频目标检测系列文章解读的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 会议报到和撒离时间算会期_【明日报到】2
- 下一篇: idea创建包怎么让包分层_干货 | 通