YOLOP for RDK S100/S100P β€” panoptic driving perception

Compiled BPU models (.hbm) for the D-Robotics RDK S100 / S100P, ready to load β€” no ONNX export, no calibration, no hb_compile. Built and measured with BCDL, a C++17 inference and media library for the RDK S-series with Python bindings.

Upstream: YOLOP, BDD100K

Non-commercial. These weights carry a restriction the upstream code licence never mentions β€” see Licence at the bottom. Redistribution is permitted; commercial use is not. If you need a commercial build, the recipe is public and you can retrain or substitute the backbone.

Files

file what it is
yolop_cut_nashm_640x640_nv12.hbm 640x640 NV12, 3 raw heads β€” 11.3 MB

Measured on an S100P

stage latency throughput
all three heads 2.75 ms 364 FPS

hrt_model_exec perf, one thread, minimum of three runs, on a board first gated against its own previously recorded numbers. BPU time only β€” CPU pre/post-processing is on top and is listed per task in BCDL's benchmark results.

Use it

conda install -c https://mirrors.ruis.ai/conda -c conda-forge bcdl
import bcdl
engine = bcdl.Engine("yolop_cut_nashm_640x640_nv12.hbm")
print(engine.input_shape(0), engine.output_shape(0))

Each task has a decoder in BCDL that turns those raw outputs into boxes, keypoints, masks, disparity or text β€” see the Python API (δΈ­ζ–‡).

What to know before deploying

One pass gives three outputs: vehicle detection, drivable area and lane lines.

The _cut suffix is the whole story. The published export bakes its anchor decode into the graph with ScatterND. That compiles without a single warning into a model whose objectness and class columns are never written β€” zero detections at any threshold, and nothing anywhere says why. This build is cut before the decode and emits the three raw heads ([1,18,80,80], [1,18,40,40], [1,18,20,20]); BCDL decodes them on the CPU. Cutting it also made it 10x faster (28.33 ms to 2.75 ms) β€” that construct is extremely expensive on this part.

The decode is anchor-based, and the anchors are in pixels, not stride units: xy = (2*sigmoid - 0.5 + grid) * stride, wh = (2*sigmoid)^2 * anchor.

Non-commercial. See the licence note above.

Licence

MIT on the code and the weights are committed in the repository, but they are trained on BDD100K, which limits commercial use to member organizations.

BCDL itself is Apache-2.0 and is unrelated to these terms β€” it is a general-purpose runtime that loads any .hbm. The licence above constrains these weights and this compiled artefact.

The conversion recipe β€” ONNX export, calibration, hb_compile config and the acceptance numbers β€” is public in bcdl-model-zoo, so this build can be reproduced or retargeted rather than taken on trust.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support