lhm_cd09c3121.png Hyunmin Lee 2022.10.11

LMS_373130771.png Minsoo Lee 2022.10.11

[GTC 2022] 2편: 최근 AI 연구 트렌드와 인사이트

NVIDIA GTC는 인공지능, 컴퓨터 그래픽, 기계 학습 등의 주제에 중점을 두고 진행되는 글로벌 AI 컨퍼런스입니다. NVIDIA GTC 2022는 9월 19일부터 22일까지 온라인으로 3일간 개최되어 최신 기술을 발전시키는 연구자와 비즈니스 리더들이 참석해 대형 언어 모델, 디지털 트윈, Human AI 등 다양한 주제에 관해 적극적으로 교류하고 소통하는 세션으로 진행되었습니다. 온라인 컨퍼런스 현장에 직접 참가한 LG AI연구원 Vision Lab의 이현민, 이민수 님이 GTC 2022에 대한 이야기를 전해드립니다.

- 1편: 성장과 발전을 거듭하는 디지털 아바타 기술 - Vision Lab 이현민, 이민수 님
- 2편: 최근 AI 연구 트렌드와 인사이트 - Vision Lab 이현민, 이민수 님

 

Personalized Image/Language Model

Figure 1. DALL-E가 문장을 입력으로 받아 새로운 이미지를 생성한 결과[1]

 

2021년 1월 OpenAI는 텍스트를 입력하면 인공지능이 Figure을 생성해주는 모델인 ‘DALL-E’[1]를 발표했습니다. DALL-E는 어떠한 주제의 문장이 주어지면 이를 표현하는 사실적인 이미지를 생성할 뿐만 아니라 현실에 존재하지 않는 창의적인 이미지까지 만들어내는 모습을 보여주어 세간의 화제를 모았습니다. 사용자가 입력한 문장을 토대로 이미지를 생성하는 이 기술은 예술, 패션, 광고 등 산업 전반에 큰 반향을 불러 일으킬 것이라 기대되고 있습니다.

 

Figure 2. NVIDIA에서 제안하는 Personalized Image/Language Model의 예시[3]

 

NVIDIA에서는 이러한 Image/Language Model이 사용자에게 더 나은 편의성을 제공하기 위해서는 Personalized Model이 필요하다고 주장하고 있습니다. 예를 들어 기존 Text-Image Generation Model에 ‘A Cat themed lunchbox’라는 문장을 입력으로 넣으면 고양이가 그려진 도시락통 이미지가 생성될 것을 기대할 수 있습니다. 그리고 많은 사용자는 임의의 고양이가 아닌 사용자가 키우고 있거나 좋아하는 고양이 캐릭터가 생성되길 원합니다. 이러한 사용자의 니즈를 맞추기 위해 NVIDIA에서는 Personalized Image/Language Model을 제안하고 있습니다. Figure 2의 예시를 보면 고양이 사진을 Model에 추가적으로 제공해 사용자가 원하는 고양이가 그려진 도시락통 이미지가 생성된 것을 확인할 수 있습니다.

 

Figure 3. Images-to-word Mapper 작동 방식[3]

 

이러한 Personalized Model을 구현하기 위해 해당 연구에서는 Images-to-word Mapper를 제안하고 이를 기존의 Image/Language Model과 함께 사용합니다. 이 네트워크는 사용자가 추가적으로 제공한 컨셉 이미지를 text embedding space로 mapping 해주는 역할을 합니다. 이렇게 text embedding space로 Mapping된 컨셉 이미지 embedding은 텍스트에 있는 어떤 단어의 Token Embedding을 대체하여(Figure 2의 예시에서는 Cat을 대체, Figure 3의 예시에서는 My teapot을 대체) Text Encoder를 통해 나온 feature가 사용자가 추가적으로 제공한 컨셉 이미지를 표현할 수 있도록 합니다. 그 후 personalized text embedding을 입력으로 기존 Text-Image Generation Model을 이용하여 사용자가 원하는 이미지를 생성하게 됩니다.

 

Figure 4. Text-Image Search에 Personalized Model이 적용된 예시[3]

 

