Commit 1c515e55 authored by liucong's avatar liucong
Browse files

重构C++版本的数据预处理操作

parent b4a869e5
......@@ -193,14 +193,8 @@ ErrorCode Classifier::Initialize(InitializationParameterOfClassifier initializat
}
ErrorCode Classifier::Classify(const std::vector<cv::Mat> &srcImages,std::vector<std::vector<ResultOfPrediction>> &predictions)
cv::Mat Classifier::Preprocess(const std::vector<cv::Mat> &srcImages)
{
if(srcImages.size()==0||srcImages[0].empty()||srcImages[0].depth()!=CV_8U)
{
LOG_ERROR(stdout, "image error!\n");
return IMAGE_ERROR;
}
// 数据预处理
std::vector<cv::Mat> image;
for(int i =0;i<srcImages.size();++i)
......@@ -236,6 +230,18 @@ ErrorCode Classifier::Classify(const std::vector<cv::Mat> &srcImages,std::vector
image2BlobParams.mean=cv::Scalar(123.675, 116.28, 103.53);
image2BlobParams.swapRB=false;
blobFromImagesWithParams(image,inputBlob,image2BlobParams);
return inputBlob;
}
ErrorCode Classifier::Classify(const std::vector<cv::Mat> &srcImages,std::vector<std::vector<ResultOfPrediction>> &predictions)
{
if(srcImages.size()==0||srcImages[0].empty()||srcImages[0].depth()!=CV_8U)
{
LOG_ERROR(stdout, "image error!\n");
return IMAGE_ERROR;
}
cv::Mat inputBlob = Preprocess(srcImages);
// 当offload为true时,不需要内存拷贝
if(useoffloadcopy)
......@@ -282,7 +288,7 @@ ErrorCode Classifier::Classify(const std::vector<cv::Mat> &srcImages,std::vector
else // 当offload为false时,需要内存拷贝
{
migraphx::argument inputData= migraphx::argument{inputShape, (float*)inputBlob.data};
migraphx::argument inputData = migraphx::argument{inputShape, (float*)inputBlob.data};
// 拷贝到device输入内存
hipMemcpy(inputBuffer_Device, inputData.data(), inputShape.bytes(), hipMemcpyHostToDevice);
......
......@@ -17,6 +17,8 @@ public:
ErrorCode Initialize(InitializationParameterOfClassifier initializationParameterOfClassifier);
cv::Mat Preprocess(const std::vector<cv::Mat> &srcImages);
ErrorCode Classify(const std::vector<cv::Mat> &srcImages,std::vector<std::vector<ResultOfPrediction>> &predictions);
private:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment