2 poin oleh GN⁺ 2025-06-06 | 1 komentar | Bagikan ke WhatsApp
  • iPhone 15 Pro secara default menyimpan gambar dalam format HEIC yang menyertakan depth map
  • File HEIC menyimpan beberapa gambar dan metadata dalam jumlah besar secara bersamaan, dan saat memilih JPEG, depth map, HDR, dan lainnya tidak ikut disertakan
  • Melalui proyek open source HEIC Shenanigans, gambar dan metadata dapat diekstrak dari file HEIC lalu dikonversi ke format EXR
  • Dalam proses konversi, digunakan berbagai standar dan alat yang dipakai industri film/TV seperti OpenEXR, OpenImageIO, OpenColorIO
  • Hasilnya, informasi HDR, SDR, Gain Map, Depth Map dari foto iPhone 15 Pro dapat dipisahkan dan dimanfaatkan dalam format EXR

Latar belakang dukungan depth map di iPhone 15 Pro

  • Sejak 2017, Apple memanfaatkan LiDAR scanner, 3D Time-of-Flight, Structured-Light scanning pada iPhone buatannya untuk menyertakan informasi depth map pada gambar kamera
  • Depth map ini, bersama metadata dan beberapa versi gambar, disimpan dalam format HEIF(HEIC)
  • HEIC adalah format penyimpanan gambar yang efisien dan diadopsi sebagai format gambar default iPhone sejak 2017
  • Jika menggunakan format JPEG, fitur canggih seperti depth map dan HDR tidak dapat digunakan

Contoh pemeriksaan depth map dalam HEIC

  • Finn Jaeger, Head of VFX di rumah produksi film Replayboys yang berbasis di Hamburg, Jerman, membagikan tangkapan layar multi-depth map yang dihasilkan iPhone serta perkembangan proyeknya
  • Proyek HEIC Shenanigans milik Finn Jaeger menyediakan skrip Python (374 baris) untuk mengekstrak gambar individual dan metadata dari kontainer HEIC lalu mengonversinya menjadi file EXR

Informasi lingkungan pengembangan

  • Workstation yang digunakan berjalan dengan Ryzen 9 9950X CPU 16-core, RAM DDR5 96GB, SSD NVMe 4TB, motherboard ASRock X870E Nova 90, serta Ubuntu 24 LTS(WLS2) di atas Windows 11 Pro
  • Windows dipakai sebagai lingkungan utama, termasuk karena penggunaan Nvidia GTX 1080 dan alasan kompatibilitas sebagian perangkat lunak

Persiapan alat dan pustaka utama

  • Diperlukan lingkungan Python 3.12.3 serta instalasi CLI lain dan pustaka untuk konversi/pemrosesan gambar
  • exiftool berperan penting dalam dukungan HEIC, dan versi terbaru bisa mencakup lebih banyak fitur serta perbaikan bug
  • jc(JSON Convert) mengubah hasil output CLI menjadi JSON sehingga meningkatkan kegunaan pipeline
  • Repositori HEIC Shenanigans di-clone lalu dependensinya dipasang dalam virtual environment Python
  • Gambar EXR akhir dapat diperiksa dengan viewer DJV

Demo konversi dan gambar contoh

  • Digunakan sampel gambar HEIC yang dipotret dengan iPhone 15 Pro di Mumbai, India, oleh Joel Joseph, seorang spesialis produk ArcGIS

Konversi HEIC → EXR dan workflow

  • Academy Software Foundation memimpin proyek open source dan standar yang digunakan dalam film/TV/digital post-production
  • Di antara proyeknya, OpenEXR adalah format gambar high dynamic range(HDR) yang dikembangkan pada 1999 di bawah kepemimpinan ILM, di-open-source-kan pada 2003, dan digunakan dalam efek visual serta rendering 3D

Langkah-langkah rinci konversi EXR

  • Skrip heic_to_exr.py dari heic_shenanigans digunakan untuk mengonversi gambar HEIC input menjadi file EXR
  • Hasil konversi(EXR) berukuran 468MB dan memuat berbagai informasi gambar dan map dalam satu file

Pemanfaatan skrip oiiotool

  • Ekstraksi ukuran gambar
  • Konversi ruang warna dan gamma gambar sRGB dari Linear P3 → ACEScg
  • Menggunakan file konfigurasi OpenColorIO(OCIO) untuk menjalankan profil warna, konversi color space, dan sebagainya
  • Mengonversi HDR Gain Map dari Rec709 ke Linear dan memperluas kanal Y → RGB
  • Mengekstrak nilai headroom dari Gain Map lalu menerapkan skala kebalikannya
  • Gambar dasar HDR dibuat melalui operasi perkalian dengan Gain Map
  • Mengekstrak kanal Y dari depth map lalu menyimpannya dalam format EXR
  • Pada tahap akhir, setiap kanal yang dibuat(RGB, SDR, Gain Map, Depth Map) ditambahkan sebagai kanal terpisah di dalam file EXR

