brunch

You can make anything
by writing

C.S.Lewis

by 배울장 Dec 11. 2022

사진만으로 3D 모델 만들기(feat. AI)

포토그래메트리부터 AI기반 모델링까지

AI가 많은 분야에 혁신을 불러일으키고 있다. 쉽게 볼 수 있는 예제는 이미지 분야다. 이미지를 고화질로 만드는가 하면 사진에 특정 부분을 없애기도 하고 다시 그리기도 한다. 심지어는 글만 입력하면 원하는 스타일로 아예 생성을 해준다. 번역도 AI의 등장 전후로 나뉘고, 글쓰기 분야에서도 AI가 핫하다. AI가 어떤 분야에 등장했다고만 하면 기존에 있던 챔피언 타이틀을 거머쥔다. 이 글에서 살펴볼 분야는 3D 모델링 분야다. 


3D 모델링은 3D 프린터의 붐과 함께 메이커 시장과 같이 커졌다. 색연필로 그림을 그리듯이 3D로 그림을 그릴 줄 안다면 뭐든 만들 수 있다. 이 글에서는 3D 모델링을 두 가지로 나누려고 한다. 첫 번째는 수치적으로 접근하는 모델링, 두 번째는 심미적으로 접근하는 모델링이다. 수치적으로 접근하는 모델링은 주로 산업 분야에 많이 사용되며 정확한 치수가 있어야 동작하는 모델링이다. 볼트를 끼고 베어링을 끼고 조이고 닦고 기름치고 하는 분야다. 심미적으로 접근하는 모델링은 3D 그래픽 디자인과 같이 수치보다는 보이는 것이 중요할 때 하는 모델링이다. 이 둘은 사용하는 소프트웨어도 다르다. 물론 심미적으로 잘 보이면서 수치적으로도 모델링해야 하는 것이 맞기에 둘을 완벽히 분리할 수는 없지만 이 글에선 심미적으로 접근하는 모델링에 관해 이야기를 할 것이다. 특히 현실에 있는 물체를 컴퓨터 데이터로 옮기고자 했던 과거의 시도부터 AI 기술이 적용된 기술까지 직접 적용해보며 어디까지 발전했는지 살펴보고자 한다.


게임 개발에 사용할 나무를 모델링한다고 생각해보자. 어떻게 해야 할까? 일단 나무를 수치적으로 모델링하는 것은 확실히 아닌 것 같다. 나무에 구멍 내고 뭔가를 끼울 생각이 아닌 이상 그럴 필요는 없다. 심미적으로 나무처럼 보여야 한다. 일단 줄기를 만들고 거기에서 뻗어 나오는 나뭇가지들을 수식으로 표현해 랜덤으로 나무처럼 보이는 것들을 생성할 수 있겠다. 아니면 3D 모델링 소프트웨어에서 점토를 주물럭 거리는 것처럼 나무와 같이 만들 수도 있겠다. 표면은 그래픽 디자이너가 그려야 한다. 요즘엔 이 마저도 그려주는 AI가 있다. 애니웨이, 너무 많은 수고가 든다. 이 수고를 덜 수 있을까? 아! 밖에 있는 나무의 사진을 여러 장 찍어서 뭔지 모르겠지만 수학적으로 모델링을 할 수 있지 않을까?라는 생각을 누군가 했고, 여기서 포토그래매트리가 시작된다.


시장에서 누군가는 항상 사람이 하던 것을 뭔가로 자동화한다던가 대체를 하는 노력을 한다. 예전에도 그런 노력이 있었고, 요즘엔 AI가 이런 노력에 엔진 역할을 하고 있다. 예전부터 모델링을 자동으로, 그리고 더 정확하게 하고자 하는 노력이 있었고 사진을 찍어 3D 모델링을 자동화하는 분야인 포토그래매트리가 생겼다. 여러 각도에서 여러 장 찍은 사진들을 바탕으로 사진 내의 특징점들을 추출해 사진을 찍었던 위치를 역으로 계산하고 서로 다른 사진에서 동일하게 발견된 특징점들의 위치를 계산해 3D 좌표로 나타낸다. 말이 어려운데, 사진을 기반으로 물체의 3D 좌표를 계산한다는 것이다. 물체 자체가 어떤 각도에서 봐도 똑같은 색을 낸다면 쉬운 문제가 되지만 안타깝게도 똑같은 물체라고 하더라도 빛이 어떻게 비치는지, 어떤 각도에서 물체를 바라보는지에 따라 색이 달라진다. 이 점이 포토그래매트리를 아주 어렵게 만든다. 포토그래매트리를 잘하기 위해선 물체를 찍는 환경을 잘 제어하는 것이 중요하고, 빛을 반사해버리는 물체의 경우 반사광을 어떻게든 줄이기 위해 편광필름을 사용하기도 한다. 배경은 계산에서 제외하기 위해 검은색 천이나 흰색 천을 배경에 사용하기도 한다. 애플에서도 오브젝트 캡처라는 이름으로 사진을 통해 3D 모델을 추출하는 기술을 공개했다. 무료로 사용할 수 있고 맥에서 동작한다. 이 글의 뒤에서 AI 기술과 비교할 포토그래매트리 소프트웨어로 애플의 오브젝트 캡처와 앨리스 비전의 메쉬룸을 사용했다.


