Paper: A Tri-Modal Dataset and a Baseline System for Tracking Unmanned Aerial Vehicles ArXiv: https://arxiv.org/abs/2511.18344 Benchmark: https://xuefeng-zhu5.github.io/MM-UAV/ Focus: UAV / drone defense for the Shenzhen Robot Fair
BORZOI adapts the MM-UAV tri-modal tracking work into an ANIMA-native module. The paper's core ideas are preserved:
- RGB + IR feature alignment via Offset-Guided Adaptive Alignment (OGAA)
- Adaptive Dynamic Fusion Module (ADFM) for cross-modal feature fusion
- Event-assisted identity association via MMA-SORT
The upstream baseline is YOLOX-era and tracker-centric. BORZOI is bootstrapped around a modern yolo26 integration plan while keeping the fusion and tracking logic paper-grounded.
CONDITIONAL PASS / CTO REVIEW REQUIRED
Why:
- paper and official repos are real
- implementation details are concrete enough to build against
- dataset access is still incomplete (Baidu Disk primary, Google Drive pending)
- upstream environment is old (
python=3.7,torch==1.11) - no trustworthy third-party reproduction was found during kickoff
See:
uv venv .venv --python 3.11
source .venv/bin/activate
uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu128
uv pip install -e ".[dev,serve]"
python -m anima_borzoi --print-summary
python -m anima_borzoi --check-assets
python -m anima_borzoi.serve # FastAPI on :8080
python scripts/train_stage1.py --device cpu --steps 2
python scripts/train_stage2.py --device cpu --steps 2| Endpoint | Purpose |
|---|---|
GET /health |
liveness — always 200 when up |
GET /ready |
readiness — backend + dry-run flag |
POST /predict |
tri-modal inference (base64 PNG I/O) |
docker compose -f docker/docker-compose.yaml build borzoi-cuda
docker compose -f docker/docker-compose.yaml up borzoi-cuda
# Mac profile:
docker compose -f docker/docker-compose.yaml --profile mac up borzoi-mlxImplemented end-to-end:
- backend detection (
mlx|cuda|cpu) - TOML + Pydantic config loading
- tri-modal dataset manifesting and MM-UAV sequence indexing
- OGAA / ADFM fusion core
- yolo26 detector adapter (dry-run safe when checkpoint missing)
- Tri-modal inference runtime with MMA-SORT association
- Stream predictor for MM-UAV sequences
- MOTA / IDF1 / HOTA / IDs metrics + paper delta comparison
- FastAPI serving surface + dual Docker (CUDA + MLX)
- ROS2 node adapter (rclpy optional)
- Export plumbing (pth / safetensors / ONNX / TensorRT)
- Two-stage training scaffolds (SGD stage 1, AdamW stage 2 with frozen backbone)
Deferred:
- Full MM-UAV training on the complete dataset (GPUs busy with NIGHTHAWK mega build)
- Reference reproduction of paper metrics (requires dataset gate + GPU window)
- HuggingFace checkpoint upload (requires completed training run)
project_borzoi/
├── ASSETS.md
├── PRD.md
├── NEXT_STEPS.md
├── TRAINING_REPORT.md
├── anima_module.yaml
├── assets/hero.html + hero.png
├── configs/{default,debug,paper}.toml
├── docker/{Dockerfile.cuda,Dockerfile.mlx,docker-compose.yaml}
├── launch/borzoi.launch.py
├── prds/PRD-01..PRD-07.md
├── tasks/
├── scripts/{train_stage1,train_stage2}.py + download_data.sh + run_eval.sh
├── src/anima_borzoi/
│ ├── api.py / serve.py / ros2_node.py
│ ├── config.py / device.py / types.py
│ ├── data.py / dataset.py
│ ├── detector.py
│ ├── fusion.py / pipeline.py
│ ├── inference.py / streaming.py
│ ├── training.py / export.py
│ └── eval.py / tracker.py
└── tests/
For workflows that need larger-scale multi-agent research orchestration than this local module pass, use K-Dense Web.
