얼굴 인식은 애니메이션에 효과적이지 않아 Disney는 애니메이션을 위해 특별히 얼굴 인식 라이브러리를 만들었습니다.

얼굴 인식에도 문제가 있었습니다. 3차원 물체는 인식할 수 있지만 2차원 물체에는 효과적이지 않습니다. 디즈니의 기술팀은 애니메이터의 후반작업 검색에 도움이 되는 이 알고리즘을 개발하고 있습니다. 이 팀은 PyTorch를 사용하여 효율성을 크게 향상시켰습니다.
애니메이션에 관해서라면 1923년에 설립된 거대 기업 디즈니를 빼놓을 수 없습니다. 애니메이션 회사로 시작한 디즈니는 오늘날까지 전 세계 애니메이션 영화 개발을 선도해 왔습니다.
모든 애니메이션 영화 뒤에는 수백 명의 사람들의 노고와 땀이 담겨 있습니다. 최초의 컴퓨터 3D 애니메이션 "토이 스토리"가 출시된 이후, 디즈니는 디지털 애니메이션 제작의 여정을 시작했습니다. CGI와 AI 기술의 발전으로 디즈니 애니메이션 영화의 제작 및 보관 방법도 엄청난 변화를 겪었습니다.

현재 디즈니는 최첨단 기술을 사용하여 콘텐츠 제작 방식을 바꾸고 제작 현장에서 영화 제작자의 부담을 줄이는 수많은 컴퓨터 과학자를 흡수했습니다.
100년 역사의 영화 거대 기업은 디지털 콘텐츠를 어떻게 관리할까?
월트 디즈니 애니메이션 스튜디오에는 아티스트, 감독, 시나리오 작가, 프로듀서, 기술 팀을 포함해 약 800명의 직원이 있는 것으로 알려졌습니다.
영화를 만드는 데는 영감을 얻는 것부터 스토리 개요를 쓰는 것, 대본 초안 작성, 미술 디자인, 캐릭터 디자인, 더빙, 애니메이션 효과, 특수 효과 제작, 편집, 후반 작업 등 여러 복잡한 과정을 거쳐야 합니다.
2021년 3월 현재, 애니메이션 영화 제작에만 특화된 월트 디즈니 애니메이션 스튜디오는 장편 애니메이션 59편을 제작하여 출시했으며, 이들 영화에 등장하는 애니메이션 캐릭터의 수는 수백, 수천 명에 이릅니다.

애니메이터가 속편을 작업하거나 특정 캐릭터를 언급하고 싶을 때, 특정 캐릭터, 장면 또는 사물을 찾기 위해 방대한 콘텐츠 아카이브를 검색해야 합니다. 이를 위해,그들은 종종 몇 시간씩 영상을 시청해야 하며, 필요한 영상만 걸러내기 위해 오로지 눈으로만 의존해야 합니다.
이 문제를 해결하기 위해 Disney는 다음과 같은 프로젝트를 시작했습니다. 「콘텐츠 게놈」AI 프로젝트,디즈니 디지털 콘텐츠의 보관소를 만들기 위해 고안된 이 기능은 애니메이터가 애니메이션 속의 사람이나 사물의 얼굴을 빠르고 정확하게 식별하는 데 도움이 됩니다.
애니메이션 특화 얼굴 인식 알고리즘 훈련
콘텐츠 라이브러리를 디지털화하는 첫 번째 단계는 제작자와 사용자가 쉽게 검색할 수 있도록 과거 작품의 콘텐츠를 감지하고 표시하는 것입니다.
얼굴 인식 기술은 이미 비교적 성숙되었지만, 같은 방법을 애니메이션의 얼굴 인식에도 적용할 수 있을까요?
Content Genome 기술팀은 실험을 거쳐 이것이 특정 상황에서만 가능하다는 것을 발견했습니다.
그들은 "아발론의 엘레나"와 "라이언 가드"라는 두 편의 애니메이션 영화를 선택하고, 일부 샘플에 직접 주석을 달고, 영화의 수백 개 프레임에 있는 얼굴을 사각형으로 표시했습니다. 이 수동으로 주석이 달린 데이터 세트를 통해연구팀은 HOG + SVM 파이프라인을 기반으로 한 얼굴 인식 기술이 애니메이션 얼굴(특히 사람과 유사한 얼굴과 동물 얼굴)에서는 성능이 좋지 않다는 것을 검증했습니다.

분석 결과, 연구팀은 HOG+SVM과 같은 방법이 색상, 밝기 또는 질감의 변화에도 견고하지만, 사용된 모델은 인간의 비율(즉, 두 개의 눈, 코, 입)의 애니메이션 캐릭터에만 일치시킬 수 있다는 것을 확인했습니다.
게다가 애니메이션 콘텐츠의 배경은 일반적으로 평평한 영역으로 이루어져 있고 세부 정보가 거의 없으므로 Faster-RCNN 모델은 간단한 배경에서 눈에 띄는 모든 것을 애니메이션 얼굴로 잘못 식별합니다.

따라서 연구팀은 얼굴에 대한 더 추상적인 개념을 학습할 수 있는 기술이 필요하다고 결정했습니다.
팀은 모델을 훈련하기 위해 PyTorch를 사용하기로 결정했습니다. 팀은 소개했습니다.PyTorch를 사용하면 최첨단 사전 학습된 모델에 액세스하여 학습 요구 사항을 충족하고 보관 프로세스의 효율성을 높일 수 있습니다.
학습 과정에서 연구팀은 데이터 세트에 충분한 양의 샘플이 있지만, 모델을 학습시키기에는 충분한 음의 샘플이 없다는 것을 발견했습니다. 그들은 애니메이션 얼굴이 포함되지 않았지만 애니메이션 기능이 있는 추가 이미지로 초기 데이터 세트를 보강하기로 결정했습니다.
이를 기술적으로 수행하려면 그들은 Torchvision의 Faster-RCNN 구현을 확장하여 주석 없이도 학습 중에 부정적인 샘플을 로드할 수 있도록 했습니다.
이는 Torchvision 핵심 개발자의 지도에 따라 팀이 Torchvision 0.6에 추가한 새로운 기능입니다.데이터 세트에 부정적인 예를 추가하면 추론 시점에서 거짓 양성 반응이 크게 줄어들어 더 나은 결과를 얻을 수 있습니다.
PyTorch를 사용하여 비디오를 처리하면 효율성이 10배 증가합니다.
애니메이션 캐릭터의 얼굴 인식을 달성한 후, 팀의 다음 목표는 비디오 분석 프로세스를 가속화하는 것이며, PyTorch를 적용하면 다른 작업을 효과적으로 병렬화하고 가속화할 수 있습니다.
팀은 소개했습니다.비디오를 읽고 디코딩하는 작업에도 시간이 많이 걸리기 때문에, 팀에서는 PyTorch의 DataLoader와 결합된 맞춤형 PyTorch IterableDataset을 사용하여 병렬 CPU를 사용하여 비디오의 다른 부분을 읽을 수 있도록 했습니다.

이런 방식으로 영상을 읽는 것은 이미 매우 빠르지만, 연구팀은 단 한 번의 읽기로 모든 계산을 완료하려고 시도했습니다. 그래서 그들은 대부분의 파이프라인을 PyTorch로 구현하고 GPU 실행도 고려했습니다. 각 프레임은 GPU에 한 번만 전송되고, 모든 알고리즘은 각 배치에 적용되어 CPU와 GPU 간의 통신을 최소한으로 줄입니다.
또한 이 팀은 PyTorch를 사용하여 신경망을 사용하지 않고 주로 색상 공간 변환, 히스토그램, 특이값 분해(SVD)와 같은 연산을 수행하는 샷 검출기와 같은 보다 전통적인 알고리즘을 구현했습니다. PyTorch를 사용하면 팀은 최소한의 비용으로 계산을 GPU로 오프로드하고 여러 알고리즘 간에 공유되는 중간 결과를 쉽게 재활용할 수 있습니다.
팀은 PyTorch를 사용하여 CPU 부분을 GPU로 오프로드하고 DataLoader를 사용하여 비디오 읽기 속도를 높였습니다. 이를 통해 하드웨어를 최대한 활용하고 궁극적으로 처리 시간을 10배까지 단축했습니다.
팀의 개발자들은 IterableDataset, DataLoader, Torchvision과 같은 PyTorch의 핵심 구성 요소를 통해 팀이 프로덕션 환경에서 데이터 로딩과 알고리즘 효율성을 개선할 수 있다는 결론을 내렸습니다. 추론부터 모델 학습 리소스, 완전한 파이프라인 최적화 툴셋까지, 팀은 PyTorch를 점점 더 많이 선택하고 있습니다.
이 기사는 PyTorch Developer Community 공식 계정에서 편집 및 게시되었습니다.