9-th modification based on retest info

This commit is contained in:
Dai Surong 2021-08-30 20:02:43 +08:00
parent a9de5dd3dd
commit d00ccf0178
2 changed files with 28 additions and 35 deletions

View File

@ -1,9 +1,4 @@
/*
* Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@ -16,12 +11,11 @@
#ifndef MXBASE_DPN_H
#define MXBASE_DPN_H
#include <memory>
#include <string>
#include <vector>
#include <opencv2/opencv.hpp>
#include "MxBase/DvppWrapper/DvppWrapper.h"
#include "MxBase/ModelInfer/ModelInferenceProcessor.h"
// #include "ClassPostProcessors/DPN92PostProcess.h"
#include "ClassPostProcessors/Resnet50PostProcess.h"
#include "MxBase/Tensor/TensorContext/TensorContext.h"
@ -36,32 +30,31 @@ struct InitParam {
};
class DPN {
public:
APP_ERROR Init(const InitParam &initParam);
APP_ERROR DeInit();
APP_ERROR ReadImage(const std::string &imgPath, const cv::Mat &imageMat);
APP_ERROR ResizeImage(const cv::Mat &srcImageMat, const cv::Mat &dstImageMat);
APP_ERROR CenterCropImage(const cv::Mat &img, const cv::Mat &crop_im);
APP_ERROR CVMatToTensorBase(const cv::Mat &imageMat, const MxBase::TensorBase &tensorBase);
APP_ERROR Inference(const std::vector<MxBase::TensorBase> &inputs, const std::vector<MxBase::TensorBase> &outputs);
APP_ERROR PostProcess(const std::vector<MxBase::TensorBase> &inputs,
const std::vector<std::vector<MxBase::ClassInfo>> &clsInfos);
APP_ERROR Process(const std::vector<std::string> &batchImgPaths);
// get infer time
double GetInferCostMilliSec() const {return inferCostTimeMilliSec;}
public:
APP_ERROR Init(const InitParam &initParam);
APP_ERROR DeInit();
APP_ERROR ReadImage(const std::string &imgPath, cv::Mat &imageMat);
APP_ERROR ResizeImage(const cv::Mat &srcImageMat, cv::Mat &dstImageMat);
APP_ERROR CenterCropImage(const cv::Mat &img, cv::Mat &crop_im);
APP_ERROR CVMatToTensorBase(const cv::Mat &imageMat, MxBase::TensorBase &tensorBase);
APP_ERROR Inference(const std::vector<MxBase::TensorBase> &inputs, std::vector<MxBase::TensorBase> &outputs);
APP_ERROR PostProcess(const std::vector<MxBase::TensorBase> &inputs,
std::vector<std::vector<MxBase::ClassInfo>> &clsInfos);
APP_ERROR Process(const std::vector<std::string> &batchImgPaths);
// get infer time
double GetInferCostMilliSec() const {return inferCostTimeMilliSec;}
private:
APP_ERROR SaveResult(const std::vector<std::string> &batchImgPaths,
const std::vector<std::vector<MxBase::ClassInfo>> &batchClsInfos);
private:
std::shared_ptr<MxBase::DvppWrapper> dvppWrapper_;
std::shared_ptr<MxBase::ModelInferenceProcessor> model_;
std::shared_ptr<MxBase::Resnet50PostProcess> post_;
MxBase::ModelDesc modelDesc_;
uint32_t deviceId_ = 0;
// infer time
double inferCostTimeMilliSec = 0.0;
private:
APP_ERROR SaveResult(const std::vector<std::string> &batchImgPaths, const std::vector<std::vector<MxBase::ClassInfo>> &batchClsInfos);
private:
std::shared_ptr<MxBase::DvppWrapper> dvppWrapper_;
std::shared_ptr<MxBase::ModelInferenceProcessor> model_;
std::shared_ptr<MxBase::Resnet50PostProcess> post_;
MxBase::ModelDesc modelDesc_;
uint32_t deviceId_ = 0;
// infer time
double inferCostTimeMilliSec = 0.0;
};
#endif

View File

@ -23,7 +23,7 @@ namespace {
const uint32_t BATCH_SIZE = 32;
} // namespace
APP_ERROR ScanImages(const std::string &path, const std::vector<std::string> &imgFiles) {
APP_ERROR ScanImages(const std::string &path, std::vector<std::string> &imgFiles) {
DIR *dirPtr = opendir(path.c_str());
if (dirPtr == nullptr) {
LogError << "opendir failed. dir:" << path;