Looking for the latest model? UrbanOmniDetect-2 is a separate follow-up release: one network for COCO-80 detection and calibration-free 3D cuboids. Its checkpoints are hosted in their own repository and are not interchangeable with the ones below.
This repository hosts the pretrained checkpoints from the CVPR 2026 DriveX paper. Training, evaluation, and inference code (single-image BEV, real-time video, and sliced high-resolution tracking) is in the GitHub repository.
Highlights
- Calibration-free 3D detection. A single model predicts 3D bounding box keypoints from a raw RGB image without camera intrinsics, depth estimation, or ground-plane priors.
- View-agnostic. One architecture works across ego-vehicle, infrastructure, and aerial drone viewpoints.
- Strongest on the harder KITTI splits. AP3D of 30.71 and APBEV of 35.19 on the Moderate split at IoU ≥ 0.7, ahead of calibration-dependent baselines on Moderate and Hard.
- Real-time. Under 11 ms per image on an A100 with TensorRT at 640 × 640.
- Robust to calibration error. Calibration-dependent methods lose more than 80% of their accuracy with a 5% focal-length error. UrbanOmniDetect takes no intrinsics as input and is invariant to such errors by construction.
KITTI Benchmark
| Method | AP3D Easy | AP3D Mod. | AP3D Hard | APBEV Easy | APBEV Mod. | APBEV Hard |
|---|---|---|---|---|---|---|
| MonoDGP | 30.76 | 22.34 | 19.02 | 39.40 | 28.20 | 24.42 |
| MonoCon | 26.33 | 19.01 | 15.98 | 34.65 | 25.39 | 21.93 |
| MonoLSS | 25.91 | 18.29 | 15.94 | 34.70 | 25.36 | 21.84 |
| DEVIANT | 24.63 | 16.54 | 14.52 | 32.60 | 23.04 | 19.99 |
| UrbanOmniDetect | 29.61 | 30.71 | 27.76 | 33.86 | 35.19 | 31.38 |
Monocular 3D detection on KITTI at IoU ≥ 0.7. The baselines use camera calibration. UrbanOmniDetect does not.
Checkpoints
Checkpoints are named urbanomnidetect_<backbone><-head>_<imgsz>.pt and cover YOLOv8, YOLOv9, YOLO11, and YOLO12 across all scales (n, s, m, l, x) and head configurations (default, P1, P2, P6). The P2 feature-pyramid head is the most accurate, and the YOLO11x-P2 family is recommended.
| Checkpoint | Backbone | Input | Use case |
|---|---|---|---|
checkpoints/urbanomnidetect_yolo11x-p2_1920.pt | YOLO11x + P2 | 1920 | Highest accuracy (recommended) |
checkpoints/urbanomnidetect_yolo11x-p2_1280.pt | YOLO11x + P2 | 1280 | Balance of accuracy and speed |
checkpoints/urbanomnidetect_yolo11x-p2_640.pt | YOLO11x + P2 | 640 | Real-time video and BEV |
checkpoints/urbanomnidetect_yolo11n-p2_640.pt | YOLO11n + P2 | 640 | Edge devices, lowest latency |
The Files and versions tab lists every checkpoint.
Architecture comparison
Keypoint mAP50:95 on the UrbanOmniView validation set at 640 × 640. Adding the P2 feature level improves every scale.
| Backbone | n | s | m | l | x |
|---|---|---|---|---|---|
| YOLO11 | 0.547 | 0.644 | 0.699 | 0.703 | 0.719 |
| YOLO11 + P6 | 0.548 | 0.639 | 0.693 | 0.698 | 0.718 |
| YOLO11 + P2 | 0.559 | 0.656 | 0.717 | 0.729 | 0.751 |
| YOLO12 | 0.470 | 0.580 | 0.651 | 0.654 | 0.684 |
| YOLOv9 | 0.545 | 0.634 | 0.688 | 0.701 | 0.716 |
| YOLOv8 | 0.549 | 0.607 | 0.662 | 0.682 | 0.693 |
Quick Start
Install the dependencies:
pip install ultralytics scipy scikit-learn opencv-python matplotlib
Download the recommended checkpoint:
huggingface-cli download mehmetkeremturkcan/UrbanOmniDetect \
checkpoints/urbanomnidetect_yolo11x-p2_1920.pt \
--local-dir .
Or download every checkpoint at once:
huggingface-cli download mehmetkeremturkcan/UrbanOmniDetect --local-dir .
Single-image inference
The model uses the standard Ultralytics prediction API. Point it at an image from any viewpoint and it predicts 3D bounding box keypoints without camera parameters.
from ultralytics import YOLO
model = YOLO("checkpoints/urbanomnidetect_yolo11x-p2_1920.pt")
results = model.predict("your_image.jpg", imgsz=1920, conf=0.1, device="cuda:0")
Each detection has eight ordered keypoints, the 2D projections of its 3D bounding box corners. Indices 0 to 3 are the top corners and indices 4 to 7 are the ground-contact corners.
Bird's-eye view and real-time video
The bird's-eye view, real-time tracking, and sliced high-resolution pipelines (draw_bev.py, bev_realtime.py, sahi_tracker.py) are in the GitHub repository. Ground-contact keypoints are mapped to a top-down plane through an orthogonality-constrained homography, so no camera calibration is needed.
python bev_realtime.py \
--input drone_manhattan.mp4 \
--kp-model checkpoints/urbanomnidetect_yolo11x-p2_640.pt \
--kp-imgsz 640 \
--aux-model yolo26x.pt \
--device cuda:0 \
--export tensorrt \
--output bev.mp4
Training Data
The models are trained on UrbanOmniView, a 37,446-frame dataset that combines ego-vehicle, infrastructure, and synthetic viewpoints.
| Source | Frames | Viewpoint |
|---|---|---|
| KITTI | 15,022 | Ego-vehicle |
| DAIR-V2X | 12,424 | Infrastructure |
| UE5 Synthetic | 10,000 | Ground, infrastructure, drone |
| Total | 37,446 |
The synthetic UE5 portion is released as part of this work.
Citation
If you use UrbanOmniDetect or the UrbanOmniView dataset in your research, please cite:
@inproceedings{turkcan2026urbanomnidetect,
title = {Calibration-Free View-Agnostic Monocular {3D} Object Detection for Urban Scenes},
author = {Turkcan, Mehmet Kerem and Gumaste, Devika and Kostic, Zoran},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR) Workshops},
pages = {786--795},
year = {2026}
}
Acknowledgements
This work began while the first author was a postdoc in the Department of Electrical Engineering (AIDL Lab) at Columbia University. It was supported by the NSF Engineering Research Center for Smart Streetscapes under Award EEC-2133516, NSF Grants CNS-2450567 and CNS-2038984, and by computing resources from the NVIDIA Academic Grant Program and the Empire AI Consortium.
License
Released under the GNU Affero General Public License v3.0.