Unity 검색

Unity 합성 데이터를 사용한 인간 중심 컴퓨터 비전

psp data labels
psp data labels
공유

Is this article helpful for you?

Thank you for your feedback!

PeopleSansPeople 샘플 이미지 및 레이블. 위: 합성 이미지로 생성된 샘플 3개. 아래: 바운딩 박스와 COCO 포즈 레이블로 생성된 동일한 이미지.

인간 중심 컴퓨터 비전 기술은 지난 몇 년간 사람이 제작한 레이블이 지정된 데이터를 대량으로 사용하여 크게 발전했습니다. 그러나 직접 데이터를 수집하려면 중대한 개인 정보 보호와 같은 법적 문제 및 안전과 윤리 문제 등의 제약이 있습니다. 게다가 기존 데이터 세트는 데이터 수집과 주석을 기록하는 당시에 편향성이 발생하여 이와 같은 데이터를 사용해 훈련하는 경우 모델에 부정적인 영향을 줄 수 있습니다. 또한 대부분의 기존 데이터는 콘텐츠의 다양성이나 사람의 움직임과 포즈, 도메인 호환과 관련된 적절한 분석을 제공하지 않습니다. 합성 데이터는 실제 데이터 사용에 대한 새로운 대안으로, 위와 같은 문제점을 어느 정도 완화하는 데 도움이 될 수 있습니다(이전 블로그 포스팅인 Unity Computer Vision Datasets를 사용한 데이터 중심 AI컴퓨터 비전을 이용한 지능형 스마트홈 솔루션 참고). 그러나 합성 데이터 제너레이터는 제작하기 매우 어려우며, 따라서 컴퓨터 비전 연구자는 합성 데이터 활용에 어려움을 겪어 왔습니다. 또한 합성 데이터가 기존의 실제 데이터를 대체하거나 보완할 수 있는지에 대해 의문을 품어 왔으며, 주된 이유는 모델 훈련의 일부로 사용할 수 있는 세밀하게 조작 가능한 파라메트릭 데이터 제너레이터가 없기 때문입니다.

위와 같은 난제를 해결해주는 인간 중심 데이터 제너레이터인 PeopleSansPeople을 선보이게 되어 기쁩니다. PeopleSansPeople은 세밀하게 파라미터를 조정할 수 있으며, 시뮬레이션에 바로 사용할 수 있는 3D 휴먼 에셋과 파라미터를 사용하는 조명 및 카메라 시스템을 갖추고 있습니다. 여기에 더해 파라미터화된 환경 제너레이터와 조작 및 확장이 가능한 도메인 랜더마이저(randomizer)를 포함합니다. PeopleSansPeople은 서브 픽셀 퍼펙트 2D/3D 바운딩 박스, COCO와 호환되는 사람의 관절 키포인트, JSON 주석 파일의 의미론적/인스턴스 분할 마스크를 이용하여 RGB 이미지를 생성할 수 있습니다. 유니티는 PeopleSansPeople과 Detectron2 Keypoint R-CNN 세부 모델을 사용해 합성 데이터의 벤치마크 훈련을 수행했습니다. 합성 데이터를 사용하여 네트워크를 사전 훈련하고 목표로 하는 실제 데이터를 사용하여 미세 조정(COCO-person train의 제한된 부분 집합으로 퓨샷(few-shot) 전이 학습)한 결과 키포인트 AP가 60.37±0.48이었습니다(COCO test-dev2017에서 실험 진행). 이는 동일한 실제 데이터만 사용해 훈련된 모델(키포인트 AP: 55.80)과 ImageNet으로 사전 훈련된 모델(키포인트 AP: 57.50)보다 뛰어난 수치입니다. 자세한 내용은 이 논문을 참조하시기 바랍니다.

