Ultralytics YOLO27: Bekleme listesine katıl.
YOLO'yu lisansla
Ultralytics Sözlüğüne dön

Kalman Filter (KF)

Kalman filtresi, bir nesnenin konumu ve hızı gibi değişen bir durumu model tahminlerini gürültülü ölçümlerle birleştirerek tahmin eder. Matematik ve kod.

Kalman filtresi (KF), bir nesnenin konumu ve hızı gibi değişen bir sistemin gizli durumunu, gürültülü ölçüm akışından tahmin eden özyinelemeli bir algoritmadır. Her zaman adımında sistemin nasıl hareket ettiğini açıklayan bir modelden sonraki durumu tahmin eder, ardından belirsizliklerini dikkate alarak yeni ölçümle tahmini düzeltir. Rudolf E. Kálmán yöntemi 1960'ta yayımladı; Gauss gürültülü doğrusal sistemlerde en düşük ortalama karesel hata tahminini verir. GPS alıcılarında, uçak ve uzay aracı seyrüseferinde, robot konum belirlemede ve bilgisayarlı görüde kullanılan neredeyse tüm çok nesneli izleyicilerde çalışır; burada titreşimli tespitleri yumuşatır ve her nesnenin bir sonraki konumunu tahmin eder.

Kalman Filtresi Nasıl Çalışır#

Filtre iki niceliği saklar: örneğin konum ve hızdan oluşan bir durum tahmini x ve tahminin ne kadar belirsiz olduğunu açıklayan bir kovaryans matrisi P. Her döngü iki adımdan oluşur:

  1. Tahmin: Bir hareket modeli F, durumu ileriye taşır: x = F x. Modelin yakalayamadığı hareketleri kapsayan süreç gürültüsü Q nedeniyle belirsizlik artar: P = F P Fᵀ + Q.
  2. Güncelleme: Durumla ölçüm modeli H aracılığıyla ilişkili yeni bir ölçüm z gelir. Filtre, artığı z − H x ve ölçüm gürültüsünün R yer aldığı Kalman kazancını K = P Hᵀ (H P Hᵀ + R)⁻¹ hesaplar. Düzeltilmiş durum x + K (z − H x) olur ve belirsizlik (I − K H) P değerine düşer.

Kalman kazancı, model ile sensör arasındaki dengeyi belirler. Ölçümler tahmine kıyasla hassas olduğunda kazanç 1'e yaklaşır ve tahmin ölçümü izler; ölçümler gürültülü olduğunda kazanç 0'a yaklaşır ve tahmin, modelin öngörüsünü izler. Durum, doğrudan hiç ölçülmeyen nicelikleri içerebildiğinden filtre bunları da çıkarır: yalnızca konumları gözlemleyen bir izleyici yine de hızı tahmin eder. Ölçüm olmadığında filtre güncelleme adımını atlar ve tahminiyle ilerler:

Nesne İzlemede Kalman Filtreleri#

Nesne izlemede her izleme kaydı kendi Kalman filtresini taşır. Durum, sınırlayıcı kutunun merkezini ve boyutunu, ayrıca bunların hızlarını içerir; sabit hızlı bir model de kutunun sonraki karede nerede olacağını tahmin eder. Bu tahminler yeni tespitlerle Birleşim Üzerinde Kesişim (IoU) ölçütüne göre eşleştirilir ve eşleşen her tespit, izleme kaydını güncelleyen ölçüm olur. Bir nesne birkaç kare boyunca gizlendiğinde izleme kaydı tahmin edilen yörüngesi boyunca ilerlemeye devam eder; böylece yeniden ortaya çıkan tespit, eski kimliği koruyacak kadar yakın bir tahminle eşleşir.

Ultralytics YOLO içindeki her izleyici, izleme modunda bu şekilde çalışır: ByteTrack'in KalmanFilterXYAH yöntemi, kutu merkezini, en-boy oranını, yüksekliğini ve bunların hızlarını içeren 8 boyutlu bir durumu izler. BoT-SORT ve TrackTrack ise genişlik ve yüksekliğe dayalı bir varyant kullanır; ikisi de gürültüyü kutu boyutuna göre ölçeklendirerek büyük ve yakındaki nesnelerin piksel cinsinden daha büyük sıçramalar yapmasına izin verir. Aynı tahmin ve güncelleme adımları, kutu merkezinin tek bir koordinatı için birkaç satırlık NumPy koduyla uygulanabilir:

import numpy as np

F = np.array([[1.0, 1.0], [0.0, 1.0]])  # constant-velocity model, state = [position, velocity]
H = np.array([[1.0, 0.0]])  # the detector measures position only
Q = 0.001 * np.eye(2)  # process noise: how far real motion may stray from the model
R = np.array([[25.0]])  # measurement noise: detections jitter by about 5 px

rng = np.random.default_rng(0)
truth = 100 + 3.0 * np.arange(60)  # box center moving 3 px per frame
z = truth + rng.normal(0, 5.0, truth.size)  # noisy detections

x, P = np.array([z[0], 0.0]), np.diag([25.0, 100.0])  # start from the first detection
estimates = [x[0]]
for measurement in z[1:]:
    x, P = F @ x, F @ P @ F.T + Q  # predict
    K = P @ H.T @ np.linalg.inv(H @ P @ H.T + R)  # Kalman gain
    x = x + K @ (measurement - H @ x)  # update with the weighted residual
    P = (np.eye(2) - K @ H) @ P
    estimates.append(x[0])

print(f"Detection error: {np.sqrt(np.mean((z - truth) ** 2)):.2f} px")
print(f"Kalman error: {np.sqrt(np.mean((np.array(estimates) - truth) ** 2)):.2f} px")
print(f"Estimated velocity: {x[1]:.2f} px/frame")

Kod, ham tespitler için 4.50 px, filtrelenmiş tahminler için 2.48 px kök ortalama kare hatası ve hız hiç ölçülmemiş olsa da gerçek 3 px değerine yakın olan kare başına 2.98 px tahmini hız yazdırır.

Standart Kalman filtresi, Gauss gürültülü doğrusal hareket ve ölçüm modellerini varsayar. Diğer türleri bu varsayımları gevşetir:

  • Genişletilmiş Kalman filtresi (EKF): Her adımda Jacobian matrisleri kullanarak doğrusal olmayan modelleri mevcut tahmin çevresinde doğrusallaştırır; GPS ve ataletsel seyrüseferde standart tercihtir.
  • Unscented Kalman filtresi (UKF): Dikkatle seçilmiş küçük bir örnek noktaları kümesini doğrusal olmayan modelden geçirir; genellikle doğrusallaştırmadan daha doğru sonuç verir ve türev gerektirmez.
  • Parçacık filtresi: Durum dağılımını ağırlıklandırılmış çok sayıda rastgele örnekle temsil eder. Böylece hangi iki koridordan birinde olduğundan emin olmayan bir robotun inancı gibi Gauss dışı ve çok modlu inançları, çok daha yüksek hesaplama maliyetiyle işler.
  • Gizli Markov modeli (HMM): Ayrık durumlar için aynı tahmin ve güncelleme özyinelemesini kullanır; Kalman filtresi ise sürekli, doğrusal-Gauss durumlar için karşılığıdır.

İzleme Dışındaki Uygulamalar#

  • Robotik ve sensör füzyonu: Robotlar tekerlek odometrisini, IMU'ları, lidarı ve kameraları birleştirerek tek bir poz tahmini oluşturur; EKF tabanlı yöntemler eşzamanlı konum belirleme ve haritalama için klasik bir yaklaşımdır.
  • Artırılmış gerçeklik: Başlıklar, sanal nesneleri düşük gecikmeyle sabit tutmak için baş pozu ölçümlerini filtreler.
  • Ekonomi ve sinyal işleme: Analistler, gürültülü zaman serilerinden gözlemlenemeyen eğilimleri tahmin etmek için Kalman yumuşatmasını kullanır.
  • Seyrüsefer: Uçaklar, gemiler, dronlar ve telefonlar, uydu konum güncellemeleri arasında konumu kararlı tutmak için GPS'i ataletsel sensörlerle birleştirir. Seyrüsefer, filtrenin ilk büyük uygulamasıydı: 1960'ların başında NASA Ames'ten Stanley F. Schmidt, Apollo seyrüsefer bilgisayarında kullanılmak üzere filtreyi doğrusal olmayan yörünge tahminine uyarladı.