또한, Personalized Model은 Text-Image Generation 뿐만 아니라 Text-Image Search에도 적용될 수 있습니다. Text-Image Search는 데이터베이스에 존재하는 이미지들 중 사용자가 입력한 텍스트에 가장 가까운 이미지를 찾는 태스크입니다. 사용자의 입력 문장을 입력으로 Text Embedding을 추출하고 데이터베이스의 각 이미지에서 추출한 image embedding들과의 distance를 계산하여 가장 가까운 이미지를 찾게 됩니다. Figure 4의 예시에서는 “Standing with My Skirt on a stone pathway”를 입력으로 Image Search를 수행하고 있습니다. 이 경우 ‘My Skirt’라는 단어 대신 사용자의 컨셉 이미지를 Model에 제공하여 사용자의 편의성을 높일 수 있습니다. 이를 위해 Text-Image Generation의 경우와 마찬가지로 컨셉 이미지를 Images-to-word Mapper를 통해 text embedding space로 mapping하고 이 embedding으로 ‘My Skirt’에 대응하는 token embedding을 대체하여 Text-Image Search 테스크에 Personalized Model을 적용할 수 있습니다.

 

Instant NeRF[4]

Figure 5. NeRF의 3D representation[5]

 

NeRF (Neural Radiance Fields)[5]는 지난 2020년 ECCV에서 발표된 이래로 Computer Vision 분야에서 가장 뜨거운 주제로 떠올랐습니다. NeRF는 특정 scene을 다방면에서 찍은 이미지들을 이용하여 scene에 대한 3D 정보를 복원하고 이전에 보지 못했던 시점에서 scene을 새롭게 렌더링하는 Novel-View Synthesis 태스크를 성공적으로 풀어낸 방식입니다. NeRF는 3D를 표현하기 위해 Neural Implicit Representation을 사용합니다. 좀 더 자세히 설명하면, 3D 좌표와 관찰 방향에 대한 표현식 (x,y,z,θ,ϕ)를 입력으로 받아 MLP를 이용해 해당 위치와 방향에서의 RGB 값과 volume density를 표현합니다. 이러한 표현방식 덕분에 NeRF는 scene을 사실적으로 렌더링하는 동시에 저장공간 측면에서 높은 압축률을 보입니다. 그러나 optimization 시간과 런타임 성능은 NeRF의 주요한 한계로 남아있습니다. 실제로 800x800의 이미지 한 장을 렌더링 하기 위해서 8,000만 번 이상의 MLP 연산이 필요하기 때문에 NeRF를 optimize하는 데에 10시간 이상이 소요되며, 이미지 한 장을 렌더링 할 때 약 30초가 걸려 실시간으로 렌더링하는 것이 불가능 합니다. 이러한 한계를 극복하기 위하여 NeRF와 octree 구조를 결합하거나[6], MLP를 이용하지 않고 직접적으로 voxel 구조에 3D 정보[7]를 저장하는 방식 등이 제안되었습니다.

 

Figure 6. Instant NeRF가 수 초 안에 학습되는 모습[4]

 

이러한 연구들 중 올해 초 NVIDIA에서 Instant NeRF[4]를 발표하며 엄청난 성능 향상으로 세간의 이목을 끌었습니다. 기존에는 몇 시간 이상 소요되던 NeRF의 optimization 시간을 수 초 이내로 단축시켰고 1초에 60장 이상의 이미지를 렌더링 하는데 성공하며 SIGGRAPH 2022의 Best Paper로 선정되었습니다.

 

Figure 7. Instant NeRF의 도식도[4]

 

Instant NeRF의 핵심 아이디어는 Multiresolution Hash Encoding입니다. Figure 7의 (1)은 x가 query point로 입력되었을 때 2개의 해상도에서 x를 인코딩 하는 모습입니다. Continuous point x를 인코딩 하기 위해 다양한 해상도에서 x 근처 discrete points의 interpolation을 이용합니다. 하늘색으로 표시된 해상도에서 인코딩 되는 경우를 보면 x의 값은 4개의 하늘 색 코너 점(0,1,4,7)의 interpolation으로 구할 수 있습니다. 붉은 색으로 표시된 해상도에서 인코딩 되는 경우에도 마찬가지로 4개의 코너점의 interpolation으로 x의 값을 구할 수 있습니다. 이렇게 다양한 해상도에서의 discrete points (코너 점)의 interpolation으로 query point의 값을 인코딩 했을 경우 성능을 획기적으로 향상시킬 수 있었다고 합니다. 이후 다양한 해상도에서 각각의 코너 점들의 값은 해쉬 테이블에 저장되고 학습이 진행될수록 해쉬 테이블에 저장된 값이 업데이트 됩니다. 최종적으로 여러 개의 해상도에서 구해진 query point의 인코딩 정보를 concatenation한 후 얇은 MLP에 인풋으로 사용하여 RGB값과 density를 구하게 됩니다. 기존 NeRF의 경우 query point에 대응되는 값을 구할 때 두꺼운 MLP를 통과하여 연산 시간이 많이 요구되었지만 Instant NeRF는 해쉬 테이블에 저장된 값을 불러오고 간단한 interpolation 연산과 얇은 MLP를 통과하여 최종 값을 구하기 때문에 획기적으로 연산 시간을 단축할 수 있습니다.