PeopleSansPeople로 인해 인간 중심 컴퓨터 비전 연구에 합성 데이터의 유용성을 시험하고 연구 속도를 높일 것으로 예상합니다. 연구자는 타겟 클래스의 일부로 사람을 포함하는 작업에 도메인 무작위화와 함께 합성 데이터를 사용하여, AR/VR, 자율 주행, 사람의 포즈 추정, 동작 인식 및 추적 등의 분야에서 시뮬레이터의 기능 영역을 확장하기를 원할 겁니다. 유니티는 이 점을 고려하여 PeopleSansPeople를 제작했습니다. PeopleSansPeople 데이터에 대한 가장 흥미로운 연구는 시뮬레이션을 현실 세계에 구현(sim2real)하는 전이 학습을 위한 합성 데이터를 생성하는 것과 합성 데이터 및 실제 데이터 간의 도메인 격차를 줄이는 작업일 것이라고 예상합니다.

Fig 2: Example of data and annotations produced by PeopleSansPeople. Left to right: rendered image, bounding box and keypoint annotations, bounding box and semantic segmentation annotations, bounding box and instance segmentation annotations. Any combinations of these annotation types are possible; examples are provided with the aforementioned combinations for ease of demonstration.
Fig 2: Example of data and annotations produced by PeopleSansPeople. Left to right: rendered image, bounding box and keypoint annotations, bounding box and semantic segmentation annotations, bounding box and instance segmentation annotations. Any combinations of these annotation types are possible; examples are provided with the aforementioned combinations for ease of demonstration.

PeopleSansPeople 릴리스

PeopleSansPeople은 두 가지 버전으로 릴리스됩니다.

하나는 변수 설정 JSON 파일로 대규모(100만 개 이상) 데이터 세트를 생성하는 데 사용할 수 있는 macOS 및 Linux 실행 바이너리 파일입니다. 이 버전에는 다음이 포함됩니다.

  • 여러 의상(알베도 28개, 마스크 28개, 노멀 28개로 만든 고유한 의상 텍스처 21,952개)을 갖춘 다양한 연령대와 인종의 3D 휴먼 모델 28개
  • 휴머노이드의 배치, 크기, 회전을 무작위로 설정하여 사람을 다양하게 배치하는 애니메이션 클립 39개
  • 완전히 파라미터화된 조명(위치, 컬러, 각도, 강도)과 카메라(위치, 회전, 시야각, 초점 길이) 설정
  • 가변 텍스처를 사용하여 방해물과 가림막 역할을 하는 오브젝트 프리미티브 세트
  • 오브젝트의 배경 및 텍스처로 사용 가능한, 레이블이 지정되지 않은 COCO 데이터 세트에서 가져온 1,600개의 자연 이미지 세트

다른 하나는 커뮤니티 구성원이 자유롭게 인간 중심 데이터 제너레이터를 제작하도록 지원하여 진입 장벽을 낮추기 위한 Unity 템플릿 프로젝트입니다. 사용자는 직접 제작한 3D 에셋을 환경으로 가져와 이미 존재하는 도메인 랜더마이저를 수정하거나 새로운 랜더마이저를 정의하여 기능을 확장할 수 있습니다. 이 환경에는 위의 바이너리 파일에서 설명한 모든 기능 외에 다음 항목도 포함됩니다.

  • 다양한 색상의 의상을 착용한 3D 휴먼 모델 예시 4개
  • 휴머노이드의 배치, 크기, 회전을 무작위로 설정하여 사람을 다양하게 배치하는 예시 애니메이션 클립 8개
  • 오브젝트의 배경 및 텍스처로 사용 가능한 Unity Perception 패키지의 식료품 자연 이미지 세트 529개

Unity의 PeopleSansPeople 도메인 무작위화

PeopleSansPeople은 간단한 JSON 설정 파일을 통해 배리에이션을 위한 여러 파라미터를 노출하는 파라메트릭 데이터 제너레이터입니다. 또한, 사용자는 Unity 환경에서 설정을 직접 변경할 수 있습니다. 이번 개발에 있어 주요 관심사는 인간 중심 작업이므로 도메인 무작위화와 환경 디자인의 대부분은 완전한 파라메트릭 휴먼 모델을 제작하는 것에 집중했습니다. 이러한 파라미터 세트를 통해 유니티의 휴먼 모델이 가진 배리에이션의 몇 가지 기본적인 내적, 그리고 외적 측면을 파악할 수 있었습니다. Unity 셰이더 그래프 랜더마이저를 사용하여 휴먼 에셋의 의상 텍스처를 변경하여 그림 3과 그림 4처럼 독특한 모습의 캐릭터를 생성했습니다. 또한 사람의 실제 행동과 포즈를 담고 있는 다양한 애니메이션 세트와 함께 유니티의 애니메이션 랜더마이저를 사용해 캐릭터의 포즈를 변경하여 그림 5와 같이 제작했습니다.

