作者:Lei Yang , Dapeng Chen , Xiaohang Zhan , Rui Zhao , Chen Change Loy , Dahua Lin

題目:Learning to Cluster Faces via Confidence and Connectivity Estimation

注:以下文章包括內容和筆記僅作者個人理解,如有錯誤或出入請指正。

轉載請註明出處

一.個人評價

不愧是CVPR的文章,行文方面確實讓人看著很流暢通順,故事的敘述也是娓娓道來。實驗設計的細節也是極為充分,目前SOTA。Follow了一下這篇作者的以往文章,發現了同時也中了CVPR2019,屬實是大佬。

二.總覽

說實話能看的出來作者的思路還是比較清晰的。人臉聚類的領域不是特別瞭解,所以分析內容僅限於這篇文章,作者提到有監督的人臉聚類有著明顯的效能增益,然而這種方式仍然有著

精度

速度

上的問題,這類方法通常要求有著

啟發式的步驟

(heuristic steps)(

對應精度

)和

大量重疊的子圖

( numerous overlapped subgraphs)(

對應速度

)。

所以該文作者提出了一種

可學習的聚類框架

而且不需要設計用大量重疊的子圖,這樣一看確實心動不已,丟掉網路中訓練不是美滋滋,問題是如何設計呢?作者提出將該問題拆分成兩個子問題,問題集中於

Affinity graph

中的

節點的置信度(

confidence

節點之間邊的連通度(

connectivity

,就是說我需要更好的置信度以及更好的連通度,使得更相關的節點被

聚整合相同的類別

。那具體框架依賴於什麼呢,當然是近兩年具有出色表達圖結構能力的

GCN網路

嘍。這樣就SOTA了,太強了!

人臉聚類文章分析(一)

總體框架圖,可以看出先找出置信度高的節點,然後找出關聯度最高的邊,最後得到三類聚類結果。

三。方法

該文的核心網路有兩個

GCN-V,GCN-E

,由名字就可以看出,這是由兩個相似的GCN結構引匯出的結構。(

Vertices和Edges

人臉聚類文章分析(一)

圖示表示將Affinity Graph接入GCN-V然後圖劃分成每個子圖再接入GCN-E得到最終聚類的結果。

首先是我們透過將人臉圖片接入預訓練的CNN,提取到feature embedding,然後透過計算餘弦距離,得出對應的affinity graph。整個affinity graph連線方式這裡設定為KNN的連線方式。

a.總覽

兩個子問題GCN-V和GCN-E

GCN-V

這裡我們我們對每個節點(

vertices

)都進行置信度的預測,即

置信度越高就表明其越屬於那一個類別

。更加直觀的是,

置信度越高

的往往出現於若干點密集連線的地方,往往它們都同屬於一個類別,同時那些

置信度低

的點往往出現於若干類別中的邊界點往往屬於若干的聚類類別。

GCN-E

另一個子問題是關於邊的連通度,當一個邊的連通度很高時,那麼兩個節點的類別高度一致。當然也會有一些連通度比較低的節點,那麼我們在低連通度的節點中,尋找一條直接與高連通度節點最相連的邊,使得低連通度的節點相互獨立,那麼就會形成一些孤立的樹,因此可以很容易的將圖劃分為類別聚類,作者將其稱為(

tree-based partition

)。

b.度量方式

這裡作者設計了兩個可學習的模組

Confidence Estimator and Connectivity Estimator.

用於對網路進行衡量,這裡GCN-V所用的是整體的Graph,而GCN-E用的是候選集中的連通度高的子圖,進行使用

tree-based partition

方法

c.方法

Confidence Estimator

還是如前所述, 高置信度的圖片其鄰居也往往是傾向於屬於同一類別,而低置信度的影象通常與來自另一類的影象相鄰。基於這個發現,我們將每個節點的置信度定義為由其鄰居節點所定義為

ci

人臉聚類文章分析(一)

透過該公式得到置信度的GT

這裡

Ni

ci

的鄰居節點,

 yi

vi

的groundtruth,

ai,j

vi

vj

的affinity分數,這個得分衡量的是,這個節點的鄰居是否靠近和是否屬於同一類別。

dense and pure connections ----->high confidence

sparse connections or residing in the boundary among several clusters ----->low confidence

這裡

ci

預測值

c

當然也是透過多層GCN的網路得到。GCN中各個引數都是可學習的。

人臉聚類文章分析(一)

計算真實值與預測值之間的loss

當進行網路訓練的時候透過計算MSE損失對其進行最佳化。

當進行網路推理的時候,這個預測值有兩個用途,第一, 它們用於下一個模組,以確定是否需要預測邊緣的連通性。第二, 它們在最終聚類中被用來提供頂點之間的優先順序。

Connectivity Estimator

基於

區域性圖

結構測量成對關係(

measure the pairwise relationship

),這裡作者闡明瞭一個動機,我理解是這樣的,就是說單純的去衡量節點的置信度是不夠的,

因為兩個置信度大的節點不一定屬於同一類別

,而有可能屬於不同的類別,所以透過區域性圖的方式,這時候就需要我們透過邊的連通度來衡量聚類的質量。

當然不是每個節點都能夠成為度量節點,需要有一個候選集的高置信度節點。

人臉聚類文章分析(一)

S即為候選集集合,這裡對每一個節點由高置信度的鄰居節點構成一個集合

這裡代表,對於圖中每個節點,如果鄰居結果置信度better than itself,那麼久納入候選集集合

S

對於訓練過程,這裡的GCN網路設計為輸入是候選集集合

S

, 輸出是他們是同一類的概念,即預測節點之間的連通度。

人臉聚類文章分析(一)

這裡是GT的連線

ri,j

表示ground truth的連線方式。

人臉聚類文章分析(一)

這裡是Loss的設計

r

表示的是邊的連通度的預測值。這裡同樣是透過MSE的Loss來最佳化。

寫在最後(tree-based partition)

對於最後的部分,作者表示將

10%

的節點作為高置信度的部分,而低置信度的部分則透過

一條

連通度最高的邊與高置信的節點相連。

這樣就解決了速度上的問題。

四.結果

當然是SOTA啦,甚至能和一些監督的方法媲美。

人臉聚類文章分析(一)

速度和精度都有提升

OK,完結撒花,歡迎大家去閱讀原文,一定會對分類分割網路其中的關係有所啟發。