betty0/uav-traffic-vision
uav-traffic-vision: YOLO26 on VisDrone2019-DET
Drone-view object detection trained on VisDrone2019-DET (10 classes: pedestrian, people, bicycle, car, van, truck, tricycle, awning-tricycle, bus, motor). Part of a portfolio project also covering SAHI sliced inference, ByteTrack-based traffic flow counting, and edge deployment benchmarks — full code and writeups: GitHub repo. Live demo: HF Space.
Files
Evaluation (VisDrone2019-DET val, 548 images)
Same evaluation protocol across all rows (pycocotools, conf=0.01, custom tiny/small/medium/large area buckets — see the GitHub repo for the exact methodology).
No single setting dominates every object-size bucket: SAHI wins on the smallest objects (native-resolution tiling), the 1024 checkpoint wins small/medium objects with no slicing overhead, and plain 640 direct is marginally best on large objects. See the GitHub repo's README for the full discussion.
Edge deployment (measured on a desktop RTX 4090 / host CPU — not a Jetson)
YOLO26 exports end-to-end (NMS-free) by default: the ONNX/TensorRT graph output is a fixed (1, 300, 6) tensor with no NMS op, which simplifies onboard deployment (no NMS-plugin version dependency, latency independent of scene density). TensorRT engines are architecture-specific and are not included here — rebuild on your target GPU with model.export(format="engine").
Usage
from ultralytics import YOLO
model = YOLO("yolo26s_visdrone_1024.pt") # or _640.pt / .onnx
results = model.predict("your_drone_image.jpg", imgsz=1024)
results[0].show()Intended use & limitations
- Trained for aerial/drone-viewpoint object detection at the altitudes and camera angles represented in VisDrone (urban streets, intersections, campuses). Not validated for other viewpoints (ground-level, satellite).
- Small-object detection remains the hardest case (see the tiny-object AP figures above) — for safety- or compliance-critical use, pair with SAHI sliced inference or the 1024 checkpoint rather than the 640 direct baseline alone.
- Heavy class imbalance in the source data (144.9k car instances vs 3.2k awning-tricycle in training) — expect weaker recall on the rarer vehicle classes.
Dataset license — please read
VisDrone2019 (AISKYEYE team, Tianjin University) is released for academic / research use only. These weights were trained on VisDrone and inherit that restriction — this is not a general-purpose commercially-licensed model. The dataset itself is not redistributed in this repository.
