---
# System prepended metadata

title: 三維視覺期末報告

---

# 三維視覺期末報告
論文名稱:
Unsupervised Learning of Probably Symmetric Deformable 3D Objects
from Images in the Wild
[Github](https://github.com/elliottwu/unsup3d)
[論文](https://arxiv.org/pdf/1911.11130.pdf)
## 這篇論文想解決甚麼問題
現有的3D重建方法，有使用監督式學習，但是在現實生活中，不可能每張圖都有ground truth，使用單視圖與非監督式學習來進行3D重建更適合應用在現實面，這篇論文展示出精確度高的人臉、貓臉及卡通汽車重建。
## Abstract
此論文提出使用自編碼器將單視角圖像分解為深度、反射率、視點和光照等組成部分，並利用物體類別的對稱性以及對光照情況的推斷，從而無需監督地學習3D物體的可變形類別。該方法可以預測可能但不確定對稱的物體的對稱概率映射，並且在實驗中表現出比同類方法更高的準確率。
## Intro
![](https://hackmd.io/_uploads/SkRc1kuB2.png)

這篇論文討論學習可變形物體類別的三維模型，這對於許多計算機視覺應用非常重要。作者提出了兩個挑戰：
（1）不使用2D或3D的ground truth
（2）僅使用單視角圖像。
為了解決這個問題，作者提出了一種自編碼器方法，該方法內部將圖像分解為反照率，深度，照明和視點，但不對任何這些因素進行直接監督。
另外，這篇論文提出了一種利用物體對稱性約束圖像分解的方法。作者聲明：對稱的物體可以通過鏡像圖像獲得第二視圖，可以通過此視圖實現三維重建。但是，在實際情況下，特定的物體實例從形狀到外觀都不是完全對稱的。為了解決這個問題，作者提出了兩種方法：
（1）通過显式建模照明，利用對稱性對形狀進行推理
（2）將模型擴展到推理物體缺乏對稱性的情況，模型可以預測對稱性缺失的概率密度圖。所有元素都從原始RGB數據中進行學習，包括confidence mapping。
作者在人臉，貓臉和卡通汽車的數據集上展示了方法的有效性，並與其他方法進行了比較。
## 先前的非監督式3D重建方法
在數量繁多的重建方法中，作者從3個面向來進行分類
(1)使用到甚麼資料(data, supervision)
(2)先進行甚麼假設
(3)輸出是甚麼(goals)
![](https://hackmd.io/_uploads/BJBZ2rGU3.png)
人臉的3D重建是一種ill-posed problem，輸出圖像並不唯一，在上圖那麼多的方法中作者根據data及supervision選擇2種類似的重建方法，分別是
(1)UNSUPERVISED GENERATIVE 3D SHAPE LEARNING FROM NATURAL IMAGES
[論文](https://arxiv.org/pdf/1910.00287.pdf)
![](https://hackmd.io/_uploads/rk-e4yIIh.png)

(2)Lifting AutoEncoders: Unsupervised Learning of a Fully-Disentangled
3D Morphable Model Using Deep Non-Rigid Structure From Motion
[論文](https://openaccess.thecvf.com/content_ICCVW_2019/papers/GMDL/Sahasrabudhe_Lifting_AutoEncoders_Unsupervised_Learning_of_a_Fully-Disentangled_3D_Morphable_Model_ICCVW_2019_paper.pdf)
![](https://hackmd.io/_uploads/By6-E1LUh.png)

三者皆屬於非監督式學習，
第1種方法使用對抗訓練來重建人臉的3D網格，但是沒有定量去評估其結果
第2種方法使用Deforming AutoEncoder (DAE) 得到Keypoint及紋理，進一步將紋理分解成albedo及光照
### 原理
假設物體完全對稱，簡單透過圖像的鏡像可取得同一物體第2個視角的圖像
如果可取得成對鏡像物體之間的對應關係，可以透過stereo reconstruction實現3D重建
### 現實解決方法
現實是物體不可能完全對稱，本文提出2個解決方向
1. 藉由光照的建模，作為重建形狀的額外線索
2. 模型預測一個confidence map包含每個像素具有對稱對應物的概率
### 此法優點
1. 因為是無監督式學習，沒有收集image annotation的困難
2. 與其他無須2D/3D ground truth的重建方法相比，實現更高的重建精準度
3. 對人臉繪畫和卡通圖像也可進行重建，證明了模型的泛化效果
## Method
目標：學習一個模型，將物體的圖像分解成3D形狀、albedo image(一個物體表面的材質漫反射部分的數值表示)、光照和viewpoint。
方法：使用自編碼器（autoencoder）學習，並且不需要對任何分解因素進行監督式學習。通過學習非監督式重建，模型可以將四個分解因素合併成為輸入圖像。
特色：利用物體的對稱性進行模型訓練，但物體的外觀總是存在不完全對稱性。為了解決這個問題，模型首先會考慮非對稱性的光照，並為每個像素估計一個置信度分數，以解釋像素在圖像中具有對稱對應物的概率。
Method主要分為四個部分，分別為：（1）photo-geometric自編碼器，（2）對稱性建模，（3）圖像生成細節，（4）感知損失。
以下針對自編碼器作詳細介紹

### photo-geometric自編碼器
![](https://hackmd.io/_uploads/B1hWly_H3.png)

Autoencoder將輸入圖像分解為confidence map, albedo image, depth map, viewpoint, light，將depth map與albedo image 做水平翻轉，depth map與light產生shading，shading又與albedo image產生人臉的canonical view(標準視圖)，最後viewpoint, depth map, canonical view經過渲染器產生重建圖像。
左邊的confidence map表示模型的任意不確定性，右邊的confidence map讓模型了解輸入圖像的哪些部分可能不對稱。
輸入圖像與重建圖像比較，並考慮confidence map，算出重建損失，利用重建損失進行訓練。重建損失的公式如下
![](https://hackmd.io/_uploads/Sy9wwi2S2.png)

## Experiment
dataset: CelebA(人臉)、貓臉使用2篇先前論文的數據集、ShapeNet(卡通汽車)

網路設置:
為了將輸入圖像分解為5個元素，depth, albedo與confidence map使用encoder-decoder網路，viewpoint及light用encoder網路
depth, albedo, viewpoint and lighting的激活函數是tanh，confidence map是softplus
限制:左右深度圖的兩個邊界像素被限制在最大深度以避免邊界問題
作者使用Adam算法對64個大小為64×64像素的輸入圖像進行批次訓練。輸出的depth和albedo的大小也是64×64。他們進行了約50,000次迭代的訓練。

### 成果
![](https://hackmd.io/_uploads/SyM__J883.png)
![](https://hackmd.io/_uploads/SJbYu1II2.png)
上圖是對人臉、貓臉及車子的3D重建
為了近一步測試泛化效果，將藝術作品中的人臉作為輸入圖像，如上圖所示，也有很好的重建人臉
### 與先前方法的成果比較
![](https://hackmd.io/_uploads/H17xt1ULh.png)

為了進行並列比較，作者裁剪了2篇論文中報告的範例，並將作者的結果與它們進行了比較。作者的方法比這兩種方法都能產生更高質量的重建結果，可以捕捉到面部表情的細節，而之前提到的第二種方法的3D形狀恢復效果較差，第一種方法則生成了不自然的形狀。值得一提的是，第一種方法使用的是unconditional GAN，它能夠從隨機噪聲生成高分辨率的3D人臉，但無法從圖像中恢復3D形狀。

## limitation
![](https://hackmd.io/_uploads/rJOOFJLUn.png)

儘管作者的方法在許多具有挑戰性的場景中表現出了良好效果（例如極端的面部表情、抽象繪畫），但作者也觀察到了一些失敗案例，如上圖所示。

在訓練過程中，作者假設光照為一個簡單的蘭伯特模型，忽略了陰影和光澤，這導致在極端光照條件（圖a) 或高度非蘭伯特表面下的重建不準確。
>蘭伯特光照模型(不管照明分布為何，蘭伯特模型在所有表面方向上接收並發散所有入射照明)


重建混合的暗色紋理和陰影圖像（圖b）也是模型無法達成的。
在極端姿勢(側臉)下（圖8c），重建質量較低，部分原因是側視圖的重建損失信號較差。

## Conclusion
模型基於重建損失進行訓練，光照及物體的對稱性在這個方法中為重要訊息，使用深度圖從標準視角表示3D形狀
目前模型適用簡單凸形狀和自然標準視角的物體(如人臉)

## 程式執行結果

* 人臉
  輸入:
  ![](https://hackmd.io/_uploads/HJsKMADrh.png)
  三維重建:
  ![](https://hackmd.io/_uploads/H14Tz0DBn.png =450x450)
  ![](https://hackmd.io/_uploads/S1UxX0DB3.png =450x450)
* 動物臉(貓)
  輸入:
  ![](https://hackmd.io/_uploads/HJy7mRvSn.png)
  三維重建:
  ![](https://hackmd.io/_uploads/H1utjAPHn.png =450x450)
  ![](https://hackmd.io/_uploads/HJajsRPH3.png =450x450)


  
  
  
  
* 卡通動物臉(貓)
  輸入:
  ![](https://hackmd.io/_uploads/BypuvCPrh.png)
  三維重建:
  ![](https://hackmd.io/_uploads/Skl1h0PH3.png =450x450)
  ![](https://hackmd.io/_uploads/HJGx3RDBn.png =450x450)
* 卡通汽車
  輸入:
  ![](https://hackmd.io/_uploads/Hk3KARDHn.png)
  三維重建:
  ![](https://hackmd.io/_uploads/SkIRAAvrh.png =450x450)
  ![](https://hackmd.io/_uploads/HkHk1ydB2.png =450x450)


  
  
  ## 新增功能
  
  新增可以使用webcam當作圖片輸入的功能:
  webcam輸入:![](https://hackmd.io/_uploads/Bkt5g3ur2.png)
  重建結果:
  ![](https://hackmd.io/_uploads/B1ipl3OHh.png =450x450)
  ![](https://hackmd.io/_uploads/Sk0Cl2dr3.png =450x450)

  
## 組員分工
宋祐安(M113010198):書面報告撰寫、口頭報告ppt製作。

邱德倫(M113010070):程式碼運行測試、程式功能新增、口頭報告。



