0002 Edge-aware Graph Representation Learning and Reasoning for Face Parsing

2020.07.27 開(kāi)始閱讀
代號(hào) 0002
2020 ECCV
Edge-aware Graph Representation Learning and Reasoning for Face Parsing
Gusi Te, Yinglu Liu, Wei Hu, Hailin Shi and Tao Mei

摘要

以前的方法忽略了不同人臉區(qū)域間的關(guān)聯(lián),但這些關(guān)聯(lián)是有關(guān)容貌、姿態(tài)、表情的重要的線索,我們應(yīng)該在人臉解析時(shí)考慮這些關(guān)聯(lián)。
我們提出了一個(gè)模型,該模型對(duì)區(qū)域間關(guān)系進(jìn)行建模與推斷(以圖的方式來(lái)表達(dá)區(qū)域間關(guān)系),同時(shí),利用區(qū)域間的邊緣信息來(lái)優(yōu)化抽象的區(qū)域。
我們將一幅人臉圖像編碼為一個(gè)全局的圖表示,圖中的節(jié)點(diǎn)代表一個(gè)區(qū)域,所有擁有相似特征的區(qū)域都被映射到這個(gè)節(jié)點(diǎn)。
我們的模型學(xué)習(xí)并推斷區(qū)域間的關(guān)系,通過(guò)在圖的節(jié)點(diǎn)上傳播信息的方式。
同時(shí),我們將邊緣信息與像素級(jí)的特征整合進(jìn)節(jié)點(diǎn),這加強(qiáng)了邊緣附近的特征,有助于精細(xì)分割。
最終學(xué)習(xí)到的圖表示被映射到像素網(wǎng)格上用于人臉的解析。
我們的模型在 Helen 數(shù)據(jù)集、CelebAMask-HQ數(shù)據(jù)集,LaPa 數(shù)據(jù)集上進(jìn)行了實(shí)驗(yàn)。
代碼開(kāi)源在 https://github.com/tegusi/EAGRNet

1 引言

人臉各組件的表觀之間有著強(qiáng)烈的相關(guān)。例如,當(dāng)人微笑時(shí),眼睛、嘴巴、眉毛會(huì)更彎曲;光線較暗時(shí),臉部皮膚與其它組件都會(huì)比較暗。

臉部組件之間的關(guān)聯(lián)是人臉圖像重要的線索,應(yīng)該在人臉解析中予以考慮。
我們使用圖結(jié)構(gòu),將一個(gè)區(qū)域用圖中的節(jié)點(diǎn)來(lái)表示,同時(shí)利用邊緣分割來(lái)對(duì)區(qū)域進(jìn)行精細(xì)分割。

具體來(lái)講,我們首先利用 ResNet 來(lái)提取高層與低層特征圖。
然后,我們建立一個(gè)映射矩陣,該矩陣將一堆具有相似特征的像素點(diǎn)映射到圖中的一個(gè)節(jié)點(diǎn)。其中,邊緣像素點(diǎn)處特征被賦予更大的權(quán)重,我們通過(guò)一個(gè)邊緣掩膜(edge mask)來(lái)實(shí)現(xiàn)這一點(diǎn)。
接著,我們通過(guò)圖卷積(graph convolutuon)來(lái)學(xué)習(xí)與推斷節(jié)點(diǎn)之間的關(guān)系,從而進(jìn)一步提取全局語(yǔ)義特征。
最后,學(xué)習(xí)到的特征被映射回像素級(jí)別的特征圖。

本文三貢獻(xiàn):

  1. 提出了一模型,建模人臉區(qū)域間關(guān)系。
  2. 介紹了邊緣注意,可精確分割區(qū)域。
  3. 在幾個(gè)數(shù)據(jù)集上效果好。

2 相關(guān)工作

2.1 人臉解析

2.2 注意力機(jī)制

2.3 圖推理(Graph Reasoning)

graph convolutional network (GCN)


