• NVIDIA GPU Driver Version (valid for GPU only)
Driver Version: 525.125.06
• Issue Type( questions, new requirements, bugs)
new requirements
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)
I want to custom my tracker to deepstream, like NanoTrack, but the doc is too simple that i cannot understand, etc: In NvMOTContext create code
Those code is for understanding the API. Please implment your own tracker based on the API. Maybe your tracker don’t need LocalizerFactory. It depends on the algrithm of different tracker
I want to custom this track algo in deepstream, Now backbone and neckhead tensorrt inference has finished, with some opencv offical track code, i can run it as executable as well as shared library. but i have no idea about how to add to deepstream.
hello, now i finish part of custom nanotrack, but got Bus error after some frames(not fixed num frame), with gdb, the backtrack is:
#0 0x00007fffed2b8440 in NvTrackerProc::updateFrameMeta(_NvDsFrameMeta*, _NvMOTTrackedObjList const&, NvTrackerProc::ProcParams const&) () at /usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_tracker.so
#1 0x00007fffed2b8f67 in NvTrackerProc::processSurfaceStream(NvTrackerProc::DispatchInfo*) () at /usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_tracker.so
#2 0x00007ffff70d279f in std::execute_native_thread_routine(void*) (__p=0x7fff580020f0) at /nv/src/gcc-target-12.1.0/libstdc++-v3/src/c++11/thread.cc:82
#3 0x00007ffff7694b43 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#4 0x00007ffff7726a00 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
NvMOTStatus NvMOT_Query(uint16_t customConfigFilePathSize,
char *pCustomConfigFilePath,
NvMOTQuery *pQuery) {
/**
* Users can parse the low-level config file in pCustomConfigFilePath to check
* the low-level tracker's requirements
*/
pQuery->computeConfig = NVMOTCOMP_CPU; // among {NVMOTCOMP_GPU, NVMOTCOMP_CPU}
pQuery->numTransforms = 1; // 0 for IOU tracker, 1 for NvDCF or DeepSORT tracker as they require the video frames
pQuery->colorFormats[0] = NVBUF_COLOR_FORMAT_RGBA; // among {NVBUF_COLOR_FORMAT_NV12, NVBUF_COLOR_FORMAT_RGBA}
// among {NVBUF_MEM_DEFAULT, NVBUF_MEM_CUDA_DEVICE, NVBUF_MEM_CUDA_UNIFIED, NVBUF_MEM_CUDA_PINNED, ... }
#ifdef __aarch64__
pQuery->memType = NVBUF_MEM_DEFAULT;
#else
pQuery->memType = NVBUF_MEM_CUDA_UNIFIED;
#endif
pQuery->batchMode = NvMOTBatchMode_NonBatch; // set NvMOTBatchMode_Batch if the low-level tracker supports batch processing mode. Otherwise, NvMOTBatchMode_NonBatch
pQuery->supportPastFrame = false; // set true if the low-level tracker supports the past-frame data or not
/**
* return NvMOTStatus_Error if something is wrong
* return NvMOTStatus_OK if everything went well
*/
std::cout << "[NanoTrack Initialized]" << std::endl;
return NvMOTStatus_OK;
}