AI · AI 이미지
뎁스맵이란? AI는 사진에서 어떻게 만들까?
핵심 답변
뎁스맵(깊이 맵)은 색 대신 각 픽셀의 밝기로 카메라까지의 거리를 나타내는 흑백 이미지입니다. Depth Anything 같은 AI 모델은 형태, 원근, 가려짐을 인식해 사진 한 장에서 이를 추정합니다. 대부분은 실제 미터 단위가 아니라 상대 깊이(어느 부분이 더 가까운지)를 주는데, 3D 시차 효과, 배경 블러, ControlNet에는 이 정도로 충분합니다.
깊이 맵 생성 열기그림으로 보는 뎁스맵
건물 앞에 사람이 서 있는 사진을 떠올려 보세요. 이 사진의 뎁스맵은 가로세로 크기가 같지만, 각 픽셀에는 그 지점이 카메라에서 얼마나 먼지를 나타내는 숫자 하나가 들어 있습니다. 이미지로 보면 사람은 한 가지 밝기, 건물은 다른 밝기, 하늘은 가장 극단적인 밝기로 나타납니다.
어떤 밝기가 가까움을 뜻하는지는 하나로 정해져 있지 않습니다. 사용하는 도구마다 규칙을 확인하세요.
| 표기 방식 | 가까운 물체 | 먼 물체 | 주로 만나는 곳 |
|---|---|---|---|
| 역깊이(시차와 유사) | 밝게 | 어둡게 | 대부분의 AI 깊이 추정기, ControlNet 뎁스맵 |
| 거리(z-depth) | 어둡게 | 밝게 | 3D 렌더 패스, 안개 효과, 일부 게임 엔진 |
| 절대 깊이(metric depth) | 작은 숫자(미터) | 큰 숫자 | 로보틱스, AR, LiDAR, 16비트 또는 float 파일 |
| 컬러 맵(Turbo, Magma) | 팔레트의 한쪽 끝 | 반대쪽 끝 | 시각적 미리보기 전용, 추가 처리에는 부적합 |
3D 효과가 거꾸로 보이거나 배경이 앞으로 튀어나온다면 맵이 반대 표기 방식인 것입니다. 이미지를 반전(흰색을 검은색으로)하면 대개 해결됩니다.
AI는 사진 한 장에서 어떻게 깊이를 추정할까
카메라가 두 개인 휴대폰이나 LiDAR 센서는 깊이를 측정할 수 있습니다. 평범한 사진 한 장으로는 불가능합니다. 같은 사진이 가까이서 찍은 작은 장난감 자동차일 수도, 멀리 있는 실제 자동차일 수도 있기 때문입니다. 단안 깊이 추정(monocular depth estimation)은 사람처럼 학습된 단서를 이용해 이 문제를 풉니다.
- 원근: 도로나 철로처럼 평행한 선은 멀리서 만납니다.
- 알려진 크기: 얼굴, 문, 자동차에는 일반적인 크기가 있어서 이미지 속 크기가 거리를 짐작하게 합니다.
- 가려짐: 다른 물체를 덮고 있는 물체가 앞에 있습니다.
- 질감 밀도와 흐림: 풀과 타일은 멀수록 더 촘촘해 보이고 색은 더 옅어 보입니다.
- 음영과 초점 블러: 표면 형태에 대한 힌트를 줍니다.
깊이 신경망은 정답을 알거나 추정한 수백만 장의 이미지로 학습합니다. 이 글을 쓰는 시점에 많은 도구가 쓰는 Depth Anything V2는 먼저 정밀한 합성(렌더링) 이미지로 학습한 뒤, 더 큰 교사 모델이 레이블을 단 방대한 실제 사진으로 학습했습니다. 개발진이 합성 데이터를 선택한 이유 중 하나는 실제 깊이 센서가 투명하거나 반사하는 표면을 제대로 측정하지 못해서, 사진이 어려워지는 바로 그 부분의 실제 레이블에 노이즈가 많기 때문입니다.
모델은 이미지를 줄인 사본(Depth Anything V2는 짧은 변을 518픽셀로 맞춰 학습)에서 작동해 픽셀당 값 하나를 출력합니다. 도구는 그 값을 사진 크기로 되돌리고, 8비트 이미지용으로 0~255 범위에 맞춥니다.
상대 깊이와 절대 깊이
범용 깊이 모델은 대부분 상대 깊이를 예측합니다. 예를 들어 Depth Anything V2의 기본 모델들은 아핀 불변(affine-invariant) 역깊이를 예측합니다. 쉽게 말해 순서와 비율은 의미가 있지만, 알 수 없는 스케일과 오프셋이 있습니다. 맵은 사람이 건물 앞에 있다는 것은 알려 주지만, 사람이 3.2미터 떨어져 있다고는 알려 주지 못합니다.
이런 설계는 카메라와 단위가 서로 다른 많은 데이터셋으로 학습한 데서 나왔습니다. MiDaS 연구는 스케일을 무시하는 손실 함수를 쓰면 모델이 모든 데이터셋에서 동시에 학습할 수 있고, 그 결과 인터넷에서 무작위로 가져온 사진에서도 훨씬 견고해진다는 것을 보여 주었습니다.
절대 깊이 모델은 미터 단위로 학습시킨 파인튜닝 버전으로, 보통 한 종류의 장면(실내 공간이나 도로 주행)에 맞춰져 있습니다. 측정이나 로보틱스에는 이쪽을 쓰세요. 창작 작업에는 상대 깊이가 알맞습니다. 일반화가 더 잘되고, 효과에는 올바른 순서만 있으면 되기 때문입니다.
뎁스맵으로 할 수 있는 일
| 용도 | 깊이를 쓰는 방식 | 팁 |
|---|---|---|
| 2.5D 시차 영상 | 가상 카메라가 움직일 때 가까운 픽셀이 먼 픽셀보다 더 많이 움직임 | 카메라 이동을 작게 해야 늘어난 가장자리가 눈에 덜 띔 |
| 인물 사진 스타일 블러 | 초점면에서 멀어질수록 블러가 커짐 | 경계를 부드럽게 처리할 것. 머리카락이 배경과 함께 흐려지는 경우가 많음 |
| ControlNet 뎁스 | 맵이 새로 생성하는 이미지의 레이아웃을 이끎 | 가까운 쪽이 밝은 맵을 쓰고, 더 자유롭게 하려면 컨트롤 가중치를 낮춤 |
| 3D와 AR | 픽셀을 메시나 포인트 클라우드로 밀어냄 | 상대 깊이는 형태를 주지만 실제 크기는 주지 않음 |
| 안개, 리라이팅, 합성 | 깊이가 거리 기반 효과의 마스크 역할을 함 | 도구가 지원하면 16비트로 내보낼 것 |
예를 들어 cv.cm의 뎁스맵 도구는 브라우저에서 사진을 흑백 맵(가까운 곳이 밝음)이나 컬러 미리보기로 바꿔 주고, cv.cm의 사진-영상 변환 도구는 같은 종류의 맵으로 정지된 사진 속에서 가상 카메라를 움직입니다. 이 경우 움직이는 것은 카메라이고 피사체는 정지해 있습니다. 시차 효과일 뿐 사람을 움직이게 하는 모델이 아닙니다.
ControlNet은 확산 모델을 가장자리, 포즈, 세그멘테이션, 깊이 같은 조건으로 제어할 수 있음을 보여 주었습니다. 깊이 조건을 쓰면 프롬프트로 스타일, 조명, 재질을 바꾸더라도 구도(전경과 배경의 위치)는 유지됩니다.
AI 깊이 추정이 틀리는 경우
- 유리, 거울, 물: 모델이 반사된 상의 깊이나 유리 뒤에 있는 것의 깊이를 줄 수 있습니다.
- 하늘과 아주 먼 영역: 전부 가장 먼 쪽 끝에 놓여서 그 부분의 시차는 평평합니다.
- 얇은 구조물: 머리카락, 울타리, 나뭇가지, 전선은 모델의 작업 해상도에서 배경에 뭉개집니다.
- 그림, 포스터, 화면: 그림을 찍은 사진에 가짜 3D 깊이가 붙을 수 있습니다. 안의 내용이 풍경처럼 보이기 때문입니다.
- 특이한 시점: 수직으로 내려다본 드론 샷, 접사 사진, 어안 렌즈 이미지는 학습 데이터에 드뭅니다.
- 가까운 곳과 먼 곳의 경계: 맵이 그 부분에서 매끄럽기 때문에 시차 효과가 픽셀을 고무줄처럼 늘어뜨립니다.
더 좋은 뎁스맵을 얻는 법
- 전경, 중경, 배경이 뚜렷한 사진을 고르세요. 벽을 배경으로 얼굴이 화면을 가득 채우는 것처럼 평평한 장면은 깊이 정보가 거의 없습니다.
- 중요한 부분에 강한 반사나 큰 창문이 들어가지 않게 하세요.
- 다음에 쓸 도구가 같은 표기 방식을 읽는지 확인하세요. 밝아야 할 가까운 쪽이 어둡다면 맵을 반전합니다.
- 맵은 사진과 같은 크기, 같은 크롭으로 유지하세요. 다르게 잘렸거나 크기가 바뀐 뎁스맵은 사진과 맞지 않습니다.
- 시차 효과를 적용하기 전에 맵을 살짝 흐리거나 확장하면 가장자리가 찢어지는 현상이 줄어듭니다. 카메라 이동도 완만하게 유지하세요.
자주 묻는 질문
뎁스맵과 노멀 맵은 같은 건가요?
아닙니다. 뎁스맵은 픽셀마다 거리를 저장하고, 노멀 맵은 각 표면이 향하는 방향을 RGB 색으로 저장해 조명 계산에 씁니다. 뎁스맵에서 노멀을 대략 유도할 수는 있지만, 반대로는 스케일을 잃지 않고 만들 수 없습니다.
어떤 사진이든 AI로 뎁스맵을 만들 수 있나요?
네, 단안 모델은 항상 맵을 만들어 냅니다. 다만 품질은 장면에 따라 달라집니다. 가까운 물체와 먼 물체의 층이 뚜렷하면 잘 되고, 유리, 거울, 평평한 벽, 그림을 찍은 사진은 잘 안 됩니다.
뎁스맵과 디스패리티 맵은 무엇이 다른가요?
디스패리티는 스테레오 이미지 두 장 사이에서 한 점이 이동한 정도이며, 가까운 물체일수록 커서 역깊이처럼 동작합니다. 많은 AI 모델이 디스패리티와 비슷한 역깊이를 출력하기 때문에 가까운 물체가 밝게 나타납니다.
시차 영상에서 피사체 가장자리가 왜 늘어나 보이나요?
가상 카메라가 움직이면 원본 사진에서 피사체 뒤에 가려져 있던 배경이 드러납니다. 그 자리에는 픽셀이 없어서 렌더러가 이웃 픽셀을 늘려 채웁니다. 카메라 이동을 줄이고 깊이 경계를 부드럽게 하면 줄어듭니다.
아이폰의 인물 사진 모드도 뎁스맵을 쓰나요?
네. 듀얼 카메라나 깊이 센서가 있는 휴대폰은 깊이 또는 디스패리티 맵을 기록해 배경을 흐리게 하는 데 쓰고, 많은 기종이 머신러닝으로 이를 다듬기도 합니다. 깊이 정보는 이미지와 함께 사진 파일에 저장될 수 있습니다.