PaddleVideo icon indicating copy to clipboard operation
PaddleVideo copied to clipboard

PPtsm V2 c++推理预处理过程

Open fengyanWang opened this issue 2 years ago • 4 comments

参考工程中的cpp_infer中的预处理部分代码进行编写,结果预处理结果一直不对,其中通过保存CenterCrop后的图片与Python预处理结果对比是一致的,所以可以说明问题在Normalize和Permute函数中,还请大佬帮忙看看

预处理过程如下:

std::string img_path = "/data/local/tmp/pic_2.jpg"; //为了与Python对比,拿出其中一帧 cv::Mat img_data = cv::imread(img_path); cv::cvtColor(img_data, img_data, cv::COLOR_BGR2RGB);

cv::Mat resize_frame; Scale(img_data,resize_frame,256);

cv::Mat crop_frame; CenterCrop(resize_frame,crop_frame,224);

Normalize(&crop_frame, inputMean_, inputStd_, true);

std::vector input_temp(1 * 3 * inputHeight_ * inputWidth_,0.0f); Permute(&crop_frame, input_temp.data());

上述预处理中调用函数如附件所示: preprocess.zip

fengyanWang avatar Apr 13 '23 09:04 fengyanWang

有人能帮忙看下问题吗?

fengyanWang avatar Apr 17 '23 02:04 fengyanWang

有对比过Normalize、Permute操作的输出和对应python处理的diff嘛

huangjun12 avatar Apr 21 '23 03:04 huangjun12

训练中resize使用的pillow,c++推理使用的是opencv,这两个库resize后的结果有差异,有些数据上得到的推理结果差异还蛮大的

flywheel1412 avatar Oct 25 '23 07:10 flywheel1412

问题有解决吗,遇到推理结果python和c++完全不一致

xinlin-xiao avatar Dec 16 '24 07:12 xinlin-xiao