目前主流的高精度例項物體分割框架都是基於很強的物體檢測方法,如 Fast/Faster R-CNN, YOLO 等。雖然不同的方法設計了不同的結構,但是這些方法都遵循著一個基本的規則:首先從影像中生成大量的候選區域,然後用非極大值抑制(NMS)演算法從這些數以千計的候選區域中剔除那些重複的候選區域。
但是當影像中有兩個高度重疊物體時,NMS 會將其中一個的包圍框認為成重複的候選區域然後刪掉它。這就意味著幾乎所有的基於物體檢測的例項分割框架無法處理影像中物體具有高度重疊的情況。
然而在各種物體類別中,「人」是一個很特殊的類別。因為在目前的計算機視覺研究領域,「人體骨骼姿態」已經有了很完備的定義以及豐富的資料標註。相比於包圍框,人體骨骼姿態由於包含更多更精準的定位資訊,更適合用於區分影像中高度交疊的人體例項(如圖 1 所示)。
圖 1. 人體骨骼姿態比包圍框具有更強的區分影像中嚴重交疊的人體例項的能力。
通常情況下,例項物體分割框架都會包含一個「對齊模組」,如 Mask R-CNN 中的 RoI-Align、Fast/Faster R-CNN 中的 RoI-Pooling 等。我們提出了一個基於人體骨骼姿態的對齊方法,叫做 Affine-Align。
與基於包圍框的對齊演算法(如 RoI-Align)不同的是,我們的 Affine-Align 不僅包含了縮放操作與平移操作,還包含了旋轉操作和左右翻轉操作。因此 Affine-Align 可以被認為是 RoI-Align 的一種更加通用的版本。
另外,Affine-Align 還有一個優點是可以將圖中一些奇怪的姿勢的人擺正,比如圖 2 中所示的那個滑雪的人。正常的姿態朝向可以降低 CNNs 的學習難度,從而達到更高的準確度。
圖 2. 對比 Roi-Align 與我們的 Affine-Align
本質上,人體骨骼姿態和人體例項的分割掩模並不是毫不相關的。人體骨骼姿態可以被近似地認為是分割掩模的一種收縮模式。所以我們將人體姿態關鍵點轉化為一種骨骼特徵圖,並將它與影像特徵圖拼接,送入分割模組。實驗表明我們的人體姿態特徵圖能顯著地幫助提高分割演算法的準確度。
此外,我們還提出了一個新的資料集基準 OCHuman。這個資料集包含 4731 張影像,其中有 8110 個經過精心標註的人體例項。全部標註有包圍框、人體姿態關節點、以及例項分割掩模。
資料集中的每個人體都有大概 70% 左右的面積被另一個或者多個人所遮擋。這樣高度的人與人之間的糾纏與遮擋情況使這個資料整合為了目前與人有關的最有挑戰性的資料集。
我們的主要貢獻點可以總結為:
提出了一個全新的基於人體骨骼姿態的例項分割框架。這個框架可以比基於包圍框的框架取得更好的效果,特別是對於那些嚴重遮擋的情況。
提出了一個基於人體姿態關節點的對齊演算法,叫做 Affine-Align。這個演算法可以將影像按照圖中的人體關節點進行縮放和矯正對齊。
顯示地設計了一種人體骨骼特徵圖,並用其指引分割模組進行影像分割,取得了更高的分割準確率。
提出了一個新的資料集基準 OCHuman。這個資料集專注於嚴重遮擋問題,幷包含豐富完善的標註。
我們提出的方法
圖 3 展示了我們的演算法總覽。演算法的輸入是一張影像和多人的人體姿態。我們的演算法首先使用一個特徵提取網路提取影像的特徵,然後用 Affine-Align 將每個例項區域對齊到一個固定的尺度。並引入人體骨骼特徵圖(Skeleton Features)改善分割效果。下文中將仔細介紹整個系統的每個步驟。
圖 3. 我們的演算法總覽
基於人體姿態關節點的旋轉對齊操作(AffineAlign)
如圖 3 (a) 所示,演算法首先用 K-means 最佳化下式對訓練集中的所有人體姿態進行聚類,並取每個類的聚類中心作為姿態模版構成姿態模版庫。
然後對於影像中的每個人體例項的姿態輸入,透過求解下式最佳化問題估計姿態模版與輸入姿態之間的仿射變換矩陣,並選擇一個對齊誤差最小(score 最大)的仿射矩陣 H 作為這個輸入姿態的對齊矩陣。
最後,我們用這個矩陣 H 結合仿射變換來對齊特徵區域。
骨骼姿態特徵圖(Skeleton Features)
如圖 3 (b) 所示,我們採用 OpenPose 提出的骨骼漂移場(PAFs)來表示人體姿態中不同關節點之間的連線,也就是骨骼。對於每一對關節點,PAFs 是一個 2 通道的特徵圖,分別表示這對關節點漂移向量在 (x, y) 方向上的分量。
此外,為了強化部位關節點的區域性區域,我們還對每個部位關節點生成了一個高斯核熱力圖,作為骨骼姿態特徵圖的一部分。人體的骨骼姿態和人體的分割掩模是有高度的語義相關性的——前者可以看作是後者的中心線。
實驗證明我們的骨骼姿態特徵圖的引入可以為分割預測提供先驗知識,從而改善分割的效果。
新的資料集基準 OCHuman
OCHuman 資料集由 4731 張影像組成,其中包含 8110 個人體例項。為了量化地衡量圖中的人被其他人遮擋的嚴重程度,我們定義 MaxIoU 為這個人的包圍框與圖中所有其他人包圍框的最大交併比(IoU)。
OCHuman 資料集中包含的人體例項的 MaxIoU 全部都在 0.5 以上,整個資料集平均 MaxIoU 達到了 0.67,意味著平均每個人都有 67% 的面積區域被其他人所遮擋。這使 OCHuman 成為與人有關的最有挑戰性的資料集。圖 4 展示了這個資料集的一些樣例。
圖 4. 本文提出的 OCHuman 資料集,包含包圍框、人體姿態關節點、以及例項分割掩模標註
表 1. 不同資料集之間的比較。OCHuman 具有更多嚴重遮擋的人體例項。
如表 1 所示,我們將 OCHuman 與 COCOPersons 做了對比。COCOPersons 是目前為止既包含人體分割掩模標註,又包含人體姿態關鍵點標註的最大的資料集。雖然 COCOPersons 有豐富的標註,但是其包含的具有嚴重遮擋問題的人體例項數量微乎其微。
相比之下,OCHuman 既包含豐富的標註可以支援物體檢測演算法、人體姿態估計演算法和例項分割演算法,又包含大量的具有高度挑戰性的嚴重遮擋問題例項。
實驗結果
表 2. 不同演算法在遮擋情況下的表現。所有的演算法都是在 COCOPersons 訓練集上訓練,在 OCHuman 資料集上測試的。Ours(GT Kpt) 代表我們的演算法在輸入為標註的人體姿態下的表現。
表 3. 不同演算法在一般情況下的表現。Mask R-CNN 和我們的演算法都是在 COCOPersons 訓練集上訓練,然後在 COCOPersons 驗證集(val)上測試的(不含其中的 [Small] 類別)。PersonLab 的得分來自他們的論文。Ours(GT Kpt) 代表我們的演算法在輸入為標註的人體姿態下的表現。
表 4. 研究不同的對齊策略以及人體姿態骨骼特徵的對比試驗。實驗結果分別來自於 OCHuman 驗證集與 COCOPersons 驗證集。實驗的輸入為標註的(GT)包圍盒資訊(BBOX)和人體姿態關節點資訊(KPT)。「GT KPT to BBOX」代表從這些關節點座標位置中找到最大和最小值來確定一個包圍框,並將這個包圍框向周圍擴充套件一定的程度。標*的數值表示該結果依賴於 BBOX 和 KPT 兩種輸入資訊,其他的結果僅依賴於其中一種。
圖 5. 我們的方法與 Mask R-CNN 在具有嚴重遮擋問題的圖片上的效果比較。為了方便視覺化,我們額外地用例項分割結果生成了包圍盒展示在圖中。
圖 6. 旋轉對齊操作 AffineAlign 的更多結果。(a) AffineAlign 保留的區域對應的原圖區域。(b) AffineAlign 操作之後的對齊結果與我們方法的分割結果。
論文:Pose2Seg:不依賴於包圍框檢測的人體例項分割框架(Pose2Seg: Detection Free Human Instance Segmentation)
論文地址:https://arxiv.org/abs/1803.10683
主頁地址:http://www.liruilong.cn/projects/pose2seg/index.html
程式碼地址:https://github.com/liruilong940607/Pose2Seg
資料集地址:https://github.com/liruilong940607/OCHumanApi
目前主流例項物體分割方法的思路都是首先檢測影像中物體的包圍框,然後利用包圍框區分影像中的不同物體並定位,最後用一個分割模組從這個包圍框區域中分割出物體例項。
近年來也有一些方法將上述過程合二為一,形成了一個並行的例項物體分割框架,例如 Mask R-CNN。但是這些方法都嚴重依賴於物體的包圍框檢測演算法。並且,很少有研究者在例項物體分割這個問題中考慮到「人」這一個類別的特殊性——不同於其他類別的物體,「人」有完備的人體骨架的定義。
對於「人」這個特殊的類別來說,利用骨架檢測來定位人體例項顯然比包圍框有更豐富的定位資訊,從而有潛力更準確地定位人體。同時,影像中人體骨架由於比包圍框有更大的區分度,基於骨架檢測來定位人體例項可以有效改善嚴重遮擋情況下的不同人體例項的區分。
本文將介紹一種全新的基於人體姿態的例項分割框架。本文中的實驗表明這個方法可以比基於包圍框的例項分割方法達到更高的準確度,同時可以更好地解決基於包圍框的方法無法解決的嚴重遮擋問題。