Render a
render b
그림 3: PeopleSansPeople 3D 휴먼 모델. 위: 환경에서 사용되는 스캔한 3D 휴먼 모델 28개, 기본 포즈와 의상 텍스처 적용. 아래: Unity 셰이더 그래프를 사용한 의상 텍스처 배리에이션 예시
character clothing changing
그림 4: Unity 셰이더 그래프 랜더마이저를 사용하면 의상 텍스처 알베도, 마스크, 노멀을 변경하여 의상에 특별한 위장복과 같은 텍스처를 생성하는 동시에 텍스처의 색조를 무작위로 변경하여 캐릭터의 모습을 다양하게 생성할 수 있습니다. 의상 텍스처가 매우 다양하므로, 이러한 데이터로 훈련된 모델은 의상 컬러와 텍스처 배리에이션으로 인한 오류가 비교적 적을 것으로 예상합니다.
people moving
그림 5: 애니메이션 랜더마이저를 사용하여 PeopleSansPeople에서 다양한 포즈를 생성한 모습

실제 도메인으로 일반화할 수 있는 모델을 훈련하려면 시뮬레이션 환경의 요소를 변화시켜 합성 데이터에 더 많은 배리에이션을 주는 추가 도메인 무작위화를 사용해야 합니다. 유니티의 랜더마이저는 사전 정의된 Unity 씬 컴포넌트에서 작동합니다. 랜더마이저는 정규 분포, 균등 분포, 이항 분포를 사용해 파라미터를 가능한 범위 내에서 샘플링하여 시뮬레이션 중에 컴포넌트의 파라미터를 변경할 수 있습니다. 요약하면 3D 오브젝트 배치와 포즈, 씬에서 3D 오브젝트의 텍스처와 컬러, 조명의 구성과 컬러, 카메라 파라미터, 일부 포스트 프로세싱 효과를 무작위화합니다. 조명, 색조 오프셋, 카메라 회전, 시야각(FOV), 초점 길이 등 특정 유형의 도메인 무작위화는 표준 데이터 증강 동작을 모방합니다. 따라서 합성 데이터 훈련 중에 데이터 증강을 할 필요가 없어서 훈련 과정을 더 빠르게 진행할 수 있습니다.

데이터 세트 통계 분석

유니티의 도메인 무작위화를 사용해 위에서 설명한 레이블과 50만 개의 이미지로 이루어진 합성 데이터 세트를 생성했습니다. 그중에서 49만 개의 이미지를 훈련에 사용하고 10,000개의 이미지를 검증에 사용했습니다. 그런 다음 합성 데이터 세트 통계를 COCO person 데이터 세트와 비교했습니다. 유니티에서 생성한 데이터 세트에는 표 1에 표시된 것처럼 COCO 데이터 세트보다 몇 배 더 많은 인스턴스와 몇 배 더 많은 키포인트 주석이 있는 인스턴스가 있습니다.

그림 6은 3개의 데이터 세트의 바운딩 박스 점유율 히트맵을 보여 줍니다. COCO 데이터 세트의 경우 세로 이미지와 가로 이미지가 많기 때문에 이미지의 높이와 너비에 따라 길쭉한 바운딩 박스 분포를 관찰할 수 있습니다. 이미지에서 바운딩 박스의 대부분이 중심 근처에 있고 가장자리에 분포한 바운딩 박스는 적은 것을 볼 수 있습니다. PeopleSansPeople 합성 데이터의 경우, 바운딩 박스가 전체 이미지 프레임을 차지하는 경향이 더 높은 것을 볼 수 있고, 이는 모델이 전체 수용 필드를 사용하게 한다는 것을 의미합니다.

