Face Tracking 성능 평가 방법
Author : Hanbong Yoo, Hyunmin Lee
이번 글에서는 Face tracking 하기까지의 전체적인 흐름과 각각의 성능 평가 방법에 대해 소개드리고자 합니다.
Face tracking은 Object tracking과 비슷하지만 여러 Object 대신 얼굴을 추적하는 작업을 의미합니다.
입력으로 들어온 영상에 Face tracking 기술을 사용하여 영상 속 한 사람의 얼굴만 추적하거나, 여러 사람의 얼굴을 동시에 추적하는 것도 가능합니다.
Face tracking을 하기 위해서는 먼저 영상을 frame 별로 추출하고 frame마다 얼굴을 찾는 Face detection과정, 찾은 얼굴들이 동일인인지 판별하는 Face recognition 과정이 필요합니다. 이후 전체 frame에서 동일인의 얼굴을 이어주는 Face tracking 과정이 진행됩니다.
아래에서 각 과정에 대한 대략적인 내용과 성능 평가 방법을 설명드리겠습니다.
1. Face Detection
Face detection은 위 사진처럼 이미지 속 모든 얼굴에 대한 Bounding box를 찾는 과정입니다. Bounding box는 이미지를 Face detection 모델에 통과시켰을 때 얻는 Confidence score에 따라 결정됩니다.
Confidence score에 해당하는 threshold를 낮게 설정하면 얼굴이 아닌 Object들이 얼굴로 인식될 수 있고, 높게 설정할 시에는 얼굴을 제대로 detection 하지 못할 수 있습니다.
또한 예측된 Bounding box의 크기, 위치가 Ground truth의 크기, 위치와 비슷할 수록 더 좋은 모델이라고 판단할 수 있습니다.
이러한 detection 모델의 성능 평가를 위해 주로 사용되는 평가 지표는 AP(Average Precision)입니다.
AP를 설명하기 전에, precision(정밀도)과 recall(재현율)은 Confidence score에 따라 아래와 같이 정의됩니다. Confidence score의 threshold를 설정값에 따라 precision과 recall은 trade-off 관계를 갖습니다.
아래에 Threshold를 0부터 1까지 바꿔가며 그린 precision-recall curve의 예시가 있습니다.
그래프 아래 면적을 AP라 하며 AP 값이 1에 가까울수록 좋은 모델이라고 판단할 수 있습니다.
AP를 측정할 때, Bounding box를 Ground truth와 비교해 예측을 맞게 했는지 혹은 틀리게 했는지 판단하는 기준으로서 IoU(Intersection over Union)를 사용합니다.
주로 0.5에서 0.95사이의 IoU 값을 기준으로 사용합니다.
다시 성능 평가 표로 돌아와서, 표에서 의미하는 AP에 대해 알아보겠습니다. 앞서 보여드린 표는 Object detection 관련 논문에서 나온 성능 평가 표로 Face detection과 약간 다른 부분이 있습니다.
AP50, AP75는 AP를 계산할 때 Ground truth와의 IoU가 0.5, 0.75 이상의 Bounding box만 사용해서 계산합니다. 처음 나오는 AP는 앞서 구한 AP50 ~ AP95까지의 값을 평균 낸 전체적인 AP를 의미합니다.
뒤에 나오는 APs, APm, APl은 논문에서 정의한 small, medium, large object에 대한 AP를 의미합니다.
Face detection 모델을 훈련시키고 평가하는 dataset으로 393,703개의 얼굴을 포함하는 32,203장의 이미지로 이루어진 WIDER FACE가 있습니다.
WIDER FACE dataset의 40%, 10%, 50%는 각각 training, validation, test를 위해 나누어져 있습니다.
2. Face Recognition
Face detection이 끝나면, 위 그림과 같이 detection 된 얼굴이 다른 얼굴들과 동일인인지 아닌지 판별하는 Face recognition 과정이 필요합니다.
Face recognition 모델은 detection된 두 얼굴을 입력으로 받아 두 얼굴의 특징을 비교하여 유사도를 출력합니다. 유사도가 threshold 보다 높으면 동일인, 낮으면 비동일인이라고 판별합니다. 따라서 threshold를 얼마로 잡는지에 따라 모델의 성능이 달라지게 됩니다.
Face recognition 모델에 주로 사용되는 평가 지표는 accuracy 또는 아래 그림과 같은 ROC curve입니다.
동일인 쌍(positive pair)과 비동일인 쌍(negative pair)의 개수가 비슷한 LFW dataset의 경우 정확도(accuracy)를 통해 성능 평가를 진행하고, negative pair가 positive pair보다 월등히 많은 IJB-C dataset 같은 경우 ROC curve에서 일정 FPR에 해당하는(ex: FPR=1e-4) TPR을 평가 지표로 사용합니다.
많이 사용하는 Face recognition dataset으로 학습을 위한 CASIA-Webface, MS-Celeb-1M dataset과, 테스트를 위한 LFW, IJB-C, MegaFace 같은 dataset이 존재합니다.
3. Face Tracking
앞서 보신 이미지 분석 기술과 달리 영상에서 얼굴을 따라가는 Face tracking 작업은 시간의 순서 등 고려할 부분이 많습니다. 예를 들어 한 사람의 표정의 변화가 있거나 움직이는 경우에도 같은 사람이라고 인식해야 하며, 영상 초반에 나온 사람이 영상 후반에 다시 나와도 동일한 ID를 부여받아야 됩니다. 따라서, 어떤 장면에서 누가 나왔었는지에 대한 정보가 있어야 합니다.
Face tracking은 기존의 이미지 분석 task와의 차이점으로 인해, 다른 평가 지표를 사용하게 됩니다.
여기서 Tracking 분야에서 제일 많이 쓰는 지표인 MOTA와 MOTP에 대해 설명을 드리고자 합니다. 두 지표를 이용하면, 물체를 얼마나 잘 탐지하고, Tracking 할 수 있는지 성능을 볼 수 있습니다. MOTA는 Multi Object Tracking Accuracy이고, MOTP는 Multi Object Tracking Precision입니다.
MOTA : Multi Object Tracking Accuracy
MOTA 수식에는 많은 변수가 들어가 있어서 이해하기 어렵지만, 차근차근 설명을 해보겠습니다.
우선 분모인 Gt는 Video에서 Tracking 해야 할 모든 얼굴의 수를 나타냅니다. 위 이해도 그림으로 보았을 때의 Gt는 모든 도형의 개수인 24입니다.
분자를 구성하고 있는 Mt 는 Face Detection을 실패해서 인식 못 한 얼굴의 수, FPt 는 얼굴이라고 인식했지만 실제로는 얼굴이 아닌 객체의 수, MMEt 는 Face ID가 잘못 매칭된 경우의 수입니다.
위 그림에서는 Mt와 FPt는 0이지만, MMEt는 3+6+5 = 14입니다. 이는 h1과 O2, h2와 O2, h3와 O3를 매칭을 한 후에 계산된 ID error 개수입니다. 이때, ID Matching이 잘못되어 Mismatch가 일어난 상태를 ID Switch 가 일어났다고 말하기도 합니다.
MOTA 평가 지표를 간단히 정리하면, Face를 잘못 인식되는 것 없이 정확하게 인식하고, ID Matching을 실수 없이 잘 할수록 1에 가까운 값을 갖는 평가 지표 입니다.
현재 Klleon에서도 여러 작업의 전처리 작업으로서 Face tracking을 진행할 때, MOTA를 가지고 Face tracking accuracy을 분석하고 있고, 다양한 영상에서 최대한 MOTA가 1을 가지게끔 연구를 진행하고 있습니다.
MOTP : Multi Object Tracking Precision
MOTP는 MOTA와는 달리 오로지 Detection 결과로만 평가하는 지표입니다. MOTP의 아이디어는 Ground truth라 불리는 정답 범위와 실제로 예측한 범위의 차이(distance)를 계산하는 것인데, 모든 영상의 Ground truth에 대해 예측 Bounding box과 얼마만큼의 차이가 있는지 계산하게 됩니다.
식의 분자에 적힌 Bounding box 간의 Distance는 1- IoU로 계산되고, 분모는 전체 예측된 Bounding Box 개수입니다. 따라서 Ground truth와 Predicted 두 Bounding box가 얼마나 많이 겹쳤는지에 대한 계산을 하면 MOTP를 측정할 수 있습니다..
MOTP는 MOTA와 마찬가지로 많은 분야에서 쓰이고 있는 지표이고 0에 가까울수록 Ground Truth와 prediction 결과가 같다는 것을 의미하므로 0에 가깝게끔 Detection 성능을 올리려 노력하고 있습니다.
Face Tracking Dataset
Klleon에서는 지속적인 Face tracking 연구로 기술 고도화를 하면서, 데이터 셋을 구성하는 작업도 같이 진행하고 있습니다. 그리고 Face tracking을 위한 오픈 소스 데이터 셋인 Music Video Dataset과 직접 수집한 데이터 셋을 함께 사용합니다. Klleon 내 Face tracking은 특히 카멜로 앱에서 많이 사용하고 있기 때문에, 카멜로에 올라오는 영상들과 비슷한 데이터를 수집했습니다.
Music Video Dataset은 Music Video 8개로 이루어져 있고, 각각의 영상들마다 사람 얼굴의 위치를 기록한 Ground truth file 이 존재합니다. 이 정보들을 활용하면 MOTA와 MOTP 성능을 측정할 수 있습니다.
직접 수집한 데이터 셋에는 카멜로에서 주로 사용되는 영상을 분석해서 세로가 가로보다 긴 영상, 장면 전환이 빈번한 영상, 얼굴 부분에 영상 편집이 들어가는 영상, 춤 영상, 다양한 인종이 들어간 영상들을 포함하게끔 했습니다. 그리고 화질이 좋지 않을 수도 있다는 생각하에 화질이 좋은 영상과 좋지 않은 영상을 구성했습니다.
직접 수집한 영상에 대해서도 MOTA & MOTP를 계산하여 평가하기 위해선 Ground truth 가 필요했기 때문에, 위와 같은 Json 형식으로 Dataset 을 나타냈습니다. 프로그램 상에서 Json File을 인식해서 MOTA 와 MOTP를 계산에 활용합니다.
이번 글을 통해 Face tracking 연구에 대한 전반적인 이야기와 평가 지표, 데이터 셋에 대한 이야기를 드릴 수 있었습니다. 더 좋은 성능의 Face tracking 모델을 개발할 수 있길 바라며, 다음에도 Klleon에서 진행하고 있는 연구 분야나 재밌는 이야기를 전달해 드리도록 하겠습니다.
참고 문헌
- Deng, Jiankang, et al. “Arcface: Additive angular margin loss for deep face recognition.” Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019.
- Zhang, Hao, et al. “Dino: Detr with improved denoising anchor boxes for end-to-end object detection.” arXiv preprint arXiv:2203.03605 (2022).
- https://tech.kakaoenterprise.com/63
- Bernardin, Elbs, et al. “Multiple Object Tracking Performance Metrics and Evaluation in a Smart Room Environment.” European Conference on Computer Vision, workshop, 2006