제퍼넷 로고

기술 내부 – 아바타 표정 문제 해결 – Roblox 블로그

시간

Inside the Tech는 당사와 함께 제공되는 블로그 시리즈입니다. 기술 토크 팟캐스트. 팟캐스트 20화 Avatars & Self-Expression에서 Roblox CEO David Baszucki는 엔지니어링 수석 이사 Kiran Bhat, 제품 수석 이사 Mahesh Ramasubramanian, 수석 제품 관리자 Effie Goenawan과 함께 아바타를 통한 몰입형 커뮤니케이션의 미래에 대해 이야기했습니다. 우리는 이를 가능하게 하기 위해 해결하고 있는 기술적 과제를 해결하고 있습니다. 이번 Inside the Tech 에디션에서는 엔지니어링 관리자 Ian Sachs와 대화를 통해 이러한 기술적 과제 중 하나인 아바타의 표정 활성화와 Avatar Creation(엔진 그룹 산하) 팀의 작업이 사용자가 자신을 표현하는 데 어떻게 도움이 되는지 자세히 알아보았습니다. 로블록스에서.

귀하의 팀이 겪고 있는 가장 큰 기술적 과제는 무엇입니까?

Roblox에서 아바타가 누군가를 어떻게 나타내는지에 대해 생각할 때 일반적으로 두 가지를 고려합니다. 즉, 아바타가 어떻게 작동하는지와 어떻게 보이는지입니다. 그래서 우리 팀의 주요 초점 중 하나는 아바타가 사람의 표정을 반영할 수 있도록 하는 것입니다. 예를 들어, 누군가가 웃으면 그 사람의 아바타도 그에 맞춰 미소를 짓습니다. 

얼굴 표정을 추적할 때 어려운 점 중 하나는 이러한 표정을 사람의 장치에서 실시간으로 직접 캡처할 수 있도록 모델의 효율성을 조정하는 것입니다. 우리는 Roblox에서 가능한 한 많은 사람들이 이 기능을 이용할 수 있도록 최선을 다하고 있으며 다양한 장치를 지원해야 합니다. 누군가의 장치가 처리할 수 있는 컴퓨팅 성능의 양은 여기서 중요한 요소입니다. 우리는 강력한 장치를 가진 사람뿐만 아니라 모든 사람이 자신을 표현할 수 있기를 바랍니다. 그래서 우리는 이를 가능하게 하기 위해 최초의 딥 러닝 모델 중 하나를 배포하고 있습니다. 

우리가 해결하고 있는 두 번째 핵심 기술 과제는 제작자가 사람들이 개인화할 수 있는 동적 아바타를 개발하는 데 사용하는 프로세스를 단순화하는 것입니다. 이와 같은 아바타를 만드는 것은 머리를 모델링해야 하고 머리에 애니메이션을 적용하려면 선형 블렌드 스키닝을 위한 관절 및 가중치 배치와 같이 모델을 조작하기 위한 매우 구체적인 작업을 수행해야 하기 때문에 매우 복잡합니다. 우리는 크리에이터가 이 프로세스를 더 쉽게 만들고 싶어 이를 단순화할 수 있는 기술을 개발하고 있습니다. 그들은 정적 모델을 구축하는 데에만 집중해야 합니다. 그렇게 되면 자동으로 장치를 조작하고 케이지할 수 있습니다. 그런 다음 얼굴 추적과 레이어드 의류가 즉시 작동합니다. 

이러한 기술적 과제를 해결하기 위해 우리가 사용하고 있는 혁신적인 접근 방식과 솔루션에는 어떤 것이 있습니까?

우리는 얼굴 표정에 대한 올바른 정보를 얻기 위해 몇 가지 중요한 작업을 수행했습니다. 이는 업계 표준 FACS(얼굴 애니메이션 제어 시스템)를 사용하는 것부터 시작됩니다. 입이 얼마나 넓은지, 어느 눈을 뜨고 있는지, 얼마나 뜨고 있는지 등 아바타의 얼굴 표정을 구동하는 데 사용하는 것이기 때문에 이는 모든 것의 핵심입니다. 원하는 얼굴 표정을 설명하기 위해 약 50가지의 다양한 FACS 컨트롤을 사용할 수 있습니다. 

이미지나 비디오에서 얼굴 표정을 추정하기 위해 기계 학습 알고리즘을 구축할 때 알려진 실제 표현(FACS로 설명됨)이 포함된 예시 이미지를 보여줌으로써 모델을 훈련시킵니다. 다양한 표정을 지닌 다양한 이미지를 모델에 보여줌으로써 모델은 이전에 볼 수 없었던 얼굴의 표정을 추정하는 방법을 학습합니다.

