Skip to content

🔥🔥🔥🔥🔥🔥yolov5+YOLOX+yolo+tensorRT+ros+deepstream+jetson+nano+TX2+NX for High-performance deployment(高性能部署)

Notifications You must be signed in to change notification settings

huangwgang/cv-detect-robot

 
 

Repository files navigation

enter image description here

[中文] | [English]

CDR(cv-detect-robot)项目介绍🔥🔥🔥(工业级视觉算法Jetson侧端部署)

CDR项目立项宗旨:高性能视觉检测及其相关算法赋能机器人行业,搭建起技术落地的桥梁。

备注(1)):已接入本项目的yolov5-ros-deepstreamyolox-ros-deepstream已做好了ROS系统的适配,待相关软硬件环境搭建好后即可直接调用已定义好的ros话题消息获取目标检测实时数据。

备注(2)):后续将接入百度paddle的ppyolo算法旷世科技的YOLOX算法一系列像素级目标检测及追踪算法

备注(3)):随着本人及团队的学习成长,该项目会不定期进行维护和更新,由于能力有限,项目中存在错误和不足之处望各位批评指正或在issue中留言。

备注(4)):为方便大家学习交流,已建立CDR(cv-detect-robot)项目交流微信群,请添加群负责人小郭微信号17370042325,以方便拉您进群。



CDR~走向实用化之-v3.0版本更新内容如下🔥🔥🔥🔥🔥:

  • 增加子项目(六)和(七),分别为yolox的python接口和cpp接口。
  • 在子项目(五)中,将摄像头检测和视频文件检测集成到一个python程序中,具体操作参考同级文件夹下README.md。
  • 解决子项目(一)(二)(三)(四)中实时摄像头检测屏幕画面全覆盖问题。
  • 解决频繁出现的mmap err:Bad file descriptor错误。
  • 对yolov5和yolox检测模型后都级联了DCF目标跟踪器。
  • 对于所有子项目都可进行指定目标类别检测跟踪。
  • 发布了Nano板和NX板在运行CDR项目时需要注意事项的README.md文档。
  • 发布如何生成engine文件的README.md文档。
  • 解决子项目(二)yolov5-deepstream-python中ros节点读取数据一直显示24个恒定目标数据的问题


CDR子项目(一)(yolov5-ros-deepstream)

  • yolov5-ros-deepstream 子项目简介

该项目是将yolov5视觉检测算法与神经网络加速引擎tensorRT结合,并在英伟达的deepstream框架下运行,结合ros通信机制,将检测数据实时通过ros topic 发布出去。以供基于ROS机器人操作系统的开发人员及相关科研人员使用。

详细教程请进入yolov5-ros-deepstream

最终视频检测效果请进入yolov5-ros-deepstream检测

加入目标跟踪器视频检测效果请进入Jetson NX yolov5-ros-deepstream+目标跟踪

加入目标跟踪器视频检测效果请进入Jetson Nano yolov5-ros-deepstream+目标跟踪

CDR子项目(二)(yolov5-deepstream-python)

  • yolov5-deepstream-python 子项目简介

该项目是将视觉检测算法yolov5与神经网络加速引擎tensorRT结合,利用共享内存技术将检测所得到的数据实时储存到事先定义好的物理内存中(物理地址是唯一的),在同一硬件平台上的任意软件目录中,建立一个读取物理内存的client.py脚本文件(里面只包含一个读取内存的代码段),将指定好的物理内存中的数据读取出来,在读取成功的前提下,可将该代码段插入到任意需要目标检测数据的python项目中,从而使该python项目能顺利获取目标检测数据。

详细教程请进入yolov5-deepstream-python

最终视频检测效果请进入yolov5-deepstream-python检测

加入目标跟踪器视频检测效果请进入Jetson NX yolov5-python-deepstream+目标跟踪器

加入目标跟踪器视频检测效果请进入Jetson Nano yolov5-python-deepstream+目标跟踪器

CDR子项目(三)(yolov5-deepstream-cpp)

  • yolov5-deepstream-cpp 子项目简介

该项目是将视觉检测算法yolov5与神经网络加速引擎tensorRT结合,利用共享内存技术将检测所得到的数据实时储存到事先定义好的物理内存中(物理地址是唯一的),在同一硬件平台上的任意软件目录中,建立一个读取物理内存的yolov5_tensor.cpp文件(里面只包含一个读取内存的代码段),编译后可将指定好的物理内存中的数据读取出来,在读取成功的前提下,可将该代码段插入到任意需要目标检测数据的C++项目中,从而使该C++项目能顺利获取目标检测数据。

详细教程请进入yolov5-deepstream-cpp

