劉 洋
(池州職業(yè)技術學院教育系,安徽 池州 247000)
顯著目標檢測旨在檢測圖像或視頻中最吸引人的區(qū)域,以模仿人類視覺的注意力機制[1]。全監(jiān)督顯著目標檢測模型依靠有效設計的模塊取得了良好的檢測性能[2-3]。然而,這些方法嚴重依賴于精確的像素級別標注數(shù)據(jù)集,需要耗費大量的人力才能獲取。因此,稀疏標記方法[4-7]在近年來吸引了越來越多的關注,其目的是在時間開銷和模型性能之間取得平衡。一些方法[8-9]嘗試使用圖像級標簽來檢測顯著物體。一些方法使用噪聲標簽訓練網(wǎng)絡,這些噪聲標簽通常由其他的顯著目標檢測方法生成[10]。涂鴉標注[11]是基于降低標記時間成本而提出的,與之前的方法相比,它可以提供局部的真值標簽,且作者稱他們可以在1~2 s內(nèi)完成對圖像的標注,但對于未經(jīng)訓練的標注人員來說很難做到這一點。該方法嘗試提出一種基于點監(jiān)督的顯著性檢測方法,與涂鴉標注相比,該方法能使用更少的標注時間來實現(xiàn)可接受的性能。如圖1所示,該方法是第一個嘗試使用點監(jiān)督來完成顯著目標檢測的方法。
該方法提出了一種基于點監(jiān)督的顯著性檢測方法,使用了與涂鴉標注相比耗時更少的標注方法,但取得了相似的性能表現(xiàn),如圖1所示。點監(jiān)督與無監(jiān)督和圖像級別的監(jiān)督相比,可以直接提供相對準確的位置信息。其次,與其他手工標注方法相比,點監(jiān)督是最省時的標注方法。此外,當前的弱監(jiān)督顯著性檢測模型往往只關注在相應場景中必須關注的目標,而忽略了應該忽略的目標。原因是由于弱監(jiān)督標簽的稀疏性,使得監(jiān)督信號只能覆蓋圖像的一小部分,只允許模型了解哪些目標必須高亮顯示,但缺乏信息來指導模型應該忽略哪些目標?;谶@一觀察,本文提出了非顯著性抑制方法來明確過濾掉非顯著但被檢測到的目標。
(a)原始圖像
根據(jù)弱監(jiān)督密集預測任務的常規(guī)做法,首先需要制作偽標簽,然后使用它們來訓練網(wǎng)絡。由于稀疏標簽僅覆蓋目標區(qū)域的一小部分,這限制了模型接收目標結構的能力,Feng,et al[12]人利用邊緣檢測器生成邊緣以監(jiān)督訓練過程,不同的是,該方法將邊緣直接應用于自適應洪水填充算法。洪水填充算法從一個起始節(jié)點開始搜索其鄰域(4或8),并提取與其相連的附近節(jié)點,直到封閉區(qū)域中的所有節(jié)點都已處理完畢。它是從一個區(qū)域中提取幾個連接點,或?qū)⑺鼈兣c其他相鄰區(qū)域區(qū)分開來。然而,由于邊緣檢測器生成的邊緣通常是不連續(xù)和模糊的(如圖2的頂部所示),將其直接應用于洪水填充算法可能會導致整個圖像都被填充。因此,該方法設計了一個自適應掩膜來緩解這個問題,即一個半徑隨圖像大小而變化的圓。具體而言,半徑r定義為
(1)
式中:I是輸入圖像;r(I)是對應于輸入圖像I的掩膜半徑;hl和wl分別表示輸入圖像的長度和寬度;γ是超參數(shù)。
圖像I的標注真值可以表示為
(2)
e=E(I),
(3)
圖2 提出方法的框架示意圖
(4)
式中:g表示獲得的偽標簽;F(u,v)表示洪水填充算法,其中u和v表示算法的輸入?yún)?shù);S表示圖像I的標注真值。
稀疏標記下的顯著目標檢測任務的難點在于該模型只能獲得局部的標注真值,缺乏全局信息的指導。該方法認為通過標注位置和未標注位置之間的相似性可以建立標注位置和未標注位置之間的聯(lián)系,以獲得未標注區(qū)域的顯著性值,可以在一定程度上緩解這一問題。考慮到視覺變換器(ViT)建模相似性的特性,該方法利用hyper-ViT(即“ResNet-50+ViT-Base”)作為主干來提取特征并計算自身的相似性。
具體地說,對于大小為3×H×W的輸入圖像,CNN嵌入部分生成C×H/16×W/16的特征圖。ResNet-50的多階段特征表示為R={Ri|i=1,2,3,4,5}。然后是變換編碼器以C×H/16×W/16的位置嵌入總和以及展開的特征作為輸入。經(jīng)過12層的自注意力層后,變換編碼器輸出了C×H/16×W/16的特征。
邊緣保持解碼器由兩部分組成:顯著性解碼器和一個近似邊緣檢測器,如圖2所示。顯著性解碼器由4個級聯(lián)的卷積層組成,其中每一層都由批量歸一化(BN)層、ReLU激活層和上采樣層組成,上采樣層將變換編碼器的特征作為輸入。該方法將每層顯著性解碼器的相應特征表示為D={Di|i=1,2,3,4}。對于后一部分,由于弱標注本身缺乏結構和細節(jié)信息,利用一個邊緣解碼器作為近似的邊緣檢測器,通過使用真實邊緣檢測器生成的邊緣結果來約束輸出結構。近似邊緣檢測器的輸出可以表示為fe=Φ(cat(R3,D2)),其中Φ表示單個3×3卷積層,后面是BN和ReLU層。通過在fe之后添加一個3×3的卷積層,可以獲得邊緣圖e,然后由真實邊緣檢測器生成的邊緣圖對其進行約束。
可以觀察到,由于弱監(jiān)督圖像的稀疏性,監(jiān)督信號只能覆蓋圖像的一小部分,這導致模型只學習高亮顯示的目標物體,而忽略當前場景中哪些目標不應被高亮顯示。
為了抑制不顯著的目標物體,本文提出了一種簡單而有效的方法,即利用監(jiān)督信號提供的位置線索,填充生成的高亮物體來達到抑制不顯著物體的目的。所獲得的顯著目標區(qū)域(如圖3(b)所示)可通過式(5)的方式獲得:
Pf=F(S-Sb,P1st),
(5)
由于在第一輪訓練期間僅為顯著目標提供了內(nèi)部的局部標簽,這可能會導致模型無法準確區(qū)分邊緣,因此在Pf上使用了尺寸為10的擴展操作(即使用膨脹/空洞卷積)。擴展區(qū)域被指定為非特定區(qū)域(如圖3(b)中的黑色區(qū)域所示),而保留區(qū)域被指定為背景區(qū)域(如圖3(b)中的綠色區(qū)域所示),表示為P2nd,它被用作第二輪訓練的偽標簽。圖3(c)為原始圖像中偽標簽的對應位置。
(a)
如圖4所示,由于標簽的稀疏性,模型傾向于檢測不顯著的目標。圖4(a)表示在點監(jiān)督下第一輪訓練后得到的偽標簽,圖4(b)則表示對圖4(a)生成的偽標簽進行非極大值抑制后的偽標簽結果。事實上,該模型退化為一個檢測前景目標的模型。通過重復使用監(jiān)督點的位置信息,可以利用非顯著抑制方法來成功抑制掉大多數(shù)不顯著的目標。
圖4 非顯著抑制的效果示意圖
在該網(wǎng)絡中,采用了二分類交叉熵損失、部分交叉熵損失和門控CRF損失。對于保留邊緣的解碼器流,使用二分類的交叉熵損失來約束e,即:
Lbce=∑(r,c)[ylog(e)+(1-y)log(1-e)],
(6)
式中:y表示標注真值;e表示預測的邊緣圖;r和c分別表示行和列坐標。對于顯著性解碼流,采用了部分交叉熵損失和門控CRF損失。部分二元交叉熵損失用于關注的確定區(qū)域,而忽略不確定區(qū)域:
Lpbce=-∑j∈J[gilog(sj)+(1-gj)log(1-sj)],
(7)
式中:J代表標記區(qū)域;g代表標注真值;s代表預測的顯著性圖。為了獲得更好的目標結構和邊緣信息,在損失函數(shù)中使用了門控CRF:
Lgcrf=∑i∑j∈Kid(i,f)f(i,j),
(8)
式中Ki表示像素i周圍k×k的覆蓋區(qū)域。d(i,j)定義為
d(i,j)=|si-sj|,
(9)
式中si和sj是位置i和j處的顯著值。f(i,j)表示高斯核帶寬濾波器:
(10)
Lfinal=α1Lbce+α2Lpbce+α3Lgcrf,
(11)
式中α1,α2,α3是權重。在實驗中,根據(jù)經(jīng)驗值都設置為1。
為了盡可能減少標記時間消耗,同時提供顯著目標的位置信息,通過重新標記DUTS[13]數(shù)據(jù)集(一個廣泛使用的顯著性檢測數(shù)據(jù)集,包含10 553個訓練圖像)來構建一個點監(jiān)督數(shù)據(jù)集。對于每幅圖像,從4個標注人員的結果中隨機選擇一個,以減少個人偏見。在圖1中,展示了一個點標注的示例,并將其與其他標注方法進行了比較。對于每個顯著的目標,只隨機選擇一個像素位置進行了標記(為了清晰,放大了標記位置的大小)。由于標注方法很簡單,即使是初學者也可以在平均2 s的時間內(nèi)標注一幅圖像。
該模型在PyTorch工具箱上實現(xiàn),使用標注的點監(jiān)督數(shù)據(jù)集進行訓練。在4個TITAN XP GPU上進行模型的訓練。對于變換器部分,使用了 “ResNet50+ViT”作為骨干,并且沒有進行任何調(diào)整。通過使用提供的預訓練權重來初始化嵌入層和變壓器編碼器層,且ViT是在ImageNet 21K上預先訓練的。對于變換器部分,最大學習率設置為0.000 25,對于其他部分,學習率設置為0.002 5。采用隨機梯度下降法(SGD)訓練網(wǎng)絡,并將參數(shù)動量設置為0.9,權重衰減設置為5×10-4使用。使用水平翻轉和隨機裁剪作為數(shù)據(jù)擴充的方式,批量大小設置為28,第1次訓練過程需要20個迭代周期。式(1)中的超參數(shù)γ設置為5,第2輪訓練使用了相同的參數(shù)。在測試過程中,將每個圖像的大小重新調(diào)整為352×352,然后將其輸入到網(wǎng)絡中,以預測顯著性圖。
表1 與其他方法在ECSSD和PASCAL-S數(shù)據(jù)集上的定性比較
如圖5所示,該方法在兩個公開數(shù)據(jù)集上的精度召回結果優(yōu)于其他方法。如圖6所示,與其他弱監(jiān)督或無監(jiān)督方法相比,該方法獲得了更準確和完整的顯著圖,甚至超過了部分全監(jiān)督方法的預測結果。第1、5和6行分別展示了該模型捕捉整體顯著目標的能力,對于具有極其復雜紋理的目標 (第5行)也可以通過該方法進行精確地分割。此外,基于提出的非顯著抑制方法,可以精確地提取顯著的目標并抑制不顯著的目標(如第2~4行所示)。最后一行顯示了該模型提取細節(jié)的能力。
如圖5所示,該方法在兩個公開數(shù)據(jù)集上的精度召回結果優(yōu)于其他方法。如圖6所示,與其他弱監(jiān)督或無監(jiān)督方法相比,該方法獲得了更準確和完整的顯著圖,甚至超過了部分全監(jiān)督方法的預測結果。第1、5和6行分別展示了該模型捕捉整體顯著目標的能力,對于具有極其復雜紋理的目標(第5行)也可以通過該方法進行精確地分割。此外,基于提出的非顯著抑制方法,可以精確地提取顯著的目標并抑制不顯著的目標(如第2~4行所示)。最后一行顯示了該模型提取細節(jié)的能力。
(a)不同方法在ECSSD數(shù)據(jù)上的精度召回對比
圖6 與其他方法的定性比較
首先,為了驗證邊緣保留解碼器的有效性,使用第1輪的結果來評估方法的性能,因為如果第1輪產(chǎn)生不好的結果,將直接影響第2輪的結果。見表2,評估了邊緣保持解碼器的影響。由邊緣檢測器產(chǎn)生的邊緣監(jiān)督信息被移除。此時,邊緣保持解碼器只能聚合淺層的特征,不能顯示檢測邊緣特征,導致整體性能下降。
其次是驗證非顯著性目標抑制的有效性。由于非顯著抑制僅在第2輪訓練中使用,在此根據(jù)第1輪產(chǎn)生的結果進行消融實驗(即表2中的第1行)。表3為消融實驗的結果。第1行代表直接使用第1輪生成的偽標簽,而不進行CRF處理;第2行代表使用由密集CRF修正的偽標簽;第3行代表該方法。實驗結果表明,第2行比第1行效果好,說明用CRF優(yōu)化第1輪的偽標簽可以讓第2輪訓練更好,而使用了非顯著抑制后,可以取得更好的效果。
表2 邊緣保留解碼在PASCAL-S數(shù)據(jù)集上的有效性驗證
表3 非顯著抑制在ECSSD數(shù)據(jù)集上的消融實驗
最后是超參γ的影響。見表4,測試了不同γ值對第1輪訓練的影響。實驗結果表明,太小的γ會導致產(chǎn)生偽標簽監(jiān)督信息過少,γ值過大會導致偽標簽包含錯誤的區(qū)域。這兩種情況都會影響模型的性能,選取一個合適的γ才能保證模型效果穩(wěn)定。
表4 參數(shù)的影響
本文方法提出了一個基于點監(jiān)督的顯著目標檢測框架。針對偽標簽生成和顯著性檢測等問題,設計了自適應洪水填充算法和基于變換器的點監(jiān)督檢測模型。為了解決現(xiàn)有的弱監(jiān)督顯著目標檢測模型的退化問題,該方法提出了非顯著目標抑制技術來顯示過濾掉非顯著但誤檢測到的目標物體。實驗結果表明,該方法具有更強的監(jiān)督能力,而且取得了優(yōu)于其他弱監(jiān)督顯著目標檢測的精度。