iPhone 15 Pro의 Depth Map
2 weeks ago
6
-
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 촬영 이미지를 효율적으로 활용할 수 있는 가능성을 보여줌
-
Homepage
-
개발자
- iPhone 15 Pro의 Depth Map