2 puan yazan GN⁺ 2025-06-06 | 1 yorum | WhatsApp'ta paylaş
  • iPhone 15 Pro, varsayılan olarak depth map içeren HEIC formatlı görüntüler kaydeder
  • HEIC dosyaları birden fazla görüntüyü ve kapsamlı meta veriyi birlikte saklar; JPEG seçildiğinde depth map, HDR vb. dahil edilmez
  • Açık kaynak proje HEIC Shenanigans ile HEIC dosyalarından görüntü ve meta veri çıkarıp EXR formatına dönüştürmek mümkündür
  • Dönüştürme sürecinde film/TV sektöründe kullanılan OpenEXR, OpenImageIO, OpenColorIO gibi çeşitli standartlar ve araçlardan yararlanılır
  • Sonuç olarak iPhone 15 Pro fotoğraflarındaki HDR, SDR, Gain Map, Depth Map bilgileri EXR formatında ayrıştırılıp kullanılabilir

iPhone 15 Pro’da depth map desteğinin arka planı

  • Apple, 2017’den beri kendi iPhone modellerinde LiDAR tarayıcı, 3D Time-of-Flight, Structured-Light scanning kullanarak kamera görüntülerine depth map bilgisi ekliyor
  • Bu depth map’ler, meta veriler ve görüntülerin farklı sürümleri HEIF (HEIC) formatında saklanıyor
  • HEIC, verimli bir görüntü saklama formatı olarak 2017’den sonra iPhone’un varsayılan görüntü formatı haline geldi
  • JPEG formatı kullanıldığında depth map ve HDR gibi gelişmiş özelliklerden yararlanılamıyor

HEIC içindeki depth map’in doğrulanmasına bir örnek

  • Almanya’nın Hamburg kentindeki yapım şirketi Replayboys’un VFX sorumlusu Finn Jaeger, iPhone’da oluşturulan çoklu depth map ekran görüntülerini ve projenin ilerleyişini paylaştı
  • Finn Jaeger’in HEIC Shenanigans projesi, HEIC kapsayıcısından tek tek görüntüleri ve meta verileri çıkarıp EXR dosyalarına dönüştüren 374 satırlık bir Python betiği sunuyor

Geliştirme ortamı bilgileri

  • Kullanılan iş istasyonu Ryzen 9 9950X 16 çekirdekli CPU, 96GB DDR5 RAM, 4TB NVMe SSD, ASRock X870E Nova 90 anakart ve Windows 11 Pro üzerinde Ubuntu 24 LTS (WLS2) ortamında çalışıyor
  • Nvidia GTX 1080 kullanımı gibi nedenlerle ana ortam olarak Windows tercih edilmiş; bunun sebepleri arasında bazı yazılımlarla uyumluluk da yer alıyor

Başlıca araçlar ve kütüphanelerin hazırlanması

  • Python 3.12.3 ortamı ile birlikte çeşitli CLI, görüntü dönüştürme ve işleme kütüphanelerinin kurulması gerekiyor
  • exiftool, HEIC desteğinde önemli rol oynuyor; daha yeni sürümler daha fazla özellik ve hata düzeltmesi içerebiliyor
  • jc (JSON Convert), CLI çıktılarını JSON’a dönüştürerek pipeline kullanımını daha elverişli hale getiriyor
  • HEIC Shenanigans deposu klonlanıp Python sanal ortamında bağımlılıklar kuruluyor
  • Nihai EXR görüntüleri DJV görüntüleyicisi ile incelenebiliyor

Dönüştürme demosu ve örnek görüntü

  • ArcGIS ürün ailesi uzmanı Joel Joseph’ın Hindistan’ın Mumbai kentinde iPhone 15 Pro ile çektiği HEIC örnek görüntüsü kullanılıyor

HEIC → EXR dönüştürme ve iş akışı

  • Academy Software Foundation, film/TV/dijital post prodüksiyonda kullanılan açık kaynak projelere ve standartlara liderlik ediyor
  • Bağlı projelerden OpenEXR, ILM öncülüğünde 1999’da geliştirilen bir yüksek dinamik aralık (HDR) görüntü formatıdır; 2003’te açık kaynak oldu ve görsel efektler ile 3D render gibi alanlarda kullanılıyor

