Skip to content

Commit 2b577f2

Browse files
Create new articles under how it works
Signed-off-by: Sebastian Golebiewski <sebastianx.golebiewski@intel.com>
1 parent 69eacf8 commit 2b577f2

File tree

7 files changed

+121
-106
lines changed

7 files changed

+121
-106
lines changed

metro-ai-suite/metro-vision-ai-app-recipe/smart-tolling/README.md

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,42 +8,40 @@ Enabling such use cases across multiple viewpoints helps in understanding the ob
88

99
## Key Features
1010

11-
**Multi vision**:
12-
13-
Scene-based analytics allow insights beyond single sensor views.
11+
**Multi vision**: Scene-based analytics allow insights beyond single sensor views.
1412

1513
- **Vehicle axle detection**:
1614

17-
Vehicle class is determined based on axle and wheel count.\
18-
Intended for toll classification, as well as revenue calculation and protection.\
19-
Multi view and the advanced "lift axle" detection using computer vision
20-
ensures accurate tariffing.
21-
22-
- **License plate detection**:
15+
Vehicle class is determined based on axle and wheel count. Intended for toll
16+
classification, as well as revenue calculation and protection.
2317

24-
The application identifies vehicles uniquely by their license plates, which are
25-
read from both front and rear views.\
26-
The image evidence is included in every transaction for simplified auditing.
18+
- **Lift axle detection**:
2719

28-
**Visualization & analytics**:
20+
The type of axle is determined based on camera feed. Ensures accurate tariffing,
21+
as lift axles may affect toll classification even when raised.
2922

30-
Provides real-time and historical insights for toll operators.
23+
- **License plate detection**:
3124

32-
**Modularity**:
25+
The application identifies vehicles uniquely by their license plates, which are
26+
read from both front and rear views. The image evidence is included in every
27+
transaction for simplified auditing.
3328

34-
Architecture based on modular microservices enables composability and reconfiguration.
29+
**Visualization & analytics**: Provides real-time and historical insights for
30+
toll operators.
3531

36-
**High-throughput processing**:
32+
**Modularity**: Architecture based on modular microservices enables composability
33+
and reconfiguration.
3734

