1P by GN⁺ 2일전 | ★ favorite | 댓글 1개
  • 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은 일반 사진에서도 깊이 맵을 기록.

    1. 첫 번째 방식은 후면에 두 개의 카메라로 동시에 촬영하여 시차(parallax)로 깊이 맵을 추정하는 점. iPhone 7 Plus가 처음 적용했고, 좁은 화각의 렌즈 뷰에 국한되는 제한점 보유
    2. iPhone XR처럼 하나의 카메라만 있을 때는 센서 내 포커스 픽셀을 이용해 대략적인 깊이를 파악하고, 머신러닝으로 이를 보정 (관련 글)
    3. 포커스 픽셀마저 없는 iPhone SE 등에서는 머신러닝만으로 깊이 맵을 예측하지만 실제와 관련성이 가장 낮은 결과. 사진의 사진을 찍어도 속을 수 있음 (관련 글)
    4. 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의 핵심 기능으로 강조하지 않는 점이 아쉬움. 정말 대단한 기능임
  • 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’라고 읽히는 착각이 들어서 묘한 재미