EXR dönüştürmenin ayrıntılı adımları

  • heic_shenanigans içindeki heic_to_exr.py betiği kullanılarak giriş HEIC görüntüsü EXR dosyasına dönüştürülüyor
  • Dönüştürme çıktısı olan EXR, 468MB boyutunda ve çeşitli görüntü ile map bilgilerini tek dosyada içeriyor

oiiotool betiğinin kullanımı

  • Görüntü boyutunun çıkarılması
  • sRGB görüntüsünde Linear P3 → ACEScg renk uzayı ve gamma dönüşümünün yapılması
  • OpenColorIO (OCIO) yapılandırma dosyası kullanılarak renk profili ve color space dönüşümlerinin gerçekleştirilmesi
  • HDR Gain Map’in Rec709’dan Linear’a dönüştürülmesi ve Y kanalının RGB’ye genişletilmesi
  • Gain Map’in headroom değerinin çıkarılması ve ters ölçek uygulanması
  • HDR base görüntüsünün Gain Map ile çarpma işlemi üzerinden oluşturulması
  • Depth Map’in Y kanalının çıkarılıp EXR formatında kaydedilmesi
  • Son aşamada oluşturulan her kanalın (RGB, SDR, Gain Map, Depth Map) EXR dosyası içinde ayrı kanallar olarak eklenmesi

EXR içindeki kanal yapısı

  • EXR’de aşağıdaki bilgiler kanallara göre saklanır
    • HDR base görüntüsünün RGB’si
    • SDR kanalı (ayrı saklanır)
    • Gain Map
    • Depth Map
  • Matte katmanı varsa ek olarak dahil edilebilir

Kullanım alanları ve notlar

  • Bu süreç sayesinde iPhone 15 Pro ile çekilen görüntülerdeki depth, HDR ve diğer birleşik bilgiler profesyonel bir format olan EXR’de ayrıştırılıp kullanılabilir
  • Makine öğrenimi, 3D render, sinema·VFX ve çeşitli veri pipeline’larında iPhone ile çekilmiş görüntülerin verimli biçimde kullanılabileceğini gösteriyor

