1

I am super new to OpenVINO and GStreamer. I am trying to apply a pipeline in GStreamer plugin using OpenVINO. I downloaded the model as well it's proc files. I am trying to apply the model and it's proc to a video. For some reason I am not getting any output in the video.

I don't know how to debug the GStreamer pipeline. I added one text overlay for debugging and found out every step is working but the final output is not having any results. I get the same input video as output (with text overlay). Could anyone help me out here?

# Model is downloaded from model downloader's downloader.py
# Model-proc is downloaded from 
# https://github.com/openvinotoolkit/dlstreamer_gst/blob/master/samples/model_proc/intel/human_pose_estimation/human-pose-estimation-0001.json

VIDEO_FILE = 'HumanPoseEstimation/Sample_Video/face-demographics-walking.mp4'
ESTIMATION_MODEL = "HumanPoseEstimation/Models/intel/human-pose-estimation-0001/FP32/human-pose-estimation-0001.xml"
ESTIMATION_MODEL_PROC = "HumanPoseEstimation/Models/intel/human-pose-estimation-0001/human-post-estimation-0001-proc.json"
SINK_LOCATION = "HumanPoseEstimation/output.mp4"

# GStreamer pipeline
GST_PIPELINE = f'''
filesrc location={VIDEO_FILE}
! decodebin
! videoconvert
! queue
! gvaclassify model={ESTIMATION_MODEL} model-proc={ESTIMATION_MODEL_PROC} device=CPU
! queue
! textoverlay text="Human Pose Estimation"
! gvawatermark
! x264enc
! filesink location={SINK_LOCATION}
'''
JSVJ
  • 500
  • 3
  • 14

3 Answers3

2

You may be missing some part at the end of the pipeline for muxing into a mp4-compliant file container. You may try:

...
! x264enc
! h264parse 
! qtmux 
! filesink location={SINK_LOCATION}
SeB
  • 1,159
  • 6
  • 17
  • Thanks for the answer. I tried this, but still not working. Not sure what I missed. Everything looks correct. – JSVJ Feb 11 '22 at 06:08
  • Is there any way to figure out whether the model is working properly? i just downloaded it and added it in the pipeline. – JSVJ Feb 11 '22 at 08:07
2

You can use the Human Pose Estimation Sample to run with human-pose-estimation-0001 model. Refer to human_pose_estimation.sh for the pipeline elements used in the Human Pose Estimation Sample.

Rommel_Intel
  • 1,369
  • 1
  • 4
  • 8
2

Looks like you need to add "inference-region=full-frame" to your gvaclassify, like:

! gvaclassify model={ESTIMATION_MODEL} model-proc={ESTIMATION_MODEL_PROC} device=CPU inference-region=full-frame

The use of classification (gvaclassify) without a prior "detection" (resulting in at least one region-of-interest) is unusual... That's why you would need to specify to use the full-frame for doing the classification (instead of typically only to classify a previously detected "object").

markusbr
  • 118
  • 8