High-level comparison between COCO and PeeopleSansPeople. Our dataset has many more instances annotated and instances with keypoints.
표 1: COCO와 PeopleSansPeople의 자세한 비교. PeopleSansPeople의 데이터 세트에는 주석이 있는 인스턴스와 키포인트가 있는 인스턴스가 더 많습니다.
bounding box heatmap
그림 6: 바운딩 박스 점유율 히트맵으로, 이미지 프레임 위에 채워진 박스로 모든 바운딩 박스를 오버레이하여 생성했습니다. 합성 데이터 세트를 COCO 데이터 세트와 비교했습니다.

그림 7에서는 바운딩 박스와 키포인트 통계 비교를 확인할 수 있습니다. 통계를 보면 PeopleSansPeople 데이터 세트에는 COCO보다 이미지당 더 많은 바운딩 박스가 있으며, COCO에는 이미지당 대부분 하나 혹은 두 개의 바운딩 박스가 있다는 것을 알 수 있습니다(그림 7a). 또한 PeopleSansPeople 데이터 세트는 바운딩 박스 크기 분포가 더 균등하지만, COCO는 대부분 박스 크기가 작았습니다(그림 7b). PeopleSansPeople 데이터 세트에 있는 대부분의 바운딩 박스는 키포인트에 주석이 있었으나, COCO 데이터 세트에는 없었습니다(그림 7c). 마지막으로 키포인트에 주석이 있는 바운딩 박스의 경우, PeopleSansPeople 데이터 세트에는 COCO보다 개별 키포인트에 약 2배 많은 주석이 있습니다(그림 7d).

bounding box statistics
그림 7: 바운딩 박스와 키포인트 통계. a) 이미지당 바운딩 박스의 수. b) 이미지 크기에 대한 바운딩 박스 크기. c) 바운딩 박스당 주석이 달린 키포인트. d) 바운딩 박스당 키포인트 비율

마지막으로, 생성된 이미지에서 휴먼 모델의 다양한 포즈를 측정하기 위해 가장 움직임이 큰 경향이 있는 캐릭터의 말단 부위에서 5개의 대표적인 키포인트에 대한 포즈 히트맵을 생성했습니다(그림 8). 이를 통해 PeopleSansPeople의 포즈 분포가 COCO의 포즈 분포를 포함하며, 합성된 포즈의 분포가 COCO의 포즈 분포보다 넓고, COCO의 경우 대부분의 사람이 정면을 보고 있어 '잘 쓰는 손'에 의한 밀도 비대칭이 발생하지만, 합성 데이터에는 비대칭이 발생하지 않는다는 것을 알 수 있었습니다.

Pose heatmap
그림 8: 5개의 대표적인 키포인트 위치 히트맵. 위: COCO. 아래: PeopleSansPeople

PeopleSansPeople의 기본적인 영향 벤치마킹

실제 전이 학습을 위한 시뮬레이션의 벤치마킹 결과를 얻기 위해, 사람 바운딩 박스(bbox)와 키포인트 감지에 다양한 크기 및 조합의 합성 데이터 세트와 실제 데이터 세트를 사용하여 훈련했습니다. AP(Average Precision)를 모델 성능의 기본 지표로 사용하여 COCO person 검증(person val2017)과 테스트 세트(test-dev2017)를 확인한 결과를 소개합니다.

모델 훈련은 무작위로 초기화된 가중치와 ImageNet으로 사전 훈련된 가중치를 사용하여 진행했습니다. 벤치마킹 중에 모델 또는 데이터 생성 하이퍼 파라미터를 수행하지 않았습니다. 실제로 직관적으로 선택한 기본 파라미터 범위를 사용하여 데이터 세트를 생성했으며, 해당 범위에서 균등한 샘플링을 통해 강제 데이터 생성을 수행했습니다. 따라서 매우 단순한 데이터 생성이 이루어졌습니다. 표 2, 3, 4에서 그 결과를 볼 수 있습니다. 합성 데이터 사전 훈련과 실제 데이터 미세 조정을 거친 모델이 실제 데이터만 사용해 훈련하거나 ImageNet으로 사전 훈련된 후 실제 데이터로 미세 조정을 거친 모델보다 성능이 뛰어나다는 것을 알 수 있습니다. 실제 데이터가 제한된 퓨샷(few-shot) 전이 학습에서 차이가 더 극명하게 나타났습니다. 풍부한 실제 데이터를 사용하더라도 여전히 합성 데이터 사전 훈련에 이점이 있었습니다.

