본문 바로가기

연구/papers

[논문 정리] openpose 이해를 위한 개념 간단 정리

반응형

openpose의 전체적인 system architecture

openPose의 시스템

전체 시스템 개요를 보도록 하자.

이미지파일을 VGG망의 input으로 넣는다. 여기서는 stage들어가기 전에 F라고 표현된 것이 VGG망의 일부이다.

VGG망을 거치면 이미지 파일에서 features가 강조되어 나오는데 이 output을 2개로 분할하여 stage에 있는 각각의 branch에 input으로 넣는다.

 

여기서 branch1은 confidence map을 예측하는 망을 의미하고 branch2는 affinity field를 예측하는 망을 의미한다.

각각이 의미하는 바는 아래에서 설명하도록 한다.

 

각각의 branch를 거쳐서 나온 결과물들은 합쳐서 이전에 만든 features와 함께 다음 stage로 분기되어 들어간다.

이 과정을 반복하게 되는데 각 stage를 거칠수록 keypoint를 학습하게 되고 따라서 keypoint에 대한 예측 정확도가 올라간다.

VGG란

이미지넷 이미지 인식대회에서 googleNet에 밀려 2위를 차지하게 된 CNN망이다. 그런데 1위인 googleNet을 활용하는게 아니라 왜 2위인 VGG를 활용할까? VGG는 그 성능에 비해 내부 구조가 비교적 간단하여 활용도가 높은 특성을 가지고 있는 신경망이라 많은 연구에서 VGG의 일부를 가져와서 활용하기도 한다.

confidence map이란

human pose를 detecting, tracking 함에 있어서 사람의 관절을 찾는것이 중요하다. confidence map이란 이미지를 보고 각 사람의 몸에서 어디에 관절이 있을지를 찾아내는 역할을 한다. 

 

이 때, 위의 사진에서 branch1(confidence map)을 거쳐 나오면 사람의 관절이 있을것이라 예측되는 곳이 heatmap으로 표현되어 나오게 된다. 

confidence map

위 사진은 왼쪽에서 오른쪽으로 갈 수록 stage가 높아지는데 오른쪽 손목의 관절 위치를 예측한 결과물이다.

그 결과물은 보다시피 heatmap으로 표현되었는데 오른쪽 사진으로 갈 수록 오른손목이라고 예측되는 곳의 heatmap의 선명도가 높아지는 것을 확인 할 수 있다.

affinity fields란

사람의 관절 위치만 찾으면 사람의 pose를 예측할 수 있을까? 답은 No이다. 만약 이미지에 사람 한명만 있으면 사람의 관절관계정보를 이용해서 human pose를 detecting 할 수 있을지도 모르나 이미지 내에 보이는 사람이 여러명 있고 그 사람들이 서로 proximity, contact, 혹은 occlusion상태에 놓여있다면 관절의 연결관계를 예측하는 것은 쉬운일이 아닐 것이다. 따라서 이러한 문제를 해결하기 위해 나온 개념으로 affinity fields는 2차원 벡터공간이다. 이 벡터공간은 (위치, 방향)을 원소로 하고 있어 2차원 벡터공간이 되는데 각 관절과 관절 사이에 사람 몸 위에서 방향관계를 표시함으로써 현재 관절 다음에 어느 방향에 있는 관절이 이 사람 몸에 있는 다음 관절이 맞을 지를 예측하는데 도움을 준다.

 

이해를 위해 아래 사진을 참고하자.

affinity fields

남자의 왼쪽 팔뚝을 확대한 사진이다. 왼쪽 어깨와 왼쪽 팔꿈치 사이의 공간에서 affinity fields를 표현한 것을 볼 수 있고 이 정보를 이용하여 각 관절들을 매칭하는데 도움을 준다.

 

openpose network 설명

이제 다시 전체 시스템그림을 보고 신경망을 이해해보도록 하자.

이미지를 VGG망에 넣어서 features를 강조한 후 이 데이터를 stage에 넣는다. 

각 브랜치에서 confidence map과 affinity fields를 예측하고 이 정보를 종합한다. 이 때 특징벡터F를 가져와 같이 종합한 후 다음 스테이지를 통해 학습을 재진행(recurrent)한다.

keypoint matching

openPose에서 결국 하고자 하는것은 keypoint들 간의 정확한 매칭이다.

 

confidence map을 통해 각 관절 정보가 나온다.

이 때 이 관절들간의 연결관계를 이분매칭을 통해 위 사진과 같이 매칭한다. 이 때 이분매칭은 나 자신이 속한 영역과 그렇지 않은 영역을 나누어 나와 같은 영역의 노드들끼리는 연결하지 않는 방법이다.

 

이 때, 이분매칭을 이용하여 다른 영역에 있는 노드들끼리는 모두 연결하여 모든 연결 가능성을 고려한다.

 

위 사진에서 빨간색, 초록색, 파란색은 어깨영역, 팔뚝영역, 손목영역을 의미하는데 빨간색 영역 다음에는 초록색이 온다는 것을 알고있기 때문에 이 정보를 이용하여 각 노드들의 연결관계를 한층 단순화 시킨다.

 

이후 각 노드들이 한 사람의 몸안에서 제대로 연결되었다는 것을 확정할 수 없기때문에(다른 사람의 몸과 연결된 노드를 제거해야 하기 때문에) affinity field를 이용하여 각 keypoint(노드)들 간의 연결관계를 확정한다.

 

반응형