本文被收錄于 CVPR 2019,通訊作者單位為阿聯(lián)酋起源人工智能研究院(IIAI)。受啟發(fā)于傳統(tǒng)的特征點(diǎn)檢測(cè)任務(wù)和最近的全卷積式關(guān)鍵點(diǎn)檢測(cè)和配對(duì)的工作,本文作者提出了一種無(wú)需密集滑窗或鋪設(shè)錨點(diǎn)框、全卷積式預(yù)測(cè)目標(biāo)中心點(diǎn)和尺度大小的行人檢測(cè)方法,為目標(biāo)檢測(cè)提供了一個(gè)新的視角。
論文地址:https://arxiv.org/abs/1904.02948
代碼地址:https://github.com/liuwei16/CSP
簡(jiǎn)介
目標(biāo)檢測(cè)通常采用傳統(tǒng)的密集滑窗的方式或者當(dāng)前主流的鋪設(shè)錨點(diǎn)框(anchor)的檢測(cè)方式,但不管哪種方式都不可避免地需要針對(duì)特定數(shù)據(jù)集設(shè)計(jì)甚至優(yōu)化滑窗或錨點(diǎn)框超參數(shù),從而增加了訓(xùn)練難度并限制了檢測(cè)器的通用性。
能否跳出這種窗口式或錨點(diǎn)框式的限制而實(shí)現(xiàn)目標(biāo)檢測(cè)?
本文重新回顧了早期的屬于低層視覺(jué)的特征檢測(cè)或者感興趣區(qū)域檢測(cè)的思路,其中大部分是基于卷積式的響應(yīng)。受此啟發(fā),本文把目標(biāo)檢測(cè)當(dāng)作一個(gè)具有高階語(yǔ)義的特征檢測(cè)任務(wù),為目標(biāo)檢測(cè)提供一個(gè)新的視角。具體地,像邊緣、角點(diǎn)、斑點(diǎn)或感興趣區(qū)域等低層特征檢測(cè),本文方法也掃描全圖尋求感興趣特征點(diǎn),為此卷積是自然勝任的。但跟傳統(tǒng)的底層特征不一樣的是,本文進(jìn)一步尋求具有高階語(yǔ)義的抽象特征點(diǎn),如行人、人臉等,而當(dāng)今的深度卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)具備這種高階語(yǔ)義的抽象能力。此外,類(lèi)似斑點(diǎn)或感興趣區(qū)域檢測(cè),本文也同時(shí)為每個(gè)中心點(diǎn)預(yù)測(cè)出目標(biāo)的尺度,這也是一個(gè)直接的卷積式預(yù)測(cè)。因此,本文以行人檢測(cè)為例將目標(biāo)檢測(cè)簡(jiǎn)化為一個(gè)直接的全卷積式的中心點(diǎn)和尺度預(yù)測(cè)任務(wù),并將該方法命名為 CSP(Center and Scale Prediction)檢測(cè)器。雖然該檢測(cè)器結(jié)構(gòu)簡(jiǎn)單,但在主流的 Caltech 和 Citypersons 行人檢測(cè)數(shù)據(jù)集中依然達(dá)到了當(dāng)前最好的檢測(cè)性能,同時(shí)具有與單階段檢測(cè)器相當(dāng)?shù)臋z測(cè)速度,因此是個(gè)簡(jiǎn)而可用的新的檢測(cè)思路。
研究動(dòng)機(jī)
在傳統(tǒng)的計(jì)算機(jī)視覺(jué)領(lǐng)域,特征點(diǎn)檢測(cè)是一個(gè)非?;A(chǔ)且重要的任務(wù)。通常,它被當(dāng)成是一種低層視覺(jué)技術(shù),包括邊緣檢測(cè)、角點(diǎn)(或關(guān)鍵點(diǎn))檢測(cè)和感興趣區(qū)域檢測(cè)等。一般而言,一個(gè)特征點(diǎn)通常是圖像的一個(gè)感興趣部分,特征點(diǎn)檢測(cè)是指抽取圖像信息并給出每個(gè)像素點(diǎn)上是否存在給定的一種特征的決策。而對(duì)于圖像信息的抽取,當(dāng)今的深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)被認(rèn)為具有對(duì)圖像的高度抽象能力,因此 CNN 也被廣泛應(yīng)用于特征點(diǎn)檢測(cè),并取得了非常有吸引力的結(jié)果。例如近些年基于 CNN 的邊緣檢測(cè)方法取得了很大的進(jìn)展,它們揭示了 CNN 可以獲得非常連續(xù)且光滑的邊緣,也說(shuō)明 CNN 比傳統(tǒng)方法具有更強(qiáng)的抽象能力。這種高度的抽象能力不應(yīng)被局限于低層視覺(jué)特征點(diǎn)的檢測(cè),它應(yīng)該具有很大的潛力能夠檢測(cè)更高層的抽象的語(yǔ)義特征點(diǎn)。
為此,能否將目標(biāo)檢測(cè)這樣一個(gè)高層視覺(jué)任務(wù)簡(jiǎn)化為語(yǔ)義特征點(diǎn)檢測(cè)的問(wèn)題?這正是本文所要探索的。就像關(guān)鍵點(diǎn)檢測(cè)一樣,檢測(cè)器通過(guò)掃描整張圖像以發(fā)現(xiàn)存在關(guān)鍵點(diǎn)的位置,顯然這種操作正是共享卷積運(yùn)算所擅長(zhǎng)的。但和傳統(tǒng)的低層關(guān)鍵點(diǎn)檢測(cè)不同的是,目標(biāo)檢測(cè)需要更加高層的抽象,也即需要尋找到每個(gè)目標(biāo)的中心點(diǎn),這是深度模型具備潛力的。此外,和傳統(tǒng)的感興趣區(qū)域檢測(cè)類(lèi)似的是,目標(biāo)檢測(cè)還需要為每個(gè)中心點(diǎn)預(yù)測(cè)一個(gè)尺度,這也是卷積預(yù)測(cè)可以勝任的?;谝陨蟽牲c(diǎn)考慮,本文提出在全卷積網(wǎng)絡(luò)的基礎(chǔ)上,將目標(biāo)檢測(cè)構(gòu)建為一個(gè)目標(biāo)中心點(diǎn)檢測(cè)和目標(biāo)尺度預(yù)測(cè)的任務(wù)。一個(gè)簡(jiǎn)單的示意圖如下圖所示,首先將一張圖像輸入全卷積網(wǎng)絡(luò),基于網(wǎng)絡(luò)提取的特征圖再卷積式地預(yù)測(cè)兩個(gè)映射圖,一個(gè)以熱圖的方式呈現(xiàn)目標(biāo)的中心點(diǎn)位置,一個(gè)負(fù)責(zé)預(yù)測(cè)目標(biāo)的尺度大小。在此基礎(chǔ)上,便可以將兩者映射到原圖上并解譯成目標(biāo)檢測(cè)框:中心點(diǎn)熱圖的位置對(duì)應(yīng)檢測(cè)框的中心位置,預(yù)測(cè)的尺度大小對(duì)應(yīng)檢測(cè)框的大小,而中心點(diǎn)熱圖上的置信度則對(duì)應(yīng)檢測(cè)框的得分。
對(duì)目標(biāo)檢測(cè)而言,從開(kāi)創(chuàng)性的 Viola-Jones 檢測(cè)器開(kāi)始,均采用的是密集滑動(dòng)窗口分類(lèi)器的形式。即使是當(dāng)前基于卷積神經(jīng)網(wǎng)絡(luò)的主流檢測(cè)器,不管是兩階段的 Faster R-CNN 系列,還是單階段的 SSD 系列,其采用的鋪設(shè)錨點(diǎn)框的檢測(cè)方法,本質(zhì)上仍然是子窗口分類(lèi)器的形式。即是說(shuō),這些檢測(cè)器本質(zhì)上都是在訓(xùn)練一個(gè)局部分類(lèi)器用于判斷預(yù)設(shè)的子窗口或錨點(diǎn)框內(nèi)是否存在目標(biāo)。然而這些方法都不可避免地需要針對(duì)特定數(shù)據(jù)集設(shè)計(jì)甚至優(yōu)化滑窗或錨點(diǎn)框超參數(shù),從而增加了訓(xùn)練難度并限制了檢測(cè)器的通用性。這些滑窗或錨點(diǎn)框超參數(shù)包括:窗口數(shù)目、窗口大小、長(zhǎng)寬比例、與標(biāo)注框的重疊率閾值等。這些超參數(shù)通常是檢測(cè)任務(wù)和數(shù)據(jù)集相關(guān)的,難以調(diào)優(yōu)也難以通用。一般而言,目標(biāo)檢測(cè)涉及兩個(gè)方面:目標(biāo)在哪里(where),以及目標(biāo)有多大(how)。但這些已有方法把這兩方面綁定在一個(gè)窗口或錨點(diǎn)框里,并通過(guò)局部分類(lèi)器一次性判斷各種不同大小、不同比例的窗口或錨點(diǎn)框是否是目標(biāo)。這種綁定就造成了超參數(shù)的各種組合問(wèn)題。而本文提出的 CSP 檢測(cè)器通過(guò)兩個(gè)直接的卷積解離了這兩個(gè)子問(wèn)題,以更自然的方式實(shí)現(xiàn)目標(biāo)檢測(cè),從而也規(guī)避了錨點(diǎn)框超參數(shù)的各種組合配置,簡(jiǎn)化了檢測(cè)器的訓(xùn)練困難。
此外,本文工作也受啟發(fā)于近年的一些關(guān)鍵點(diǎn)檢測(cè)和配對(duì)的工作。在已有工作中,全卷積神經(jīng)網(wǎng)絡(luò)(FCN)已被成功地應(yīng)用于多人姿態(tài)估計(jì),通過(guò)先全卷積地檢測(cè)人體關(guān)鍵點(diǎn)然后進(jìn)行組合配對(duì)的方式。受此啟發(fā),ECCV 2018 的兩個(gè)工作,CornerNet 和 TLL,通過(guò)一對(duì)對(duì)角點(diǎn)檢測(cè)或上下頂點(diǎn)檢測(cè)并兩兩配對(duì)的方式,成功地拋棄了錨點(diǎn)框?qū)崿F(xiàn)了目標(biāo)檢測(cè)(早期還有第一代 YOLO 和 DenseBox,但性能有一定局限)。雖然多個(gè)關(guān)鍵點(diǎn)需要額外的配對(duì)策略,有些配對(duì)方法較為復(fù)雜(如 TLL 里的 MRF),但這一系列工作依然啟發(fā)了本文更進(jìn)一步,實(shí)現(xiàn)了簡(jiǎn)單的全卷積式預(yù)測(cè)中心和尺度的檢測(cè)器。
方法實(shí)現(xiàn)
基本框架:下圖給出了 CSP 算法的整體框架,其結(jié)構(gòu)非常簡(jiǎn)單,主要包含兩個(gè)模塊:特征提取模塊(Feature Extraction)和檢測(cè)頭模塊(Detection Head)。
特征提取模塊:以 ResNet-50 為例,低層的特征圖擁有較高的空間分辨率,因而能提供更多的定位信息,而高層的特征圖則包含更多的語(yǔ)義信息,為此可以把低層和高層的特征圖融合成一個(gè)特征圖用于檢測(cè)任務(wù)。具體地,出于減少算法復(fù)雜度的考慮,這里采用一種最簡(jiǎn)單的特征融合方式:首先對(duì)所有要融合的特征圖進(jìn)行 L2 歸一化,再利用反卷積層將第 3、4 和 5 級(jí)的特征圖分辨率提升到和第 2 級(jí)的特征圖分辨率保持一致,也即原圖的 1/4,然后再將這些特征圖在通道維度上拼接起來(lái),得到最終用于檢測(cè)的特征圖(圖中紫色部分)。給定一張輸入圖像,其大小為,則用于檢測(cè)的特征圖的大小為 H/r×W/r,其中 代表降采樣率,一個(gè)更大的 意味著特征圖分辨率較小進(jìn)而導(dǎo)致檢測(cè)器定位性能下降,而一個(gè)更小的 則會(huì)帶來(lái)更多的計(jì)算負(fù)擔(dān)。
檢測(cè)頭模塊:基于以上特征圖,檢測(cè)頭負(fù)責(zé)將特征圖解譯成檢測(cè)結(jié)果。在檢測(cè)頭模塊中,首先接上一個(gè) 3x3 卷積層將輸入特征圖的維度壓縮到 256,然后接上兩個(gè)并聯(lián)的 1x1 卷積層產(chǎn)生目標(biāo)中心點(diǎn)熱圖和目標(biāo)尺度預(yù)測(cè)圖,這樣相較于 R-CNN 及 SSD 等系列工作而言極大地簡(jiǎn)化了檢測(cè)頭模塊。實(shí)驗(yàn)表明中心點(diǎn)檢測(cè)和尺度預(yù)測(cè)已經(jīng)足以勝任行人檢測(cè)任務(wù)。但采用降采樣的特征圖會(huì)影響目標(biāo)定位性能,為了彌補(bǔ)這一缺陷,在中心點(diǎn)以及尺度預(yù)測(cè)之外,還可以額外添加一個(gè)偏移預(yù)測(cè)分支,用以進(jìn)一步預(yù)測(cè)中心點(diǎn)到真實(shí)目標(biāo)中心的偏移。
訓(xùn)練標(biāo)簽:給定真實(shí)目標(biāo)包圍框的標(biāo)注,算法就可以自動(dòng)生成中心點(diǎn)和尺度的訓(xùn)練目標(biāo),如下圖所示,(a)給出了兩個(gè)行人目標(biāo)的真實(shí)包圍框,(b)給出了中心點(diǎn)和尺度的生成示例:對(duì)于中心點(diǎn),當(dāng)目標(biāo)中心落在哪個(gè)位置,則在該位置賦值 1(也即正樣本),其它位置賦值 0(也即負(fù)樣本);對(duì)于尺度圖,當(dāng)目標(biāo)中心落在哪個(gè)位置,則在該位置賦值尺度的 log 值,其它位置賦值 0。取 log 函數(shù)是為了將分布范圍較大的原始尺度壓縮在一定的范圍內(nèi),并且誤差是尺度無(wú)關(guān)的,以有利于檢測(cè)器的訓(xùn)練??紤]到單一中心點(diǎn)的不確定性,在圖(c)中我們還定義了一個(gè)高斯掩碼,用以降低中心點(diǎn)周?chē)?fù)樣本的權(quán)重,這點(diǎn)將在定義損失函數(shù)時(shí)進(jìn)一步介紹。
值得一提的是,目標(biāo)尺度可以定義為目標(biāo)高度和(或)寬度。對(duì)于行人檢測(cè)而言,為了得到更緊致的目標(biāo)包圍框,近期的研究均采用人體中軸線標(biāo)注,也即確定行人的上頂點(diǎn)和下頂點(diǎn)并形成連線得到行人高度,然后采用固定的長(zhǎng)寬比 0.41 直接確定行人寬度,進(jìn)而生成目標(biāo)包圍框。基于此,CSP 行人檢測(cè)器可以只預(yù)測(cè)目標(biāo)高度然后根據(jù)固定長(zhǎng)寬比 0.41 生成檢測(cè)框用于后續(xù)評(píng)估,這是由行人直立行走的特性決定的。但對(duì)于其他非行人目標(biāo)而言,CSP 的尺度預(yù)測(cè)就需要同時(shí)預(yù)測(cè)目標(biāo)高度和寬度,如下文提到的人臉檢測(cè)。
中心點(diǎn)偏移量的訓(xùn)練目標(biāo)的定義與尺度類(lèi)似,卷積預(yù)測(cè)的通道包含兩層,分別負(fù)責(zé)水平方向和垂直方向的偏移量,假設(shè)目標(biāo) k 的中心點(diǎn)坐標(biāo)為 (x_k, y_k),則在標(biāo)簽圖中目標(biāo)中心所在的位置賦值為,其中「·」代表取整函數(shù),其它位置賦值為 0。
損失函數(shù):目標(biāo)中心點(diǎn)預(yù)測(cè)是一個(gè)二分類(lèi)問(wèn)題,也即判斷熱圖的每個(gè)位置是否存在目標(biāo)中心點(diǎn),是中心點(diǎn)則為正樣本,否則為負(fù)樣本。然而通常情況下一個(gè)「完美」的目標(biāo)中心點(diǎn)是很難定義的。由于正樣本周?chē)呢?fù)樣本距離中心點(diǎn)非常近,很容易被標(biāo)注誤差所干擾,因此直接將其指定為負(fù)樣本會(huì)給檢測(cè)器的訓(xùn)練帶來(lái)困擾。對(duì)此,本文在每個(gè)正樣本及其周?chē)捎靡粋€(gè)高斯掩碼,該高斯掩碼以目標(biāo)中心點(diǎn)為中心坐標(biāo),其水平/垂直方差與目標(biāo)的寬度/高度成正比。如果兩個(gè)目標(biāo)的高斯掩碼之間存在重合,則擇取二者中的最大值。為了應(yīng)對(duì)正負(fù)樣本數(shù)量極端不平衡的問(wèn)題,本文也采用 CornerNet 中的 focal 策略——對(duì)難樣本賦予更大的權(quán)重。具體損失函數(shù)定義詳見(jiàn)論文細(xì)節(jié)。由此,結(jié)合高斯掩碼和 focal 策略,一是難樣本的權(quán)重得到了增強(qiáng),二是在正樣本周?chē)呢?fù)樣本的權(quán)重得到了降低。最后,目標(biāo)的尺度預(yù)測(cè)可以構(gòu)建為一個(gè)回歸問(wèn)題,由經(jīng)典的平滑 L1 損失給出。
實(shí)驗(yàn)結(jié)果
本文提出的方法在 Caltech 和 Citypersons 行人檢測(cè)數(shù)據(jù)集上進(jìn)行了驗(yàn)證,其中標(biāo)注是采用的基于中心線的緊致標(biāo)注。這是當(dāng)前最主流的行人檢測(cè)數(shù)據(jù)集。采用的評(píng)估指標(biāo)是單圖虛檢(FPPI)在 [0.01, 1] 范圍時(shí)的對(duì)數(shù)平均漏檢率(MR-2)。
在 Caltech 數(shù)據(jù)集上,結(jié)果如下圖所示。僅用 Caltech 訓(xùn)練集訓(xùn)練時(shí),在測(cè)試集的合理(Reasonable)子集上,CSP 的平均漏檢率為 4.5%,比當(dāng)前最好的 RepLoss 的 5.0% 好 0.5%。當(dāng)對(duì)比的方法都在 Citypersons 上預(yù)訓(xùn)練時(shí),CSP 取得當(dāng)前最好的平均漏檢率 3.8%。在嚴(yán)重遮擋子集上,CSP 沒(méi)有預(yù)訓(xùn)練時(shí)比 RepLoss 好 2.1%,有預(yù)訓(xùn)練時(shí)比 RepLoss 好 5.3%。值得指出的是,CSP 沒(méi)有額外設(shè)計(jì)針對(duì)遮擋的策略,而 RepLoss 和 OR-CNN 是專門(mén)針對(duì)遮擋設(shè)計(jì)的。
在 Citypersons 數(shù)據(jù)集上,結(jié)果如下表所示。所有結(jié)果都是針對(duì)中心線標(biāo)注、原始圖像(1024x2048)上測(cè)試的??梢钥闯?,在合理子集上,CSP 比之前最好的 ALFNet 提升了 1.0%,在嚴(yán)重遮擋子集上提升了 2.6%,在小目標(biāo)上提升了 3.0%,而測(cè)試速度與 ALFNet 相當(dāng),在 NVIDIA GTX1080Ti 單張顯卡上每張 1024x2048 大小的圖像平均用時(shí) 0.33 秒。特別是,同為無(wú)需錨點(diǎn)框的方法,CSP 比 TLL 提升了 4.5%,比 TLL+MRF 提升了 3.4%。
CSP 的小目標(biāo)檢測(cè)能力得益于大分辨率的特征圖。而對(duì)于遮擋,傳統(tǒng)的基于密集滑窗(如 VJ 檢測(cè)器)或者基于 Faster R-CNN、采用感興趣區(qū)域池化(ROI Pooling)的檢測(cè)器,本質(zhì)上都是對(duì)目標(biāo)區(qū)域的一個(gè)整體判斷的分類(lèi)器,因此目標(biāo)區(qū)域的遮擋和背景等信息是包含在其整體判斷里的。而本文提出的 CSP 對(duì)目標(biāo)在哪里和有多大進(jìn)行了解離,在熱圖上只檢測(cè)中心點(diǎn),尺度大小是額外預(yù)測(cè)的,因此受遮擋的影響相對(duì)較小。
后續(xù)工作
為了進(jìn)一步驗(yàn)證 CSP 檢測(cè)器的通用性,本文作者還進(jìn)一步在 WiderFace 人臉檢測(cè)數(shù)據(jù)集上做了后續(xù)實(shí)驗(yàn)。其中尺度采用了高度+寬度預(yù)測(cè),因?yàn)?nbsp;WiderFace 的人臉標(biāo)注是包含各種變化的寬高比的。CSP 在 WiderFace 訓(xùn)練集上訓(xùn)練的結(jié)果分別在驗(yàn)證集和測(cè)試集上進(jìn)行了測(cè)試,實(shí)驗(yàn)結(jié)果如下圖所示。可見(jiàn) CSP 取得了與當(dāng)前領(lǐng)先的人臉檢測(cè)算法可比較的檢測(cè)性能,而這其中大部分算法都是基于「錨點(diǎn)框」的。特別是在困難子集上,驗(yàn)證集和測(cè)試集上 CSP 都達(dá)到了比當(dāng)前已發(fā)表的方法更好的性能。
此外,本文作者進(jìn)一步測(cè)試了人臉檢測(cè)器的泛化能力。對(duì)于同樣是在 WiderFace 上訓(xùn)練好的 CSP 和 DSFD 模型(兩者性能非常接近,DSFD 在困難子集上,驗(yàn)證集 90.4%,測(cè)試集 90.0%),評(píng)估了它們?cè)谄渌麛?shù)據(jù)庫(kù)上直接測(cè)試的性能(AP)。結(jié)果是雖然在同為網(wǎng)圖的 FDDB 上兩者性能依然非常接近,在 UCCS 監(jiān)控視頻人臉檢測(cè)上 CSP 為11%,DSFD 為 7.6%;在一個(gè)待公開(kāi)的極端環(huán)境人臉檢測(cè) Benchmark 上,CSP 是 27%, DSFD 為 12%。值得注意的是,DSFD 是基于錨點(diǎn)框的人臉檢測(cè)器的優(yōu)秀代表,亦收錄于 CVPR2019,并且其一大貢獻(xiàn)就是改進(jìn)了錨點(diǎn)框的匹配策略。但對(duì)比跨庫(kù)測(cè)試結(jié)果可以看出,在一個(gè)庫(kù)上采用的錨點(diǎn)框配置,離開(kāi)這個(gè)庫(kù)可能會(huì)存在已配置好的錨點(diǎn)框的適用性問(wèn)題。而 CSP 是簡(jiǎn)單地預(yù)測(cè)目標(biāo)中心和尺度,無(wú)預(yù)設(shè)的錨點(diǎn)框配置,因此相對(duì)而言能更好地適應(yīng)不同的場(chǎng)景或數(shù)據(jù)集。
結(jié)語(yǔ)
近年流行的錨點(diǎn)框檢測(cè)器取得了很大的成功,但依然是 VJ 檢測(cè)器奠定的基礎(chǔ),其設(shè)計(jì)深受滑窗分類(lèi)器的影響。然而,深度卷積神經(jīng)網(wǎng)絡(luò)高度的語(yǔ)義抽象能力開(kāi)辟了更廣闊的潛力,使得拋棄錨點(diǎn)框成為一種可能,而本文提出的 CSP 檢測(cè)器便是這方面的一種新的嘗試。目前已在行人檢測(cè)和人臉檢測(cè)上驗(yàn)證了有效性,未來(lái)可進(jìn)一步考慮拓展到車(chē)輛檢測(cè)和通用物體檢測(cè)等相關(guān)的檢測(cè)任務(wù)。