From 2e8e43424ab4b4ac52cba16fbc1f28f478b73e7e Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Fri, 13 Feb 2026 02:38:58 +0530 Subject: [PATCH 01/12] Changed model from person-vehicle-bike-detection-2004 to yolov11s --- .../dlstreamer-pipeline-server/configmap.yaml | 2 +- .../deployment.yaml | 50 ++++++++++++++++--- .../chart/values.yaml | 9 ++++ 3 files changed, 53 insertions(+), 8 deletions(-) diff --git a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml index 591f0b1070..b55a078267 100644 --- a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml +++ b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml @@ -37,7 +37,7 @@ data: "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/person-vehicle-bike-detection-2004/FP32/person-vehicle-bike-detection-2004.xml model-proc=/home/pipeline-server/person-vehicle-bike-detection-2004.json inference-interval=3 threshold=0.4 model-instance-id=detect1 device=CPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=CPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP32/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instnpu0 name=detection device=CPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=CPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, diff --git a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/deployment.yaml b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/deployment.yaml index 891c3f366c..a591978997 100644 --- a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/deployment.yaml +++ b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/deployment.yaml @@ -53,16 +53,50 @@ spec: omz_downloader --name resnet-50-pytorch --output_dir models && omz_converter --name resnet-50-pytorch --download_dir models --output_dir models && cp -r ./models/public/resnet-50-pytorch /output - ) && - test -d /output/person-vehicle-bike-detection-2004 || ( - rm -fr /output/person-vehicle-bike-detection-2004 && - omz_downloader --name person-vehicle-bike-detection-2004 --output_dir models && - omz_converter --name person-vehicle-bike-detection-2004 --download_dir models --output_dir models && - cp -r ./models/intel/person-vehicle-bike-detection-2004 /output - ) + ) volumeMounts: - name: '{{ include "image_based_video_search.fullname" . }}-dlstreamer-pipeline-server-models' mountPath: /output + - name: model-downloader + image: intel/dlstreamer:2025.1.2-ubuntu24 + securityContext: + allowPrivilegeEscalation: false + runAsNonRoot: true + runAsUser: 1000 + env: + - name: http_proxy + value: {{ $.Values.httpProxy }} + - name: https_proxy + value: {{ $.Values.httpsProxy }} + - name: no_proxy + value: "{{ $.Values.noProxy }}" + command: + - /bin/sh + - -c + - | + mkdir -p /output + cd /tmp/repo/ + git clone --depth 1 --filter=blob:none --sparse \ + {{- if eq $.Values.dlstreamerpipelineserver.modelDownloader.gitSource.type "tag" }} + --branch {{ $.Values.dlstreamerpipelineserver.modelDownloader.gitSource.ref }} \ + {{- else }} + --branch {{ $.Values.dlstreamerpipelineserver.modelDownloader.gitSource.ref }} \ + {{- end }} + https://github.com/open-edge-platform/edge-ai-suites.git + + cd edge-ai-suites + git sparse-checkout set \ + metro-ai-suite/metro-vision-ai-app-recipe/smart-parking/src/dlstreamer-pipeline-server/models + cp -r metro-ai-suite/metro-vision-ai-app-recipe/smart-parking/src/dlstreamer-pipeline-server/models/* /output/ + cd /home/dlstreamer/dlstreamer/samples + rm -rf /tmp/repo/edge-ai-suites + export MODELS_PATH=/output + ./download_public_models.sh yolo11s coco128 + volumeMounts: + - name: '{{ include "image_based_video_search.fullname" . }}-dlstreamer-pipeline-server-models' + mountPath: /output + - name: repo-volume + mountPath: /tmp/repo containers: - envFrom: - configMapRef: @@ -134,6 +168,8 @@ spec: - name: '{{ include "image_based_video_search.fullname" . }}-dlstreamer-pipeline-server-models' emptyDir: sizeLimit: 10Gi + - name: repo-volume + emptyDir: {} - name: dev-gpu hostPath: path: /dev/dri diff --git a/metro-ai-suite/image-based-video-search/chart/values.yaml b/metro-ai-suite/image-based-video-search/chart/values.yaml index f8afbad194..7b06f32d3a 100644 --- a/metro-ai-suite/image-based-video-search/chart/values.yaml +++ b/metro-ai-suite/image-based-video-search/chart/values.yaml @@ -120,6 +120,15 @@ dlstreamerpipelineserver: # key: dlstreamerpipelineserver.serviceAccount serviceAccount: "" + # Model downloader config + modelDownloader: + # Git source configuration for downloading models + gitSource: + # Use 'tag' for releases or 'branch' for branches + type: branch # Options: 'tag' or 'branch' + # Name of the tag or branch + ref: main # e.g., 'v1.0.0' for tag or 'main' for branch + # mediamtx configuration mediamtx: # key: mediamtx.repository From 6f51a446165c4eeb3d4d303a1540de013988a1d3 Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Thu, 12 Feb 2026 23:44:59 +0530 Subject: [PATCH 02/12] Using FP16 model instead of FP32 --- .../chart/templates/dlstreamer-pipeline-server/configmap.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml index b55a078267..02f20c7d07 100644 --- a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml +++ b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml @@ -37,7 +37,7 @@ data: "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP32/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instnpu0 name=detection device=CPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=CPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instnpu0 name=detection device=CPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=CPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, From 4c5648bccb9c0c05e92be9f880052d72685e64a7 Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Fri, 13 Feb 2026 12:14:36 +0530 Subject: [PATCH 03/12] Add NPU pipeline to helm --- .../dlstreamer-pipeline-server/configmap.yaml | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml index 02f20c7d07..f1e40748bc 100644 --- a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml +++ b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml @@ -37,7 +37,7 @@ data: "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instnpu0 name=detection device=CPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=CPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instcpu0 name=detection device=CPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=CPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, @@ -61,7 +61,7 @@ data: "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/person-vehicle-bike-detection-2004/FP32/person-vehicle-bike-detection-2004.xml model-proc=/home/pipeline-server/person-vehicle-bike-detection-2004.json inference-interval=3 threshold=0.4 model-instance-id=detect1 device=GPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 device=GPU model-instance-id=classify1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instgpu0 name=detection device=GPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=GPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, @@ -77,6 +77,30 @@ data: ] } } + config.npu.json: | + { + "config": { + "pipelines": [ + { + "name": "filter-pipeline", + "source": "gstreamer", + "queue_maxsize": 50, + "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instnpu0 name=detection device=NPU ! queue ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml inference-region=1 device=NPU model-instance-id=classify1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "auto_start": false, + "mqtt_publisher": { + "publish_frame": true, + "topic": "edge_video_analytics_results" + } + }, + { + "name": "search_image", + "source": "image_ingestor", + "queue_maxsize": 50, + "pipeline": "appsrc name=source ! decodebin3 ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml model-instance-id=infer2 device=NPU ! gvametaconvert add-tensor-data=true ! appsink name=destination" + } + ] + } + } person-vehicle-bike-detection-2004.json: | { "json_schema_version": "2.2.0", From d16ab297aa62501f9843c0a19dbaf34207699018 Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Fri, 13 Feb 2026 12:26:08 +0530 Subject: [PATCH 04/12] Minor changes --- .../chart/templates/dlstreamer-pipeline-server/configmap.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml index f1e40748bc..485b1972e4 100644 --- a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml +++ b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml @@ -85,7 +85,7 @@ data: "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instnpu0 name=detection device=NPU ! queue ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml inference-region=1 device=NPU model-instance-id=classify1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instnpu0 name=detection device=NPU ! queue ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml inference-region=1 device=NPU model-instance-id=infer1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, From 4fef73e4bbe950ed54b18e325f2e140c2107ab5a Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Fri, 13 Feb 2026 13:23:43 +0530 Subject: [PATCH 05/12] Minor changes --- .../chart/templates/dlstreamer-pipeline-server/configmap.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml index 485b1972e4..ee421b5114 100644 --- a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml +++ b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml @@ -77,7 +77,7 @@ data: ] } } - config.npu.json: | + config.npu.json: | { "config": { "pipelines": [ From cd7853ced41c0ead88dffb6b4b8229e1473e7209 Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Fri, 13 Feb 2026 22:23:25 +0530 Subject: [PATCH 06/12] Change current model to yolov11s in docker deployment --- .../chart/templates/dlstreamer-pipeline-server/configmap.yaml | 4 ++-- metro-ai-suite/image-based-video-search/compose.yml | 2 +- .../configs/filter-pipeline/config.cpu.json | 4 ++-- .../configs/filter-pipeline/config.gpu.json | 4 ++-- .../configs/filter-pipeline/config.npu.json | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml index ee421b5114..deaae48f34 100644 --- a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml +++ b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml @@ -85,7 +85,7 @@ data: "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instnpu0 name=detection device=NPU ! queue ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml inference-region=1 device=NPU model-instance-id=infer1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instnpu0 name=detection device=NPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 device=NPU model-instance-id=infer1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, @@ -96,7 +96,7 @@ data: "name": "search_image", "source": "image_ingestor", "queue_maxsize": 50, - "pipeline": "appsrc name=source ! decodebin3 ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml model-instance-id=infer2 device=NPU ! gvametaconvert add-tensor-data=true ! appsink name=destination" + "pipeline": "appsrc name=source ! decodebin3 ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml model-instance-id=infer2 device=NPU ! gvametaconvert add-tensor-data=true ! appsink name=destination" } ] } diff --git a/metro-ai-suite/image-based-video-search/compose.yml b/metro-ai-suite/image-based-video-search/compose.yml index fbb3861227..05076a8068 100644 --- a/metro-ai-suite/image-based-video-search/compose.yml +++ b/metro-ai-suite/image-based-video-search/compose.yml @@ -187,7 +187,7 @@ services: - dlstreamer-pipeline-server-tmp:/tmp # - "../mr_models:/home/pipeline-server/mr_models:rw" - "./src/dlstreamer-pipeline-server/models/person-vehicle-bike-detection-2004:/models/person-vehicle-bike-detection-2004" - - "./src/dlstreamer-pipeline-server/models/resnet-50-pytorch:/models/resnet50" + - "./src/dlstreamer-pipeline-server/models/resnet-50-pytorch:/models/resnet-50-pytorch" group_add: # render group ID for ubuntu 20.04 host OS - "109" diff --git a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.cpu.json b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.cpu.json index 9e97f965f1..1d420455cf 100644 --- a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.cpu.json +++ b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.cpu.json @@ -5,7 +5,7 @@ "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/person-vehicle-bike-detection-2004/FP32/person-vehicle-bike-detection-2004.xml model-proc=/models/person-vehicle-bike-detection-2004/person-vehicle-bike-detection-2004.json inference-interval=3 threshold=0.4 model-instance-id=detect1 device=CPU ! queue ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=CPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instcpu0 name=detection device=CPU ! queue ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=CPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, @@ -16,7 +16,7 @@ "name": "search_image", "source": "image_ingestor", "queue_maxsize": 50, - "pipeline": "appsrc name=source ! decodebin3 ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml model-instance-id=infer2 device=CPU ! gvametaconvert add-tensor-data=true ! appsink name=destination" + "pipeline": "appsrc name=source ! decodebin3 ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml model-instance-id=infer2 device=CPU ! gvametaconvert add-tensor-data=true ! appsink name=destination" } ] } diff --git a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json index ee74c8b3a0..2f0655a2eb 100644 --- a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json +++ b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json @@ -5,7 +5,7 @@ "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/person-vehicle-bike-detection-2004/FP32/person-vehicle-bike-detection-2004.xml model-proc=/models/person-vehicle-bike-detection-2004/person-vehicle-bike-detection-2004.json inference-interval=3 threshold=0.4 model-instance-id=detect1 device=GPU ! queue ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml inference-region=1 device=GPU model-instance-id=classify1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/person-vehicle-bike-detection-2004/FP32/person-vehicle-bike-detection-2004.xml model-proc=/models/person-vehicle-bike-detection-2004/person-vehicle-bike-detection-2004.json inference-interval=3 threshold=0.4 model-instance-id=detect1 device=GPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 device=GPU model-instance-id=classify1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, @@ -16,7 +16,7 @@ "name": "search_image", "source": "image_ingestor", "queue_maxsize": 50, - "pipeline": "appsrc name=source ! decodebin3 ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml model-instance-id=infer2 device=GPU ! gvametaconvert add-tensor-data=true ! appsink name=destination" + "pipeline": "appsrc name=source ! decodebin3 ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml model-instance-id=infer2 device=GPU ! gvametaconvert add-tensor-data=true ! appsink name=destination" } ] } diff --git a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.npu.json b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.npu.json index ea785441cb..544bb05209 100644 --- a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.npu.json +++ b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.npu.json @@ -5,7 +5,7 @@ "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/person-vehicle-bike-detection-2004/FP32/person-vehicle-bike-detection-2004.xml model-proc=/models/person-vehicle-bike-detection-2004/person-vehicle-bike-detection-2004.json inference-interval=3 threshold=0.4 model-instance-id=detect1 device=NPU ! queue ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml inference-region=1 device=NPU model-instance-id=classify1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instnpu0 name=detection device=NPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 device=NPU model-instance-id=infer1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, @@ -16,7 +16,7 @@ "name": "search_image", "source": "image_ingestor", "queue_maxsize": 50, - "pipeline": "appsrc name=source ! decodebin3 ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml model-instance-id=infer2 device=NPU ! gvametaconvert add-tensor-data=true ! appsink name=destination" + "pipeline": "appsrc name=source ! decodebin3 ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml model-instance-id=infer2 device=NPU ! gvametaconvert add-tensor-data=true ! appsink name=destination" } ] } From 5c1257d8c4eb8d45d1faad845e237d5847f10368 Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Fri, 13 Feb 2026 22:54:20 +0530 Subject: [PATCH 07/12] Minor changes --- .../configs/filter-pipeline/config.gpu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json index 2f0655a2eb..feda3cf243 100644 --- a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json +++ b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json @@ -5,7 +5,7 @@ "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/person-vehicle-bike-detection-2004/FP32/person-vehicle-bike-detection-2004.xml model-proc=/models/person-vehicle-bike-detection-2004/person-vehicle-bike-detection-2004.json inference-interval=3 threshold=0.4 model-instance-id=detect1 device=GPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 device=GPU model-instance-id=classify1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP32/yolo11s.xml batch_size=1 inference-interval=1 inference-region=0 nireq=2 threshold=0.7 model-instance-id=instgpu0 name=detection device=GPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 device=GPU model-instance-id=classify1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, From 2d0400210486e74b504041c7808b94bfb1084396 Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Sat, 14 Feb 2026 00:49:27 +0530 Subject: [PATCH 08/12] Changed compose.yml to mount new yolov11s model --- metro-ai-suite/image-based-video-search/compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metro-ai-suite/image-based-video-search/compose.yml b/metro-ai-suite/image-based-video-search/compose.yml index 05076a8068..825be7fef8 100644 --- a/metro-ai-suite/image-based-video-search/compose.yml +++ b/metro-ai-suite/image-based-video-search/compose.yml @@ -186,7 +186,7 @@ services: - "/dev:/dev" - dlstreamer-pipeline-server-tmp:/tmp # - "../mr_models:/home/pipeline-server/mr_models:rw" - - "./src/dlstreamer-pipeline-server/models/person-vehicle-bike-detection-2004:/models/person-vehicle-bike-detection-2004" + - "./src/dlstreamer-pipeline-server/models/public:/models/public" - "./src/dlstreamer-pipeline-server/models/resnet-50-pytorch:/models/resnet-50-pytorch" group_add: # render group ID for ubuntu 20.04 host OS From 872e98ba7ec1c8b47d61e2d43fc9f7177c6d4a28 Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Sat, 14 Feb 2026 00:57:58 +0530 Subject: [PATCH 09/12] Minor changes --- .../configs/filter-pipeline/config.cpu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.cpu.json b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.cpu.json index 1d420455cf..9450c41d69 100644 --- a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.cpu.json +++ b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.cpu.json @@ -5,7 +5,7 @@ "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instcpu0 name=detection device=CPU ! queue ! gvainference model=/models/resnet50/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=CPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instcpu0 name=detection device=CPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=CPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, From aefab85a45269b2548016bf86b35e901906e08ec Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Sat, 14 Feb 2026 03:56:53 +0530 Subject: [PATCH 10/12] Document changes for linux platforms on how to download new yolov11s model --- .../docs/user-guide/get-started.md | 34 +++++++++++++------ 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/metro-ai-suite/image-based-video-search/docs/user-guide/get-started.md b/metro-ai-suite/image-based-video-search/docs/user-guide/get-started.md index e3997c87f7..5208f6f740 100644 --- a/metro-ai-suite/image-based-video-search/docs/user-guide/get-started.md +++ b/metro-ai-suite/image-based-video-search/docs/user-guide/get-started.md @@ -61,16 +61,30 @@ By following this guide, you will learn how to: cp -r ./models/public/resnet-50-pytorch /output && \ chown -R $(id -u):$(id -g) /output" - # Download and convert the Person-Vehicle-Bike Detection model - docker run --rm \ - --user=root \ - -e http_proxy -e https_proxy -e no_proxy \ - -v "$MODELS_PATH:/output" \ - openvino/ubuntu22_dev:2024.6.0 bash -c \ - "omz_downloader --name person-vehicle-bike-detection-2004 --output_dir models && \ - omz_converter --name person-vehicle-bike-detection-2004 --download_dir models --output_dir models && \ - cp -r ./models/intel/person-vehicle-bike-detection-2004 /output && \ - chown -R $(id -u):$(id -g) /output" + # Download and quantize the yolov11s model + docker run --rm --user=root \ + -e http_proxy -e https_proxy -e no_proxy \ + -v "$MODELS_PATH:/output" \ + intel/dlstreamer:2025.1.2-ubuntu24 bash -c "$(cat < From 965bef4e21ea3ff4ce2a3fc3d1ab022b1a7e9c24 Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Sat, 14 Feb 2026 08:28:57 +0530 Subject: [PATCH 11/12] Minor changes --- .../chart/templates/dlstreamer-pipeline-server/configmap.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml index deaae48f34..81f8892668 100644 --- a/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml +++ b/metro-ai-suite/image-based-video-search/chart/templates/dlstreamer-pipeline-server/configmap.yaml @@ -61,7 +61,7 @@ data: "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 nireq=2 threshold=0.7 model-instance-id=instgpu0 name=detection device=GPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 name=classification model-instance-id=infer1 device=GPU ! queue ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 inference-region=0 nireq=2 threshold=0.7 model-instance-id=instgpu0 name=detection device=GPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 device=GPU model-instance-id=classify1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true, From 9c100094734c83b25a7e46f1d2d16f23276fa0a3 Mon Sep 17 00:00:00 2001 From: "Katakol, Rohit" Date: Sat, 14 Feb 2026 08:48:52 +0530 Subject: [PATCH 12/12] Minor changes --- .../configs/filter-pipeline/config.gpu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json index feda3cf243..dc6850c54f 100644 --- a/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json +++ b/metro-ai-suite/image-based-video-search/src/dlstreamer-pipeline-server/configs/filter-pipeline/config.gpu.json @@ -5,7 +5,7 @@ "name": "filter-pipeline", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "{auto_source} ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP32/yolo11s.xml batch_size=1 inference-interval=1 inference-region=0 nireq=2 threshold=0.7 model-instance-id=instgpu0 name=detection device=GPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 device=GPU model-instance-id=classify1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", + "pipeline": "{auto_source} name=source ! decodebin3 ! gvadetect model=/models/public/yolo11s/FP16/yolo11s.xml batch_size=1 inference-interval=1 inference-region=0 nireq=2 threshold=0.7 model-instance-id=instgpu0 name=detection device=GPU ! queue ! gvainference model=/models/resnet-50-pytorch/FP32/resnet-50-pytorch.xml inference-region=1 device=GPU model-instance-id=classify1 ! queue ! vapostproc ! videoconvertscale ! gvametaconvert add-tensor-data=true name=metaconvert ! jpegenc ! appsink name=destination", "auto_start": false, "mqtt_publisher": { "publish_frame": true,