Optical Flow Nedir? Video Analizinde Hareket Tespiti (Optik Akış)

Art arda gelen video karelerinde her pikselin hareketini (u,v) vektör alanı olarak hesaplayan bilgisayarlı görü tekniği.

Optical flow (optik akış), art arda gelen video karelerindeki piksel parlaklık örüntüsünün görünür hareketini hesaplayan temel bir bilgisayarlı görü tekniğidir. Her piksel ya da seçili özellik noktası için, bir kareden diğerine geçişte oluşan (u, v) hareket vektörü belirlenir; bu vektörlerin tümü bir "flow map" (akış haritası) oluşturur ve sahnenin dinamik yapısını sayısal olarak temsil eder. Teknik, parlaklık sabitliği (brightness constancy) hipotezine dayanır: I(x, y, t) = I(x+u, y+v, t+1). Yani kısa zaman aralıklarında bir pikselin görüntü üzerindeki parlaklığının değişmediği kabul edilir. Bu tek denklem iki bilinmeyen (u, v) içerdiğinden doğrudan çözülemez; "aperture problemi" olarak bilinen bu belirsizlik, ek uzamsal kısıtlamalar eklenerek giderilir. Klasik algoritmalar iki ana yaklaşımda gruplanır. Lucas-Kanade (1981), küçük bir piksel penceresindeki tüm noktaların aynı harekete sahip olduğunu varsayarak seçili köşe noktalarında seyrek (sparse) akış üretir; hız ve sağlamlığıyla günümüz nesne takip uygulamalarında hâlâ kullanılır. Horn-Schunck (1981) ise pürüzlülük (smoothness) kısıtlaması uygulayarak tüm piksel uzayında yoğun (dense) bir akış alanı bulur; gürültüye daha duyarlıdır ancak teorik temeli güçlüdür. 2010'ların ortasında derin öğrenme bu alanı dönüştürdü. FlowNet (2015) ve FlowNet2 (2017), sentetik verilerle eğitilmiş CNN mimarileriyle klasik yöntemlerin çok ötesinde doğruluk sundu. RAFT (Recurrent All-Pairs Field Transforms, 2020) ise GRU tabanlı yinelemeli mimarisiyle Sintel ve KITTI benchmark'larında rekor kırarak günümüz akademik standardı hâline geldi. Optical flow; otonom araç navigasyonu, video stabilizasyonu, eylem tanıma, gözetim sistemleri ve tıbbi görüntüleme (ekokardiyografi kalp hareketi analizi) gibi geniş bir yelpazeye uygulanır. Stable Video Diffusion ve benzeri jeneratif video modelleri de zamansal tutarlılık için optik akış rehberliğinden yararlanmaktadır. OpenCV, `calcOpticalFlowFarneback` ve `calcOpticalFlowPyrLK` fonksiyonlarıyla hem yoğun hem seyrek akış hesaplamayı pratikte erişilebilir kılar.

Optical Flow Nasıl Çalışır?

Optical flow, iki ardışık video karesi arasında her pikselin nereye hareket ettiğini hesaplar. Temel matematiksel çerçeve parlaklık sabitliği kısıtlamasıdır: I(x, y, t) = I(x+u, y+v, t+1). Bu formül, bir pikselin görüntü üzerindeki parlaklığının kısa sürede sabit kaldığını varsayar. Buradan türetilen hareket denklemi, iki bilinmeyene (yatay u, dikey v) sahip olduğundan tek başına çözülemez — buna 'aperture problemi' denir. Klasik yöntemler bu belirsizliği uzamsal pürüzlülük veya pencere tabanlı varsayımlarla, derin öğrenme yöntemleri ise büyük ölçekli sentetik veri setleriyle aşar.

Öne Çıkan Algoritmalar

Lucas-Kanade (1981)

Küçük bir piksel penceresindeki noktaların aynı harekete sahip olduğunu varsayarak seyrek (sparse) akış üretir. Shi-Tomasi köşe dedektörüyle birlikte nesne takibinde standart yaklaşımdır. OpenCV'de `calcOpticalFlowPyrLK` ile uygulanır.

🌊 Farneback / Horn-Schunck

