
業務背景
圖像分割算法在淘寶的各種業務中廣泛應用,比如商品換背景,直播人像換背景,服飾部件分離等。但是圖像分割算法的大規模應用卻面臨着以下兩個瓶頸:
- 訓練分割模型需要⼤量标注,分割需要像素級精細标注,成本遠⾼于分類、檢測等其他任務;
- 分割模型在複雜的實際場景中難以做到毫⽆瑕疵,對于展示精度要求高的場景需要人工稽核和修正。
總之,“智能”的分割算法離不開“人工”标注和稽核修改,而分割任務所需要的“人工”成本極高;當下廣泛使用的分割标注平台大多僅靠“打點描邊”或者“塗抹/擦除”等基礎手段進行分割樣本的标注或者修正,想要擷取高品質的掩膜極其耗時耗力。而互動式分割(Interactive Segmentation) 給以上問題提供了新思路: 互動式分割以“人機互動”的模式支援使用者以點選、畫框、塗抹等方式簡單的定義分割目标,模型根據使用者互動資訊預測目标掩膜。
系統設計
在此背景下,“圖像和美”團隊聯合iTag推出FAI-素材制備平台(如圖2),支援使用者使用智能分割工具以少數幾次點選便捷的進行分割,同時我們還提供了輔助分割工具以應對分割異常的邊緣樣例。此外,我們還設計了審改一體化系統,支援使用者對大批量資料進行浏覽、稽核、标注。
▐ 智能分割工具
使用者僅需要在目标的前景/背景區域進行少數幾次點選,即可分割出想要的目标。我們的智能分割工具有以下特點:
- 簡單
差別于photoshop眼花缭亂的功能。我們專注于摳圖,以簡潔的界面,輕量的Web工具支援使用者低成本使用。
- 靈活
FAI-素材制備平台不限目标類别,且可以對部件、完整物體、背景區域進行分割。并且支援在已有分割掩膜的基礎上進行互動式修改。
- 快速
我們的算法響應速度快,無明顯示卡頓,且需要的互動次數較少;力求在最短的時間内完成摳圖。
▐ 輔助分割工具
為了滿足使用者的不同需求同時給互動式分割無法解決的邊緣樣例兜底,我們在FAI-素材制備平台增添了幾樣輔助工具,比如:超像素、邊緣套索、橡皮擦。如圖3,使用者可以利用這些工具互相配合,對各種樣例進行分割。
▐ 審-改一體化系統
為了幫助使用者對已有分割結果進行快速稽核,我們設計了審改一體化功能,如圖4. 系統首先對所有的分割結果進行自動評估,幫助使用者批量發現需要修改的分割掩膜,使用者可以通過縮略圖進行快速判别。當使用者發現需要标注/修改的圖檔,可以一鍵點選進入互動式分割界面,對目标圖檔進行标注或修改。
我們的素材制備平台已經在對多個業務進行支援,包括FAI試搭間,淘系商品釋出端等。該平台的背後離不開算法創新和工程打磨。淘系自研的互動式分割算法 Conditional Diffusion for Interative Segmentation已被計算機視覺頂級會議 ICCV2021收錄。後續部分将詳細介紹我們在算法層面的創新以及實際落地過程中的經驗和思考。
技術簡介
▐ 技術背景
互動式分割支援使用者通過少量前、背景“點選”定義任意分割目标,進而便捷的完成“摳圖”。文章DIOS[1]在2016年首次将深度學習應用到互動式分割當中,大幅提升了算法的性能。算法流程如圖5所示,DIOS将前、背景點選分别編碼成兩個高斯圖,連同待分割圖檔(RGB三個通道)組合成5通道的輸入張量送入全卷積網絡,對分割目标進行預測。
後續的學者大多基于這一架構進行改進,包括:用距離圖、超像素等不同的形式表示點選;用第一個點選的資訊構造Attention等。近年來發表的效果最好的論文當屬 f-BRS[2], f-BRS利用點選點的已知标簽對模型參數進行線上微調,在各個資料集都達到了領先的表現。
然而,之前的算法距離實際應用仍然有一定距離,他們往往還是需要較多次數的點選才能得到滿足要求的分割結果,或相應速度無法滿足需求。在實際應用中,我們還發現之前的算法廣泛存在兩個問題:
- 欠泛化(Under-Generalization): 對于較大的目标,比如平整的牆面,即使外觀一緻,預測的标簽也無法從點選點泛化到較遠的位置;
- 過泛化(Over-Generalization): 對于較小的目标,比如桌上的鉛筆,即使存在較為清晰的邊界,預測的标簽也時常從點選點溢出邊界。
▐ 算法創新
由以上問題出發,我們分析如何通過點選準确推斷使用者意圖區域是算法的關鍵。而之前的方法大多僅利用了點選中的位置資訊,将點選編碼成高斯圖/距離圖/超像素等。此類方法無法應對分割目标大小不同、種類繁多的情況,需要多次點選才能得到理想的結果。為了用更少的點選獲得更好的分割結果,我們分析除了位置資訊,點選區域和圖像其他區域的外觀相似資訊也很重要,因為外觀相似的區域往往對應一緻的預測結果。由此,我們提出Conditional Diffusion for Interative Segmentation(CDNet),通過特征比對,将線索從點選點擴散到與其相似的區域;并且以不同的點選分布為條件動态的調整資訊擴散的路徑。基于該方法,CDNet在更少的點選輸入下有着更準确的分割結果。
- 模型結構總述
如圖6所示,CDNet提出兩個即插即用的擴散子產品:Feature Diffusion Module(FDM)和Pixel Diffusion Module(PDM),由粗到精,從不同的層級提升互動式分割模型的性能。同時,為了解決互動式分割中訓練目标歧義性的問題,我們提出了Diversified Training(DT),使得CDNet的訓練過程更加穩定。
- 特征擴散子產品
Feature Diffusion Module(FDM)在高層特征次元對點選點的資訊進行擴散,提升模型預測效果的語義一緻性。FDM的結構如圖7所示,受Non-Local Network[3] 的啟發,FDM采用 k,q,v 的方式進行特征傳播;差別于Non-Local,由于互動式分割的目标可以根據使用者的點選任意定義,不同的目标對應着不同的“相似"準則, 是以FDM根據使用者點選對Affinity Matrix進行動态權重調整(Conditional Re-weighting)。具體而言,CDNet将前景點和背景點的資訊傳播分為兩支,分别對特征傳播的起始區域和終點區域進行限制。起始區域限制使用高斯核提升點選區域的權重;終點區域限制使用學習的方式,對前背景區域進行初步預測。由此,前/背景點選中的資訊将由點選點擴散到預期的前/背景範圍。
其中Conditional Re-weighting的可以被表示成如下公式:
其中A表示和Non-Local相同計算方式的Affinity Matrix, S和D分别為表示起始位置(Source)和終點位置(Destination)的權重矩陣。S為使用者點選位置編碼的高斯圖,D為通過學習的方式預測出的終點區域範圍。如圖7右側所示,FDM以簡單的逐像素乘法分别将起始限制和終點限制施加于Affinity Matrix的不同次元,進而對資訊擴散的路徑進行動态調整。
- 像素擴散子產品
Pixel Diffusion Module(PDM)在輸出Logits的次元對點選點的資訊進行擴散,提升模型預測效果的色彩一緻性。PDM核心思想和FDM相同, 也是基于self-attention的k,q,v形式進行資訊傳播。不同的是,由于logitis的尺寸和原圖相同,以self-attention的形式建立全局Affinity Matrix的計算量過大,無法實施。于是PDM采取了“局部求解+多輪疊代”的方式,每次隻在每個像素點周圍的n個相鄰像素區域求Affinity并且開展資訊擴散。整個過程疊代N(=10)次,即可将資訊擴散到準确且廣闊的範圍。
PDM的詳細過程如圖8所示,PDM将模型預測的Logits, 前背景點選編碼的高斯核以及原始圖檔當做輸入。首先利用點選編碼的高斯核的已知标簽對Logits在點選點附近的預測結果進行強化,以此當做資訊擴散源。
同時,PDM以顔色相似度作為Affinity的度量準則,在每個相似的n個相鄰像素區域求解Affinity并且根據以下公式進行多輪次資訊擴散。
經過PDM的精修,模型的輸出結果更具顔色一緻性,并且有更加精細的邊緣細節。
- 多樣化訓練
在訓練過程中,之前的大多數方法以在Ground Truth Mask的内部和外部随機采樣的方法模拟前景/背景點選,該方法容易造成優化目标的歧義。如圖9所示,當一個前景點落在車手的腿上,模型的預測結果無論是褲子、車手、車手+機車都是合理的,因為摳圖的目标可以自由定義,單獨一個點無法明确意圖。而訓練中的Ground Truth隻有一個,假定圖9的情況模型預測了褲子當做Mask, 就會受到很大的Loss懲罰;而後續疊代輪次的Ground Truth也許是一個局部區域,當模型預測完整物體,又會受到很大的Loss懲罰,進而造成訓練目标的不穩定。
受到[5]的啟發, DT通過支援多樣化的預測輸出,降低訓練過程中的目标歧義性。如圖9,我們在原有Head的基礎上,增加了N(=4)個 Latent Head。這N個Head采用完全相同的結構,不同的初始化方式。每次計算和GT的Loss之後,我們隻保留Loss最小的Head的梯度進行回傳。同時,為了保證N個Head都能夠得到優化,對于每個Head都保留前景點和背景點周圍高斯核區域的梯度。如此,在訓練一定輪次後,我們發現每一個Head都可以自動找到特定Pattern。由此,無論Ground Truth表示的是局部,整體或是多目标組合,都會有相應的預測結果與之比對。與[5]不同的是,在模型推理的過程中,我們删去所有的 Latent Head, 隻保留原有Head的預測結果。雖然在推理過程中被删去,Latent Head在訓練過程中回傳的梯度讓模型學到了更好的representation。
實驗結果
我們在互動式分割常用的四個資料集GrabCut, Berkeley, SBD, DAVIS上做了詳細的對比實驗。如表1所示,我們的CDNet在名額上超越了之前的算法,達到了新的SOTA。實驗中選用的名額NoC(Number of Click)85/90 表示分割結果達到IOU85%/90%所需要的平均點選次數。可見,相對于其他算法,我們的CDNet在更少的點選次數下可以獲得更好的分割結果。
同時,我們還将CDNet與f-BRS等前SOTA算法進行了速度對比,如表2所示,相對比于BRS[4]和f-BRS[2] 我們的方法在準确度領先的同時有着較為明顯的速度優勢。表中的SPC(Second Per Click)表示每一次點選所需要的處理時間。
實踐經驗
基于CDNet的研究,我們将點選式互動式分割內建到了智能分割标注工具當中,對多項分割業務進行了支援。從科研論文到實際系統之間還有很長的路,我們自底向上從模型優化、功能拓展兩個方面進行了細緻的思考和提升。我們後續計劃将我們詳細的實踐方案總結成新的論文,分享我們如何彌補現有的互動式分割算法和實用工具之間的差距。
▐ 模型優化
- 模型輕量化
論文中的模型為了保證明驗公平往往使用較重的網絡設計。在計算資源有限的情況下速度達不到使用者要求,并且模型參數量較大,不适合端化部署。
由此我們對模型的結構進行了化簡,設計了不同大小的模型以面對不同場景的具體需求,并且探索了知識蒸餾等不同的訓練政策。最終我們最大的模型參數量不超過4MB, 在保持高精度的同時,對于1000x1000以上的圖檔我們的服務也可以在400ms内完成傳回。
- 大資料訓練
我們的分割工具支援多樣的目标類别,不限種類,且可以是部件、物體、區域、背景。為了提升模型的泛華能力,我們從各種場景收集了大量的分割資料。并且根據實際應用場景在訓練過程中對資料的分布做了調優。訓練資料的多樣性也保證了模型對于通用類别的分割能力。同時我們也對跨資料集、跨域資料的聯合訓練做了研究, 更好的利用不同資料域提供的資訊。
▐ 功能拓展
- 在預标基礎上修改
學術界的算法僅支援從零開始标注,實際場景中很多圖像都是有帶瑕疵的預标掩膜;我們拓展了CDNet的功能,使其能夠在任意的預标基礎上對Mask進行修改,更加滿足業務場景的需求。
- 漸進式互動式分割
學術界的互動式分割算法在每次使用者點選之後都會對掩膜進行新的全局預測,造成遠離點選區域的掩膜也會變化。該問題不僅導緻标注過程中需要反複修改,并且不支援互動式分割與其他分割工具的切換(互動式分割每次會重新預測别的工具修改的區域)。
針對該問題,我們提出“漸進”政策,分析使用者點選意圖,每次點選僅改變需要修正的區域;保留原理點選點的正确區域。漸進政策使得我們的分割工具在标注過程中更加穩定,并且支援和其他形式的分割工具進行切換。
總結展望
我們提出的CDNet将點選式互動式分割看做條件資訊擴散的過程,提升了算法的性能,對實際分割業務帶來了提升。當然CDNet還有很多問題沒有解決,包括如何進CPU端的快速分割,如何得到更精确的邊緣細節,如果在不同的局部/整體分割目标直接快速切換等等。我們已在以下兩個方面取得初步進展:
- 算法提升:我們在點選式互動式分割算法上持續發力,進行了多方面的探索,包括更加快速的模型結構、點選的不同編碼形式、更精确的細節預測、Transformer架構等等;目前精度和速度已經大幅超過ICCV版本。
- 細節精修:我們計劃增加“塗抹”的互動形式。如圖10,使用者在需要精修的區域進行塗抹,模型會自動對塗抹區域進行精修。該功能背後的算法為針對通用類别的 Interative Image Matting。可以滿足高品質的摳圖需求。
我們還将繼續對“互動式分割”這一課題進行探索,力求做出更加好用的互動式工具,用AI進一步提升生産效率。
Reference
[1] Deep Interactive Object Selection
[2] f-BRS: Rethinking Backpropagating Refinement for Interactive Segmentation
[3] Non-local Neural Networks
[4] Interactive image segmentation via backpropagating refinement scheme
[5] Interactive image segmentation with latent diversity