• Hardware Platform (Jetson / GPU) GPU
• DeepStream Version 7.0 (docker image: nvcr.io/nvidia/deepstream:7.0-triton-multiarch )
• NVIDIA GPU Driver Version (valid for GPU only) 535.171.04
Hi,
I am trying to integrate the Gst-nvdspreprocess plugin into my DeepStream pipeline. My downstream plugin, Gst-nvinfer, runs a model with an input shape of NSCHW (N=batch_size, S=sequence_len, C=channels, H=height, W=width).
I’ve reviewed the documentation of Gst-nvdspreprocess and DeepStream 3D Action Recognition App
I’ve also examined the sample source code at sources/apps/sample_apps/deepstream-3d-action-recognition.
I understand that I need to implement a custom_sequence_preprocess library. For reference, I’ve looked into the deepstream-3d-action-recognition example. Based on my analysis, there are three main areas in deepstream-3d-action-recognition/custom_sequence_preprocess where code modifications are necessary to accommodate the NSCHW model:
Line 239 of sequence_image_process.cpp:
// current dstPatch memory pointer is for NCDHW(NCSHW) order type. for
// other order type, User need to update accordingly.
// e.g. for NSCHW, dstPatch = (void*)(basePtr + curIdx * CHWbytes())
Line 295 of sequence_image_process.cpp:
// Copy sequence ready rois/frames into batch buffer
// this is for NCSHW(NCDHW) order only, user need replace this segment
// copy block accordingly if other orders needed.
Line 416 of sequence_image_process.cpp:
// User can replace and implement different cuda kernels for other order types.
Additionally, I believe I need to implement two new functions in sequence_preprocess_kernel.cu :
preprocessNDCHW
and ImageHWCToSCHW
.
However, I’m uncertain if these are the only parts of the code that need modification or if there are additional areas I should address.
Moreover, I would greatly appreciate guidance on how to correctly modify these sections to handle an NSCHW model.
Could you please assist me with this?
Thanks!