Optik Akış, bir gözlemci (kamera gibi) ile sahne arasındaki göreceli hareketin neden olduğu görsel bir sahnedeki nesnelerin, yüzeylerin ve kenarların görünür hareket modelini tanımlar. Bir video dizisinin ardışık kareleri arasında tek tek piksellerin veya özelliklerin hareketini tahmin etmek için kullanılan bilgisayarla görmede (CV) temel bir kavramdır. Bu teknik, bir sahnenin dinamikleri hakkında değerli bilgiler sağlayarak makinelerin biyolojik görsel sistemlerin hareketi nasıl algıladığına benzer şekilde hareketi anlamasına olanak tanır. Video verilerinin analizini içeren çeşitli Yapay Zeka (AI) ve Makine Öğrenimi (ML) uygulamalarında önemli bir bileşendir.
Optik Akış Nasıl Çalışır?
Optik akış hesaplamasının arkasındaki temel fikir, bir nesne üzerindeki belirli bir noktaya karşılık gelen bir pikselin yoğunluğunun, görüntü düzlemi boyunca hareket ederken kısa zaman aralıklarında sabit kaldığını (veya tahmin edilebilir şekilde değiştiğini) öne süren "parlaklık sabitliği" varsayımıdır. Algoritmalar, her piksel veya belirli ilgi noktaları için hareket vektörlerini hesaplamak üzere bu yoğunluk modellerini bir kareden diğerine izler.
Optik akışı hesaplamak için yaygın teknikler şunlardır:
- Seyrek Optik Akış: Lucas-Kanade yöntemi gibi algoritmalar, çerçeveler arasında göze çarpan özelliklerin (köşeler gibi) seyrek bir kümesinin hareketini izler. Bu, hesaplama açısından verimlidir ancak yalnızca seçilen noktalar için hareket bilgisi sağlar.
- Yoğun Optik Akış: Horn-Schunck yöntemi gibi algoritmalar görüntüdeki her piksel için bir hareket vektörü hesaplamayı amaçlar. Bu, hareketin çok daha zengin bir temsilini sağlar ancak hesaplama açısından daha yoğundur.
- Derin Öğrenme Yaklaşımları: Modern yöntemler optik akışı tahmin etmek için genellikle büyük veri kümeleri üzerinde eğitilmiş Evrişimsel Sinir Ağlarını (CNN'ler) kullanır. FlowNet ve RAFT (Tekrarlayan Tüm Çiftler Alan Dönüşümleri) gibi modeller, karmaşık hareket modellerini öğrenmek için derin öğrenmenin (DL) gücünden yararlanarak son teknoloji performans göstermiştir. Bu modeller aşağıdaki gibi çerçeveler kullanılarak geliştirilebilir PyTorch veya TensorFlow.
Optik Akış ve İlgili Kavramlar
Optik akışı ilgili görevlerden ayırmak önemlidir:
- Nesne Algılama: Bu görev, sınırlayıcı kutular kullanarak tek bir görüntü karesi içindeki nesneleri tanımlar ve konumlandırır, tipik olarak aşağıdaki gibi modellerle Ultralytics YOLO11. Nesnelerin kareler arasındaki hareketlerine değil, ne ve nerede olduklarına odaklanır. Algılama görevleri için farklı YOLO modelleri arasındaki karşılaştırmaları keşfedebilirsiniz.
- Nesne Takibi: Bu, tespit edilen belirli nesneleri birden fazla kare boyunca takip etmeyi ve zaman içinde kimliklerini korumayı içerir. Optik akış, izleme algoritmalarında ( DeepSORT gibi) kullanılan bir bileşen olabilirken, izleme, piksel bazında hareket tahmininden daha üst düzey bir görev olan nesne yörüngelerine ve kimlik sürekliliğine odaklanır. Ultralytics modelleri nesne izleme modlarını destekler.
- Hareket Tahmini: Bu, hareketi belirlemek için çeşitli teknikleri kapsayan daha geniş bir terimdir. Optik akış, genellikle dünyadaki nesnelerin gerçek 3D hareketini tahmin etmekten farklı olarak, görüntü düzlemindeki piksellerin görünür 2D hareketine odaklanan özel bir hareket tahmini türüdür.
- Görüntü Segmentasyonu: Bu, genellikle nesneleri veya alanları izole etmek için bir görüntünün birden fazla bölüme veya bölgeye ayrılmasını içerir. Optik akıştan elde edilen hareket ipuçları segmentasyona yardımcı olabilirken (Hareket Segmentasyonu), birincil amaç hareket vektörü hesaplaması değil, uzamsal tanımlamadır. Örnek segmentasyonu gibi görevler, her nesne örneği için piksel başına maskeler sağlar.
Gerçek Dünya Uygulamaları
Optik akış, videodan hareketin anlaşılmasını gerektiren birçok uygulama için çok önemlidir:
- Video Sıkıştırma: MPEG gibi standartlar, önceki karelere dayanarak sonraki kareleri tahmin etmek için optik akışa benzer hareket tahmin tekniklerini kullanır. Yalnızca hareket vektörlerini ve tahmin hatalarını (artıklar) kodlayarak önemli veri sıkıştırması elde edilir.
- Otonom Sistemler: Otonom araçlar ve robotlar, görsel odometri (kendi hareketini tahmin etme), engel tespiti ve çevrelerindeki nesnelerin göreceli hareketini anlamak için optik akışı kullanır. Örneğin, sürücüsüz bir arabanın yola göre hızını tahmin etmesine veya yakındaki araçları izlemesine yardımcı olur. Waymo gibi şirketler büyük ölçüde hareket algısına güveniyor. Daha fazla içerik için sürücüsüz araçlarda yapay zekayı keşfedin.
- Eylem Tanıma: Videolardaki insan eylemlerini anlamak genellikle optik akıştan elde edilen hareket modellerini analiz etmeyi içerir.
- Video Sabitleme: Dijital görüntü sabitleme teknikleri, kamera sarsıntısını tahmin etmek ve telafi etmek için optik akışı kullanarak daha akıcı videolar üretebilir.
- Tıbbi Görüntü Analizi: Ekokardiyogramlarda kalp kasının hareketi veya prosedürler sırasında organ deformasyonu gibi doku hareketlerini izlemek için kullanılır. Radyoloji gibi kaynaklara bakın : İlgili gelişmeler için Yapay Zeka.
- Robotik: Robotların çevrelerindeki hareket hakkında görsel geri bildirime dayalı olarak gezinmelerini, nesnelerle etkileşime girmelerini ve görevleri yerine getirmelerini sağlar. ROS gibi sistemlerle entegrasyon genellikle hareket analizini içerir.
Araçlar ve Uygulama
OpenCV gibi kütüphaneler klasik optik akış algoritmalarının uygulamalarını sağlar(OpenCV Optical Flow Tutorials). Derin öğrenme yaklaşımları için, aşağıdaki gibi çerçeveler PyTorch ve TensorFlow gibi platformlarda bulunan önceden eğitilmiş modellerden yararlanılarak yaygın olarak kullanılmaktadır. Hugging Face. Bu modellerin eğitimi için FlyingThings3D veya Sintel veri kümeleri gibi temel akış bilgilerine sahip büyük ölçekli video veri kümeleri gerekir. Ultralytics HUB gibi platformlar, doğrudan optik akış tahmini yerine algılama ve segmentasyon gibi görevlere odaklanmalarına rağmen veri kümelerini ve model eğitim iş akışlarını yönetmeye yardımcı olabilir.