paddle-lite运行ppyolo或yolov3的推断时闪退且无任何报错
t806804207 发布于2021-08-24 浏览:110 回复:0
0
收藏
最后编辑于2021-08-24

在安卓的demo上有同样问题,将PP-YOLO tiny的量化模型使用:

./opt_linux --model_file=ppyolo_tiny_quant/__model__ --param_file=ppyolo_tiny_quant/__params__ --optimize_out=model

转换成nb格式后替换到yolo_detection_demo能正常运行

但如果是普通PP-YOLO tiny模型,使用

python tools/export_model.py -c configs/ppyolo/ppyolo_tiny_650e_coco.yml
./opt_linux --model_file=ppyolo_tiny_650e_coco/model.pdmodel --param_file=ppyolo_tiny_650e_coco/model.pdiparams --optimize_out=model


转换成nb格式模型再替换进去,然后修改输入如下:

void Detector::Preprocess(const cv::Mat &rgbaImage) {
  // Set the data of input image
  auto inputTensor = predictor_->GetInput(1);
  std::vector inputShape = {1, 3, inputHeight_, inputWidth_};
  inputTensor->Resize(inputShape);
  auto inputData = inputTensor->mutable_data();
  cv::Mat resizedRGBAImage;
  cv::resize(rgbaImage, resizedRGBAImage, cv::Size(inputShape[3], inputShape[2]));
  cv::Mat resizedRGBImage;
  cv::cvtColor(resizedRGBAImage, resizedRGBImage, cv::COLOR_BGRA2RGB);
  resizedRGBImage.convertTo(resizedRGBImage, CV_32FC3, 1.0 / 255.0f);
  NHWC3ToNC3HW(reinterpret_cast(resizedRGBImage.data), inputData,
               inputMean_.data(), inputStd_.data(), inputShape[3],
               inputShape[2]);
  // Set the size of input image
  auto sizeTensor = predictor_->GetInput(0);
  sizeTensor->Resize({1, 2});
  auto sizeData = sizeTensor->mutable_data();
  sizeData[0] = inputShape[3];
  sizeData[1] = inputShape[2];

  auto scaleTensor = predictor_->GetInput(2);
  sizeTensor->Resize({1, 2});
  auto scaleData = sizeTensor->mutable_data();
  scaleData[0] = 1;
  scaleData[1] = 1;
}

程序运行到`predictor_->Run();`后会直接闪退且没有任何报错。

都是表中同一行的模型:PP-YOLO tiny模型

替换到使用Java API的object_detection_demo中也同样如此。

试了下其他的PP-YOLO模型也会这样,YOLOv3也是,都是运行到`PaddlePredictor->Run()`会直接闪退且没有错误信息。

在paddle-lite上运行有什么特别的要求吗,为什么PP-YOLO tiny的量化模型能运行,它对应的普通模型就不行?

即使是有问题也应该给个错误信息啊,现在却没有任何报错。

posted by @tinggg12345 in https://github.com/PaddlePaddle/Paddle-Lite/issues/6752#issue-977652942

收藏
点赞
0
个赞
快速回复
TOP
切换版块