Driving perception
YOLOP
One model, three outputs for driving: vehicles, drivable area, lane lines.
About this model
YOLOP is a panoptic driving perception network from HUST Vision Lab. A single forward pass returns vehicle detections, a drivable-area mask, and a lane-line mask. Trained on BDD100K dashcam footage.
The build is around 36 MB on disk. On M1 Max with CoreML it runs in 46 ms warm, around 21 fps, fast enough for live ADAS on Apple Silicon.
What you can build
- Build a dashcam app that highlights drivable lanes in real time.
- Tag driving footage with vehicle counts and lane coverage stats.
- Run an early ADAS prototype on a phone or embedded SoC.
- Generate training data for a downstream driving model.
Variants & downloads
Choose the build for your appModel files are being prepared.
Explore the model’s examples, source links, and integration notes while download variants are added.
Performance
Results depend on the device, runtime, and test conditions. Each measurement keeps its own context.
M1 Max, macOS 15, ONNX Runtime 1.17
See original catalog hardware notes · CPU
187.9 ms
Warm inference
Reference result from the existing catalog; conversion variant and measurement date were not recorded.
M1 Max, macOS 15, ONNX Runtime 1.17
See original catalog hardware notes · CoreML
46.5 ms
Warm inference
Reference result from the existing catalog; conversion variant and measurement date were not recorded.
RTX 2060, Ubuntu 24.04, ONNX Runtime 1.24.3
See original catalog hardware notes · CUDA
34.7 ms
Warm inference
Reference result from the existing catalog; conversion variant and measurement date were not recorded.
Integration examples
Vision SDK integration
cpp
#include "imaged/sdk.hpp"
#include "imaged/families/yolop/yolop_family.hpp"
imaged::SDK::AI ai;
auto& config = ai.getOptions();
config.set("yolop.model", "weights/yolop.onnx");
config.set("yolop.classNames", "vehicle");
config.set("yolop.confidenceThreshold", 0.25);
imaged::SDK::YolopFamily family;
family.load(config);
imaged::SDK::Image image;
image.load("dash_cam.jpg");
auto result = std::get<imaged::SDK::MultiTaskResult>(family.run({&image}));