人臉聚類文章分析(一)
作者: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
還是如前所述, 高置信度的圖片其鄰居也往往是傾向於屬於同一類別,而低置信度的影象通常與來自另一類的影象相鄰。基於這個發現,我們將每個節點的置信度定義為由其鄰居節點所定義為
透過該公式得到置信度的GT
這裡
是
的鄰居節點,
是
的groundtruth,
是
和
的affinity分數,這個得分衡量的是,這個節點的鄰居是否靠近和是否屬於同一類別。
dense and pure connections ----->high confidence
sparse connections or residing in the boundary among several clusters ----->low confidence
這裡
的
預測值
當然也是透過多層GCN的網路得到。GCN中各個引數都是可學習的。
計算真實值與預測值之間的loss
當進行網路訓練的時候透過計算MSE損失對其進行最佳化。
當進行網路推理的時候,這個預測值有兩個用途,第一, 它們用於下一個模組,以確定是否需要預測邊緣的連通性。第二, 它們在最終聚類中被用來提供頂點之間的優先順序。
Connectivity Estimator
基於
區域性圖
結構測量成對關係(
measure the pairwise relationship
),這裡作者闡明瞭一個動機,我理解是這樣的,就是說單純的去衡量節點的置信度是不夠的,
因為兩個置信度大的節點不一定屬於同一類別
,而有可能屬於不同的類別,所以透過區域性圖的方式,這時候就需要我們透過邊的連通度來衡量聚類的質量。
當然不是每個節點都能夠成為度量節點,需要有一個候選集的高置信度節點。
S即為候選集集合,這裡對每一個節點由高置信度的鄰居節點構成一個集合
這裡代表,對於圖中每個節點,如果鄰居結果置信度better than itself,那麼久納入候選集集合
S
。
對於訓練過程,這裡的GCN網路設計為輸入是候選集集合
S
, 輸出是他們是同一類的概念,即預測節點之間的連通度。
這裡是GT的連線
表示ground truth的連線方式。
這裡是Loss的設計
表示的是邊的連通度的預測值。這裡同樣是透過MSE的Loss來最佳化。
寫在最後(tree-based partition)
對於最後的部分,作者表示將
10%
的節點作為高置信度的部分,而低置信度的部分則透過
一條
連通度最高的邊與高置信的節點相連。
這樣就解決了速度上的問題。
四.結果
當然是SOTA啦,甚至能和一些監督的方法媲美。
速度和精度都有提升
OK,完結撒花,歡迎大家去閱讀原文,一定會對分類分割網路其中的關係有所啟發。