MNN进行YOLOV5-lite部署,通过ROS进行订阅和发布,用于目标检测。

基于MNN框架进行YOLOV5-lite部署,通过ROS进行订阅和发布。

前言:这篇文章主要介绍在linux上基于MNN部署yolov5,使用的是cpp_demo,并增加ROS相关代码,使得这个demo可以订阅topic和发布topic。

一、安装MNN

1、首先安装依赖项

//如果你安装了ros,那么应该只需要安装protobuf
install opecv 
install protobuf
install cmake

2、编译安装MNN

git clone https://github.com/alibaba/MNN.git
cd MNN
mkdir bulid && cd build
sudo cmake ..
sudo make
sudo make install

ps:如果在编译过程中出现error: ‘__builtin_isnan’ is not a member of ‘std’这种错误
提示的位置在MNN/TOOLS/CPP/testModelWithDescrisbe.cpp处,那么在这段代码的头文件 处加上#include
此处参考下面链接

https://blog.csdn.net/weixin_51326570/article/details/113867325

3、安装demo

a:在https://github.com/ppogg/YOLOv5-Lite网站上将cpp-demo文件夹中的mnn抠出来

MNN进行YOLOV5-lite部署,通过ROS进行订阅和发布,用于目标检测。_第1张图片

b:将抠出的mnn文件夹其作为单独的文件夹复制到主目录中,这里我将mnn改名为mnn_demo

MNN进行YOLOV5-lite部署,通过ROS进行订阅和发布,用于目标检测。_第2张图片

c:编译这个文件

cd mnn_demo
mkdir bulid && cd build
sudo cmake ..
sudo make

MNN进行YOLOV5-lite部署,通过ROS进行订阅和发布,用于目标检测。_第3张图片编译后得到的结果如上图

d:下载权重文件进行测试

MNN进行YOLOV5-lite部署,通过ROS进行订阅和发布,用于目标检测。_第4张图片下载上面mnn对应的权重文件,创建一个model_zoo文件夹,将其放在这里面。
MNN进行YOLOV5-lite部署,通过ROS进行订阅和发布,用于目标检测。_第5张图片

e:单张图片进行测试

注意:main程序中,读入的图片名字是1860.jpg,需要更改成你自己图片的名字,否则则会出现下面错误!
在这里插入图片描述测试结果:MNN进行YOLOV5-lite部署,通过ROS进行订阅和发布,用于目标检测。_第6张图片

二、更改代码,使其可以订阅ros topic和发布ros topic

先看实现效果:
MNN进行YOLOV5-lite部署,通过ROS进行订阅和发布,用于目标检测。_第7张图片

@代码已上传至github,自取

https://github.com/yuchuxiang/yolov5_ros_mnn.git

1、下载代码功能包、编译、launch、enjoy!!!

mkdir yolo_v5_ws/src -p
cd yolo_v5_ws/src
git clone https://github.com/yuchuxiang/yolov5_ros_mnn.git
cd ..
catkin_make
source devel/setup.bash
roslaunch yolov5_pkg yolo.launch

你可能感兴趣的:(mnn,目标检测,人工智能)