该功能包基于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功能特性丰富,性能优异,针对不同平台不同的应用场景进行了深度的适配优化,做到高吞吐、低时延,保证了飞桨模型在服务器端即训即用,快速部署。
- 内置高性能的 CPU/GPU Kernel
- 子图集成TensorRT 加快GPU推理速度
- ubuntu 18.04
- ROS Melodic
- python3.6.9(系统默认)
- paddlepaddle-gpu 2.1.1+ (下载地址:paddle-inference prebulided whl或者参照博客:Jetson Nano——基于python API部署Paddle Inference GPU预测库(2.1.1)进行安装)
- CUDA
- TensorRT
该功能包在Linux下,cuda10.2 cudnn8.1 tensorRT7环境下使用paddlepaddle-cp36m.whl进行测试
在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
>>>
$ cd ConeDetection/
$ catkin build
下载yolo_v3目标检测模型
$ cd src/paddle_inference_ros/scripts $$ ./download_model.sh
分别使用三个终端运行:
$ roscore
$ rosrun ppyolo camera.py
$ roslaunch ppyolo pp_infer.py
请参考在AI Studio上的项目 https://aistudio.baidu.com/aistudio/projectdetail/3428082
AI Studio提供免费的 V100 GPU算力,能够满足绝大多数目标检测任务需求