3 方法

3.1 綜述

framework.PNG
  • 特征提取與邊緣提取
    我們使用 ResNet 作為特征提取的基架,應(yīng)用空間金字塔池化操作(spatial pyramid pooling operation)來(lái)學(xué)習(xí)多尺度上下文信息。
    使用一個(gè)邊緣感知模塊來(lái)得到邊緣圖。
  • 邊緣敏感的圖推斷(Edge Aware Graph Reasoning)
    我們將提取的特征圖與邊緣圖輸入給邊緣敏感的圖推斷模塊(Edge Aware Graph Reasoning module),該模塊致力于學(xué)習(xí)區(qū)域間關(guān)系的內(nèi)部圖表示。
    EAGR 模塊由三部分組成:圖映射,圖推斷,圖重映射。
  • 語(yǔ)義解碼

3.2 邊緣敏感的圖推斷

EAGR.PNG

邊緣敏感的圖映射
首先回顧以下典型的非局部模塊。
特征圖 \mathbf{X}\in\mathbb{R}^{HW\times C},典型的非局部模塊用公式表達(dá)為:
\tilde{\mathbf{X}}=\text{softmax}\left(\theta(\mathbf{X})\varphi^T(\mathbf{X})\right)\gamma(\mathbf{X})=\mathbf{V}\gamma(\mathbf{X}) \quad (1)
其中 \theta,\ \varphi,\ \gamma 都是核大小為 1\times 1大小的卷積操作。\mathbf{V}\in\mathbb{R}^{HW\times HW} 被看作注意力圖(用于建模長(zhǎng)程依賴)。
然而,上述 \mathbf{V} 的計(jì)算復(fù)雜度為 \mathcal{O}(H^2W^2C),該值隨著像素點(diǎn)個(gè)數(shù) HW 的增大呈現(xiàn)非線性。為了解決這個(gè)問(wèn)題,我們提出了一個(gè)簡(jiǎn)單但卻有效的邊緣敏感的圖映射操作來(lái)消除特征的冗余。

輸入特征圖 \mathbf{X}\in\mathbb{R}^{HW\times C} 與 邊緣特征圖 \mathbf{Y}\in\mathbb{R}^{HW\times 1},我們構(gòu)建一個(gè)映射矩陣 \mathbf{P},該矩陣在 \mathbf{Y} 作為先驗(yàn)的條件下,將 \mathbf{X} 映射到一個(gè)圖的節(jié)點(diǎn)。
具體地說(shuō),我們首先對(duì) \mathbf{X} 進(jìn)行降維(使用核大小為 1\times 1\varphi 卷積操作),即 \varphi(\mathbf{X})\in\mathbb{R}^{HW\times T}, T<C。然后,我們將邊緣圖 \mathbf{Y} 復(fù)制到與 \varphi(\mathbf{X}) 的維度(為了計(jì)算方便的緣故)。
我們將通過(guò)對(duì) \varphi(\mathbf{X})Y 做 Hadamard Product \color{blue}{就是矩陣對(duì)應(yīng)點(diǎn)相乘} 的方式將邊緣信息整合到映射中。
因?yàn)檫吘増D \mathbf{Y} 編碼了一個(gè)像素點(diǎn)是邊緣的概率,Hadamard Product 給每個(gè)像素的特征賦予了一個(gè)權(quán)重,當(dāng)該像素為邊緣像素時(shí),其特征具有更大權(quán)重。
接著,我們采用步長(zhǎng)為 s 的平均池化操作 \mathcal{P}(\cdot) 來(lái)獲得節(jié)點(diǎn)的錨點(diǎn)。這些錨點(diǎn)代表每個(gè)區(qū)域的中心,然后我們將錨點(diǎn)信息與 \varphi(\mathbf{X}) 相乘來(lái)獲得錨點(diǎn)與每個(gè)像素的相似性。
最后我們應(yīng)用一個(gè) softmax 函數(shù)來(lái)正則化結(jié)果。
將上述描述公式化之后,我們得到的映射矩陣為:
\mathbf{P}=\text{softmax}\left(\mathcal{P}(\varphi(\mathbf{X})\odot\mathbf{Y})\ \cdot\ \varphi(\mathbf{X})^T\right) \quad (2)
其中 \odot 代表 Hadamard Product,\mathbf{P}\in\mathbb{R}^{HW/s^2\times HW}。