일반적으로 얼굴 추적 작업을 할 때 이러한 표정에는 사람이 레이블을 지정하며 가장 쉬운 방법은 랜드마크를 사용하는 것입니다. 예를 들어 이미지에 점을 배치하여 눈 모서리와 같은 얼굴 특징의 픽셀 위치를 표시합니다. 

하지만 FACS 가중치는 사진을 보고 "입이 벌려진 상태 0.9 대 0.5"라고 말할 수 없기 때문에 다릅니다. 이 문제를 해결하기 위해 우리는 합성 데이터를 사용하여 다양한 각도와 조명 조건에서 FACS 포즈로 렌더링된 3D 모델로 구성된 FACS 가중치를 직접 생성하고 있습니다.

불행하게도 모델은 실제 얼굴로 일반화되어야 하기 때문에 합성 데이터만으로는 학습할 수 없습니다. 따라서 우리는 실제 데이터와 합성 데이터의 조합을 사용하여 랜드마크 예측 작업에 대한 모델을 사전 훈련하여 모델이 순수 합성 데이터를 사용하여 FACS 예측 작업을 학습할 수 있도록 했습니다.

우리는 모든 사람이 얼굴 추적을 할 수 있기를 원하지만 일부 장치는 다른 장치보다 더 강력합니다. 이는 우리가 모든 장치의 처리 능력에 동적으로 적응할 수 있는 시스템을 구축해야 함을 의미합니다. 우리는 모델을 BaseNet이라는 빠른 대략적인 FACS 예측 단계와 HiFiNet이라는 보다 정확한 FACS 개선 단계로 분할하여 이를 달성했습니다. 런타임 동안 시스템은 성능을 측정하고 최적의 조건에서 두 모델 단계를 모두 실행합니다. 그러나 속도 저하가 감지되면(예: 저가형 장치로 인해) 시스템은 첫 번째 단계만 실행합니다.

이 기술 작업을 수행하면서 배운 주요 내용은 무엇입니까?

하나는 기능을 작동시키는 것이 실제로 무언가를 성공적으로 출시하는 데 필요한 것의 아주 작은 부분이라는 것입니다. 많은 작업이 엔지니어링 및 단위 테스트 프로세스에 있습니다. 우리는 좋은 데이터 파이프라인이 있는지 판단할 수 있는 좋은 방법이 있는지 확인해야 합니다. 그리고 우리는 “이 새로운 모델이 실제로 이전 모델보다 나은가?”라고 자문해야 합니다.

핵심 엔지니어링을 시작하기 전에 실험 추적, 데이터 세트가 사용자의 다양성을 나타내는지 확인, 결과 평가, 새로운 결과 배포 및 피드백 받기를 위해 배치한 모든 파이프라인이 모델을 충분하게 만드는 데 사용됩니다. 하지만 이는 매우 중요함에도 불구하고 많이 언급되지 않는 프로세스의 일부입니다. 

귀하의 팀은 어떤 Roblox 가치에 가장 부합합니까?

프로젝트의 단계를 이해하는 것이 중요하므로 혁신 중에는 장기적인 관점을 갖는 것이 매우 중요합니다. 특히 중요한 문제를 해결하려는 연구에서는 더욱 그렇습니다. 그러나 우리는 더 넓은 커뮤니티에 가장 가치 있는 문제를 해결하기를 원하기 때문에 혁신할 가치가 있는 문제를 식별할 때 커뮤니티를 존중하는 것도 중요합니다. 예를 들어, 우리는 단순히 "얼굴 추적"이 아닌 "모두를 위한 얼굴 추적" 작업을 선택했습니다. 무언가 구축의 90% 지점에 도달하면 프로토타입을 기능적 기능으로 전환하는 것은 실행과 프로젝트 단계에 대한 적응에 달려 있습니다.

Roblox와 팀이 향하는 방향에서 가장 흥미로운 점은 무엇인가요?

저는 항상 사람들의 창의성을 돕는 도구를 개발하는 데 관심을 가져왔습니다. 무언가를 창조하는 것은 당신만의 독특한 무언가로 끝나기 때문에 특별합니다. 저는 사람들이 정말 흥미로운 일을 할 수 있도록 수학, 과학, 연구 및 공학적 통찰력을 활용하여 시각 효과 및 다양한 사진 편집 도구 분야에서 일했습니다. 이제 Roblox에서는 이를 완전히 새로운 수준으로 끌어올릴 수 있습니다. Roblox는 단순한 도구가 아닌 창의성 플랫폼입니다. 그리고 창의성을 가능하게 하는 도구를 구축할 수 있는 규모는 제가 이전에 작업했던 그 어떤 것보다 훨씬 더 크며 이는 믿을 수 없을 정도로 흥미진진합니다.

spot_img

최신 인텔리전스

spot_img