最终视频检测效果请进入yolov5-deepstream-cpp检测

加入目标跟踪器视频检测效果请进入Jetson NX yolov5-cpp-deepstream+目标跟踪器

加入目标跟踪器视频检测效果请进入Jetson Nano yolov5-cpp-deepstream+目标跟踪器

CDR子项目(四)(yolox-ros-deepstream)

  • yolox-ros-deepstream 子项目简介

该项目是将yolox视觉检测算法与神经网络加速引擎tensorRT结合,本子项目采另一种引擎文件生成方法,通过onnx转到engine,此方法更具灵活性,也越来越稳定,符合行业主流发展趋势,在英伟达的deepstream框架下运行,结合ros通信机制,将检测数据实时通过ros topic 发布出去。以供基于ROS机器人操作系统的开发人员及相关科研人员使用。

详细教程请进入yolox-ros-deepstream

最终视频检测效果请进入yolox-ros-deepstream检测

加入目标跟踪器视频检测效果请进入Jetson NX yolox-ros-deepstream+目标跟踪器

加入目标跟踪器视频检测效果请进入Jetson Nano yolox-ros-deepstream+目标跟踪器

CDR子项目(五)(resnet10+ros+deepstream for python )----(Jetson Nano and X_86)

该项目利用deepstream的python接口,基于英伟达针对性优化的resnet10.caffemodel模型,可利用英伟达新推出的(TAO) Toolkit 工具包进行自定义数据集训练及模型优化,并继承CDR项目祖传的ros接口。不仅能在Jetson系列平台使用,通过docker容器技术,也可在Linux-x_86平台(Ubuntu)实现快速部署。经测试,该模型在Jetson Nano上可实现在检测算法和多目标跟踪算法同时加持情况下高达30fps的帧率(检测四种目标),准确率可达90%以上(接近yolov5)。

详细教程请进入resnet10-ros-deepstream

最终视频检测效果请进入resnet10-ros-deepstream检测

加入目标跟踪器视频检测效果请进入Jetson NX resnet10-ros-deepstream+目标跟踪器

加入目标跟踪器视频检测效果请进入Jetson Nano resnet10-ros-deepstream+目标跟踪器

CDR子项目(六)(yolox-deepstream-python)

  • yolox-deepstream-python 子项目简介

该项目是将yolox视觉检测算法与神经网络加速引擎tensorRT结合,本子项目采另一种引擎文件生成方法,通过onnx转到engine,此方法更具灵活性,也越来越稳定,符合行业主流发展趋势,在英伟达的deepstream框架下运行,在同一硬件平台上的任意软件目录中,建立一个读取物理内存的client.py脚本文件(里面只包含一个读取内存的代码段),将指定好的物理内存中的数据读取出来,在读取成功的前提下,可将该代码段插入到任意需要目标检测数据的python项目中,从而使该python项目能顺利获取目标检测数据。

详细教程请进入yolox-deepstream-python

最终视频检测效果请进入yolox-deepstream-python检测

加入目标跟踪器视频检测效果请进入Jetson NX yolox-ros-deepstream+目标跟踪器

加入目标跟踪器视频检测效果请进入Jetson Nano yolox-ros-deepstream+目标跟踪器

CDR子项目(七)(yolox-deepstream-cpp)

  • yolox-deepstream-cpp 子项目简介

该项目是将yolox视觉检测算法与神经网络加速引擎tensorRT结合,本子项目采另一种引擎文件生成方法,通过onnx转到engine,此方法更具灵活性,也越来越稳定,符合行业主流发展趋势,在英伟达的deepstream框架下运行,在同一硬件平台上的任意软件目录中,建立一个读取物理内存的yolox_tensor.cpp文件(里面只包含一个读取内存的代码段),编译后可将指定好的物理内存中的数据读取出来,在读取成功的前提下,可将该代码段插入到任意需要目标检测数据的C++项目中,从而使该C++项目能顺利获取目标检测数据。

详细教程请进入yolox-deepstream-cpp

最终视频检测效果请进入yolox-deepstream-cpp检测

加入目标跟踪器视频检测效果请进入Jetson NX yolox-ros-deepstream+目标跟踪器

加入目标跟踪器视频检测效果请进入Jetson Nano yolox-ros-deepstream+目标跟踪器

About

🔥🔥🔥🔥🔥🔥yolov5+YOLOX+yolo+tensorRT+ros+deepstream+jetson+nano+TX2+NX for High-performance deployment(高性能部署)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 27.3%
  • Python 25.5%
  • Makefile 23.0%
  • CMake 11.5%
  • Cuda 9.7%
  • Shell 3.0%