38-
Optimized video pipelines for Intel edge devices.
35+
**High-throughput processing**: [Optimized video pipelines](./docs/user-guide/how-it-works/optimization.md#zero-copy-video-pipeline)
36+
for Intel edge devices.
3937

4038
## How it Works
4139

4240
The system uses the **Metro Edge Architecture** based on three key principles:
4341

44-
- **Perception**: Deep Learning Streamer (DLStreamer) [processes 3/4 camera feeds](./docs/user-guide/perception-layer.md).
42+
- **Perception**: Deep Learning Streamer (DLStreamer) [processes 3/4 camera feeds](./docs/user-guide/how-it-works/perception-layer.md).
4543
- **Control**: SceneScape Controller [aggregates metadata](./docs/user-guide/how-it-works.md#analytics-pipeline-downstream).
46-
- **Analytics**: Node-RED [transforms events into traffic insights](./docs/user-guide/how-it-works.md#node-red-transformation)
44+
- **Analytics**: Node-RED [transforms events into traffic insights](./docs/user-guide/how-it-works/analytics-pipeline.md#node-red-transformation)
4745
(Traffic Volume, Flow Efficiency, Tariffing).
4846

4947
## Learn More

metro-ai-suite/metro-vision-ai-app-recipe/smart-tolling/docs/user-guide/how-it-works.md

Lines changed: 10 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,24 @@ The application can be configured to work with live cameras.
1919

2020
### Core (Processing)
2121

22-
- [**Video Analytics**](./perception-layer.md) - Deep Learning Streamer Pipeline Server
22+
- [**Video Analytics**](./how-it-works/perception-layer.md) - Deep Learning Streamer Pipeline Server
2323
(DL Streamer Pipeline Server) utilizes a pre-trained object detection model
24-
to [generate object detection metadata](#zero-copy-video-pipeline) and and a local
24+
to [generate object detection metadata](./how-it-works/#zero-copy-video-pipeline) and and a local
2525
NTP server for synchronized timestamps. This metadata is published to the MQTT broker.
2626
- **Sensor Fusion** - Scene Controller Microservice fuses the metadata from
2727
video analytics utilizing scene data obtained through the Scene Management API.
2828
It uses the fused tracks and the configured analytics (regions of interest)
2929
to generate events that are published to the MQTT broker.
30-
- [**Aggregate Scene Analytics**](#node-red-transformation) - Region of interests
30+
- [**Aggregate Scene Analytics**](./how-it-works/analytics-pipeline.md#node-red-transformation) - Region of interests
3131
analytics are read from the MQTT broker and
32-
[stored in an InfluxDB bucket](#storage-influxdb) that enables time series
32+
[stored in an InfluxDB bucket](./how-it-works/analytics-pipeline.md#storage-influxdb) that enables time series
3333
analysis through Flux queries.
3434

3535
### Live Feed Output
3636

3737
- Fused object tracks are available on the MQTT broker and visualized through
3838
the Scene Management UI.
39-
- [Aggregated toll analytics](#analytics-pipeline-downstream) are visualized
39+
- [Aggregated toll analytics](./how-it-works/analytics-pipeline.md) are visualized
4040
through a Grafana dashboard.
4141

4242
### Workflow
@@ -51,65 +51,11 @@ The application can be configured to work with live cameras.
5151
8. Grafana visualizes real time and historical data enabling access to metrics
5252
and vehicle details.
5353

54-
## Optimizations
55-
56-
The system achieves high-throughput processing on Edge hardware through specific
57-
optimizations defined in `config.json`. The [`docker-compose.yml`](./_assets/docker-compose.yml)
58-
file mentions all the services and the pipelines are configured in `config.json` file.
59-
60-
### Zero-Copy Video Pipeline
61-
62-
Unlike standard OpenCV pipelines that copy frames to CPU RAM, this solution utilizes **VASurface Sharing plugin**.
63-
64-
- **Mechanism:** Decoded video frames remain in GPU memory (`video/x-raw(memory:VAMemory)`).
65-
- **Benefit:** Zero-copy inference eliminates PCIe bandwidth bottlenecks, reducing end-to-end latency by ~40%.
66-
- **Config Evidence:** `pre-process-backend=va-surface-sharing` used in all `gvadetect` elements.
67-
68-
### Dynamic ROI Inference (Hierarchical Execution)
69-
70-
To maximize efficiency, heavy neural networks (like Axle Counting) do not run on the full 4K frame.
71-
72-
- **Logic:** The "Vehicle Type" model runs first to find the bounding box.
73-
- **Optimization:** The Axle model is configured with `inference-region=roi-list`,
74-
forcing it to execute *only* within the coordinates of the detected vehicle.
75-
- **Impact:** Reduces pixel processing load by >80% for sparse traffic scenes.
76-
77-
### Hybrid Workload Distribution
78-
79-
The pipeline intelligently maps models to available accelerators to prevent resource contention:
80-
81-
- **GPU (Flex Series):** Handles heavy convolution tasks (Vehicle Detection, LPR, Axle Counting).
82-
- **CPU (Xeon):** Handles lighter classification tasks (Vehicle Color) and post-processing adapters (`gvapython`).
83-
84-
## Analytics Pipeline (Downstream)
85-
86-
Raw metadata is valuable, but actionable insights come from the Analytics Pipeline.
87-
88-
## Node-RED Transformation
89-
90-
- **Input:** The **MQTT IN Node** subscribes to `scenescape/event/region/+/+/objects`.
91-
- **Logic:** The **Function node** aggregates counts per region and calculates **Dwell Time** (congestion).
92-
- **Output:** The **InfluxDB OUT Node** writes normalized data points to InfluxDB.
93-
94-
![Node-RED Flow](./_assets/smart_tolling_nodered.png)
95-
96-
### Storage (InfluxDB)
97-
98-
InfluxDB acts as a single source of truth. All critical and shared data is
99-
stored in one location, ensuring every user and system accesses the same,
100-
accurate and consistent information.
101-
102-
![InfluxDB Dashboard 1](./_assets/smart_tolling_influx_db.png)
103-
104-
### Visualization (Grafana)
105-
106-
The system ships with a pre-configured dashboard (`anthem-intersection.json` schema)
107-
focusing on Traffic Volume, Flow Efficiency and Safety Alerts.
108-
109-
![Grafana Dashboard 1](./_assets/garfana_Dashboard1.png)
110-
11154
## Learn More
11255

56+
- [Perception Layer](./how-it-works/perception-layer.md)
57+
- [Optimizations](./how-it-works/optimization.md)
58+
- [Analytics Pipeline](./how-it-works/analytics-pipeline.md)
11359
- [System Requirements](./get-started/system-requirements.md)
11460
- [Get Started](./get-started.md)
11561
- [API Reference](./api-reference.md)
@@ -120,6 +66,8 @@ focusing on Traffic Volume, Flow Efficiency and Safety Alerts.
12066
:hidden:
12167
12268
./perception-layer
69+
./optimization
70+
./analytics-pipeline
12371
12472
:::
12573
hide_directive-->
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Analytics Pipeline (Downstream)
2+
3+
Raw metadata is valuable, but actionable insights come from the Analytics Pipeline.
4+
5+
## Node-RED Transformation
6+
7+
- **Input:** The **MQTT IN Node** subscribes to `scenescape/event/region/+/+/objects`.
8+
- **Logic:** The **Function node** aggregates counts per region and calculates **Dwell Time** (congestion).
9+
- **Output:** The **InfluxDB OUT Node** writes normalized data points to InfluxDB.
10+
11+
![Node-RED Flow](../_assets/smart_tolling_nodered.png)
12+
13+
### Storage (InfluxDB)
14+
15+
InfluxDB acts as a single source of truth. All critical and shared data is
16+
stored in one location, ensuring every user and system accesses the same,
17+
accurate and consistent information.
18+
19+
![InfluxDB Dashboard 1](../_assets/smart_tolling_influx_db.png)
20+
21+
### Visualization (Grafana)
22+
23+
The system ships with a pre-configured dashboard (`anthem-intersection.json` schema)
24+
focusing on Traffic Volume, Flow Efficiency and Safety Alerts.
25+
26+
![Grafana Dashboard 1](../_assets/garfana_Dashboard1.png)
27+
28+
## Learn More
29+
30+
- [Perception Layer](./perception-layer.md)
31+
- [Optimizations](./optimization.md)
32+
- [Support and Troubleshooting](../troubleshooting.md)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Optimization
2+
3+
The system achieves high-throughput processing on Edge hardware through specific
4+
optimizations defined in `config.json`. The [`docker-compose.yml`](../_assets/docker-compose.yml)
5+
file mentions all the services and the pipelines are configured in `config.json` file.
6+
7+
## Zero-Copy Video Pipeline
8+
9+
Unlike standard OpenCV pipelines that copy frames to CPU RAM, this solution utilizes **VASurface Sharing plugin**.
10+
11+
- **Mechanism:** Decoded video frames remain in GPU memory (`video/x-raw(memory:VAMemory)`).
12+
- **Benefit:** Zero-copy inference eliminates PCIe bandwidth bottlenecks, reducing end-to-end latency by ~40%.
13+
- **Config Evidence:** `pre-process-backend=va-surface-sharing` used in all `gvadetect` elements.
14+
15+
## Dynamic ROI Inference (Hierarchical Execution)
16+
17+
To maximize efficiency, heavy neural networks (like Axle Counting) do not run on the full 4K frame.
18+
19+
- **Logic:** The "Vehicle Type" model runs first to find the bounding box.
20+
- **Optimization:** The Axle model is configured with `inference-region=roi-list`,
21+
forcing it to execute *only* within the coordinates of the detected vehicle.
22+
- **Impact:** Reduces pixel processing load by >80% for sparse traffic scenes.
23+
24+
## Hybrid Workload Distribution
25+
26+
The pipeline intelligently maps models to available accelerators to prevent resource contention:
27+
28+
- **GPU (Flex Series):** Handles heavy convolution tasks (Vehicle Detection, LPR, Axle Counting).
29+
- **CPU (Xeon):** Handles lighter classification tasks (Vehicle Color) and post-processing adapters (`gvapython`).
30+
31+
## Learn More
32+
33+
- [Perception Layer](./perception-layer.md)
34+
- [Analytics Pipeline](./analytics-pipeline.md)
35+
- [Support and Troubleshooting](../troubleshooting.md)

metro-ai-suite/metro-vision-ai-app-recipe/smart-tolling/docs/user-guide/perception-layer.md renamed to metro-ai-suite/metro-vision-ai-app-recipe/smart-tolling/docs/user-guide/how-it-works/perception-layer.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,5 +43,6 @@ Instead of sending raw video streams, adapters encode "Evidence Crops" as
4343
4444
## Learn More
4545
46-
- [Analytics Pipeline](./how-it-works.md)
47-
- [Support and Troubleshooting](./troubleshooting.md)
46+
- [Optimizations](./optimization.md)
47+
- [Analytics Pipeline](../how-it-works.md)
48+
- [Support and Troubleshooting](../troubleshooting.md)

metro-ai-suite/metro-vision-ai-app-recipe/smart-tolling/docs/user-guide/index.md

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,42 +13,40 @@ efficiency.
1313

1414
## Key Features
1515

16-
**Multi vision**:
17-
18-
Scene-based analytics allow insights beyond single sensor views.
16+
**Multi vision**: Scene-based analytics allow insights beyond single sensor views.
1917

2018
- **Vehicle axle detection**:
2119

22-
Vehicle class is determined based on axle and wheel count.\
23-
Intended for toll classification, as well as revenue calculation and protection.\
24-
Multi view and the advanced "lift axle" detection using computer vision
25-
ensures accurate tariffing.
26-
27-
- **License plate detection**:
20+
Vehicle class is determined based on axle and wheel count. Intended for toll
21+
classification, as well as revenue calculation and protection.
2822

29-
The application identifies vehicles uniquely by their license plates, which are
30-
read from both front and rear views.\
31-
The image evidence is included in every transaction for simplified auditing.
23+
- **Lift axle detection**:
3224

33-
**Visualization & analytics**:
25+
The type of axle is determined based on camera feed. Ensures accurate tariffing,
26+
as lift axles may affect toll classification even when raised.
3427

35-
Provides real-time and historical insights for toll operators.
28+
- **License plate detection**:
3629

37-
**Modularity**:
30+
The application identifies vehicles uniquely by their license plates, which are
31+
read from both front and rear views. The image evidence is included in every
32+
transaction for simplified auditing.
3833

39-
Architecture based on modular microservices enables composability and reconfiguration.
34+
**Visualization & analytics**: Provides real-time and historical insights for
35+
toll operators.
4036

41-
**High-throughput processing**:
37+
**Modularity**: Architecture based on modular microservices enables composability
38+
and reconfiguration.
4239

43-
[Optimized video pipelines](./how-it-works.md) for Intel edge devices.
40+
**High-throughput processing**: [Optimized video pipelines](./how-it-works/optimization.md#zero-copy-video-pipeline)
41+
for Intel edge devices.
4442

4543
## How it Works
4644

4745
The system uses the **Metro Edge Architecture** based on three key layers:
4846

49-
- **Perception**: Deep Learning Streamer (DLStreamer) [processes 3/4 camera feeds](./perception-layer.md).
50-
- **Control**: SceneScape Controller [aggregates metadata](./how-it-works.md#analytics-pipeline-downstream).
51-
- **Analytics**: Node-RED [transforms events into traffic insights](./how-it-works.md#node-red-transformation)
47+
- **Perception**: Deep Learning Streamer (DLStreamer) [processes 3/4 camera feeds](./how-it-works/perception-layer.md).
48+
- **Control**: SceneScape Controller [aggregates metadata](./how-it-works/analytics-pipeline.md).
49+
- **Analytics**: Node-RED [transforms events into traffic insights](./how-it-works/analytics-pipeline.md#node-red-transformation)
5250
(Traffic Volume, Flow Efficiency, Tariffing).
5351

5452
## Learn More

metro-ai-suite/metro-vision-ai-app-recipe/smart-tolling/docs/user-guide/troubleshooting.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,7 @@
99

1010
## Support Contact
1111

12-
For further assistance, please contact the **Metro Vision AI Support Team**.
12+
If you run into an unexpected problem or need help with the application, you can
13+
browse existing issues or
14+
[create a new one](https://github.com/open-edge-platform/edge-ai-suites/issues)
15+
in the GitHub issue tracker.

0 commit comments

Comments
 (0)