이렇게 빛이 어떻게 비치는지, 어디서 바라보는지에 따라 달라지는 물체로 인해 포토그래매트리는 다이나믹한 문제가 된다. 다이나믹한 문제는 똑같은 수식으로는 풀기 어렵다. 여기서 AI가 등장한다. 여러 사진으로 해당 장면의 정보를 알아내기 위한 도구로 AI를 사용하기 시작했다. 먼저 3D 그래픽 얘기를 잠깐 해야겠다. 3D 그래픽 씬의 카메라를 통해 렌더링을 한다면 하나의 렌더링 된 이미지를 얻게 된다. 반대로 이미지를 보고 3D 그래픽 씬이 어떻게 생겼는지 알아내는 것을 렌더링의 반대인 인버스 렌더링이라고 한다. 인버스 렌더링을 해낸다면 포토그래매트리의 목적을 달성할 수 있다. 하지만 인버스 렌더링은 사진만으로 해당 장면의 빛, 물체의 모양과 텍스쳐, 배경을 알아내야 하기 때문에 아주 어려운 작업이다. 어려운 작업에는 역시 AI가 등장한다. 뉴럴 인버스 렌더링이라는 연구 분야가 있으며 그중 좋은 성과를 보이고 있는 NeRF(Neural Radiance Fields)가 있다. 논문 리뷰를 할 글은 아니니 간단하게 이야기하면 여러 각도에서 찍은 사진을 입력받아 물체의 밀도를 출력하는 모델을 학습시켜 2D 이미지를 3D 모델로 나타내 주는 것이다. 초창기 NeRF는 한 장면에 대해 학습시간이 매우 길었다. 엔비디아에서 Instant NGP를 발표하며 그 시간을 1000배 빠르게 달성했다. 이 글에서는 Instant NGP를 사용하여 NeRF 기술을 구현했다.


현시점에서 현실에 있는 하나의 물체를 컴퓨터 데이터로 옮기는데 가장 적절한 도구를 찾고자 한다. 물론 나는 물체 하나만 사용했기 때문에 바로미터로 활용하기엔 매우 어렵겠지만 그냥 흘깃 볼 수 있는 참고 정도는 될 것이라고 생각한다. 나는 현미경의 윗부분을 제거하고 그 위에 부착될 무언가를 만들어야 하는 상황에 봉착했다. 현미경을 측정해 수치적으로 모델링하여 그것을 기반으로 만들 수도 있지만 명색이 쓸데없는 일 하기 전문가다. 여러 포토그래매트리 방법과 AI를 활용한 NeRF를 통해 현미경 몸체를 모델링했고 선보이고자 한다.


내가 모델링할 때 적용한 변수들은 반사광 제거를 위한 배경천(편광필름)의 유무, 카메라를 고정하고 물체를 회전시켰는가, 물체를 고정시키고 카메라를 움직였는가(동영상) 그리고 다양한 소프트웨어이며 정리한 방법들은 아래와 같다. 카메라를 고정시킨 것은 캐논 600D를 사용해 3가지 높이로 총 150장을 찍었고 영상은 아이폰 SE2를 사용해 280장가량의 프레임을 사용했다.



1. 애플 오브젝트 캡처(포토그래매트리)

왼쪽부터 1-a, b, c

카메라를 고정시키고 물체를 회전시킨 것 모두 잘 나왔지만 배경천을 사용한 것이 가장 깔끔하게 결과물이 나왔다. 영상으로 한 것은 판에 구멍이 뚫렸다. 물체를 회전시키며 카메라로 찍은 것이 퀄리티가 훨씬 좋았다.


2. 앨리스비전 메쉬룸(포토그래매트리)

왼쪽부터 2-a, b, c

배경천을 사용한 것은 하비 덴트가 되었고 배경천을 사용하지 않은 자료는 카메라의 위치를 계산하는 과정에 실패하여 최종 결과물을 제대로 산출하지 못했다. 동영상을 이용해서 한 것은 목이 잘렸다. 처참한 실패다. 앨리스 비전의 메쉬룸이 이런 포토그래매트리에 불리한 것이고 유리한 분야가 있을 수 있으니 별로라고 속단하진 말자. 아무튼 현미경은 쓸 수 없었다.


3. Instant NGP(AI)

왼쪽부터 3-a, b, c

물체를 회전시키고 카메라를 고정한 것은 사용할 수 없다. NeRF의 동작 특성상 안 되는 것이 맞다. 그리고 영상은 퀄리티가 애플의 오브젝트 캡처와 비교할 정도로 퀄리티가 좋았다. 아래 영상은 3-c의 씬을 영상으로 표현한 것이다. 주변 장면까지 너무 잘 표현된 것을 볼 수 있다.


결론은 애플의 오브젝트 캡처 중 배경천을 활용하고 물체를 회전시킨 1-a를 택했다. Instant NGP를 사용할 수도 있었지만 실제로 그 위에 올라가는 것을 모델링해야 했기 때문에 메쉬형태로 출력이 되는 오브젝트 캡처를 사용했다. Instant NGP로만 작업했다면 메쉬로 출력하여 사용하였을 것이다. 속도는 오브젝트 캡처와 Instant NGP는 비슷비슷한 수준이다. 모두 10분 이내로 완료되었다. 다만 맥을 갖고 있다면 오브젝트 캡처가 세팅이 훨씬 간단하다. 일단 오브젝트 캡처를 더 활용하면서 AI 기술의 발전을 지켜보기로 했다.

작가의 이전글 REMOVIO - AI 기반 마스킹(누끼) 앱 개발기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari