Skip to content

Commit 9ee1319

Browse files
authored
1107 intersection traffic meter fix (#1117)
Changed Y8 to Y11, got rid of DS-Yolo, added bitrates, unified Dockerfile.
1 parent 80d9bae commit 9ee1319

File tree

7 files changed

+49
-101
lines changed

7 files changed

+49
-101
lines changed

samples/intersection_traffic_meter/README.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Intersection traffic meter demo
22

3-
**NB**: The demo uses **YOLOV8** model which takes up to **10-15 minutes** to compile to TensorRT engine. The first launch may take a decent time.
3+
**NB**: The demo uses **YOLOV11** model which takes up to **10-15 minutes** to compile to TensorRT engine. The first launch may take a decent time.
44

55
The pipeline detects when cars, trucks or buses cross a city intersection delimited by user-configured polygon and the direction of the crossing. The crossing events are attached to individual tracks and are counted for each video source and polygon edge separately; the counters are displayed on the frame. The crossing events are also stored with Graphite and displayed on a Grafana dashboard.
66

@@ -10,13 +10,9 @@ Preview:
1010

1111
Tested on platforms:
1212

13-
- Nvidia Turing
13+
- Nvidia Turing, Ampere
1414
- Nvidia Jetson Orin family
1515

16-
Demonstrated operational modes:
17-
18-
- real-time processing: RTSP streams (multiple sources at once);
19-
2016
Demonstrated adapters:
2117
- Video loop adapter;
2218
- Always-ON RTSP sink adapter;

samples/intersection_traffic_meter/docker-compose.l4t.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ services:
2121
privileged: true
2222
build:
2323
context: .
24-
dockerfile: docker/Dockerfile.l4t
24+
dockerfile: docker/Dockerfile
25+
args:
26+
IMAGE: ghcr.io/insight-platform/savant-deepstream-l4t:latest
2527
volumes:
2628
- zmq_sockets:/tmp/zmq-sockets
2729
- ../../cache:/cache
@@ -52,6 +54,7 @@ services:
5254
- SOURCE_ID=leeds
5355
- STUB_FILE_LOCATION=/stub_imgs/smpte100_1920x1080.jpeg
5456
- DEV_MODE=True
57+
- ENCODER_BITRATE=8000000
5558
command: python -m adapters.ds.sinks.always_on_rtsp
5659

5760
graphite:

samples/intersection_traffic_meter/docker-compose.x86.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ services:
99
module:
1010
privileged: true
1111
build:
12-
context: .
13-
dockerfile: docker/Dockerfile.x86
12+
args:
13+
IMAGE: ghcr.io/insight-platform/savant-deepstream:latest
1414
extends:
1515
file: docker-compose.l4t.yml
1616
service: module
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
ARG IMAGE
2+
FROM ${IMAGE}
3+
RUN python -m pip install statsd~=4.0

samples/intersection_traffic_meter/docker/Dockerfile.l4t

Lines changed: 0 additions & 28 deletions
This file was deleted.

samples/intersection_traffic_meter/docker/Dockerfile.x86

Lines changed: 0 additions & 28 deletions
This file was deleted.

samples/intersection_traffic_meter/module.yml

Lines changed: 38 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
name: intersection_traffic_meter
22

33
parameters:
4-
frame:
5-
width: 1920
6-
height: 1080
74
output_frame:
85
codec: ${oc.env:CODEC, 'h264'}
6+
h264_encoder_params:
7+
bitrate: 8000000
8+
profile: Baseline
99
draw_func:
1010
module: samples.intersection_traffic_meter.overlay
1111
class_name: Overlay
@@ -15,6 +15,22 @@ parameters:
1515
send_stats: True
1616
batch_size: 1
1717

18+
default_yolo_converter:
19+
module: savant.converter.yolo
20+
class_name: TensorToBBoxConverter
21+
kwargs:
22+
confidence_threshold: 0.25
23+
nms_iou_threshold: 0.45
24+
top_k: 300
25+
26+
default_yolo_selector:
27+
module: savant.selector.detector
28+
class_name: MinMaxSizeBBoxSelector
29+
kwargs:
30+
min_width: 30
31+
min_height: 30
32+
33+
1834
pipeline:
1935

2036
elements:
@@ -26,61 +42,47 @@ pipeline:
2642
config_path: ${oc.env:PROJECT_PATH}/samples/intersection_traffic_meter/polygon_config.yml
2743

2844
- element: nvinfer@detector
29-
name: yolov8m
45+
name: yolov11n
3046
model:
3147
remote:
32-
url: s3://savant-data/models/yolov8m_f630b10/yolov8m_f630b10.zip
33-
checksum_url: s3://savant-data/models/yolov8m_f630b10/yolov8m_f630b10.md5
48+
url: s3://savant-data/models/yolo11n/yolo11n.zip
49+
checksum_url: s3://savant-data/models/yolo11n/yolo11n.md5
3450
parameters:
35-
endpoint: https://eu-central-1.linodeobjects.com
51+
endpoint: https://eu-central-1.linodeobjects.com
3652
format: onnx
37-
model_file: yolov8m.onnx
38-
config_file: config_infer_primary_yoloV8.txt
39-
# max GPU RAM used to build the engine, 6GB by default
40-
# set lower than total GPU RAM available on your hardware
53+
model_file: yolo11n.onnx
54+
batch_size: ${parameters.batch_size}
4155
workspace_size: 6144
56+
input:
57+
shape: [3, 640, 640]
58+
scale_factor: 0.0039215697906911373
59+
maintain_aspect_ratio: true
60+
symmetric_padding: true
4261
output:
62+
layer_names: [output0]
63+
num_detected_classes: 80 # required for YOLOv11
64+
converter: ${parameters.default_yolo_converter}
4365
objects:
4466
# COCO bicycle
4567
- class_id: 1
4668
label: ${parameters.detected_object_label}
47-
selector:
48-
module: savant.selector.detector
49-
class_name: BBoxSelector
50-
kwargs:
51-
confidence_threshold: 0.2
69+
selector: ${parameters.default_yolo_selector}
5270
# COCO car
5371
- class_id: 2
5472
label: ${parameters.detected_object_label}
55-
selector:
56-
module: savant.selector.detector
57-
class_name: BBoxSelector
58-
kwargs:
59-
confidence_threshold: 0.2
73+
selector: ${parameters.default_yolo_selector}
6074
# COCO motorcycle
6175
- class_id: 3
6276
label: ${parameters.detected_object_label}
63-
selector:
64-
module: savant.selector.detector
65-
class_name: BBoxSelector
66-
kwargs:
67-
confidence_threshold: 0.2
77+
selector: ${parameters.default_yolo_selector}
6878
# COCO bus
6979
- class_id: 5
7080
label: ${parameters.detected_object_label}
71-
selector:
72-
module: savant.selector.detector
73-
class_name: BBoxSelector
74-
kwargs:
75-
confidence_threshold: 0.2
81+
selector: ${parameters.default_yolo_selector}
7682
# COCO truck
7783
- class_id: 7
7884
label: ${parameters.detected_object_label}
79-
selector:
80-
module: savant.selector.detector
81-
class_name: BBoxSelector
82-
kwargs:
83-
confidence_threshold: 0.2
85+
selector: ${parameters.default_yolo_selector}
8486

8587
- element: nvtracker
8688
properties:

0 commit comments

Comments
 (0)