iPhone 15 Pro의 Depth Map
(tech.marksblogg.com)- iPhone 15 Pro는 깊이 맵을 포함하는 HEIC 포맷의 이미지를 기본적으로 저장함
- HEIC 파일에는 여러 이미지와 방대한 메타데이터가 함께 저장되며, JPEG 선택 시에는 깊이 맵, HDR 등이 포함되지 않음
- 오픈 소스 프로젝트 HEIC Shenanigans를 통해 HEIC 파일에서 이미지와 메타데이터를 추출하고 EXR 포맷으로 변환 가능함
- 변환 과정에서 OpenEXR, OpenImageIO, OpenColorIO 등 영화/TV 업계에서 사용하는 다양한 표준과 도구를 활용함
- 결과적으로 iPhone 15 Pro 사진의 HDR, SDR, Gain Map, Depth Map 정보를 EXR 포맷으로 분리·활용 가능함
iPhone 15 Pro 깊이 맵 지원 배경
- 2017년부터 Apple은 자체 iPhone에 LiDAR 스캐너, 3D Time-of-Flight, Structured-Light 스캐닝을 활용하여 깊이 맵 정보를 카메라 이미지에 포함시킴
- 이러한 깊이 맵과 메타데이터, 여러 버전의 이미지는 HEIF(HEIC) 포맷에 저장됨
- HEIC는 효율적인 이미지 저장 포맷으로, 2017년 이후 iPhone 기본 이미지 포맷으로 채택됨
- JPEG 포맷을 사용할 시에는 깊이 맵 및 HDR 등의 첨단 기능을 사용할 수 없음
HEIC에서의 깊이 맵 확인 사례
- 독일 함부르크 소재 영화 제작사 Replayboys의 VFX 책임자 Finn Jaeger가 iPhone에서 생성된 다중 깊이 맵 스크린샷과 프로젝트 진행 현황을 공유함
- Finn Jaeger의 HEIC Shenanigans 프로젝트는 HEIC 컨테이너에서 개별 이미지와 메타데이터를 추출해 EXR 파일로 변환하는 Python 스크립트(374라인)를 제공함
개발 환경 정보
- 사용된 워크스테이션은 Ryzen 9 9950X 16코어 CPU, 96GB DDR5 RAM, 4TB NVMe SSD, ASRock X870E Nova 90 메인보드, Windows 11 Pro 환경에서 Ubuntu 24 LTS(WLS2)로 실행됨
- Nvidia GTX 1080 사용 등으로 Windows가 메인 환경이고, 일부 소프트웨어 호환 이유에서 선택함
주요 도구 및 라이브러리 준비
- Python 3.12.3 환경 및 기타 CLI, 이미지 변환·처리 라이브러리 설치 필요
- exiftool은 HEIC 지원에 중요한 역할을 하며, 최신 버전 사용 시 더 많은 기능 및 버그 수정 포함 가능
- jc(JSON Convert)는 CLI 출력 결과를 JSON으로 변환하여 파이프라인 활용성을 높임
- HEIC Shenanigans 레포지토리를 클론하여 Python 가상환경에서 의존성을 설치함
- 최종 EXR 이미지는 DJV 뷰어로 확인 가능함
변환 데모 및 예시 이미지
- ArcGIS 제품군 전문가인 Joel Joseph가 인도 뭄바이에서 iPhone 15 Pro로 촬영한 HEIC 이미지 샘플을 활용함
HEIC → EXR 변환 및 워크플로우
- Academy Software Foundation은 영화/TV/디지털 포스트 프로덕션에서 쓰이는 오픈소스 프로젝트와 표준을 리드함
- 소속 프로젝트 중 OpenEXR는 ILM 주도로 1999년 개발된 고다이내믹 레인지(HDR) 이미지 포맷으로, 2003년 오픈소스화되었으며 시각 효과·3D 렌더링 등에서 활용됨
EXR 변환 구체적인 단계
- heic_shenanigans의 heic_to_exr.py 스크립트를 사용해 입력 HEIC 이미지를 EXR 파일로 변환함
- 변환 결과물(EXR)은 468MB 용량이며 다양한 이미지·맵 정보를 하나의 파일에 포함함
oiiotool 스크립트 활용
- 이미지 크기 추출
- sRGB 이미지를 Linear P3 → ACEScg로 색공간과 감마를 변환
- OpenColorIO(OCIO) 설정 파일을 활용하여 색상 프로파일, 컬러스페이스 변환 등을 진행함
- HDR Gain Map을 Rec709로부터 Linear로 변환 및 Y 채널 → RGB로 확장
- Gain Map의 headroom 값 추출 및 역수 스케일 적용
- HDR 베이스 이미지는 Gain Map과 곱셈 연산을 통해 생성
- 깊이 맵(Depth Map) 의 Y채널을 추출하고, EXR 포맷으로 저장
- 최종 단계에서 만들어진 각 채널(RGB, SDR, Gain Map, Depth Map)을 EXR 파일 내부 별도의 채널로 추가함
EXR 내부 채널 구성
- EXR에는 아래와 같은 정보가 채널별로 저장됨
- HDR base 이미지의 RGB
- SDR 채널(별도 저장)
- Gain Map
- Depth Map
- 매트(Matte) 레이어가 있을 경우 추가적으로 포함 가능
활용 및 참고 사항
- 이 프로세스를 통해 iPhone 15 Pro에서 촬영한 이미지의 깊이·HDR 등 복합 정보를 전문 포맷(EXR)으로 분리·활용 가능함
- 머신러닝, 3D 렌더링, 영화·VFX 등 여러 데이터 파이프라인에서 iPhone 촬영 이미지를 효율적으로 활용할 수 있는 가능성을 보여줌
Hacker News 의견
-
다른 분들이 언급한 것처럼 iPhone의 LIDAR는 깊이 맵의 주요 데이터 소스로 쓰기에는 해상도가 너무 낮은 편임을 강조하고 싶음. 실제로 iPhone은 모델이나 사용하는 카메라에 따라 네 가지 정도의 깊이 데이터 추출 방식을 사용. 원래는 인물 모드 사진에서만 적용됐지만, 최근 iPhone은 일반 사진에서도 깊이 맵을 기록.
- 첫 번째 방식은 후면에 두 개의 카메라로 동시에 촬영하여 시차(parallax)로 깊이 맵을 추정하는 점. iPhone 7 Plus가 처음 적용했고, 좁은 화각의 렌즈 뷰에 국한되는 제한점 보유
- iPhone XR처럼 하나의 카메라만 있을 때는 센서 내 포커스 픽셀을 이용해 대략적인 깊이를 파악하고, 머신러닝으로 이를 보정 (관련 글)
- 포커스 픽셀마저 없는 iPhone SE 등에서는 머신러닝만으로 깊이 맵을 예측하지만 실제와 관련성이 가장 낮은 결과. 사진의 사진을 찍어도 속을 수 있음 (관련 글)
- FaceID가 있는 iPhone의 셀피는 TrueDepth 카메라의 3D 스캔을 이용하는 점, 저화질 및 흐릿함이 특징
기사에서 나오는 인물 분리, 안경·머리카락·피부 등 인식용 보조 이미지(포트레이트 효과 매트)는 머신러닝 산출물임.
나 역시 포트레이트의 깊이 맵과 매트 이미지를 활용해 크리에이티브한 필터 앱을 만들어 봤는데, 지금은 없어졌지만 정말 재미있는 경험. 깊이 맵을 활용한 예술적 아이디어는 무궁무진.
-
최근 iPhone에서는 피사체(사람 또는 반려동물)가 인식될 때 메인 사진 모드로도 자동 깊이 맵 기록. 예전에 깊이 맵과 포트레이트 효과 매트로 크리에이티브 필터 앱을 개발했던 경험이 있는데, 혹시 그 앱 이름과 관련 영상을 볼 수 있는지 궁금.
참고로 Matte Viewer라는 유틸리티 툴을 만든 적 있는데, 이건 단순히 매트와 깊이 맵을 보는 용도임 (Matte Viewer 앱) -
LIDAR는 풀 해상도의 깊이 맵 생성을 위해서라기보다는 초점 맞추기(AF)와 저조도 환경에서 빠른 포커싱용으로 최적화된 하드웨어임을 강조하고 싶음
-
세 번째 방식은 5년 전 이야기이니, 최근 머신러닝 기반 깊이 추정 관련 오픈소스(ml-depth-pro) 참고 권장
-
네 번째 TrueDepth 방식이 보안 앱에서 liveness(실제 사람 구분) 검출에 사용할 수 있는지도 궁금
-
정말 흥미로운 기사였음. 이런 깊이 맵 데이터가 결국 배경 흐림(피사계 심도, 이른바 faux bokeh)을 구현하는 데 쓰이는 게 인상적.
사진을 찍은 뒤에도 포커스와 심도 영역, 즉 조리개를 나중에 조정할 수 있다는 점이 참 신기하지만, 인공적인 보케는 그다지 마음에 안 드는 편. 가짜처럼 보여서 포토샵 결과물도 못하게 느껴짐.
그리고 기사 내 파일 포맷 오타(HEIC 14건, HIEC 3건)도 몇 군데 눈에 띔-
파일 포맷 오타 지적해줘서 수정했다는 점만 간단히 전하고 싶음
-
인공 보케가 어설픈 이유는 광학 및 조리개 수학을 정확히 반영하지 못하고, 제품적 관점에서는 80%의 사용자를 만족시키는 수준에서 근사치로 구현했기 때문이라고 생각. 올바른 조리개 수학을 적용해서 더 나은 카메라 앱을 만들 수 있을 것 같은데, 소비자들이 차이를 알아보고 굳이 결제할까 궁금함
-
-
깊이 맵과 의미 분할(semantic map)은 보는 것만으로도 재미있고, TouchDesigner, Blender, Cinema 4D 등 앱에 불러오면 다양한 깊이 효과를 사진에 적용 가능.
실제로 Apple도 사진 후처리(사진 보정 등)에 이 데이터들을 활용.
이전에는 인물 모드에서만 캡처됐지만, 최근에는 피사체(사람, 반려동물) 감지 시 일반 촬영에서도 자동 기록.
나도 사진 앱 및 툴 개발자인데, 내가 만든 Matte Viewer는 깊이 맵과 포트레이트 매트 이미지를 확인 및 내보내기에 특화 (Heliographe 툴 정보, Matte Viewer 앱) -
언젠가는 모든 스마트폰이 비싼 센서 없이도 Gaussian splatting 기반의 3D 이미지를 기본 지원할 날을 기대. 계산량은 크지만 센서 추가 비용과 중량을 피할 수 있다는 점에서 더 실용적이라고 생각함
-
뭔가 빠뜨린 게 있을 수 있지만, 기사에서 HDR 게인 맵 이야기를 상당히 길게 다루는 점이 깊이 맵과 어떤 관련이 있는지 궁금.
나는 iPhone의 HDR 디스플레이(자동 밝기 과도 조정)를 싫어해서 내 사진은 수동으로 HDR 게인 맵을 제거.
예전 HDR은 3장의 다양한 노출 사진을 합쳐서 부족한 영역만 보정하는 거였고, 결과물에 'HDR'이라는 구체적 속성을 담지 않았다는 점이 더 좋았음-
참고로 iPhone의 사진 설정에서 ‘화면 HDR 밝기 강화’ 기능을 끌 수 있다는 정보 추가
-
나도 기사를 읽으면서 같은 생각, 깊이 맵 개요는 좋았는데 중반 이후엔 HDR 게인 맵이 중심이 되어 약간 내용이 분산된 인상. 전반적으로 좋았지만 스레드 흐름이 조금 산만하게 느껴짐
-
-
LIDAR는 실제로 기사에서 보여준 깊이 맵보다 훨씬 해상도가 낮음.
실제 깊이 맵은 LIDAR와 카메라 데이터를 합쳐 합성함- 나 역시 LIDAR는 실제 맞춤 초점(포커싱)을 위해 쓰이고, 진짜 깊이 맵은 멀티 카메라 시차로 계산된다고 이해함
-
혹시 Apple이 ‘스티커 생성’ 기능(사진 피사체 꾹 눌러 스티커 추출 또는 다른 사진에 복사 적용)에 이 기술을 응용하는지도 궁금함
- 그 기능은 순수 머신러닝 기반이 분명함. 왜냐하면 iPhone으로 찍은 사진이 아니어도 작동하기 때문
-
깊이 맵을 사용해 스테레오그램이나 SIRDS(자동 무작위 점 스테레오그램) 생성이 가능한지 궁금. 예전에 회색조 이미지로 스테레오그램 만들던 추억 있음
- 실제로 지원함. 이 UI는 VisionOS Photos 앱에만 존재하지만, 앨범 내 사진에 깊이 맵이 있거나 고해상도라면 ML로 3D 공간(Spatial Format) 변환 가능.
EXIF 정보로 화각 정보 매핑해 원본 장면의 물리적 크기에 맞춰 VR에서 스케일을 맞춰줌.
개인적으로 이 기능 하나만으로 $4000을 들여 Vision Pro를 산 보람 충분. 옛날 Nikon D7로 찍었던 사진을 VR에서 올바른 크기와 3D로 보는 경험은 아주 깊은 향수를 자극.
Apple이 이걸 Vision Pro의 핵심 기능으로 강조하지 않는 점이 아쉬움. 정말 대단한 기능임
- 실제로 지원함. 이 UI는 VisionOS Photos 앱에만 존재하지만, 앨범 내 사진에 깊이 맵이 있거나 고해상도라면 ML로 3D 공간(Spatial Format) 변환 가능.
-
iOS용 Reality Composer는 LIDAR 지원 기기에서만 오브젝트 캡처가 가능한데, LIDAR 비탑재 기기에선 photogrammetry(합성 3D 재구성) 백업 기능이 없음. 3D 작업을 하려다 아쉬웠던 경험 공유
-
3D 스캐닝 작업은 Heges 앱이 가장 성공적이었음. LIDAR는 자동차 같은 큰 물체에 효과적, Face ID 깊이 카메라는 작은 오브젝트에 유용.
Creality Ferret SE 스캐너(틱톡에서 약 $100에 구입)를 사용해 소형 3D 스캔 시도, 기대 이상으로 훌륭했음 -
Polycam은 LIDAR 미지원 기기에서 photogrammetry로 대체 동작함.
Canvas(별도 LIDAR 필요), Scaniverse(LIDAR 선택)도 추천받은 경험 있음
-
-
제목을 볼 때마다 머릿속에서 ‘death maps’라고 읽히는 착각이 들어서 묘한 재미