池化操作有兩個(gè)作用:一方面通過(guò)求平均減少了冗余,另一方面將計(jì)算復(fù)雜度從 \mathcal{O}(H^2W^2C) 減少到了 \mathcal{O}(H^2W^2C/s^2)。

在獲得了映射矩陣 \mathbf{P} 之后,我們將像素級(jí)特征 \mathbf{X} 映射到圖域:
\mathbf{X}_G=\mathbf{P}\theta(\mathbf{X}) \quad (3)
其中 \theta 是一個(gè)核大小為 1\times1 的卷積操作,該操作的目的是為了減少 \mathbf{X} 的維度,\theta(\mathbf{X})\in\mathbb{R}^{HW\times K}, K<C。
這個(gè)映射將具有相似特征的像素點(diǎn)整合到一個(gè)錨點(diǎn)(對(duì)應(yīng)一個(gè)節(jié)點(diǎn)),所以每個(gè)節(jié)點(diǎn)對(duì)應(yīng)著人臉圖像的一個(gè)區(qū)域。
通過(guò)上述的方式,我們通過(guò)我們提出的邊緣敏感圖映射,在像素與每個(gè)區(qū)域之間建立了聯(lián)系,生成了圖 \mathbf{X}_G\in\mathbb{R}^{HW/s^2\times K} 上映射節(jié)點(diǎn)的特征。

圖推斷
接下來(lái),我們學(xué)習(xí) \mathbf{X}_G 節(jié)點(diǎn)間的連接性。同時(shí),我們通在過(guò)在節(jié)點(diǎn)間傳播信息來(lái)對(duì)節(jié)點(diǎn)間的關(guān)系進(jìn)行推斷,從而學(xué)習(xí)到高層的語(yǔ)義信息。這可以通過(guò)單層的圖卷積網(wǎng)絡(luò)(Graph Convolution Network, GCN) 來(lái)實(shí)現(xiàn)。
具體地說(shuō),我們將節(jié)點(diǎn)特征 \mathbf{X}_G 輸入到光譜圖卷積的一階近似中。輸出特征圖 \hat{\mathbf{X}}_G\in\mathbb{R}^{HW/s^2\times K} 為:
\hat{\mathbf{X}}_G=\text{ReLU}[(\mathbf{I}-\mathbf{A})\mathbf{X}_G\mathbf{W}_G]=\text{ReLU}[(\mathbf{I}-\mathbf{A})\mathbf{P}\theta(\mathbf{X})\mathbf{W}_G] \quad (4)
其中 \mathbf{A} 代表連接矩陣,該矩陣編碼學(xué)習(xí)到的圖連接性,\mathbf{W}_G\in\mathbb{R}^{K\times K} 代表 GCN 的權(quán)重,ReLU 為激活函數(shù)。
特征 \hat{\mathbf{X}}_G 通過(guò)節(jié)點(diǎn)間的交互(與 (\mathbf{I}-\mathbf{A}) 相乘)和通道間的交互(與 \mathbf{W}_G 相乘)來(lái)獲得。

