kalbee¶
kalbee is a clean, modular Python library for Kalman Filters and state estimation algorithms. It provides a unified interface for 10 different filter types, a smoother, diagnostic metrics, and a built-in experiment runner to compare filter performance.
Highlights¶
| Category | What you get |
|---|---|
| 10 Filters | KF, EKF, UKF, Particle Filter, Ensemble, Information, Alpha-Beta-Gamma, Adaptive KF, Square-Root KF, Vectorized KF |
| Estimators | Interacting Multiple Model (IMM) filter |
| Motion Models | Ready-made constant-velocity, constant-acceleration, and coordinated-turn \((F, Q)\) builders |
| Tracking | SORT-style multi-object tracker with Hungarian association and gating |
| Learning | Offline EM to fit \(Q\)/\(R\) from data by maximum likelihood |
| Smoother | Rauch-Tung-Striebel (RTS) backward smoother |
| Diagnostics | RMSE, NEES, NIS, Log-Likelihood |
| Experiments | One-liner to compare filters on synthetic signals |
| Stability | Joseph form covariance updates, Cholesky factor stabilization, and symmetry checks |
Quick Start¶
from kalbee import run_experiment
# Compare filters on a sine wave
report = run_experiment(
signal="sine",
filters=["kf", "ekf", "ukf", "pf"],
noise_std=0.5,
)
print(report.summary())
Navigation¶
- Getting Started — Installation, core concepts, first filter
- Filters — Deep dive into each filter with theory + code
- Features — Motion models, multi-object tracking, EM parameter learning, smoother, metrics, experiment runner, maneuvering target, and YOLO object tracking
- Architecture — Design philosophy and extensibility