Neural VDB[8]

Figure 8. NeuralVDB[8]가 기존 VDB의 저장공간을 50배 이상 압축한 모습

 

3차원 모델링 데이터는 게임, 광고, 문화산업 등 다양한 산업 분야에서 빈번하게 활용되고 있습니다. 그러나 3D 모델링 데이터는 다른 데이터와 비교하여 많은 저장공간을 필요로 합니다. 특히 3D 볼륨 데이터는 sparsity가 크기 때문에 적절한 데이터 구조를 채택하여 효율적으로 저장하는 것이 중요합니다. 이에 따라 sparse volumetric data를 효과적으로 표현하기 위해 수 년 동안 몇 가지 컴팩트 데이터 구조가 제안되었고 이러한 데이터 구조 중 최근에는 VDB[9]가 널리 채택되고 있습니다. 해당 연구에서는 VDB를 Neural Network와 결합하여 시각적 아티팩트가 거의 없이 기존의 VDB의 저장 공간을 10배에서 100배 이상 압축할 수 있는 NeuralVDB[8]를 제안하였습니다.

 

Figure 9. VDB의 도식도[8,9]

 

VDB에 대해 간략하게 설명을 드리면 VDB는 고해상도 sparse volume data를 표현하는 계층적 트리 구조입니다. VDB 트리 구조에서 모든 level에는 이진 상태로 활성과 비활성을 나타내는 마스크 값 정보가 존재하여 sparse한 데이터를 효과적으로 표현할 수 있습니다. Leaf level에는 voxel value가 저장되고 상위 노드에는 child pointer의 역할을 하는 tile value가 저장됩니다. 일반적으로 4 레벨의 트리를 사용하며 루트 노드에 하위 레벨 노드들이 순차적으로 연결되어 있고 각각 하위 레벨의 노드의 크기는 323, 163, 83입니다. internal nodes (Level 1, 2)는 active mask와 child mask 정보를 가지고 있으며 이 둘은 각각 tile value가 활성 상태인지, child node에 연결되어 있는지에 대한 정보를 담고 있습니다. Leaf node의 경우 voxel value가 활성 상태인지를 나타내는 active mask 정보를 가지고 있습니다.

 

Figure 10. NeuralVDB의 도식도[10]

 

딥러닝의 부상과 함께 SDF[11], NeRF[5] 등과 같이 Neural Network를 이용하여 3D 볼륨을 표현하는 연구들이 활발하게 진행되었습니다. 일반적으로 Neural Network의 parameter 수가 volume을 표현하는 노드의 수보다 훨씬 적기 때문에 높은 압축 성능을 기대할 수 있으며 SIREN[12], Fourier Feature Mapping[13]과 같은 Feature Mapping/Encoding 기술이 발전함에 따라 정보 손실이 거의 없이 Neural Network로 피팅할 수 있게 됐습니다. 이와 마찬가지로 해당 연구에서는 NeuralVDB라는 Neural Network과 VDB의 장점을 결합한 새로운 sparse volumetric data 표현을 제안하였습니다. NeuralVDB는 기존 VDB의 구조 하위 1개 혹은 2개의 레벨에서의 마스크 정보와 값 정보를 Neural Network에 피팅시킵니다. 해당 네트워크는 x를 인풋으로 하여 각 레벨에서의 마스크 정보 혹은 값 정보를 예측하도록 학습됩니다. 이러한 조합에서 VDB는 3D 데이터의 효율적인 계층적 분할을 제공하고 Neural Network는 3D 데이터의 놀라운 압축 성능을 가능하게 하였습니다. 또한, VDB 트리가 상위 노드 수준의 토폴로지 정보에 집중할 수 있게 하고 Neural Network는 voxel feature 및 하위 노드 수준에서 미세한 토폴리지와 값 정보를 압축적으로 인코딩합니다.

 

