Bilgisayar görüşünde Optik Akışın gücünü keşfedin. Hareketin nasıl tahmin edildiğini, video analizini nasıl geliştirdiğini ve yapay zekadaki yenilikleri nasıl yönlendirdiğini öğrenin.
Optik akış, temel bir kavramdır bilgisayar görüşü içeren Görsel bir sahnedeki nesnelerin, yüzeylerin ve kenarların görünür hareketinin tahmin edilmesi. Bu hareket aşağıdakilere göre hesaplanır Bir gözlemci (kamera gibi) ile sahnenin kendisi arasındaki göreceli hareket. Bu sürecin sonucu bir Her vektörün bir pikselin veya özelliğin ardışık iki video karesi arasındaki yer değiştirmesini temsil ettiği vektör alanı. Bu hareket vektörlerini analiz ederek, sistemler sahne dinamiklerine ilişkin ayrıntılı, düşük seviyeli bir anlayış kazanabilir ve piksellerin zaman içinde "nasıl" hareket ettiğine dair kritik soru.
Optik akışın hesaplanması tipik olarak "parlaklık sabitliği" varsayımına dayanır. Bu ilke bir nesne üzerindeki belirli bir noktanın piksel yoğunluğunun, birbirini izleyen kareler arasında sabit kaldığını varsayar. hareket eder. Algoritmalar yer değiştirmeyi track için bu varsayımı kullanır. Bunları belirlemek için iki temel yaklaşım vardır hareket alanları:
Optik akışı aşağıdakilerden ayırt etmek önemlidir nesne takibiBir görüntü işlem hattında farklı amaçlara hizmet ettikleri için. Optik akış, görüntü akışını tanımlayan düşük seviyeli bir işlemdir. Bu piksellerin neyi temsil ettiğini anlamadan piksellerin anlık hareketi. Doğası gereği bir nesnenin zaman içindeki kimliği.
Buna karşılık, nesne izleme, belirli varlıkların yerini belirleyen ve onlara tutarlı bir kimlik atayan üst düzey bir görevdir kareler arasında. Aşağıdakiler gibi gelişmiş izleme modları Ultralytics YOLO11tipik olarak gerçekleştirir nesne algılama önce ve sonra tespitleri ilişkilendirmek için hareket ipuçlarını kullanır. Bir izleyici, konumu tahmin etmek için dahili olarak optik akış kullanabilir, İzleyicinin amacı kimlik sürekliliğidir ("Araba #4 nereye gitti?"), oysa optik akışın amacı harekettir eşleme ("Bu pikseller ne kadar hızlı hareket ediyor?").
Optik akış, hareketle ilgili karmaşık sorunları çözmek için çeşitli endüstrilerde kullanılan çok yönlü bir araçtır.
Aşağıdaki Python örneği, yoğun optik akışın nasıl hesaplanacağını göstermektedir OpenCV kütüphane. Bu, Gunnar Farneback algoritması, yoğun akış tahmini için popüler bir yöntemdir.
import cv2
import numpy as np
# Load two consecutive frames (ensure these files exist)
frame1 = cv2.imread("frame1.jpg")
frame2 = cv2.imread("frame2.jpg")
# Convert frames to grayscale
prvs = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
next = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)
# Calculate dense optical flow using Farneback's algorithm
flow = cv2.calcOpticalFlowFarneback(prvs, next, None, 0.5, 3, 15, 3, 5, 1.2, 0)
# Compute magnitude and angle of 2D vectors
mag, ang = cv2.cartToPolar(flow[..., 0], flow[..., 1])
print(f"Flow shape: {flow.shape}") # Output: (Height, Width, 2)
print(f"Max motion magnitude: {np.max(mag):.2f} pixels")
Hareket analizini nesne algılama ile entegre etmek isteyen kullanıcılar için, Ultralytics algılama modelleri birleştirilebilir akış algoritmaları ile sağlam analitik işlem hatları oluşturmak için. Optik akış ham hareket verilerini sağlarken, gibi üst düzey modeller YOLO11 sağlamak Bu hareketi etkili bir şekilde yorumlamak için gereken anlamsal anlayış. gibi modellere yönelik devam eden Ar-Ge çalışmaları YOLO26 mekânsal ve mekânsal olmayan Daha da hızlı uçtan uca video analizi için zamansal anlayış.