與最初的一層 GCN 【32】不同,在【32】中,\mathbf{A} 是手工標(biāo)注的,在我們的文章中,我們對(duì) \mathbf{A} 隨機(jī)初始化并從節(jié)點(diǎn)特征中來(lái)學(xué)習(xí)到它。
并且,我們還加了一個(gè)殘差的連接來(lái)保留粗節(jié)點(diǎn)的特征。
基于學(xué)習(xí)到的圖,在所有節(jié)點(diǎn)間傳播的信息在最后導(dǎo)致我們推斷出區(qū)域間的關(guān)系。
在圖推斷之后,每個(gè)節(jié)點(diǎn)中的像素點(diǎn)都共享由圖卷積建模的上下文特征。
我們將輸出通道與輸入通道設(shè)置為一樣,這樣可以保持一致性,使得模塊可以與接下來(lái)的處理過(guò)程相容。

圖重映射
為了與現(xiàn)存框架相匹配,我們將提取的圖域的節(jié)點(diǎn)特征重映射到原始的像素網(wǎng)格。
給出學(xué)習(xí)到的 \hat{\mathbf{X}}_G\in\mathbb{R}^{HW/s^2\times K},我們的目標(biāo)是計(jì)算一個(gè)矩陣 \mathbf{V}\in\mathbb{R}^{HW\times HW/s^2},該矩陣將 \hat{\mathbf{X}}_G 映射到像素空間。
然而這是不可行的,因?yàn)?\mathbf{P} 不是一個(gè)方陣。為了解決這個(gè)問(wèn)題,我們采用 \mathbf{P}^T 來(lái)作為重映射矩陣【27】,其中 \mathbf{P}_{ij}^T 反映了節(jié)點(diǎn) i 與像素 j 的相關(guān)性。 這個(gè)操作的限制是 \mathbf{P}^T 中的行向量不是正則化的。

在重映射之后,我們使用一個(gè) 1\times1 的卷積操作 \sigma 來(lái)增加特征通道數(shù)使得其與輸入特征 \mathbf{X} 的通道數(shù)一致。
然后,我們將重映射矯正后的特征與原始特征圖相加作為最后的特征。
最終的像素級(jí)特征圖 \mathbf{Z}\in\mathbb{R}^{HW\times C} 有下式得到:
\mathbf{Z}=\mathbf{X}+\sigma(\mathbf{P}^T\hat{\mathbf{X}}_G) \quad (5)

3.3 損失函數(shù)

為了進(jìn)一步加強(qiáng)我們提出的邊緣敏感圖推斷的效果,我們引進(jìn)了邊界注意損失(boundary-attention loss, BA-Loss),該損失受【33】啟發(fā),而非傳統(tǒng)交叉熵?fù)p失(用于預(yù)測(cè)的解析圖與邊緣圖)。
BA-Loss 只在邊緣像素計(jì)算預(yù)測(cè)標(biāo)簽與真實(shí)標(biāo)簽之間的損失,因而提高了重要邊界像素(其很難區(qū)分)的分割精度。
使用數(shù)學(xué)語(yǔ)言,BA-Loss 被寫為:
\mathcal{L}_{BA}=\sum_{i=1}^{HW}\sum_{j=1}^{N}[e_i=1]y_{ij}\log\,p_{ij} \quad (6)
其中 i 是像素的索引,j 為類別的索引,N 為標(biāo)簽類別的數(shù)量。e_i 表示邊緣標(biāo)簽,y_{ij} 表示人臉解析的真實(shí)標(biāo)簽,p_{ij} 表示預(yù)測(cè)的解析標(biāo)簽。[\cdot] 為 Iverson bracket,其表示括號(hào)內(nèi)表達(dá)式符合條件為1,否則為0。

整個(gè)損失函數(shù)被定義為:
\mathcal{L}=\mathcal{L}_{\text{parsing}}+\lambda_1\mathcal{L}_{\text{edge}}+\lambda_2\mathcal{L}_{BA} \quad (7)
其中 \mathcal{L}_{\text{parsing}}\mathcal{L}_{\text{edge}} 分別為人臉解析圖與邊緣圖的交叉熵?fù)p失。\lambda_1\lambda_2 為使得損失函數(shù)平衡的超參數(shù)。

3.4 分析

