Issue with Saving Cropped Faces - get_nvds_buf_Surface Error

Hi everyone,

I’m working on a DeepStream pipeline where I want to detect and save cropped faces from video streams. I’ve added the following code at the tiler sink pad to crop and save the frames:

if bbx_face:
** try:**
** n_frame = pyds.get_nvds_buf_surface(hash(gst_buffer), frame_meta.batch_id)**
** frame_image = np.array(n_frame, copy=True, order=‘C’)**
** frame_image = cv2.cvtColor(frame_image, cv2.COLOR_RGBA2BGR)**

** for frame, face_data in bbx_face.items():**
** left, top, width, height = face_data[‘bbx’]**
** cropped_face = frame_image[int(top):int(top+height), int(left):int(left+width)]**
** file_name = os.path.join(output_folder, f"face_{frame_number}_{frame}.jpg")**
** success = cv2.imwrite(file_name, cropped_face)**

** if success:**
** print(f"Successfully saved {file_name}")**
I’ve added nvvideoconvert and filter1 as suggested in deepstream_python_apps/apps/deepstream-imagedata-multistream-redaction/ and linked the elements as follows:

Element linking

streammux.link(queue1)
queue1.link(pgie)
pgie.link(tracker)
tracker.link(nvanalytics)
nvanalytics.link(pgie1)
pgie1.link(sgie2)
sgie2.link(sgie3)
sgie3.link(sgie4)
sgie4.link(nvstreamdemux)
nvstreamdemux.link(nvvideoconvert)
nvvideoconvert.link(filter1)

However, I’m still encountering the error:
get_nvds_buf_Surface: Currently we only support RGBA color Format.

It seems like my linking for nvvideoconvert might not be correct. Does anyone have any advice on how to properly link nvvideoconvert to convert the format correctly?

As you add the probe function at the tiler sink pad, you can try to add the nvvideoconvert and filter in front of the tiler plugin.

There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.