Figure 11. VDB와 NeuralVDB의 노드 수, 파라미터 수, 저장공간 비교[10]

 

해당 연구에서는 VDB의 하위 1개 레벨을 Neural Network로 대체하는 구조(NeuralVDB)와 하위 2개의 레벨을 대체하는 구조(NeuralVDB with Hierarchical NN)를 제안하였습니다. Figure 11의 표는 VDB와 두 가지 구조의 NeuralVDB의 저장 공간에 대한 결과를 보여주고 있습니다. NeuralVDB는 원래 VDB의 크기를 6.268%로 줄일 수 있었고 두 개의 하위 레벨을 인코딩한 NeuralVDB with Hierarchical NN은 1.484%로 크기를 압축시키는 모습을 보여주고 있습니다. 그러나 압축 수준이 높을수록 기존 구조에 비해 더 많은 데이터 액세스 시간이 필요하다는 단점이 존재합니다.

3D Human Pose Estimation

이번 세션에서 소개드릴 3D human pose estimation는 이미지에서 사람 신체의 3D 관절 위치를 찾는 연구입니다. 이 연구 분야가 어려운 이유는 대상 문제가 ill-posed 되어있고, 학습 데이터를 모으기 어렵기 때문입니다. 자세히 말하면, 2D 이미지로부터 3D 관절 정보를 찾아내야 하기에 ill-posed된 문제입니다. 또한 3차원 관절 위치를 데이터로 모으기 위해서는 MoCap 장비를 이용한 스튜디오에서 촬영을 하기에 데이터를 만드는데 오랜 시간이 걸리며 실생활(in-the-wild) 이미지와는 도메인 차이가 생깁니다.

 

Figure 12. In-the-wild 이미지에서 사람의 3D 관절 위치를 예측한 모습[15]

 

NVIDIA에서는 이와 같은 챌린지를 극복하기 위해 2.5D 포즈 표현 방법을 중간 단계로 활용하는 것과 더불어 만들기 어려운 3D 관절 위치는 학습 데이터로 사용하지 않고 label 되지 않은 multi-view 이미지를 활용하는 weakly-supervised 방법을 제안합니다[14]. Multi-view 데이터는[16] 비록 3차원 관절 위치가 label 되어있지 않지만 데이터 세트를 만들기 위한 별도의 하드웨어 장치가 필요하지 않기 때문에 in-the-wild 환경에서 촬영하기 용이하다는 장점이 있습니다.

 

Figure 13. label 되지 않은 multi-view 이미지와 2D 포즈 데이터만을 이용해 3D pose를 학습하는 모델

 

어떠한 관절 j에 대한 3D 포즈를 Pj3D=xj,yj,zj로 정의할 때 2.5D 포즈는 Pj2.5D=xj,yj,zjr로 표현됩니다. xj,yj는 2D 이미지 상에서의 좌표를, zjr는 root에 상대적인 거리를 의미하며 zjr=zroot-zj입니다. 2.5D 표현 방법은 2D 포즈와 상대적인 거리로 분리함으로 몇 가지 이점을 가지게 됩니다. 첫째로, In-the-wild 이미지에서 손쉽게 annotation 할 수 있는 2D 포즈 데이터를 supervision으로 사용할 수 있으며, 또한 Iqbal et al.[17]에서 보였듯이 해당 표현 방법으로부터 3D 포즈를 fully differentiable 하게 재구성(reconstruction) 할 수 있습니다.

전체적인 학습 과정은 Figure 13 과 같습니다. 네트워크는 한 장의 이미지를 입력으로 받아 2.5D 포즈를 예측합니다. Multi-view 이미지에서 카메라 뷰 포인트와 무관하게 사람의 3D 관절 위치는 동일해야 한다는 것을 알고 있기 때문에, 이러한 사전 지식을 이용해 3D supervision을 줍니다. 더 자세하게는 multi-view 이미지에서 예측된 2.5D 포즈를 3D로 재구성한 후 rigid transformation을 통해 align 시켰을 때 3D 관절 위치가 동일해야 한다는 Multi-view consistency loss를 부여합니다. 또한 2D 포즈 데이터 세트를 이용해 2D loss를 부여하며, 예측된 뼈의 길이가 평균 값과 비슷하도록 만드는 Bone-length loss를 통해 보다 빨리 수렴(converge) 하도록 합니다.

 