因?yàn)榉蔷植磕K與基于圖的方法引起了研究人員極大的興趣,因而在這里分析我們方法與先前方法的異同是有趣的。

與非局部化模塊比較
典型地,傳統(tǒng)的非局部化模塊對(duì)像素級(jí)的相關(guān)性進(jìn)行建模(利用特征相似性)\color{blue}{(我的理解就是 1\times1 卷積核的通道間融合})。
然而,這種方法無(wú)法捕捉到區(qū)域間的更高層次的相關(guān)性。
與這種傳統(tǒng)方法相對(duì)比,我們通過(guò)提出的圖映射與圖推斷探索了不同區(qū)域間的相關(guān)性。
每個(gè)節(jié)點(diǎn)不僅嵌入了區(qū)域的局部上下文,還嵌入了全局的特征。
我們通過(guò)圖卷積進(jìn)一步的學(xué)習(xí)和推斷了區(qū)域間的關(guān)系,這抓住了不同臉部區(qū)域間的語(yǔ)義關(guān)系。

與基于圖的模型比較

4 實(shí)驗(yàn)

4.1 數(shù)據(jù)集和評(píng)價(jià)指標(biāo)

  • Helen
  • CelebAMask-HQ
  • LaPa

在訓(xùn)練階段,我們對(duì)圖像進(jìn)行了旋轉(zhuǎn)與尺度縮放。
旋轉(zhuǎn)角度是從 (-30^\circ,30^\circ) 范圍中隨機(jī)選擇的,尺度因子從 (0.75, 1.25) 范圍中隨機(jī)選擇。
邊緣模板是根據(jù)語(yǔ)義標(biāo)簽圖提取的。如果一個(gè)像素與它周圍的四個(gè)像素點(diǎn)值不同,我們就將該像素視作邊緣像素。
對(duì) Helen 數(shù)據(jù)集,與【4】相似,我們將人臉對(duì)齊作為一個(gè)預(yù)處理步驟,然后再評(píng)價(jià)階段我們將對(duì)齊的結(jié)果再重映射回去。

我們使用了三個(gè)評(píng)價(jià)指標(biāo)。

  • pixel accuracy
  • mIoU
  • F1 score

4.2 實(shí)現(xiàn)細(xì)節(jié)

我們的骨架網(wǎng)絡(luò)是 ResNet-101【7】的修改版本,其扔掉了平均池化層,并且 Conv1 塊改為 3 個(gè) 3\times3 的卷積層。
對(duì)金字塔池化模塊,我們仿照【35】的實(shí)現(xiàn)來(lái)對(duì)全局上下文信息進(jìn)行探索。池化因子為 \{1,2,3,6\}
與【36】類似,邊緣感知模塊預(yù)測(cè)一個(gè)兩通道的邊緣圖(基于 ResNet101 中 Conv2, Conv3, Conv4 的輸出)。
Conv1 的輸出用作低層特征圖,金字塔池化的輸出用作高層特征圖。他們都分別被輸入 EAGR 模塊用作圖表示學(xué)習(xí)。

至于 EAGR 模塊,我們將池化尺寸設(shè)置為 6\times6。
為了將中心放在臉部組件上,我們只使用了中央的 4\times4 的錨用作圖構(gòu)建。
特征維度 KT 被設(shè)置為 128 與 64.

使用 SGD 來(lái)優(yōu)化目標(biāo)函數(shù)。
我們使用再 ImageNet 預(yù)訓(xùn)練的模型來(lái)初始化網(wǎng)絡(luò)。
輸入尺寸為 473\times473,batch size 為 28。
學(xué)習(xí)率為 0.001 并伴隨 0.0005 的權(quán)重衰減。
batch normalization 使用 In-Place Activated Batch Norm【37】。

4.3 消融實(shí)驗(yàn)

Ablation study.PNG

4.4 與其它方法的比較

4.5 圖映射的可視化

5 結(jié)論

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容