PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.38k stars 2.84k forks source link

paddledetection ppylooe转tensort模型后,可视化结果错误 #7060

Open sensenets123456 opened 1 year ago

sensenets123456 commented 1 year ago

问题确认 Search before asking

需求描述 Feature Description

https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.5/configs/ppyoloe

1.Using Paddle Inference with TensorRT to test speed, run following command 1.1 python tools/export_model.py -c configs/ppyoloe/ppyoloe_plus_crn_l_80e_coco.yml -o weights=https://paddledet.bj.bcebos.com/models/ppyoloe_plus_crn_l_80e_coco.pdparams exclude_nms=True trt=True

1.2 CUDA_VISIBLE_DEVICES=0 python deploy/python/infer.py --model_dir=output_inference/ppyoloe_plus_crn_l_80e_coco --image_file=demo/000000014439_640x640.jpg --run_mode=trt_fp16 --device=gpu --run_benchmark=True 用coco的val集合测试发现保存在output文件夹的检测结果是错误的,模型转换过程中没有报错

是否愿意提交PR Are you willing to submit a PR?

nemonameless commented 1 year ago

exclude_nms=True导出的模型,是专门测速用的,要预测出框需要再接个nms。 https://github.com/PaddlePaddle/PaddleDetection/blob/release/2.5/ppdet/modeling/heads/ppyoloe_head.py#L383 你运行deploy/python/infer.py的命令加了--run_benchmark=True就是测速,是不会预测的也不会画出来可视化结果,不加--run_benchmark=True就是预测且会画出来可视化图。 你想导出预测一步到位就不加exclude_nms=True去导出。

sensenets123456 commented 1 year ago

1.python tools/export_model.py -c configs/ppyoloe/ppyoloe_plus_crn_l_80e_coco.yml -o weights=https://paddledet.bj.bcebos.com/models/ppyoloe_plus_crn_l_80e_coco.pdparams trt=True

  1. CUDA_VISIBLE_DEVICES=0 python deploy/python/infer.py --model_dir=output_inference/ppyoloe_plus_crn_l_80e_coco --image_dir=coco/ --device=gpu
  2. 运行完后,在output上会有可视化的检测框,画出的框位置是不正确的,
sensenets123456 commented 1 year ago

通过查看画出的矩形框及其对应的label,label和矩形里面的object是对应不上的,检测的框全是错误的

sensenets123456 commented 1 year ago

1.这快目前是不是只支持测速?用原始的coco数据集上训练的模型ppyoloe_plus_crn_l_80e_coco.pdparams去测试coco val集合,abel和矩形里面的object是可以对上的,正确的 2.将模型转换为支持tensorrt预测 2.1python tools/export_model.py -c configs/ppyoloe/ppyoloe_plus_crn_l_80e_coco.yml -o weights=https://paddledet.bj.bcebos.com/models/ppyoloe_plus_crn_l_80e_coco.pdparams trt=True 2.2. CUDA_VISIBLE_DEVICES=0 python deploy/python/infer.py --model_dir=output_inference/ppyoloe_plus_crn_l_80e_coco --image_dir=coco/ --device=gpu 2.3 通过查看画出的矩形框及其对应的label,label和矩形里面的object是对应不上的,检测的框全是错误的