1 yorum

 
GN⁺ 2025-06-06
Hacker News görüşleri
  • Başkalarının da belirttiği gibi, iPhone’daki LIDAR’ın derinlik haritasının ana veri kaynağı olarak kullanılmak için çözünürlüğünün fazla düşük olduğunu vurgulamak isterim. Aslında iPhone, modele ve kullanılan kameraya bağlı olarak yaklaşık dört farklı derinlik verisi çıkarma yöntemi kullanıyor. Başlangıçta yalnızca Portre modu fotoğraflarında uygulanıyordu, ancak son iPhone’lar artık normal fotoğraflarda da derinlik haritası kaydediyor.

    1. İlk yöntem, arkadaki iki kamerayla aynı anda çekim yapıp paralaks ile derinlik haritasını tahmin etmek. İlk olarak iPhone 7 Plus’ta kullanıldı ve dar görüş açılı lens görünümüyle sınırlı olma dezavantajına sahip.
    2. iPhone XR gibi yalnızca tek kamerası olduğunda, sensör içi focus pixel’leri kullanarak yaklaşık derinliği belirliyor ve bunu makine öğrenimiyle düzeltiyor (ilgili yazı)
    3. Focus pixel’lerinin bile olmadığı iPhone SE gibi modellerde yalnızca makine öğrenimiyle derinlik haritası tahmin ediliyor, ancak sonuçların gerçeklikle ilişkisi en düşük olanı bu. Hatta bir fotoğrafın fotoğrafını çekerek bile kandırılabilir (ilgili yazı)
    4. FaceID bulunan iPhone’larda selfie çekimleri, TrueDepth kameranın 3D taramasını kullanıyor; bunun karakteristik özelliği düşük kalite ve bulanıklık.
      Yazıda geçen kişi ayırma, gözlük·saç·cilt gibi unsurları tanımaya yönelik yardımcı görseller (portrait effects matte) ise makine öğrenimi çıktısı.
      Ben de Portre’nin derinlik haritası ve matte görsellerini kullanarak yaratıcı bir filtre uygulaması yapmıştım; artık yok ama gerçekten çok eğlenceli bir deneyimdi. Derinlik haritasını kullanan sanatsal fikirlerin sınırı yok.
    • Son iPhone’larda, konu (insan veya evcil hayvan) algılandığında ana fotoğraf modunda da otomatik olarak derinlik haritası kaydediliyor. Geçmişte derinlik haritası ve portrait effects matte ile yaratıcı filtre uygulamaları geliştirmiştim; acaba o uygulamanın adını ve ilgili videoları görmek mümkün mü diye merak ettim.
      Bu arada Matte Viewer adında bir yardımcı araç da yaptım; bu yalnızca matte ve derinlik haritasını görüntülemek için (Matte Viewer uygulaması)

    • LIDAR’ın tam çözünürlüklü derinlik haritası üretmekten ziyade, otomatik odaklama (AF) ve düşük ışıkta hızlı netleme için optimize edilmiş donanım olduğunu vurgulamak isterim.

    • Üçüncü yöntem 5 yıl öncesine ait, bu yüzden yakın dönem makine öğrenimi tabanlı derinlik tahmini için şu açık kaynağa bakılması önerilir: ml-depth-pro

    • Dördüncü TrueDepth yönteminin güvenlik uygulamalarında liveness (gerçek insan ayrımı) tespiti için kullanılıp kullanılamayacağını da merak ediyorum.

  • Gerçekten çok ilginç bir yazıydı. Bu tür derinlik haritası verilerinin sonuçta arka plan bulanıklığı (alan derinliği, yani faux bokeh) oluşturmak için kullanılması etkileyici.
    Fotoğraf çekildikten sonra bile odak ve alan derinliği bölgesinin, yani diyaframın sonradan ayarlanabilmesi gerçekten şaşırtıcı ama yapay bokeh’den pek hoşlanmıyorum. Sahte görünüyor; hatta Photoshop çıktısından bile daha kötü hissettiriyor.
    Ayrıca yazı içinde dosya formatı yazım hataları da gözüme çarptı (14 kez HEIC, 3 kez HIEC).

    • Dosya formatı yazım hatasını işaret ettiğiniz için düzelttiğimi kısaca belirtmek isterim.

    • Yapay bokeh’nin acemice görünmesinin nedeni, optik ve diyafram matematiğini tam olarak yansıtamaması ve ürün perspektifinden bakıldığında kullanıcıların %80’ini memnun edecek düzeyde yaklaşık bir çözüm olarak uygulanmış olması diye düşünüyorum. Doğru diyafram matematiğini uygulayarak daha iyi bir kamera uygulaması yapılabilir gibi geliyor ama tüketiciler farkı anlayıp bunun için gerçekten ödeme yapar mı, emin değilim.

  • Derinlik haritaları ve anlamsal segmentasyon (semantic map) haritaları yalnızca bakması bile eğlenceli; bunları TouchDesigner, Blender, Cinema 4D gibi uygulamalara aktarıp fotoğraflara çeşitli derinlik efektleri uygulamak mümkün.
    Apple da bu verileri fotoğraf son işleme süreçlerinde (fotoğraf düzenleme vb.) gerçekten kullanıyor.
    Eskiden yalnızca Portre modunda yakalanıyordu ama artık konu (insan, evcil hayvan) algılanınca normal çekimde de otomatik kaydediliyor.
    Ben de fotoğraf uygulamaları ve araçları geliştiren biriyim; yaptığım Matte Viewer, derinlik haritaları ve portrait matte görsellerini görüntüleme ve dışa aktarma konusunda uzmanlaşmış durumda (Heliographe araç bilgisi, Matte Viewer uygulaması)

  • Bir gün tüm akıllı telefonların pahalı sensörlere ihtiyaç duymadan Gaussian splatting tabanlı 3D görüntüleri varsayılan olarak desteklemesini umuyorum. Hesaplama maliyeti yüksek ama ek sensör maliyeti ve ağırlığından kaçınabildiği için daha pratik olduğunu düşünüyorum.

  • Bir şeyi kaçırmış olabilirim ama yazıda HDR gain map konusunun oldukça uzun ele alınmasının derinlik haritasıyla ne ilgisi olduğunu merak ediyorum.
    iPhone’un HDR ekranını (otomatik parlaklığı fazla artırmasını) sevmediğim için fotoğraflarımdaki HDR gain map’i elle kaldırıyorum.
    Eski HDR’de farklı pozlamalara sahip üç fotoğraf birleştirilip yalnızca eksik kalan bölgeler düzeltilirdi ve sonuç dosyası içinde somut bir “HDR” niteliği taşımaması da bence daha iyiydi.

    • Bu arada iPhone’un fotoğraf ayarlarında “Ekran HDR parlaklığını artır” özelliğinin kapatılabildiğini de ekleyeyim.

    • Ben de yazıyı okurken aynı şeyi düşündüm; derinlik haritası özeti iyiydi ama ortasından sonra odak HDR gain map’e kayınca içerik biraz dağılmış gibi hissettirdi. Genel olarak iyiydi ama akış biraz dağınık geldi.

  • LIDAR’ın çözünürlüğü, yazıda gösterilen derinlik haritalarından aslında çok daha düşük.
    Gerçek derinlik haritası, LIDAR ve kamera verilerinin birleştirilmesiyle sentezleniyor.

    • Benim de anladığım kadarıyla LIDAR gerçek zamanlı uyarlanmış odaklama için kullanılıyor, asıl derinlik haritası ise çoklu kamera paralaksından hesaplanıyor.
  • Acaba Apple bu teknolojiyi “çıkartma oluşturma” özelliğinde de kullanıyor mu diye merak ediyorum; hani fotoğraftaki konuyu basılı tutup çıkartma olarak ayırma veya başka bir fotoğrafa kopyalama gibi.

    • O özellik kesinlikle tamamen makine öğrenimi tabanlı. Çünkü iPhone’la çekilmemiş fotoğraflarda da çalışıyor.
  • Derinlik haritası kullanarak stereogram veya SIRDS (tek görüntülü rastgele nokta stereogramı) üretmenin mümkün olup olmadığını merak ediyorum. Eskiden gri tonlamalı görsellerle stereogram yapardık, nostaljik olurdu.

    • Aslında destekleniyor. Bu arayüz yalnızca VisionOS Photos uygulamasında var ama albümdeki bir fotoğrafta derinlik haritası varsa ya da yeterince yüksek çözünürlüklüyse, ML ile 3D uzama (Spatial Format) dönüştürülebiliyor.
      EXIF bilgisiyle görüş açısı eşlenerek özgün sahnenin fiziksel boyutuna göre VR içinde doğru ölçek veriliyor.
      Kişisel olarak sadece bu özellik için bile Vision Pro’ya $4000 vermeye değdi. Eski Nikon D7 ile çektiğim fotoğrafları VR içinde doğru ölçekte ve 3D görmek çok derin bir nostalji hissi uyandırıyor.
      Apple’ın bunu Vision Pro’nun ana özelliklerinden biri olarak öne çıkarmaması üzücü. Gerçekten harika bir özellik.
  • iOS için Reality Composer, yalnızca LIDAR destekli cihazlarda object capture yapabiliyor; LIDAR olmayan cihazlarda photogrammetry (birleştirilmiş 3D yeniden oluşturma) için yedek bir özellik yok. 3D işlerle uğraşırken bunun eksikliğini hissetmiştim.

    • 3D tarama işlerinde en başarılı deneyimim Heges uygulamasıyla oldu. LIDAR, otomobil gibi büyük nesnelerde etkili; Face ID derinlik kamerası ise küçük nesneler için kullanışlı.
      Küçük 3D taramalar için Creality Ferret SE tarayıcıyı kullandım (TikTok’ta yaklaşık $100’a almıştım) ve beklediğimden çok daha iyiydi.

    • Polycam, LIDAR desteklemeyen cihazlarda photogrammetry ile yerine geçen bir çözüm sunuyor.
      Ayrıca Canvas (ayrı LIDAR gerekiyor) ve Scaniverse (LIDAR isteğe bağlı) de bana önerilmişti.

  • Başlığı her gördüğümde kafamda yanlışlıkla ‘death maps’ diye okuyorum; tuhaf bir şekilde komik geliyor.