Tab 2: Comparison of gains obtained from synthetic pre-training with training from scratch and ImageNet pre-training. Results of bounding box detection on COCO person validation set.
표 2: 합성 사전 훈련, 직접 훈련, ImageNet 사전 훈련의 바운딩 박스 AP 비교. COCO person 검증 세트에 대한 바운딩 박스 감지 결과
Tab 3: Comparison of gains obtained from synthetic pre-training with training from scratch and ImageNet pre-training. Results of keypoint detection on COCO person validation set.
표 3: 합성 사전 훈련, 직접 훈련, ImageNet 사전 훈련의 키포인트 AP 비교. COCO person 검증 세트에 대한 키포인트 감지 결과
 Tab 4: Comparison of gains obtained from synthetic pre-training with training from scratch and ImageNet pre-training. Results of keypoint detection on COCO test set.
표 4: 합성 사전 훈련, 직접 훈련, ImageNet 사전 훈련의 키포인트 AP 비교. COCO 테스트 세트에 대한 키포인트 감지 결과

이 결과는 PeopleSansPeople 데이터 벤치마킹을 목적으로 한다는 점을 기억하시기 바랍니다. PeopleSansPeople은 고도로 파라미터화된 랜더마이저와 함께 제공되며, 커스텀 랜더마이저를 통합하는 과정도 매우 간단합니다. 따라서 PeopleSansPeople이 모델 훈련 반복 과정에서 하이퍼 파라미터 조정과 데이터 생성에 대한 연구를 활발하게 만들어, 데이터가 없거나 적은 학습, 완전 지도 학습을 해결하기 위한 데이터 성능을 최적화할 것으로 기대합니다. 또한 합성 데이터에는 고품질 레이블이 많기 때문에 주석이 거의 없거나 전혀 없는 실제 데이터와 결합하여 약지도 학습(weakly-supervised training)을 수행할 수 있습니다.

마무리

이번 포스팅에서는 Unity의 합성 데이터를 사용한 인간 중심 컴퓨터 비전에 대한 연구를 소개했습니다. 유니티는 인간 중심 컴퓨터 비전을 위한 합성 데이터의 유용성을 시험하고 연구 속도를 높이기 위해 PeopleSansPeople이라는 고도로 파라미터화된 합성 데이터 제너레이터를 만들었습니다. PeopleSansPeople은 시뮬레이션 파라미터와 도메인 무작위화에 대한 세밀한 제어를 제공하여 모델 훈련 반복에서 메타 학습과 데이터 생성을 위한 길을 열어 줍니다. PeopleSansPeople에서 제공하는 파라미터화를 검증하고 벤치마킹하기 위해 유니티는 여러 벤치마크를 진행했습니다. 벤치마크를 통해 단순하게 선택한 무작위화 파라미터를 사용하더라도 합성 데이터를 사용할 때 모델 성능을 개선할 수 있음을 알 수 있었습니다. PeopleSansPeople와 벤치마크 결과를 통해 모델 훈련 전략, 데이터 하이퍼 파라미터 검색, 대체 데이터 생성 조작 전략뿐만 아니라 현실과 시뮬레이션의 도메인 격차에 대한 광범위한 연구를 진행할 수 있을 것이라 기대합니다.

자세한 내용은 인간 중심 데이터 제너레이터의 소스 코드논문을 확인하시기 바랍니다.

진행 중인 연구에 대한 질문은 유니티의 Applied Machine Learning Research 팀에 문의하시기 바랍니다.

오픈 소스 프로젝트 외 직접 커스텀 데이터 세트를 생성하고 싶다면, 유니티의 Computer Vision 팀에 문의하시기 바랍니다.

Is this article helpful for you?

Thank you for your feedback!