Scene Flow
Sahne akışı, bir sahnenin 3B hareket alanıdır; stereo, RGB-D veya LiDAR verilerinden tahmin edilen, kareler arasında görünür her noktanın yer değiştirme vektörüdür.
Sahne akışı, bir sahnenin üç boyutlu hareket alanıdır: Görünen her yüzey noktası için, noktanın bir karedeki konumundan sonraki karedeki konumuna uzanan bir 3B vektör. Sundar Vedula, Simon Baker ve Carnegie Mellon Üniversitesi'ndeki çalışma arkadaşları, terimi 1999 tarihli Three-Dimensional Scene Flow makalelerinde ortaya attı ve optik akışın 3B karşılığı olarak tanımladı. Sahne akışı geometriyle hareketi birleştirir; böylece bir bilgisayarlı görü sistemine her noktanın nerede olduğunu ve kamera yönüne doğru veya kameradan uzağa hareket de dahil olmak üzere saniyede metre cinsinden ne hızla ilerlediğini bildirir. Bu nedenle, yola çıkan bir aracın veya yola adım atan bir kişinin hareketinden tanınması gereken otonom araçlar ve robotik için temel bir sinyaldir.
Sahne Akışı ve Optik Akış#
Optik akış, sahne akışının görüntü düzlemine izdüşümüdür: Her pikselin yana, yukarı veya aşağı ne kadar hareket ettiğini kaydeder; kameranın görüş hattı boyunca gerçekleşen hareketi göstermez. Bu nedenle optik akışları aynı olan iki nesne, gerçekte çok farklı biçimlerde hareket edebilir. Sahne akışı, her iki zamandaki derinlik tahmini ile eksik bileşeni geri kazanır; her pikseli görüş ışını boyunca ölçülen derinliğine yansıtır:
import numpy as np
K_inv = np.linalg.inv(np.array([[500.0, 0, 320], [0, 500.0, 240], [0, 0, 1]])) # inverse camera intrinsics
# Two objects with identical optical flow: each moves from pixel (400, 240) to (410, 240) in 0.1 s
for name, depth_before, depth_after in [("cyclist crossing", 8.0, 8.0), ("car approaching", 8.0, 6.0)]:
# Back-project each pixel along its viewing ray to the measured depth
before = depth_before * K_inv @ np.array([400, 240, 1.0])
after = depth_after * K_inv @ np.array([410, 240, 1.0])
# Scene flow is the 3D displacement of the same surface point
flow = after - before
print(f"{name}: scene flow {flow.round(2)} m, speed {np.linalg.norm(flow) / 0.1:.1f} m/s")Her iki nesne de 10 piksel sağa kayıyor; ancak bisikletli yana doğru 0,16 m hareket edip 1,6 m/s hızla ilerlerken otomobil, saniyenin onda birinde 2 m yaklaşarak 20,1 m/s hıza ulaşıyor. 6 m uzaktaki otomobil 20 m/s hızla yaklaşırsa 0,3 saniyede kameraya ulaşır.
Nesne takibi, nesne kimliklerini sınırlayıcı kutular olarak izler; sahne akışı da hem nesne takibinden hem de seçilen 2B noktaları birçok kare boyunca izleyen nokta takibinden farklıdır. Ultralytics YOLO hız tahmini 2B'de takip düzeyinde çalışır: takip edilen her kutuyu izler ve piksel yer değiştirmesini tüm görüntü için geçerli tek bir metre/piksel ölçeğiyle km/sa cinsine dönüştürür; bu ölçek, kamera yola tepeden baktığında ve trafik görüntü düzlemine paralel hareket ettiğinde geçerlidir.
Sahne Akışı Nasıl Tahmin Edilir#
Yöntemi girdi belirler. Stereo kamera, her iki zamandaki ayrımı ve kareler arasındaki optik akışı sağlar; Moritz Menze ve Andreas Geiger'in 2015'te 200 eğitim ve 200 test yol sahnesiyle yayımladığı KITTI sahne akışı kıyaslamasının düzeni budur. RGB-D kameralar ve LiDAR iki nokta bulutu sağlar; bu bulutlar çoğu zaman sensör füzyonu yoluyla kamera görüntüleriyle birleştirilir. FlowNet3D gibi ağlar, noktaları bulutlar arasında doğrudan eşleştirmeyi öğrenir. Tek kamera ise her kare çifti için öğrenilmiş tek kameralı derinlik tahminine ve optik akışa dayanır.
Kamera hareket ettiğinde her sabit nokta da hareket ediyormuş gibi görünür. Bu nedenle tam bir sistem, genellikle görsel SLAM veya odometriden öz hareketi de tahmin eder ve akışı bu hareketle uyuşmayan noktaları bağımsız hareket ediyor kabul eder. Sürüş sahneleri çoğunlukla katı cisimlerden oluşur; bu nedenle Menze ve Geiger'in nesne sahne akışı ile RAFT-3D gibi yöntemler pikselleri katı biçimde hareket eden birkaç nesnede gruplandırarak dokusuz araç gövdelerindeki tahminleri kararlı hâle getirir. Örtülmeler en zor durumdur; çünkü kareler arasında görünür hâle gelen veya kaybolan noktaların ölçülebilecek bir eşleşmesi yoktur.
Derin öğrenme modelleri, gerçek sensörlerin yakalayamayacağı yoğun yer doğrularına ihtiyaç duyar; bu nedenle eğitim büyük ölçüde sentetik verilere dayanır. FlyingThings3D'yi de içeren Freiburg sahne akışı veri kümeleri, kesin ayrım, optik akış ve ayrım değişimi etiketleriyle on binlerce stereo kare işler. Yalnızca FlyingThings3D ile eğitilen FlowNet3D, gerçek KITTI LiDAR taramalarına aktarım yaptı.
Gerçek Dünya Uygulamaları#
- Mobil robotlar: Depoları ve kaldırımları insanlarla paylaşan robotlar, yakındaki engellerin 3B hareketini kullanarak bir saniye sonra nerede olacaklarını tahmin eder ve çevrelerinden dolaşmak için rotalarını yeniden planlar.
- Dinamik sahne yeniden oluşturma: 4B Gauss sıçratma ve dinamik nöral ışınım alanları, her noktanın veya Gauss'un zaman içinde nasıl hareket ettiğini öğrenerek hareketli bir sahneyi modeller. Öğrenilmiş sahne akışı, kaydedilmiş bir videonun yeni bakış açılarından yeniden oynatılmasını sağlar.
- Otonom sürüş: LiDAR sahne akışı, art arda gelen taramalar arasında hareketli araçları ve yayaları durağan dünyadan ayırır. Waymo Open Dataset, 2021'de sahne akışı etiketleri ekleyerek önceki gerçek dünya sahne akışı veri kümelerine kıyasla yaklaşık 1.000 kat daha fazla etiketlenmiş kare sundu.