Susunan kanal di dalam EXR

  • EXR menyimpan informasi berikut per kanal
    • RGB dari gambar dasar HDR
    • Kanal SDR(disimpan terpisah)
    • Gain Map
    • Depth Map
  • Jika ada layer matte, itu juga dapat ikut disertakan

Pemanfaatan dan catatan referensi

  • Melalui proses ini, informasi gabungan seperti depth dan HDR dari gambar yang dipotret dengan iPhone 15 Pro dapat dipisahkan dan dimanfaatkan dalam format profesional(EXR)
  • Ini menunjukkan potensi untuk memanfaatkan gambar hasil pemotretan iPhone secara efisien di berbagai pipeline data seperti machine learning, rendering 3D, film, dan VFX

1 komentar

 
GN⁺ 2025-06-06
Komentar Hacker News
  • Seperti yang sudah disebut orang lain, saya ingin menekankan bahwa LIDAR di iPhone memiliki resolusi yang terlalu rendah untuk dipakai sebagai sumber data utama depth map. Pada praktiknya, iPhone menggunakan sekitar empat metode ekstraksi data kedalaman tergantung model dan kamera yang dipakai. Awalnya ini hanya diterapkan pada foto mode potret, tetapi iPhone terbaru juga merekam depth map pada foto biasa.

    1. Metode pertama adalah memotret secara bersamaan dengan dua kamera belakang lalu memperkirakan depth map dari parallax. Ini pertama kali diterapkan pada iPhone 7 Plus, dan punya keterbatasan karena hanya berlaku pada tampilan lensa dengan sudut pandang sempit.
    2. Jika hanya ada satu kamera seperti pada iPhone XR, perangkat menggunakan focus pixel di sensor untuk memperkirakan kedalaman secara kasar, lalu memperbaikinya dengan machine learning (artikel terkait).
    3. Pada perangkat seperti iPhone SE yang bahkan tidak punya focus pixel, depth map diprediksi hanya dengan machine learning, tetapi hasilnya paling lemah korelasinya dengan kondisi nyata. Bahkan memotret foto dari sebuah foto pun bisa mengecohnya (artikel terkait).
    4. Selfie pada iPhone yang memiliki FaceID menggunakan pemindaian 3D dari kamera TrueDepth, dengan ciri kualitas rendah dan agak buram.
      Pemisahan subjek yang disebut di artikel, serta gambar bantu untuk mengenali kacamata, rambut, kulit, dan sebagainya (portrait effect matte), adalah hasil machine learning.
      Saya sendiri pernah membuat aplikasi filter kreatif menggunakan depth map dan matte image dari mode potret. Aplikasinya sudah tidak ada sekarang, tetapi itu pengalaman yang sangat menyenangkan. Ide artistik yang bisa memanfaatkan depth map benar-benar tidak ada habisnya.
    • Pada iPhone terbaru, saat subjek (manusia atau hewan peliharaan) terdeteksi, depth map juga direkam otomatis bahkan dalam mode foto utama. Saya dulu pernah mengembangkan aplikasi filter kreatif memakai depth map dan portrait effect matte, jadi saya penasaran apakah nama aplikasinya dan video terkaitnya masih bisa dilihat.
      Sebagai referensi, saya pernah membuat alat utilitas bernama Matte Viewer, tetapi ini hanya untuk melihat matte dan depth map (aplikasi Matte Viewer).

    • Saya ingin menekankan bahwa LIDAR adalah hardware yang dioptimalkan untuk autofocus (AF) dan fokus cepat di kondisi cahaya rendah, bukan untuk menghasilkan depth map beresolusi penuh.

    • Metode ketiga itu cerita 5 tahun lalu, jadi saya sarankan melihat open source terbaru terkait estimasi kedalaman berbasis machine learning (ml-depth-pro).

    • Saya juga penasaran apakah metode TrueDepth keempat bisa dipakai di aplikasi keamanan untuk deteksi liveness.

  • Artikelnya benar-benar menarik. Menarik melihat bagaimana data depth map seperti ini pada akhirnya dipakai untuk menghasilkan blur latar belakang (depth of field, atau yang biasa disebut faux bokeh).
    Sangat mengagumkan bahwa setelah foto diambil, fokus dan area depth of field, yakni aperture, masih bisa disesuaikan belakangan. Tetapi saya pribadi kurang suka bokeh buatan. Hasilnya terlihat palsu, sampai terasa lebih buruk daripada hasil Photoshop.
    Saya juga melihat ada beberapa typo pada format file di artikel (HEIC 14 kali, HIEC 3 kali).

    • Saya hanya ingin menyampaikan secara singkat bahwa typo format file itu sudah diperbaiki, terima kasih sudah menunjukkannya.

    • Menurut saya alasan bokeh buatan terasa kurang meyakinkan adalah karena ia tidak merefleksikan optik dan matematika aperture secara akurat, dan dari sudut pandang produk ia diimplementasikan sebagai pendekatan kasar yang cukup memuaskan bagi 80% pengguna. Rasanya aplikasi kamera yang lebih baik bisa dibuat dengan menerapkan matematika aperture yang benar, tetapi saya penasaran apakah konsumen akan benar-benar melihat bedanya dan mau membayar untuk itu.

  • Depth map dan semantic map menyenangkan bahkan hanya untuk dilihat, dan jika diimpor ke aplikasi seperti TouchDesigner, Blender, atau Cinema 4D, Anda bisa menerapkan berbagai efek kedalaman ke foto.
    Apple sendiri juga memakai data ini untuk pascapemrosesan foto.
    Dulu data ini hanya ditangkap dalam mode potret, tetapi sekarang otomatis direkam juga dalam pemotretan biasa ketika subjek (manusia, hewan peliharaan) terdeteksi.
    Saya juga pengembang aplikasi dan alat foto, dan Matte Viewer buatan saya memang difokuskan untuk memeriksa dan mengekspor depth map serta portrait matte image (info alat Heliographe, aplikasi Matte Viewer).

  • Saya berharap suatu hari nanti semua smartphone akan mendukung gambar 3D berbasis Gaussian splatting secara bawaan tanpa perlu sensor mahal. Komputasinya memang besar, tetapi menurut saya itu lebih praktis karena menghindari biaya dan bobot tambahan dari sensor ekstra.

  • Mungkin saya melewatkan sesuatu, tetapi saya penasaran apa hubungan pembahasan HDR gain map yang cukup panjang di artikel dengan depth map.
    Saya tidak suka tampilan HDR iPhone yang terlalu agresif mengatur kecerahan otomatis, jadi saya menghapus HDR gain map dari foto saya secara manual.
    HDR zaman dulu menurut saya lebih baik karena menggabungkan tiga foto dengan eksposur berbeda hanya untuk memperbaiki area yang kurang, dan tidak menanamkan atribut spesifik bernama "HDR" ke hasil akhirnya.

    • Sebagai catatan, Anda bisa mematikan fitur "Tingkatkan Kecerahan HDR Layar" di pengaturan foto iPhone.

    • Saat membaca artikelnya saya juga berpikir sama: pengantar tentang depth map bagus, tetapi setelah pertengahan pembahasannya HDR gain map justru jadi pusat perhatian sehingga kesannya agak melebar. Secara keseluruhan bagus, tetapi alur thread-nya terasa sedikit berantakan.

  • LIDAR sebenarnya memiliki resolusi yang jauh lebih rendah daripada depth map yang ditunjukkan di artikel.
    Depth map yang sesungguhnya merupakan hasil gabungan data LIDAR dan kamera.

    • Saya juga memahami bahwa LIDAR dipakai untuk true focus, sedangkan depth map yang sebenarnya dihitung dari parallax multi-kamera.
  • Saya penasaran apakah Apple juga menerapkan teknologi ini pada fitur "buat stiker" mereka, saat menekan lama subjek foto untuk mengekstraknya sebagai stiker atau menyalinnya ke foto lain.

    • Fitur itu jelas murni berbasis machine learning, karena tetap bekerja bahkan untuk foto yang tidak diambil dengan iPhone.
  • Saya penasaran apakah depth map bisa dipakai untuk membuat stereogram atau SIRDS (single-image random dot stereograms). Dulu saya punya kenangan membuat stereogram dari gambar grayscale.

    • Sebenarnya didukung. UI ini hanya ada di aplikasi Photos di VisionOS, tetapi jika sebuah foto di album punya depth map atau resolusinya tinggi, foto itu bisa dikonversi menjadi ruang 3D (Spatial Format) dengan ML.
      Informasi sudut pandang dipetakan dari data EXIF agar skala di VR sesuai dengan ukuran fisik adegan aslinya.
      Secara pribadi, fitur ini saja sudah cukup membuat pembelian Vision Pro seharga $4000 terasa sepadan. Melihat foto-foto lama yang saya ambil dengan Nikon D7 di VR dalam ukuran yang tepat dan dalam 3D memicu nostalgia yang sangat dalam.
      Sangat disayangkan Apple tidak lebih menonjolkan ini sebagai fitur utama Vision Pro. Ini benar-benar luar biasa.
  • Reality Composer untuk iOS hanya memungkinkan object capture pada perangkat yang mendukung LIDAR, dan pada perangkat tanpa LIDAR tidak ada cadangan photogrammetry. Saya pernah kecewa saat ingin mengerjakan proyek 3D karena hal ini.

    • Untuk pekerjaan pemindaian 3D, aplikasi Heges adalah yang paling sukses bagi saya. LIDAR efektif untuk objek besar seperti mobil, sedangkan kamera kedalaman Face ID berguna untuk objek kecil.
      Saya juga mencoba pemindaian 3D kecil dengan pemindai Creality Ferret SE, yang saya beli sekitar $100 di TikTok, dan hasilnya jauh lebih bagus dari yang saya harapkan.

    • Polycam bekerja dengan photogrammetry sebagai pengganti pada perangkat yang tidak mendukung LIDAR.
      Saya juga pernah mendapat rekomendasi Canvas (perlu LIDAR terpisah) dan Scaniverse (LIDAR opsional).

  • Setiap kali melihat judulnya, entah kenapa saya selalu salah baca di kepala sebagai "death maps", dan itu terasa agak lucu.