The Perception Layer#
The core of the system is the DLStreamer Pipeline Server, which orchestrates
three parallel pipelines defined in config.json.
Pipeline Strategy#
Pipeline Name |
Camera View |
Primary Adapters |
Key Models |
|---|---|---|---|
|
Front LPR |
|
|
|
Rear LPR |
|
|
|
Side Profile Lane 1 |
|
|
|
Side Profile Lane 2 |
|
|
Algorithm Logic#
A. Smart Axle Counting (sscape_adapter_side.py)#
Counting wheels is easy; counting taxable wheels is hard. Our adapter implements physics-based logic:
IoU Deduplication:
Problem: A slow-moving truck might trigger multiple detections for the same wheel.
Solution: We apply Intersection-over-Union (IoU) filtering. If extensive overlap (>40%) is detected between wheel bounding boxes, only the highest confidence detection is kept.
Ground Contact Physics (Lift Axle Detection):
Problem: Trucks often lift axles to save tires. These should not be taxed.
Solution: The algorithm calculates a dynamic “Ground Plane”
($Y_{ground}$)based on the lowest points of the vehicle body and clearly grounded wheels.Logic:
$$ Wheel_{status} = \begin{cases} Grounded, & \text{if } Y_{wheel\_bottom} \ge Y_{ground} - \text{Tolerance} \\ Lifted, & \text{otherwise} \end{cases} $$Result: The payload reports
wheels_touching_groundseparately fromwheel_count.
B. Multi-View Image Fusion & Optimizations#
The system captures evidence from all angles to create a complete “Vehicle Package”. Instead of sending raw video streams, adapters encode “Evidence Crops” as Base64 strings directly inside the JSON MQTT payload.