논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Robust 3D Hand Pose Estimation in Single Depth Image: from Single-View CNN to Multi-View CNNs

<h1>1. Introduction</h1>
<p>손 자세의 정확한 추정은 어려운 과제입니다. 그것은 손의 많은 자세 변화와 고차원의 손 움직임 때문으로, 이미지에서 추출된 특징으로부터 손 자세 파라미터로의 매핑을 어렵게 합니다. 이미지로부터 3D 위치를 곧바로 매핑하는 것은 높은 비선형 문제로 높은 학습 복잡도와 낮은 일반화를 가지게끔합니다. </p>
<p>이 논문에서는 멀티뷰 CNN을 이용한 3D regression 방법을 제안합니다. 멀티뷰 CNN을 이용하면 모델 피팅없이도 더 나은 깊이 정보를 도출할 수 있습니다. </p>
<p>입력 깊이 이미지를 3개의 오쏘고날 평면에 투영하고 각 투영된 이미지는 별도의 CNN에 입력되어 각 손 조인트의 히트맵을 생성해냅니다. 히트맵은 투영 평면에 2D 분포를 나타내고, 3개의 평면의 정보와 미리 학습된 손 자세의 prior를 이용하여 3D 공간에서의 조인트 분포를 위치를 얻습니다.</p>
<p>기존의 싱글뷰 CNN에 비해 이 방법은 다음의 장점을 가집니다.</p>
<ul>
<li>한 이미지를 이용하는 CNN의 경우 조인트의 깊이를 추정된 2D 위치에서 직접 가져오기 때문에 추정된 2D 위치가 부정확한 경우 큰 오차를 만들어내지만, 멀티뷰 CNN의 경우 정면 뿐 아니라 상단, 측단 뷰도 같이 이용하기 때문에 더 경고한 추정을 할 수 있습니다.</li>
<li>싱글 뷰에서 모호한 경우 히트맵에서 여러 핫스팟이 나타났을 때, 나머지 2개의 뷰가 이를 제거할 수 있도록 도움을 줍니다.</li>
<li>학습 데이터로부터 얻어진 손 자세의 제한 조건들을 사용합니다.</li>

