You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.1 KiB
C

#pragma once
#include "MF_ObjectDetectBase.h"
class MF_Yolov8Infer : public MF_ObjectDetectBase
{
public:
1 year ago
MF_Yolov8Infer(const trtUtils::InitParameter& param);
~MF_Yolov8Infer();
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> engine
bool initEngine(const std::string& _onnxFileName);
// <20><><EFBFBD><EFBFBD>
1 year ago
bool doTRTInfer(const std::vector<MN_VisionImage::MS_ImageParam>& _bufImgs, std::vector<trtUtils::MR_Result>* _detectRes, int* _user);
// <20><><EFBFBD><EFBFBD>
1 year ago
bool doTRTInfer(const std::vector<cv::Mat>& _matImgs, std::vector<trtUtils::MR_Result>* _detectRes, int* _user);
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
static std::string getError();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>ڴ<EFBFBD>
void freeMemeory();
protected:
// <20><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>
int copyToDevice(const std::vector<cv::Mat>& _imgsBatch);
// Ԥ<><D4A4><EFBFBD><EFBFBD>
int preProcess(const std::vector<cv::Mat>& _imgsBatch);
// <20><><EFBFBD><EFBFBD>
int infer();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ濽<D4B4><E6BFBD><EFBFBD><EFBFBD>cpu
int copyFromDevice(const std::vector<cv::Mat>& _imgsBatch);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int postProcess(const std::vector<cv::Mat>& _imgsBatch);
// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
1 year ago
int getDetectResult(std::vector<trtUtils::MR_Result>& _result);
private:
float* m_output_src_transpose_device;
};