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