Figure 14. Human3.6M[18] 데이터셋에서 SOTA 방법들과 비교한 실험 결과

 

Human3.6M dataset[18]에서의 실험 결과는 Figure 14와 같습니다. Human3.6M에 label 되어있는 3D 포즈 데이터를 supervision으로 사용했는지 여부에 따라 semi-supervised / weakly-supervised로 나눕니다. Semi-supervised의 경우 데이터 세트에 있는 다섯 명의 객체 중 한 객체(S1)의 3D 데이터를 활용하며, 나머지 네 객체(S5, S6, S7, S9)는 weak supervision으로 활용합니다. 반면에 weakly-supervised 방법의 경우 Human3.6M에 annotation 되어있는 3D 포즈 데이터를 활용하지 않고 앞서 언급한 multi-view consistency loss를 이용해 3D 포즈를 학습합니다. Ours-H36M+MPII-3D+Mannequin 모델이 semi/weak supervision 카테고리에서 각각 가장 좋은 성능을 보였으며 이를 통해 in-the-wild 환경에서 얻기 힘든 3D 데이터 없이도 multi-view 이미지를 활용하여 3D pose를 성공적으로 학습시킨다는 것을 볼 수 있었습니다.

Conclusion

지금까지 NVIDIA GTC 2022 세션에서 소개된 연구에 대해 살펴보았습니다. 이번 컨퍼런스에서 NVIDIA가 소개한 연구들을 보면 Large Scale Vision/Language Model, Neural Rendering, Digital Human으로 현재 AI 연구 트렌드의 세가지 큰 축에서 연구들을 선정하여 발표한 것을 알 수 있습니다. 또한, 선도적인 연구 성과에 머물지 않고 이를 바탕으로 서비스 이용자에게 보다 나은 실용성 혹은 편의성을 제공할 수 있을지에 대한 고민을 엿볼 수 있었습니다. 인공지능이 점차 많은 산업에 적용되고 사람들에게 직접적인 혜택을 제공하기 시작한 상황에서 LG AI연구원 역시 이러한 고민을 계속해 나가겠습니다.

참고
[1] https://openai.com/blog/dall-e/

[2] Ramesh et al., Zero-Shot Text-to-Image Generation, arXiv, 2021.

[3] NVIDIA GTC 2022, Insights from NVIDIA Research, https://register.nvidia.com/flow/nvidia/gtcfall2022/ attendeeportal/page/sessioncatalog/session/1656017771434001ZAZg

[4] Muller et al., Instant Neural Graphics Primitives with a Multiresolution Hash Encoding, SIGGRAPH, 2022.

[5] Mildenhall et al., NeRF: Representing scenes as neural radiance fields for view synthesis. ECCV, 2020.

[6] Yu et al., PlenOctrees for Real-time Rendering of Neural Radiance Fields, ICCV, 2021.

[7] Yu et al., Plenoxels: Radiance Fields without Neural Networks, CVPR, 2022.

[8] Kim et al., NeuralVDB: High-resolution Sparse Volume Representation using Hierarchical Networks, arXiv, 2022.

[9] Ken Museth, VDB: High-resolution sparse volumes with dynamic topology, TOG, 2013.

[10] NVIDIA GTC 2022, High-resolution Sparse Volume Representation Using Hierarchical Neural Network, https://register.nvidia.com/flow/nvidia/gtcfall2022/attendeeportal/page/sessioncatalog/session/1658516935505001BqIc

[11] Park et al., DeepSDF: Learning Continuous Signed Distance Functions for Shape Representation, CVPR, 2019.

[12] Sitzmann et al., Implicit Neural Representations with Periodic Activation Functions, NeurIPS, 2020.

[13] Tancik et al., Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains, NeurIPS, 2020.

[14] Iqbal et al., Weakly-Supervised 3D Human Pose Learning via Multi-view Images in the Wild, CVPR, 2020.

[15] https://www.youtube.com/watch?v=VzYkvQ9FgBg

[16] Li et al., Learning the depths of moving people by watching frozen people. CVPR, 2019.

[17] Umar Iqbal et al., Hand pose estimation via 2.5D latent heatmap regression, ECCV, 2018.

[18] Ionescu et al., Human3.6M: Large scale datasets and predictive methods for 3D human sensing in natural environments, TPAMI, 2014.