Her piksel için yoğun (dense) akış vektörü üretir. Horn-Schunck global pürüzlülük kısıtlaması kullanır; Farneback polinomsal yaklaşımla gerçek zamanlı uygulamalara elveriştir. OpenCV'de `calcOpticalFlowFarneback` ile erişilir.

🧠 RAFT (2020)

GRU tabanlı yinelemeli mimari. Sintel ve KITTI benchmark'larında sektör rekoru kırdı; günümüzde derin öğrenme tabanlı optik akış araştırmalarının referans modelidir. FlowNet2 (2017) onun öncülüdür.

Seyrek ve Yoğun Optical Flow

Optical flow iki temel modda çalışır. Seyrek (sparse) akışta yalnızca seçili köşe veya özellik noktaları takip edilir; Lucas-Kanade bu kategorinin klasik örneğidir. Hesaplama maliyeti düşük, gerçek zamanlı uygulamalara elveriştir. Yoğun (dense) akışta ise her piksel için ayrı bir vektör üretilir; Farneback ve RAFT bu gruba girer. Çok daha fazla bilgi içerir ama hesaplama gereksinimleri yüksektir. Video anlama, eylem tanıma ve jeneratif video modellerinde yoğun akış tercih edilir.

Uygulama Alanları

Otonom araçlarda kamera görüntüsünden yol hareketi ve yaklaşan engel tespiti için optik akış LiDAR ile füzyonda kritik rol oynar. Video stabilizasyonunda istem dışı kamera titremesi optik akışla telafi edilerek pürüzsüz klip elde edilir. Eylem tanıma sistemlerinde two-stream CNN mimarileri optik akışı ikinci girdi olarak kullanır; spor analizi ve güvenlik kameralarında yaygınlaşmaktadır. Tıbbi görüntülemede ekokardiyografi kalp hareketi ve solunum döngüsü ölçümünde kullanılır. Stable Video Diffusion gibi jeneratif modeller zamansal tutarlılık için optik akış rehberliğinden yararlanır.

Sık Sorulan Sorular

  • check_circle Optical flow ile nesne tespiti arasındaki fark nedir?: Nesne tespiti (object detection) bir karede hangi nesnelerin bulunduğunu sınıflandırır. Optical flow ise nesnelerin kareler arasında nereye hareket ettiğini ölçer — hangi nesne olduğunu değil, nasıl hareket ettiğini. İkisi birlikte kullanıldığında hem sınıflandırma hem takip mümkün olur.
  • check_circle Lucas-Kanade mi, RAFT mi kullanmalıyım?: Gerçek zamanlı ve gömülü sistem uygulamaları için Lucas-Kanade (OpenCV ile doğrudan çalışır, düşük bellek) tercih edilir. Yüksek doğruluk gerektiren araştırma veya video anlama görevlerinde GPU destekli RAFT daha iyi sonuç verir. RAFT'ın PyTorch implementasyonu açık kaynaklıdır.
  • check_circle Optical flow neden parlak ışıkta veya hızlı harekette başarısız olabilir?: Parlaklık sabitliği varsayımı, keskin ışık değişimlerinde (flaş, gölge geçişi) bozulur. Hızlı hareket ise ardışık karelerde çok büyük piksel kaymasına yol açtığından klasik yöntemler doğru eşleştirme yapamaz. Piramit (pyramid) ölçekleme ve derin öğrenme bu sınırları kısmen aşar.
  • check_circle Python'da optical flow nasıl hesaplanır?: OpenCV ile iki satırda yoğun akış: `flow = cv2.calcOpticalFlowFarneback(prev_gray, curr_gray, None, 0.5, 3, 15, 3, 5, 1.2, 0)`. Seyrek akış için `cv2.calcOpticalFlowPyrLK` kullanılır. RAFT için resmi PyTorch deposu ve Hugging Face modellerinden hazır ağırlıklar indirilebilir.
  • check_circle Optical flow Türkiye'de hangi alanlarda kullanılmaktadır?: Yerli otonom araç ve insansız hava aracı (İHA) projelerinde görme tabanlı navigasyon için, güvenlik kamerası sistemlerinde anormal hareket tespiti için ve oyun/sinema endüstrisinde motion capture sonrası video işlemede optik akış kullanılmaktadır.