</ul>
<h1 data-breakpage>2. Literature Review</h1>
<h1 data-breakpage>3. Methodology</h1>
<p>깊이 이미지를 사람의 손만 포함하도록 잘라낸 다음 입력하면, $K$개의 3D 조인트 위치를 출력하여 손의 자세를 표현하는 것이 목표입니다. $K$개의 손 조인트 위치를 $\Phi = \{ \phi_k \} ^K _{k=1} \in \Lambda$라고 합시다. $\Lambda$는 $3 \times K$차원의 조인트 공간으로 $K=21$을 사용하였습니다. </p>
<p>이제 깊이 이미지 $I_D$를 3개의 평면에 투영합니다. 각각을 x-z, y-z, z-x 평면에 투영된 이미지를 $I_{xy}, I_{yz}, I_{zx}$라고 합니다. 이 각 이미지들로부터 조인트들을 MAP(maximum a posterior)를 이용하여 추정할 것입니다. $I_D, \Phi$가 주어진다면, 조인트 위치 $\Phi$에 대해서 투영된 세 깊이 이미지는 모두 독립적이라 가정하였습니다. 그렇다면 확률 $P(\Phi)$는 각 세 뷰으로부터 추정된 각 posterior 확률의 곱으로 나타낼 수 있습니다.</p>
<p>$$ \Phi^* = \underset{\Phi}{\operatorname{\arg\max}} P(\Phi | I_{xy}, I_{yz}, I_{zx}) \\ = \underset{\Phi}{\operatorname{\arg\max}} P(I_{xy}, I_{yz}, I_{zx} | \Phi) \\ = \underset{\Phi}{\operatorname{\arg\max}} P(I_{xy} | \Phi)P(I_{yz} | \Phi) P(I_{zx} | \Phi) \\ = \underset{\Phi}{\operatorname{\arg\max}} P(\Phi | I_{xy}) P(\Phi | I_{yz}) P(\Phi | I_{zx}) $$</p>
<p>여기서 $\Phi$는 모호성을 없애기 위한 $\Lambda$의 low dimentional subspace입니다.</p>
<p>이제 $P(\phi_k | I_{xy}), P(\phi_k | I_{yz}), P(\phi_k | I_{zx}) $는 CNN을 이용해 생성된 히트맵을 통해 추정할 것입니다.</p>
<h2>3.1. Multi-view Projection and Learning</h2>
<p><strong>3D Points Projection:</strong> 먼저 깊이 이미지를 카메라의 내부 파라미터를 이용하여 3D 공간 좌표로 변환합니다. 다음 멀티뷰 투영을 하기 위하여 PCA를 통해 oriented bounding box (OBB)를 생성하여 3D 점들에 딱 맞는 박스를 계산하고 이를 좌표계로 사용합니다. 좌표계 중심은 박스의 중심이며, x, y, z축은 PCA의 첫번째 두번째 세번째 축을 사용합니다. </p>
<p>3D 점을 한 평면에 투영하기 위해서, 3D 점들의 좌표를 면으로부터 가장 가까운 것을 0, 가장 먼 것을 1로 하는 정규화를 적용합니다. 이 때 면은 x-y, y-z, z-x 면을 의미합니다. 이제 이 거리 값을 면에 투영하면 되는데, 한 위치에 동일한 점이 투영될 경우 가까운 점으로 선택하면 됩니다.</p>
<p><strong>Architecture of CNNs:</strong> 각 투영 이미지에 대해서 CNN으로 이루어진 동일한 네트워크 구조를 사용합니다. 입력 이미지는 96 x 96 픽셀로 리사이즈한 뒤, local contrast normalization (LCN)을 적용합니다. 이제 이 이미지를 48 x 48, 24 x 24로 다운 샘플링한 별도의 브랜치로 입력합니다. 출력된 각 특징 맵들을 쌓은 다음 다시 2개의 FC 레이어를 통과시킵니다. 최종 출력은 18 x 18 크기의 히트맵 21개가 됩니다.</p>
<h2>3.2. Multi-view Fusion</h2>
<p>이렇게 구해진 히트맵은 각각 $P(\phi_{kx}, \phi_{ky} | i_{xy}), P(\phi_{ky}, \phi_{kz} | i_{yz}), P(\phi_{kz}, \phi_{kx} | i_{zx})$를 나타냅니다. 앞에서 언급한 것과 같이 손의 조인트 위치에 대해서 각 뷰에 투영된 이미지들은 서로 독립이므로 다음과 같이 나타낼 수 있습니다.</p>
<p>$$ \Phi^* = \underset{\Phi}{\operatorname{\arg\max}} P(\Phi | I_{xy}) P(\Phi | I_{yz}) P(\Phi | I_{zx}) \\ = \underset{\Phi}{\operatorname{\arg\max}} \prod_k P(\phi_k | I_{xy}) P(\phi_k | I_{yz}) P(\phi_k | I_{zx}) \\ = \underset{\Phi}{\operatorname{\arg\max}} \prod_k Q(\phi_{kx}, \phi_{ky}, \phi_{kz}) $$</p>
<p>여기서 $Q$는 앞에서 구한 히트맵 $P(\phi_{kx}, \phi_{ky} | i_{xy}), P(\phi_{ky}, \phi_{kz} | i_{yz}), P(\phi_{kz}, \phi_{kx} | i_{zx})$의 곱을 의미합니다.</p>
<p>문제를 단순화 하기 위해서 $ Q(\phi_{kx}, \phi_{ky}, \phi_{kz})$를 $k$개의 3D 가우시안으로 가정하고 히트맵으로부터 가우시안의 파라미터를 구합니다.</p>
<p>이제 식은 다음과 같이 됩니다.</p>
<p>$$ \Phi^* = \underset{\Phi}{\operatorname{\arg\max}} \log \sum_k Q(\phi_{kx}, \phi_{ky}, \phi_{kz}) \\ = \underset{\Phi}{\operatorname{\arg\max}} \log \sum_k \log \mathcal{N}(\mu_k, \Sigma_k) \\ = \underset{\Phi}{\operatorname{\arg\max}} \log \sum_k (\phi_k - \mu_k )^T \Sigma_k^{-1} (\phi_k - \mu_k)$$</p>
<p>손 자세 조합에 대한 제한 조건을 주기 위한 $\Omega$의 low dimentional subspcace를 작흡하기 위해 학습 데이터셋에 PCA를 적용하였습니다. $E = [ e_1, e_2, \cdots, e_M ]$ 는 PCA의 축, $\alpha = [\alpha_1, \cdots, \alpha_m]^T$는 계수들입니다. $\mu$는 데이터의 중심 위치입니다. 이제 sub space는 다음과 같이 표현됩니다.</p>
<p>$$ \Phi = \sum_{m=1}^M \alpha_m e_m + u$$</p>
<p>요약하자면, 히트맵을 이용하여 PCA 공간에서의 가우시안의 파라미터를 계산하고, 계산된 PCA를 원래의 공간으로 되돌립니다.</p>
<h1 data-breakpage>4. Experiments</h1>
<h1 data-breakpage>5. Conclusion</h1>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>


Add a Comment Trackback