首页 Paddle Lite 帖子详情
paddle-lite运行ppyolo或yolov3的推断时闪退且无任何报错
收藏
快速回复
Paddle Lite 问答推理端侧部署 1404 1
paddle-lite运行ppyolo或yolov3的推断时闪退且无任何报错
收藏
快速回复
Paddle Lite 问答推理端侧部署 1404 1

在安卓的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
收藏
回复
全部评论(1)
时间顺序
S
SimpsonYang
#2 回复于2022-10

你好,我也遇到同样的问题了,我训练的ppyolo tiny模型放到android demo里面运行就闪退。你前面说的量化模型是怎么来的,我用export_model.py 导出的就是 mode.pdmodel和model.pdiparams文件啊,怎么生成你说的__model__ 文件?

1
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户