Depth Anything V2: Tek Gözlü Derinlik Tahmininde Yeni Bir Çağ
Bilgisayarlı görü (computer vision) dünyası, üç boyutlu dünyayı tek bir iki boyutlu görüntüden anlama yeteneği üzerinde uzun yıllardır çalışmaktadır. İnsan görsel sistemi, iki gözü arasındaki stereo farklardan (binoküler ipuçları) yararlanarak derinliği zahmetsizce algılayabilirken, tek bir gözünü kapattığında bile gölgeler, perspektif çizgileri ve nesne boyutları gibi monoküler ipuçlarını kullanarak derinlik algısını koruyabilir. Bilgisayarlar için bu görevi gerçekleştirmek, yani tek bir RGB görüntüden piksel düzeyinde derinlik haritası çıkarmak “Monoküler Derinlik Tahmini” (Monocular Depth Estimation – MDE) olarak adlandırılır.
Monoküler derinlik tahmini, robotik yön bulmadan otonom sürüşe, artırılmış gerçeklikten (AR) üç boyutlu rekonstrüksiyona kadar çok geniş bir uygulama yelpazesine sahiptir. Ancak bu alan, ölçek belirsizliği (scale ambiguity), ince detayların kaybolması ve gerçek dünya sahnelerindeki sonsuz çeşitlilik nedeniyle her zaman zorlu bir araştırma konusu olmuştur. Son dönemde TikTok ve ByteDance araştırmacıları tarafından geliştirilen Depth Anything V2, bu zorlukların üstesinden gelerek monoküler derinlik tahmini alanında yeni bir standart belirlemiştir. Bu makalede, Depth Anything V2 modelinin mimari detaylarını, eğitim metodolojisini, sunduğu yenilikleri ve endüstriyel uygulamalarını derinlemesine inceleyeceğiz.
1. Monoküler Derinlik Tahmininin Evrimi ve Depth Anything V1
Depth Anything V2’nin getirdiği yenilikleri tam olarak anlamak için, modelin selefi olan Depth Anything V1’e ve monoküler derinlik tahmininin yakın geçmişine göz atmak gerekir. Geleneksel olarak derinlik tahmini, LiDAR veya stereo kameralar gibi donanımlardan elde edilen hassas derinlik verileriyle eğitilen denetimli (supervised) modellerle gerçekleştiriliyordu. Ancak bu tür verileri toplamak son derece maliyetli ve zahmetlidir. Ayrıca, bu modeller eğitildikleri dar veri kümelerinin dışına çıktıklarında (örneğin kapalı alanda eğitilen bir modelin açık alanda kullanılması) genelleme yeteneklerini büyük ölçüde kaybediyorlardı.
Bu sınırlamayı aşmak için araştırmacılar, etiketlenmemiş (unlabeled) milyonlarca internet görüntüsünden yararlanan öz-denetimli (self-supervised) öğrenme yöntemlerine yöneldiler. Depth Anything V1, bu yaklaşımın en başarılı örneklerinden biriydi. V1, büyük ölçekli etiketlenmemiş verileri kullanarak veri kapsamını muazzam ölçüde artırdı. Bir “öğretmen” (teacher) model tarafından üretilen sahte etiketler (pseudo-labels) ile daha küçük bir “öğrenci” (student) model eğitildi. Bu yöntem, modelin sıfır-atışlı (zero-shot) genelleme yeteneğini, yani daha önce hiç görmediği sahnelerde bile başarılı derinlik tahmini yapabilmesini sağladı.
Ancak Depth Anything V1’in de bazı yapısal sınırları vardı:
- Gürültülü Sahte Etiketler: Etiketlenmemiş gerçek dünya görüntülerinden üretilen derinlik haritaları genellikle gürültülüydü ve nesne sınırlarında (edges) belirsizliklere yol açıyordu.
- Detay Kaybı: İnce yapılar (örneğin sandalyelerin ince bacakları, ağaç dalları veya elektrik telleri) derinlik haritasında genellikle kayboluyor veya arka planla birleşiyordu.
- Yarı Saydam ve Yansıtıcı Yüzeyler: Cam pencere, ayna veya su gibi yüzeylerin derinliğini tahmin etmek, modelin görsel ipuçlarını yanlış yorumlaması nedeniyle başarısız oluyordu.
Depth Anything V2, tam olarak bu zayıf noktaları hedef alarak tasarlanmıştır. Generatif (üretken) modellerin görsel kalitesini, diskriminatif (ayırt edici) modellerin ise hız ve verimlilik avantajıyla birleştirmeyi başarmıştır.
2. Depth Anything V2’nin Temel Mimarisi ve Yenilikleri
Depth Anything V2, temel felsefe olarak diskriminatif bir derinlik tahmin modelidir. Son dönemde popüler olan difüzyon tabanlı (diffusion-based) derinlik tahmin modellerinin (örneğin Marigold) aksine, yinelemeli (iterative) gürültü giderme işlemlerine ihtiyaç duymaz. Bu sayede milisaniyeler mertebesinde çalışabilir. Modelin başarısının arkasında yatan temel mimari bileşenleri ve yenilikleri şu şekilde sıralayabiliriz:
2.1. Vision Transformer (ViT) Tabanlı Güçlü Enkoderlar
Depth Anything V2, görüntü özelliklerini çıkarmak için son teknoloji Vision Transformer (ViT) mimarilerini kullanır. Model, farklı kullanım senaryoları ve donanım kısıtlamaları için ölçeklenebilir dört farklı enkoder boyutu sunar:
- ViT-S (Small): Mobil ve uç cihazlar (edge devices) için optimize edilmiş, düşük gecikmeli sürüm.
- ViT-B (Base): Standart GPU’larda dengeli performans ve hız sunan sürüm.
- ViT-L (Large): Yüksek doğruluk gerektiren masaüstü ve sunucu uygulamaları için geliştirilmiş sürüm.
- ViT-G (Giant): Maksimum detay ve en düşük hata payı sunan, akademik ve endüstriyel araştırma odaklı devasa sürüm.
Bu transformatör tabanlı enkoderlar, görüntüdeki hem yerel (local) ince detayları hem de küresel (global) bağlamı yakalama konusunda geleneksel CNN (Evrişimli Sinir Ağları) mimarilerine göre çok daha üstündür. Küresel bağlam, özellikle ölçek belirsizliğini çözmede ve sahnenin genel yerleşimini anlamada kritik rol oynar.
2.2. Sentetik Veri Odaklı Eğitim Metodolojisi
Depth Anything V2’nin en devrimsel yönü, eğitim sürecinde veri kalitesine odaklanmasıdır. Araştırmacılar, “daha fazla etiketlenmemiş veri” yerine “daha temiz ve kaliteli veri” ilkesini benimsemişlerdir. Gerçek dünyadan alınan derinlik verileri (LiDAR taramaları vb.) genellikle seyrektir (sparse) ve gürültülüdür. Buna karşılık, bilgisayar grafikleriyle üretilen sentetik sahneler (örneğin Unreal Engine veya Blender ile oluşturulmuş 3D dünyalar) mükemmel, yoğun (dense) ve gürültüsüz derinlik haritaları sunar.
Depth Anything V2 eğitim süreci üç aşamalı bir strateji izler:
- Öğretmen Modelin Sentetik Veriyle Eğitilmesi: İlk olarak, çok güçlü bir ViT-L veya ViT-G modeli, yalnızca yüksek kaliteli sentetik derinlik veri kümeleri üzerinde eğitilir. Bu aşamada öğretmen model, nesne sınırlarını kusursuz bir şekilde çizmeyi ve ince detayları ayırt etmeyi öğrenir.
- Gerçek Dünya Verilerinin Etiketlenmesi (Pseudo-Labeling): Eğitilen bu hassas öğretmen model, milyonlarca etiketlenmemiş gerçek dünya görüntüsü üzerinde çalıştırılarak bu görüntüler için yüksek kaliteli “sahte etiketler” üretir. Sentetik veriyle eğitilen öğretmen, gerçek dünya görüntülerindeki gürültüyü filtreleyerek V1’e kıyasla çok daha temiz derinlik haritaları çıkarır.
- Öğrenci Modellerin Eğitilmesi: Son aşamada, daha küçük ve hızlı olan öğrenci modeller (ViT-S, ViT-B), bu temizlenmiş sahte etiketler ve orijinal gerçek dünya görüntüleri kullanılarak eğitilir. Böylece öğrenci modeller, öğretmen modelin yüksek hassasiyetini ve detay kalitesini devralır.
Bu akıllı bilgi damıtma (knowledge distillation) süreci, modelin gerçek dünya sahnelerindeki genelleme yeteneğini kaybetmeden, sentetik verilerin sunduğu piksel hassasiyetine ulaşmasını sağlar.
3. Teknik Karşılaştırma ve Performans Analizi
Depth Anything V2, hem akademik kıyaslama testlerinde (benchmarks) hem de görsel nitel analizlerde rakiplerine karşı ezici bir üstünlük kurmuştur. Modelin performansı, özellikle iki ana kategorideki rakipleriyle karşılaştırılmıştır: geleneksel diskriminatif modeller (MiDaS gibi) ve modern generatif modeller (Marigold gibi).
3.1. Nicel Sonuçlar (Quantitative Benchmarks)
Model, sıfır-atışlı (zero-shot) transfer yeteneğini ölçmek amacıyla NYU Depth V2, KITTI, SUN RGB-D ve DIODE gibi popüler veri kümelerinde test edilmiştir. Depth Anything V2, tüm bu testlerde en yakın rakibine kıyasla hata oranlarını (örneğin RMSE – Root Mean Square Error ve REL – Relative Error) önemli ölçüde düşürmüştür.
Özellikle, ViT-S sürümü bile kendisinden kat kat büyük olan eski nesil ViT-L tabanlı modellerle yarışabilecek düzeyde performans göstermektedir. Bu durum, eğitimde kullanılan sentetik veri kalitesinin mimari büyüklükten daha önemli olabileceğini kanıtlamıştır.
3.2. Niteliksel Farklar (Qualitative Analysis)
Görsel incelemelerde Depth Anything V2’nin fark yarattığı üç temel alan öne çıkmaktadır:
- Keskin Sınırlar (Sharp Boundaries): Eski modellerde nesnelerin kenarları genellikle “bulanık” veya arka plana doğru sızmış şekilde görünürken, V2’de nesne sınırları bıçak gibi keskindir. Bu, özellikle 3D mesh üretimi ve nesne segmentasyonu için hayati önem taşır.
- İnce Detayların Korunması: Sandalye ayakları, korkuluklar, insan saç telleri gibi milimetrik detaylar, derinlik haritasında kendi derinlik değerleriyle net bir şekilde ayrıştırılabilir.
- Boşluklar ve Delikler (Holes): Bir nesnenin içindeki boşluklar (örneğin bir fincanın kulpu veya bir bisiklet tekerleğinin telleri arasındaki boşluklar), model tarafından doğru bir şekilde algılanarak arka plan derinliğiyle eşleştirilir.
3.3. Hız ve Verimlilik
Difüzyon tabanlı modeller (örneğin Marigold veya DDVM), mükemmel derinlik haritaları üretebilse de, tek bir görüntüyü işlemek için onlarca difüzyon adımı atmak zorundadır. Bu da tek bir derinlik tahmini için saniyelerce beklemek anlamına gelir ve gerçek zamanlı uygulamaları imkansız kılar. Depth Anything V2 ise tek adımlı (single-pass) bir ileri beslemeli (feed-forward) ağ olduğundan, saniyede 30 ila 100 kare (FPS) işleme hızına ulaşabilir. Bu yönüyle gerçek zamanlı robotik yön bulma ve video işleme için tek gerçekçi alternatiftir.
4. Depth Anything V2’nin Uygulama Alanları
Depth Anything V2’nin sunduğu yüksek kaliteli ve gerçek zamanlı derinlik tahmini, birçok endüstride devrim yaratma potansiyeline sahiptir.
4.1. Otonom Araçlar ve Robotik
Otonom sürüş sistemleri ve mobil robotlar, çevrelerini algılamak için genellikle pahalı LiDAR sensörlerine güvenirler. Depth Anything V2, standart bir RGB kamerayı güçlü bir derinlik sensörüne dönüştürebilir. Robotlar, engellerden kaçınma (obstacle avoidance), haritalama (SLAM) ve yol planlama işlemlerini yalnızca kamera görüntülerini kullanarak düşük maliyetle gerçekleştirebilirler. Ayrıca, LiDAR sistemlerinin arızalanması durumunda mükemmel bir yedekleme (redundancy) sistemi işlevi görür.
4.2. Artırılmış Gerçeklik (AR) ve Sanal Gerçeklik (VR)
AR uygulamalarında, sanal nesnelerin gerçek dünyadaki nesnelerin arkasında kalması (occlusion) gerçekçilik hissi için kritik bir unsurdur. Depth Anything V2, sahnenin anlık ve son derece keskin bir derinlik haritasını çıkararak, sanal nesnelerin gerçek dünya geometrisiyle kusursuz bir şekilde etkileşime girmesini sağlar. Örneğin, sanal bir topun gerçek bir masanın altından yuvarlanıp arkasında kaybolması bu teknolojiyle çok daha pürüzsüz hale gelir.
4.3. 3D Rekonstrüksiyon ve NeRF / 3D Gaussian Splatting
Son yıllarda popüler olan Neural Radiance Fields (NeRF) ve 3D Gaussian Splatting gibi teknolojiler, iki boyutlu fotoğraflardan üç boyutlu sahneler üretir. Bu yöntemlerin başarısı, sahneler arasındaki derinlik tutarlılığına bağlıdır. Depth Anything V2, bu algoritmalara öncül (prior) derinlik bilgisi sağlayarak eğitim sürelerini kısaltır, daha az fotoğrafla daha kaliteli 3D modeller üretilmesine olanak tanır.
4.4. Generatif Yapay Zeka ve ControlNet Entegrasyonu
Stable Diffusion gibi metinden görüntüye (text-to-image) üretim yapan modellerde, üretilen görüntünün kompozisyonunu kontrol etmek için “ControlNet” adı verilen yapılar kullanılır. Derinlik haritaları, ControlNet için en güçlü yönlendiricilerden biridir. Depth Anything V2 tarafından üretilen yüksek kaliteli derinlik haritaları, yapay zeka ile görüntü üretiminde karakterlerin duruşunu, oda yerleşimini ve perspektifi mükemmel bir şekilde korumayı sağlar.
5. Pratik Kullanım Rehberi ve Kod Entegrasyonu
Depth Anything V2, açık kaynaklı yapısı ve popüler derin öğrenme kütüphaneleriyle olan uyumu sayesinde projelerinize kolayca entegre edilebilir. Modelin resmi PyTorch implementasyonu kullanılarak bir görüntüden derinlik haritası elde etmek oldukça basittir.
Aşağıdaki Python kod örneği, Depth Anything V2 modelini yükleyerek yerel bir görüntü üzerinde nasıl derinlik tahmini yapabileceğinizi göstermektedir. Kodun çalışması için sisteminizde torch, opencv-python ve modelin resmi GitHub deposundaki yardımcı sınıfların bulunması gerekmektedir.
import cv2
import torch
import numpy as np
Model mimarisini içe aktarın (Resmi depodan klonlandığı varsayılmıştır)
from depth_anything_v2.dpt import DepthAnythingV2
Uygun donanımı seçin (CUDA destekli GPU önerilir)
device = 'cuda' if torch.cuda.is_available() else 'cpu'
Model konfigürasyonunu tanımlayın (Örnek olarak ViT-B kullanılmıştır)
model_configs = {
'vits': {'encoder': 'vits', 'features': 64, 'out_channels': [48, 96, 192, 384]},
'vitb': {'encoder': 'vitb', 'features': 128, 'out_channels': [96, 192, 384, 768]},
'vitl': {'encoder': 'vitl', 'features': 256, 'out_channels': [256, 512, 1024, 1024]}
}
encoder = 'vitb' # Seçilen enkoder boyutu
model = DepthAnythingV2(model_configs[encoder])
Önceden eğitilmiş ağırlıkları yükleyin
model.load_state_dict(torch.load(f'depth_anything_v2_{encoder}.pth', map_location='cpu'))
model = model.to(device).eval()
Görüntüyü yükleyin
image_path = 'ornek_sahneler/oda.jpg'
raw_image = cv2.imread(image_path)
Derinlik tahminini gerçekleştirin
with torch.no_grad():
# Model girdiyi otomatik olarak normalize eder ve boyutlandırır
depth = model.infer_image(raw_image)
Derinlik haritasını görselleştirme için normalize edin (0-255 aralığına)
depth_normalized = (depth - depth.min()) / (depth.max() - depth.min()) * 255
depth_normalized = depth_normalized.astype(np.uint8)
Renklendirilmiş derinlik haritası oluşturun (Jet renk haritası yaygın kullanılır)
depth_colormap = cv2.applyColorMap(depth_normalized, cv2.COLORMAP_JET)
Sonuçları kaydedin veya gösterin
cv2.imwrite('derinlik_sonucu.png', depth_colormap)
print("Derinlik haritası başarıyla oluşturuldu ve kaydedildi.")
Bu kod çalıştırıldığında, model girdi olarak verilen RGB görüntüyü analiz eder ve her bir pikselin kameraya olan göreceli uzaklığını temsil eden tek kanallı bir matris (derinlik haritası) üretir. infer_image fonksiyonu, görüntünün en boy oranını koruyarak en uygun çözünürlükte işlenmesini sağlar.
6. Gelecek Perspektifi ve Sınırlar
Depth Anything V2, monoküler derinlik tahmini alanında devasa bir sıçrama olsa da, araştırmacıların önünde hala çözülmesi gereken bazı zorluklar bulunmaktadır. Bunlardan ilki “mutlak derinlik” (absolute depth) tahminidir. Depth Anything V2, doğası gereği bağıl/göreceli (relative) derinlik haritaları üretir; yani hangi nesnenin hangisinden daha önde olduğunu çok iyi bilir ancak nesnenin kameraya tam olarak kaç metre (örneğin 3.42 metre) uzaklıkta olduğunu doğrudan söyleyemez. Gerçek dünya metrik ölçümleri için modelin ek kalibrasyon adımlarından veya sensör verileriyle birleştirmeden (sensor fusion) geçmesi gerekir.
Bununla birlikte, gelecekte bu tür güçlü temel modellerin (foundation models) doğrudan video akışları üzerinde zamansal tutarlılıkla (temporal consistency) çalışacak şekilde optimize edilmesi beklenmektedir. Video tabanlı derinlik tahmini, kareler arasındaki geçişlerde oluşabilecek titremeleri (flickering) engelleyerek sinematik efektler ve otonom sürüş için daha da kararlı sonuçlar sunacaktır.
7. Sonuç
Depth Anything V2; akıllıca tasarlanmış eğitim metodolojisi, sentetik verinin gücünü arkasına alması ve güçlü Vision Transformer altyapısı ile bilgisayarlı görü alanında bir dönüm noktasıdır. Generatif modellerin görsel kalitesini, diskriminatif modellerin hız avantajıyla birleştiren bu model, monoküler derinlik tahminini laboratuvar ortamlarından çıkarıp gerçek dünya uygulamalarına taşımıştır.
Açık kaynaklı olarak sunulması ve farklı donanım güçlerine göre ölçeklenebilen sürümleri (ViT-S’den ViT-G’ye) sayesinde, bağımsız geliştiricilerden büyük teknoloji şirketlerine kadar geniş bir kitleye hitap etmektedir. Önümüzdeki yıllarda otonom araçlardan akıllı telefon uygulamalarına, sanal gerçeklikten yapay zeka ile içerik üretimine kadar hayatımızın birçok noktasında Depth Anything V2 ve türevi modellerin izlerini daha sık göreceğimiz şüphesizdir.
