# 期末書面報告
請對摘要及目錄部分用羅馬字 I 、II、 III……標在每頁下方中央;報告內
容至附錄部分請以阿拉伯數字 1.2.3.……順序標在每頁下方中央
[科技部網頁](http://www.most.gov.tw/)
[學校網頁](https://www.acad.ntnu.edu.tw/3news/news.php?Sn=10485)
[google 文件共編](https://docs.google.com/document/d/1AccBr1vkfzYSkrtzX3mxIGl1INKX_cBNlwvhYqhajCU/edit?usp=sharing)
研究計畫內容(以10頁為限):
## **(一)摘要**
2021是疫情爆發嚴重的一年,人類長達一整年的日常生活時間皆須配戴口罩,這一年間,我們發現了口罩所造成的不方便之處。其中最大的遺憾是這一年的紀錄中,無論是照片或是影片都出現很多戴口罩的人臉,為此,本計畫希望可以透過深度學習訓練一個模型來還原被口罩遮住的人臉,利用一個基於深度學習的模型,著重於搭配卷積神蹟網路(Convolutional Neural Networks,簡稱CNN)以及生成對抗網路(Generative Adversarial Network,簡稱GAN)來建立一個影像雜湊計算模型,運用公開資料集CelebFaces Attributes Dataset,簡稱CelebA來進行訓練。
## **(二)研究動機與研究問題** 2-3頁
台灣經歷了長達兩年的疫情對抗,疫情改變了我們的生活習慣,其中,最明顯的是口罩已成為我們生活的一部份。人人外出都會配戴口罩,上課、上班、旅遊時,這些年來,照片中的我們臉上多了一層口罩,興起一波辨識戴口罩與沒戴口罩的技術,而我們的專題目標認為不該停留在辨識階段,我們要將照片中的人像盡量的還原。
基於以上因素,本計畫希望能設計一個能將人臉上的口罩去除並還原有基本五官的人像。本計畫是以人臉解析與人像修補技術為基礎,目標是先將有口罩的人臉解析成為含有不同標籤的遮罩,再將遮罩進行修補,找出被口罩遮擋住的口鼻的位置,最後再透過生成的遮罩重新生成回人臉,進而達到還原人像五官的目的。
## **(三)文獻回顧與探討** 影像處理和inpainting各自一個子章節
在還原與生成圖片的技術中,大多以生成對抗網路(Generative Adversarial Network,簡稱GAN)的技術為主,本計畫也將使用生成抗網路的技術來生成圖片,以下將簡述MaskGan的概念。
### MaskGan的技術
> 由Cheng-Han Lee1、Ziwei Liu、Lingyun Wu、Ping Luo[1]等人所提出的MaskGan的概念解決了以前「Facial image manipulation」中常常只能去操弄特定部位的問題,引入 「semantic masks 語意遮罩」 概念來提供多樣化的部位標籤。
#### 1. Dense Mapping Network(DMN)
> DMN 來學習真實圖片的特徵與 「semantic masks」 之間的關係,其中利用 Image Generation Backbone & Spactial-Aware Style Encoder,Spactial-Aware Style Encoder 會提取真實人臉與 semantic mask 之間的特徵。
> Spacrial-Aware Style(AdaIN parameters of Image Generation Backbone) -> 交給 Image Generation Backbone 來做生成。
##### Spatial-Aware Style Encoder
- 輸入: 真實人臉、semantic mask
- 輸出: Spatial-aware Style feature
##### Image Generation Backbone
"Use the Spatial-aware Style feature to generate Images."
#### 2. Editing Behavior Simulated Training (EBST)
> EBST 來學習使用者改變臉部標籤的行為
利用了以下的技術來實現EBST
1. Dense Mapping Network
2. a pre-trained MaskVAE,
3. an alpha blender sub-network.
其中2, 3 項是用來優化 Dense Mapping Network 來更符合使用者改變標籤的行為。

## **(四)研究方法及步驟** 暫定用CGAN去寫
在這次的專題研究中,我們會結合兩種類神經網路,分別為CNN和GAN,根據CNN來提取圖片的特徵,使用GAN來訓練模型生成對應的臉部五官

將整個實驗分為以下步驟來介紹:
#### 一、影像前處理
在影像資料的部分,我們會將使用CelebAMask-HQ[1]的資料集作為訓練的資料集,CelebAMask-HQ是根據,大小為512 X 512,且包含19個類別,並包含以下特徵:
1. CeleA-HQ,為包含約30,000張高解析度的圖片,使用Semantic Image Segmentation via Deep Parsing Network[2],來進行將CeleA-HQ的圖片變成附有標籤的遮罩(mask),如下圖。


2. CeleAMask-HQ的大小為512 X 512的圖片,並包含臉部特徵的19個標籤,有'skin','nose','eyes','eyebrows','ears','mouth','lip','hair','hat','eyeglass','earring','necklace','neck','cloth'。
#### 二、使用GAN技術進行訓練,製造生成對抗網路模型
為提高生成模型的還原度,我們將降低訓練資料集的雜訊,因此,將訓練資料集CeleAMask-HQ,資料集為附有標籤的遮罩(mask),來使用生成對抗網路(GAN),進行圖片的生成訓練,最終會生成出附有標籤的遮罩。
#### 三、使用訓練好的模型,生成附有標籤的遮罩
將目標遮罩放入模型中,使用GAN技術的模型來生成將口罩去除後的遮罩
#### 四、根據生成的附有標籤的圖塊,進行還原
使用pix2pix的技術將Semantic Image進行style transfer來轉換回真實人臉,以達到最終目的還原人臉。
## **(五)預期結果**
### 技術面預期成果
根據我們查詢到的文獻中,MaskGan 中的 Semantic Masks 給予操蹤其他部位很大的自由度,因此我們希望能夠新增口罩這個標籤,來判別口罩的位置,從而去去除他。接著在提取沒有口罩照片中的臉部特徵給 Image Generation Backbone 來生成口罩下的部分。
我們預期這次的研究可以結合 CNN & GAN 技術,主要研究「提取照片特徵」以及「生成五官」兩大題目,以下將詳細解釋預期成果:
#### ㄧ、提取照片特徵
我們將透過 Semantic Masks 來更精準的提取無口罩參考照片中的人臉特徵,預期可以將這些特徵當成 Spatial-aware Style feature,來供生成使用,比較大的挑戰是原先的範例只使用相同的的照片來做提取特徵(原始的&修改後的),但在我們的應用上需要使用兩張不同的照片(沒戴口罩版本&有戴口罩版本),而我們預期能夠有相同的特徵提取效果。
#### 二、生成五官
有了 Spatial-aware Style feature 後我們就可以透過 Style transfer 來將有口罩的人臉照片,
最後我們希望可以將有口罩的圖像,加上沒有口罩的照片輔助,還原出口罩底下人臉的圖像。
### 應用
- 在疫情底下,可以還原人們無法脫下口罩的照片,變成無口罩的版本:此項研究讓還原臉部變得可行,因此我們希望透過還原照片中的人臉來重新塑造人們在那個時間點的回憶,以及帶給人們趣味。
## (六)**參考文獻**
[1] Cheng-Han Lee, Ziwei Liu, Lingyun Wu1 Ping Luo. MaskGAN: Towards Diverse and Interactive Facial Image Manipulation.
[2] Ziwei Liu, Xiaoxiao Li, Ping Luo, Chen-Change Loy, and Xiaoou Tang. Semantic image segmentation via deep parsing network. In ICCV, 2015
- [Large-scale CelebFaces Attributes (CelebA) Dataset](http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html)
- [雜湊演算法-圖片相似度計算](https://www.itread01.com/content/1544963603.html)
- [Generative Inpainting Github repo](https://github.com/JiahuiYu/generative_inpainting)
- [Generative Image Inpainting with Contextual Attention](https://arxiv.org/abs/1801.07892)
- [Free-Form Image Inpainting with Gated Convolution](https://arxiv.org/abs/1806.03589)
- [CelebAMask-HQ Github repo](https://github.com/switchablenorms/CelebAMask-HQ)
- [MaskGAN: Towards Diverse and Interactive Facial Image Manipulation](https://arxiv.org/abs/1907.11922)
## **(七)需要指導教授指導內容**
[科技部各種表格](https://www.most.gov.tw/folksonomy/list/2af9ad9a-1f47-450d-b5a1-2cb43de8290c?l=ch)
## 評估
1. 辨識出同一個人
2. 採用inpainting的評估方法
3. 影像生成的評估方法
## 期末老師建議
- 從口罩還原是不可能做到的
- 建議的方法是一張有帶口罩一張沒有口罩,能不能還原
- 不同角度的方法需要測試看看
- 評估的方法:辨識成同一個人會有點困難
- 可以模擬實際情況要放進去沒有口罩的圖片
- 有沒有要做到把辨識的技術也加進去更general
## 大專生計畫鑽寫的方向
重要性、趣味性、技術層面、計算方法、之前的try and error、示意圖(輸入、輸出)、社群上的應用(app、網頁)等年輕族群想要使用的