오늘 소개해 드릴 논문은 ‘Transfer Learning for Pose Estimation of Illustrated Characters’ 입니다.
콥스랩(COBS LAB)에서는 주요 논문 및 최신 논문을 지속적으로 소개해드리고 있습니다.
해당 내용은 유투브 ‘딥러닝 논문읽기 모임’ 중 ‘Transfer Learning for Pose Estimation of Illustrated Characters’ 영상 스크립트를 편집한 내용으로, 영상으로도 확인하실 수 있습니다. (영상링크: https://youtu.be/wo3Ob174AfY)
오늘 논문은 WACV 2022년에 accept 된 논문입니다. 논문의 contribution부터 말씀드리겠습니다. 일단 Pose Estimation이라는 태스크를 illustration Characters라는 도메인에 대해서 실험에서 sota성능을 보인 점이 있습니다. 다음으로, 추가적인 애플리케이션으로 pose-guided character retrieval이라는 것을 보여줍니다. 마지막으로 캐릭터 도메인에 데이터와 코드를 모두 공개한 점이 있습니다.
앞으로, 기존 연구의 한계점과 이 논문에서 한계점을 어떻게 극복하는지를 비교하면서 설명드리겠습니다. 많은 부분이 evaluation을 위해서 진행이 된 부분도 있어서, 그 부분은 이 논문의 직접적인 contribution이라기보다는, 후에 illustration 도메인에서 Pose Estimation 테스크를 진행할 때 조금 더 편한 도움을 줄 수 있게 기여한 부분입니다.
최근 많이 사용되는 어떤 COCO기반의 스탠더드가 존재합니다. 이 점에 대해서 기존 베이스 라인 같은 경우 데이터가 많이 부족한 점이 있습니다. 예를 들어서, 위 그림 가운데 존재하는 khungurn et이라고 되어있는 부분은 이 논문이 베이스라인으로 삼고 있는 논문입니다. 요즘 많이 사용하시는 COCO 키포인트에 비하면 조금 다른 것을 확인하실 수 있습니다. 그래서 논문에서는 이러한 한계점을 보완하고자 첫 번째 작업으로, 추가적인 데이터 작업을 진행을 한 부분들이 있습니다. 그리고 오른쪽에 보이는 1번 키포인트만 제외하고 나머지 17개에 맞춰주는 방식의 데이터가 상당히 많다는 것을 확인할 수 있습니다.
해당 작업을 위해서 추천해드릴 것 중 COCO-annotator라는 오픈소스가 있습니다. 이 논문에서도 COCO-annotator를 사용했습니다.
논문에서 기존 연구의 한계점을 극복하기 위한 두 번째 작업으로, 평가를 위해서 boundingbox를 제작하는 작업도 진행했습니다. 키포인트 Estimation을 할 때, 배경지식으로서 큰 그림을 보여드리겠습니다.
그 큰 그림에는 크게 두 가지 방향이 있습니다. 왼쪽에 보이는 open pose는 바텀업 방식이라고 해서, 키포인트를 먼저 다 찍은 다음에 그것을 이어 붙여서 사람으로 만들어 내는 식으로 진행되는 것입니다. 그에 반해 탑 다운 방식이라고 하는 오른쪽에 보이는 방식은, 먼저 boundingbox를 찾아낸 다음에 그 찾은 boundingbox 내에서 키포인트를 Estimation 하는 방식입니다. 최근에 이뤄지고 있는 많은 연구들 같은 경우는 오른쪽에 보이는 것 같이 탑다운 방식이 더 좋은 성능을 내는 것을 확인할 수 있습니다.
실제로 sota 모델들을 보았을 때, 탑다운 모델들을 지향하고 있는 것을 알 수 있습니다. 대표적으로 위 그림 중 8번 에서 보이는 HRNet이 대표적인 예시입니다. 이것이 다른 sota 모델들에 back bone으로 활용되는 것을 확인할 수 있어서, 대부분이 이런 방식을 취하신다고 보면 될 것 같습니다. 다만, 아쉬운 점은 이 논문에서 지향하는 것은 하나의 캐릭터에 대해서 진행하는 것이기 때문에 표면적으로는 탑다운을 지향하고 있지만, 애초에 트레이닝을 하는 시점에서 인풋 데이터를 boundingbox를 맞춰서 넣는 부분이 있어서, 완벽하게 탑다운 방식이라고 말씀드리기는 좀 어려운 점이 있을 것 같습니다.
다시 돌아와서, 이 boundingbox를 찾는 방법으로, segmentation 모델을 학습을 하게 됩니다. 이 학습을 위해서는 DeepLabv3라고 하는 모델을 활용을 합니다.
Segmentation이 잘 이뤄지고 난 다음에, 그 Segmentation 결과로부터 boundingbox를 도출해 내는 방식을 취하고 있습니다. 이 데이터셋을 제작하기 위해서 레이블이 필요합니다. 이 논문에서는 레이블을 만들어 내기 위해서 좀 흥미로운 방식을 제시하고 있습니다. 위 그림 중 처음에 앞에 보이는 캐릭터와 그리고 뒤에 보이는 배경을 합성을 하게 됩니다. 앞에 보이는 캐릭터의 경우 Danbooru 데이터라고 해서, 애니메이션이나 illustration 도메인에서 많이 사용되는 데이터이고, 여기서 transparent background tag라고 되어 있는 배경이 없는 데이터만 추리게 됩니다. 그다음에 마찬가지로 Danbooru 데이터 안에서 존재하는 배경 데이터를 골라내서 이 두 가지를 합성해 내는 방식으로 데이터를 만들어주게 됩니다. 특히 전경 같은 경우는 그러면 segmentation에 대한 정보가 있게 되어서, 이것을 합성해서, 앞에서 언급한 DeepLabv3을 이용해, 이 부분에 대한 boundingbox를 추출해 낼 수 있도록 학습하고 있습니다.
그리고 마지막 컨트리뷰션은 data work에 대해서 다양한 데이터를 추가했다는 점입니다.
예를 들어서 기존 베이스라인 같은 경우는 정면을 보고, 앞으로 똑바로 서있는 데이터만 존재했다고 했을 때, 이 논문에서 말하는 바는, 앞으로 누워 있거나 옆으로 돌아 있거나 앉아 있거나 하는 다양한 어려운 포즈에 대해서도 추가적으로 2000장 이상의 하드 샘플을 추가했습니다.
또 다양한 기준들을 제시하고 있습니다. 한 명 이상의 캐릭터가 포함된 것은 제외를 했습니다. 다음으로, 전체 17개 키포인트가 다 포함되어 있지 않은 데이터는 마찬가지로 제외했고, 또 뒤를 돌아보고 있거나 어려운 태그, 예를 들면 팔을 꼬고 있거나 다리를 꼬고 있거나 하는 식의 어려운 태그가 해당하는 데이터도 많이 추가했다고 합니다.
또 다양한 data augmentation도 진행을 했다고 합니다. 이미지를 360도 이상으로 돌리거나 또 이제 트랜슬레이션 스케일링 페인팅 등 다양한 작업을 해서 data augmentation을 진행했다고 언급하고 있습니다. 그리고 실제로 huggingface에서 실시간으로 돌릴 수 있는 데모를 제공하고 있습니다.
다음으로, 모델적으로 어떤 컨트리뷰션을 언급하고 있는지 살펴보겠습니다. 두 개 모델을 이 논문에서 제시하고 있습니다. feature Concatenation 그리고 feature Matching이 그것입니다. 그림을 보시면, 모델에 기본적으로 Mask RCNN 백본이 있습니다. 그리고 ResNet Tagger 백본이 마찬가지로 붙어있습니다. 이 논문이 앞서 말씀드린 구조를 가지는 이유는, 위쪽에 있는 Mask RCNN 같은 경우는 기존에 키포인트 Estimation을 포함한 다양한 태스크에서 활용이 된다고 이해하시면 좋을 것 같습니다. 그렇기 때문에 기본 과정은 Mask RCNN을 활용을 하게 되면 키포인트 Estimation을 잘할 수 있을 것입니다. 그래서 태스크의 specific한 소스 feature를 뽑아낼 수 있을 것이라고 볼 수 있습니다. 그 다음에 위 그림 아래에 있는 ResNet Tagger의 경우는 이 논문에서 다루고 있는게 illustration 데이터입니다. illustration 데이터 도메인에 해당하는 feature를 잘 뽑아낼 수 있어야 한다는게 이 논문이 주장하는 바입니다. 그리고 여기서 ResNet 모델을 학습을 시켜서 활용하고 있습니다.
쉽게 말해서 키포인트를 잘하는 feature 그리고 illustration 도메인을 이해하고 있는 feature, 이렇게 두 개의 feature를 적절히 concat을 하거나 매치를 하게 되면 이 도메인에서 이 태스크를 잘 할 수 있는 feature를 뽑아낼 수 있다라고 하는 것이 이 논문에서 말하고 있는 모델 구조의 핵심입니다.
다만, 앞서 언급한 두 개 구조를 다르게 가져가면서 각각 장단점을 비교를 할 수 있을 것입니다. 일단 위 그림의 아래쪽에 보시면 마지막 키포인트 헤드가 나오는 부분이 직접적으로 연결된 것이 사실 ResNet 백본밖에 없게 됩니다. 그래서 Mask RCNN 같은 경우는 MSE 로스를 계산하기 위해서만 붙어 있는 것이기 때문에 트레이닝에만 활용이 됩니다. 인퍼런스를 하기에는 ResNet만 필요하게 됩니다. 그렇기 때문에 모델 전체에 hyperparameter가 훨씬 적게 들게 됩니다. 그만큼 inference 속도도 빨라지게 됩니다. 대신에 위 그림에서 위에 있는 concat모델보다는 성능이 조금 떨어지는 결과를 확인할 수 있습니다. 반면에 그 위에 있는 모델 울 보시면, 이 Mask RCNN에서 나오는 feature를 둘 다 같이 활용을 하기 때문에 모델 자체의 파라미터수가 훨씬 많아지고 조금 무거워지는 단점이 있습니다. 대신에 모델 성능 자체는 매칭 하는 모델보다 조금 더 좋게 보여주고 있습니다.
정리하자면, 키포인트를 잘하는 데이터와 illustration 도메인을 이해하고 있는 feature 두 개를 모두 활용한다는 것이 이 논문의 핵심 과정이라고 말씀드릴 수 있습니다. 뒤에 Ablation 스터디를 진행하면서, 해당 부분에 대해서 어느 정도 보완해서 설명을 하고 있습니다.
위에서 보았던 feature concatenation 모델은 무거운 대신 조금 더 나은 퍼포먼스를 보여줍니다. 그리고 feature Matching 모델은 조금 빠른 대신 조금 떨어지는 성능을 보여주었습니다.
키포인트 Estimation을 할 때, 총 25개 히트맵을 아웃풋을 내놓게 됩니다. 이유는 17개 같은 경우는 COCO에서 활용하는 스탠더드를 맞추기 위한 것이고, 나머지 8개는 기존 베이스라인과 비교를 위해서 활용하는 것입니다. 예를 들면 elbow라고 있는 포인트와 wrist라고 있는 포인트 두 개는 모두 COCO에서도 활용하지만, 베이스라인에서는 추가적으로 mid-forearm이라는 키포인트가 또 추가적으로 존재하게 됩니다. 그래서 이런 mid-forearm, mid-thigh을 가지고 양쪽으로 총 8개 포인트를 추가적으로 활용해서, 총 25개 히트맵이 찍혀 나온다고 보시면 될 것 같습니다. 총하나의 히트 맵다 이렇게 하나의 키포인트를 가우시안으로 예측을 하는 것을 보실 수 있습니다.
그리고 베이스라인 같은 경우는 Imagenet trained googleNet을 백본으로 그대로 활용했다고 언급하고 있는데, 이 논문에서는 그것이 아니라, ResNet을 Danbooru 데이터로 학습을 시켜서 파인 튜닝을 합니다. 그 과정에서 태그가 굉장히 많이 존재하는데 이것을 예측하는 모델을 또 추가적으로 파인튜닝 학습을 하게 됩니다. Danbooru 데이터 같은 경우는 태그가 굉장히 많이 존재하는데, 그 태그를 상당 부분 줄이는 노력을 하게 됩니다. 특히 contextual 인포메이션에 해당하는 태그, 예를 들면 애니메이션 에반게리온이라고 하면, 에반게리온에 나오는 캐릭터 이름 같은 것들이 디테일한 수준으로 태그로 들어갑니다. 이러한 부분은 contextual 정보이기 때문에 기계가 이해할 수 없다라고 생각을 해서, 모두 제거를 하게 되고, 또 주관적이나 중복 있는 태그 같은 경우도 재건을 해서 새로운 rule book을 제시하게 됩니다.
또한 클래스 imbalance 문제가 있다고 이 논문에서는 이야기하고 있습니다. Danbooru 태그 같은 경우는 long tail distribution은 따로 있기 때문에 굉장히 소수의 태그들 그리고 많은 태그들이 굉장히 frequency가 낮은 형태를 보이고 있습니다. 이런 부분은 모델에서 예측을 할 때 낮은 퍼포먼스를 보여주고 있어서 이 부분을 보완하고자 reweighing scheme을 제공을 해서 weight를 조금 다르게 주게 됩니다.
그래서 결과적으로 기존에 약 이백만 개 이미지에서 많은 태그가 존재해하는 반면, 이 이미지를 천 개 정도의 클래스로 훨씬 줄이게 됩니다. 또한 다양한 태그 및 이것에 대한 정보를 추출해서 데이터 수를 크게 줄이게 됩니다.
이 논문의 또 다른 contribution으로 데이터를 전부 공개한다는 장점이 있습니다. 기존엔 베이스라인 같은 경우는 일부 데이터만 공개한 반면 이 논문에서는 수집한 데이터를 모두 공개하고 코드도 깃허브에 공개가 되어 있습니다.
마지막으로 Evaluation 부분에 대해 설명드리겠습니다. 활용하는 매트릭은 기존에 많이 활용되고 있는 OKS 매트릭이나 PCK, PDJ 같은 매트릭도 활용을 하고 있는데, 모두 조금씩 다르긴 하지만, groud truth와 prediction key point 거리를 기반으로 계산을 하는 특징이 있습니다.
위에 그림에 보시면 feature concat 모델과 그 아래 있는 feature Matching 모델 두 개가 있습니다. concat 모델이 조금 더 나은 성능을 보이는 걸 확인하실 수 있습니다. 마찬가지로 파라미터 수는 훨씬 크고 매칭 모델이 파라미터수는 훨씬 더 작고 인퍼런스 속도도 더 빠른 것을 확인할 수 있습니다. 위 그림에서 두 번째 행의 경우는 ablation 스터디에 해당하는 부분입니다. 전체적으로 봤을 때, 특정 모듈만 사용했을 때는 스코어가 떨어지는 것을 알 수 있습니다.
마지막으로, 위 그림에서 보듯이, 애플리케이션으로 유사한 포즈를 가지고 있는 이미지를 검색을 하는 부분을 보실 수 있습니다. 왼쪽에 있는 칼럼이 인풋이 되고 오른쪽에 있는 다섯 개가 Nearest neighbor를 순서대로 보여준다고 생각하시면 될 거 같습니다. 결국 실제로 특정 동작을 하고 있는 어떤 이미지를 검색을 할 때 이 이미지를 활용할 수 있습니다. 이 부분은 정량적으로는 평가가 불가능한 대신 정상적으로 얘기를 하면서 어느 정도 좋은 성능을 보인다라고 논문에서는 설명을 하고 있습니다.
이 논문에서는, 속도가 약 0.2초 이내로 나오는 것을 확인하면서, 굉장히 빠른 속도로 inference가 가능한 것을 장점으로 언급하고 있습니다.
pose-guided retrival의 방법으로, 처음에 boundingbox를 찾고 normalize를 하게 됩니다. 그다음에 존재하는 모든 키포인트 간에 pairwise euclidean distance을 기록 합니다. 그 distance를 모든 경우의 수에 대해서 다 sum을 해서, 그 다음 그 distance가 작은 순으로 retrieval을 하게 되면 Nearest neighbor를 찾을 수 있습니다.
정리하자면, 이 논문을 통해 느낀 것은 키포인트 Estimation이 다양한 테스트에 활용이 된다는 것이었습니다. 그리고 그것이 꼭 real human domain일 필요는 없다고 생각을 합니다. 그리고, 생각보다 데이터 작업을 굉장히 많이 한 부분이 있어서 참고한다면 도움이 될 부분이 많은 논문인 것 같습니다.
'이미지 처리 논문' 카테고리의 다른 글
MobileViT: Light-weight, general-purpose, and Mobile-friendly Vision Transformer (2) | 2022.05.16 |
---|---|
Tiny Object Detection! (2) | 2022.05.16 |
Dense vs Sparse - Sparse R-CNN (0) | 2022.05.16 |
Transfer Learning에 관해서… How transferable are features in deep neural networks? (0) | 2022.05.16 |
이미지 처리 깊게 더 깊게 ResNet (0) | 2022.05.16 |
댓글