Çözümleri keşfet

Sporda bilgisayarlı görü

Sporda bilgisayarlı görü

Ultralytics YOLO'nun oyuncu ve top takibi, performans analitiği, antrenörlük içgörüleri ve sporcu rehabilitasyonuyla spor alanında görsel yapay zekâyı nasıl güçlendirdiğini keşfet.
Daha fazla bilgi edin
Hava görüntüleri için bilgisayarlı görü

Hava görüntüleri için bilgisayarlı görü

İHA ve hava görüntülerini Ultralytics YOLO ile tarım, su ürünleri yetiştiriciliği, koruma çalışmaları ve jeo-uzamsal analiz için gerçek zamanlı içgörülere dönüştür.
Daha fazla bilgi edin
Havacılıkta bilgisayarlı görü

Havacılıkta bilgisayarlı görü

Uçak denetimi, pistteki yabancı madde tespiti, havaalanı yer operasyonları ve kompozit malzeme kusurlarının tespiti için Ultralytics YOLO ile havacılık ve uzay sektöründe bilgisayarlı görü uygula.
Daha fazla bilgi edin
Güvenlikte bilgisayarlı görü

Güvenlikte bilgisayarlı görü

Ultralytics YOLO modelleriyle her sahayı koru. Görsel yapay zekâ; çevre izleme, tehdit tespiti, plaka tanıma ve iş yeri güvenliğini destekler.
Daha fazla bilgi edin
Robotikte bilgisayarlı görü

Robotikte bilgisayarlı görü

Ultralytics YOLO modelleriyle daha akıllı makinelere güç ver. Robotikte görsel yapay zekâ; otonom navigasyonu, algılamayı, nesne takibini ve gerçek zamanlı kontrolü destekler.
Daha fazla bilgi edin
Lojistikte bilgisayarlı görü

Lojistikte bilgisayarlı görü

Ultralytics YOLO modelleriyle lojistiği kolaylaştır. Görüntü yapay zekâsı; paket denetimini, ayrıştırmayı, araç takibini ve gerçek zamanlı depo güvenliği izlemeyi mümkün kılar.
Daha fazla bilgi edin
Perakendede bilgisayarlı görü

Perakendede bilgisayarlı görü

Ultralytics YOLO modelleriyle perakendeyi yeniden tasarla. Görüntü yapay zekâsı; envanter takibini, raf izlemeyi, kuyruk yönetimini ve daha kapsamlı müşteri analizlerini mümkün kılar.
Daha fazla bilgi edin
Sağlık hizmetlerinde bilgisayarlı görü

Sağlık hizmetlerinde bilgisayarlı görü

Ultralytics YOLO modelleriyle sağlık çözümleri geliştir. Sağlık hizmetlerinde görüntü yapay zekâsı; daha hızlı tıbbi görüntüleme, daha akıllı tanı ve hasta takibini mümkün kılar.
Daha fazla bilgi edin
Üretimde bilgisayarlı görü

Üretimde bilgisayarlı görü

Ultralytics YOLO modelleriyle üretimi optimize et. Görsel yapay zekâ; kalite kontrolünü, kusur tespitini, kişisel koruyucu donanım uyumunu ve montaj hattı otomasyonunu destekler.
Daha fazla bilgi edin
Otomotivde bilgisayarlı görü

Otomotivde bilgisayarlı görü

Ultralytics YOLO modelleriyle otomotivde bilgisayarlı görüden yararlan. Görsel yapay zekâ; daha akıllı yollar için yol güvenliğini, sürüş desteğini ve araç otomasyonunu ileri taşır.
Daha fazla bilgi edin
Tarımda bilgisayarlı görü

Tarımda bilgisayarlı görü

Ultralytics YOLO modelleriyle akıllı tarıma görüntü yapay zekâsı kazandır. Daha yüksek ve akıllı verim için mahsul izleme, hayvan takibi ve hassas tarımı destekle.
Daha fazla bilgi edin

Geleceğin yapay zekasını birlikte inşa edelim!

Makine öğreniminin geleceğine yolculuğuna başla