Skip to content

Latest commit

 

History

History
90 lines (76 loc) · 3.06 KB

File metadata and controls

90 lines (76 loc) · 3.06 KB

paddle inference ros

功能包介绍

该功能包基于python3将原生的Paddle Inference嵌入ROS中的工具,使Paddle Inference能够作为一个节点实现对ROS中图像信息进行实时检测功能,可以帮助开发者在Ubuntu18.04 ROS Melodic环境中中使用Paddle inference部署基于飞桨的CV模型。

功能包架构

-|ConeDetection				(ros 功能包)
 |-install_scripts
   -cv_bridge/
   -install_ppyolo.sh
 |src/ppyolo
   |-config
     -ppyolo.yaml			(参数文件)
   |-launch
     -ppyolo.launch			(启动文件)
   |-scripts
     -camera.py				(用于测试)
     -download_model.sh		(用于测试)
     -pp_infer.py			(主程序)

Paddle Inference介绍

Paddle Inference是飞桨的原生推理库,提供高性能的推理能力。 由于直接基于飞桨的训练算子,因此Paddle Inference可以通用支持飞桨训练出的所有模型。 Paddle Inference功能特性丰富,性能优异,针对不同平台不同的应用场景进行了深度的适配优化,做到高吞吐、低时延,保证了飞桨模型在服务器端即训即用,快速部署。

Paddle Inference的高性能实现

  • 内置高性能的 CPU/GPU Kernel
  • 子图集成TensorRT 加快GPU推理速度

1、环境准备

该功能包在Linux下,cuda10.2 cudnn8.1 tensorRT7环境下使用paddlepaddle-cp36m.whl进行测试

2、编译python3的cv_bridge

在Ubuntu18.04 ROS Melodic设备上:

$ cd install_scripts
$ bash install_ppyolo.sh

检查是否安装成功:

$ python3
import cv_bridge
from cv_bridge.boost.cv_bridge_boost import getCvType

如果显示如下,则表明安装成功:

Python 3.6.9 (default, Jan 26 2021, 15:33:00) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv_bridge
>>> from cv_bridge.boost.cv_bridge_boost import getCvType
>>> 

3、编译ConeDetection功能包

$ cd ConeDetection/
$ catkin build

4、运行节点

下载yolo_v3目标检测模型

$ cd src/paddle_inference_ros/scripts $$ ./download_model.sh

分别使用三个终端运行:

$ roscore
$ rosrun ppyolo camera.py
$ roslaunch ppyolo pp_infer.py

5、训练自己的数据集

请参考在AI Studio上的项目 https://aistudio.baidu.com/aistudio/projectdetail/3428082
AI Studio提供免费的 V100 GPU算力,能够满足绝大多数目标检测任务需求