18 #ifndef ReIDCropScaler_HPP_
19 #define ReIDCropScaler_HPP_
23 #include <unordered_map>
24 #include "nvbufsurface.h"
25 #include "vpi/Stream.h"
26 #include "vpi/Image.h"
27 #include "vpi/Array.h"
28 #include "vpi/algo/CropScaler.h"
29 #include "modules/utility/dataTypes.hpp"
30 #include "modules/NvMultiObjectTracker/nvdstracker.h"
32 #if defined(__aarch64__)
34 #include <EGL/eglext.h>
62 const int debugVerboseLevel,
const int maxStreamNum,
const int maxBufSurfAddrSize,
const int maxTargetNum,
77 const std::map<
NvMOTStreamId, std::vector<std::pair<uint, NvMotDataTypes::Rect2f> > > &roisInBatch,
78 const int lastBboxInd,
const float outputScaleFactor,
const std::vector<float> outputOffsets,
79 const std::map<NvMOTStreamId, NvMOTFrame*> &inputMeta
85 #if defined VIZ_DEBUG_REID || defined VIZ_DEBUG_SEG || defined VIZ_DEBUG_POSE
92 std::map<NvMOTStreamId, std::map<uint, cv::Mat > > getImagePatches2Host_OCV_batch(
93 const float outputScaleFactor,
const std::vector<float> outputOffsets
104 void initialize4Output(
109 void allocateOutputMemories();
112 void deAllocateOutputMemories();
121 void allocateInputMemoriesBatch(
const uint numFramesInBatch,
const int nx,
const int ny,
const uint pitch_in);
124 void deAllocateInputMemoriesBatch();
133 void initialize4Input(
141 void checkInput(
const std::map<NvMOTStreamId, NvMOTFrame*> &inputMeta);
152 int m_width_out, m_height_out, m_channels_out;
155 VPIImageFormat m_vpiImageFormat;
157 const int m_cudaBlockSize_2D = 32;
158 int m_debugVerboseLevel;
159 int m_maxTargetsToTrack;
161 uint m_maxBufSurfAddrSize;
162 uint m_numFramesInBatchMax;
165 int m_width_in, m_height_in, m_pitch_in, m_channels_in;
171 #if defined VIZ_DEBUG_REID || defined VIZ_DEBUG_SEG || defined VIZ_DEBUG_POSE
172 float *m_odata_host_nchw;
174 uint8_t *m_odata_unit8_d;
175 VPIImageData m_vpiObjPatchesData;
176 VPIImage m_vpiObjPatches;
179 int m_integrated_gpu;
182 #if defined(__aarch64__)
183 std::unordered_map<const NvBufSurfaceParams *, CUgraphicsResource> m_graphicsResourceAddrMap;
184 std::unordered_map<const NvBufSurfaceParams *, CUeglFrame> m_eglFrameAddrMap;
189 VPIStream m_vpiStream;
190 VPIBackend m_vpiBackend4CropnScale = VPI_BACKEND_CUDA;
191 VPIPayload m_vpiCropPayload;
192 int m_vpiMemFlags = VPI_BACKEND_CUDA | VPI_RESTRICT_MEM_USAGE;
195 VPIImage *m_vpiInputFrameSequence;
196 VPIImageData *m_vpiInputFrameDataList;
197 std::vector<bool> m_isFrameCreated;
201 std::vector<VPIDCFTrackedBoundingBox> m_vpiDCFBboxes;
202 VPIArrayData m_vpiDCFBboxesData;
204 VPIArray m_vpiDCFBboxesArray;
205 int32_t m_vpiBboxesArraySize;
208 #if defined VIZ_DEBUG_REID || defined VIZ_DEBUG_SEG || defined VIZ_DEBUG_POSE
209 std::map<uint, std::pair<NvMOTStreamId, uint>> m_targetNumInd2RoisInBatchMapper;
213 #endif // ReIDCropScaler_HPP_