基于RDK平台的YOLOv10目标检测算法示例
YOLO
功能介绍
YOLO目标检测算法示例使用图片作为输入,利用BPU进行算法推理,发布包含目标类别和检测框的算法msg。目前支持yolov2、yolov3、yolov5、yolov5x四个版本。
模型使用COCO数据集进行训练,支持的目标检测类型包括人、动物、水果、交通工具等共80种类型。
代码仓库:(https://github.com/D-Robotics/hobot_dnn)
应用场景:YOLO系列作为单阶段目标检测中的代表算法,具有速度快,泛化性好的优点,可实现垃圾识别、车辆检测等功能,主要应用于自动驾驶、智能家居等领域。
车辆检测案例:(https://github.com/JunshengFu/vehicle-detection)
摔倒检测案例:(https://github.com/xiaobin1231/Fall-Detection-By-YOLOV3-and-LiteFlowNet)
支持平台
准备工作
RDK平台
RDK已烧录好Ubuntu 20.04/Ubuntu 22.04系统镜像。
RDK已成功安装TogetheROS.Bot。
RDK已安装MIPI或者USB摄像头,无摄像头的情况下通过回灌本地JPEG/PNG格式图片或者MP4、H.264和H.265的视频方式体验算法效果。
确认PC机能够通过网络访问RDK。
X86平台
X86环境已配置好Ubuntu 20.04系统镜像。
X86环境系统已成功安装tros.b。
使用介绍
RDK平台
使用MIPI摄像头发布图片
YOLOv2目标检测算法示例订阅MIPI摄像头发布的图片,经过算法推理后发布算法msg,通过websocket package实现在PC端浏览器上渲染显示发布的图片和对应的算法结果。
# 配置tros.b环境
source/opt/tros/setup.bash
# 配置tros.b环境
source/opt/tros/humble/setup.bash
# 配置MIPI摄像头
export CAM_TYPE=mipi
# 启动launch文件
ros2 launch dnn_node_example dnn_node_example.launch.py dnn_example_config_file:=config/yolov2workconfig.json dnn_example_image_width:=480 dnn_example_image_height:=272
使用USB摄像头发布图片
YOLOv2目标检测算法示例订阅USB摄像头发布的图片,经过算法推理后发布算法msg,通过websocket package实现在PC端浏览器上渲染显示发布的图片和对应的算法结果。
# 配置tros.b环境
source/opt/tros/setup.bash
# 配置tros.b环境
source/opt/tros/humble/setup.bash
# 配置USB摄像头
export CAM_TYPE=usb
# 启动launch文件
ros2 launch dnn_node_example dnn_node_example.launch.py dnn_example_config_file:=config/yolov2workconfig.json dnn_example_image_width:=480 dnn_example_image_height:=272
使用本地图片回灌
YOLOv2目标检测算法示例使用本地JPEG/PNG格式图片回灌,经过推理后将算法结果渲染后的图片存储在本地的运行路径下。
# 配置tros.b环境
source/opt/tros/setup.bash
# 配置tros.b环境
source/opt/tros/humble/setup.bash
# 启动launch文件
ros2 launch dnn_node_example dnn_node_example_feedback.launch.py dnn_example_config_file:=config/yolov2workconfig.json dnn_example_image:=config/target.jpg
除了YOLOv2算法,还支持YOLOv3和YOLOv5算法。启动命令中使用参数config_file切换算法,如使用YOLOv3算法的启动配置为dnn_example_config_file:="config/yolov3workconfig.json",使用YOLOv5算法的启动配置为dnn_example_config_file:="config/yolov5workconfig.json"。
使用MIPI摄像头发布图片
YOLOv5x目标检测算法示例订阅MIPI摄像头发布的图片,经过算法推理后发布算法msg,通过websocket package实现在PC端浏览器上渲染显示发布的图片和对应的算法结果。
# 配置tros.b环境
source/opt/tros/setup.bash
# 配置tros.b环境
source/opt/tros/humble/setup.bash
# 配置MIPI摄像头
export CAM_TYPE=mipi
# 启动launch文件
ros2 launch dnn_node_example dnn_node_example.launch.py dnn_example_config_file:=config/yolov5xworkconfig.json dnn_example_image_width:=672 dnn_example_image_height:=672
使用USB摄像头发布图片
YOLOv5x目标检测算法示例订阅USB摄像头发布的图片,经过算法推理后发布算法msg,通过websocket package实现在PC端浏览器上渲染显示发布的图片和对应的算法结果。
# 配置tros.b环境
source/opt/tros/setup.bash
# 配置tros.b环境
source/opt/tros/humble/setup.bash
# 配置USB摄像头
export CAM_TYPE=usb
# 启动launch文件
ros2 launch dnn_node_example dnn_node_example.launch.py dnn_example_config_file:=config/yolov5xworkconfig.json dnn_example_image_width:=672 dnn_example_image_height:=672
使用本地图片回灌
YOLOv5x目标检测算法示例使用本地JPEG/PNG格式图片回灌,经过推理后将算法结果渲染后的图片存储在本地的运行路径下。
# 配置tros.b环境
source/opt/tros/setup.bash
# 配置tros.b环境
source/opt/tros/humble/setup.bash
# 启动launch文件
ros2 launch dnn_node_example dnn_node_example_feedback.launch.py dnn_example_config_file:=config/yolov5xworkconfig.json dnn_example_image:=config/target.jpg
X86平台
使用本地图片回灌
YOLOv2目标检测算法示例使用本地JPEG/PNG格式图片回灌,经过推理后将算法结果渲染后的图片存储在本地的运行路径下。
# 配置tros.b环境
source/opt/tros/setup.bash
# 启动launch文件
ros2 launch dnn_node_example dnn_node_example_feedback.launch.py dnn_example_config_file:=config/yolov2workconfig.json dnn_example_image:=config/target.jpg
除了YOLOv2算法,还支持YOLOv3算法,YOLOv5算法暂不支持。启动命令中使用参数config_file切换算法,如使用YOLOv3算法的启动配置为dnn_example_config_file:="config/yolov3workconfig.json"。
结果分析
使用摄像头发布图片
在运行终端输出如下信息:
[example-3] [WARN] [1655095347.608475236] [example]: Create ai msg publisher with topic_name: hobot_dnn_detection
[example-3] [WARN] [1655095347.608640353] [example]: Create img hbmem_subscription with topic_name: /hbmem_img
[example-3] [WARN] [1655095348.709411619] [img_sub]: Sub img fps 12.95
[example-3] [WARN] [1655095348.887570945] [example]: Smart fps 12.10
[example-3] [WARN] [1655095349.772225728] [img_sub]: Sub img fps 11.30
[example-3] [WARN] [1655095349.948913662] [example]: Smart fps 11.31
[example-3] [WARN] [1655095350.834951431] [img_sub]: Sub img fps 11.30
[example-3] [WARN] [1655095351.011915729] [example]: Smart fps 11.30
输出log显示,发布算法推理结果的topic为hobot_dnn_detection,订阅图片的topic为/hbmem_img。
在PC端的浏览器输入http://IP:8000 即可查看图像和算法渲染效果(IP为RDK的IP地址):
使用本地图片回灌
在运行终端输出如下信息:
[example-1] [INFO] [1654925067.952159234] [PostProcessBase]: out box size: 8
[example-1] [INFO] [1654925067.952227232] [PostProcessBase]: det rect: 464.03 196.145 605.525 434.865, det type: potted plant, score:0.813219
[example-1] [INFO] [1654925067.952319229] [PostProcessBase]: det rect: 86.5421 310.158 512.542 468.201, det type: couch, score:0.669208
[example-1] [INFO] [1654925067.952392268] [PostProcessBase]: det rect: 198.968 399.91 273.841 421.767, det type: book, score:0.539755
[example-1] [INFO] [1654925067.952465182] [PostProcessBase]: det rect: 159.861 370.656 217.685 417.746, det type: potted plant, score:0.480698
[example-1] [INFO] [1654925067.952533221] [PostProcessBase]: det rect: 51.2147 321.047 84.0969 375.842, det type: vase, score:0.433644
[example-1] [INFO] [1654925067.952607802] [PostProcessBase]: det rect: 70.0548 197.381 96.1826 221.062, det type: vase, score:0.399885
[example-1] [INFO] [1654925067.952675924] [PostProcessBase]: det rect: 197.706 405.271 278.929 435.743, det type: book, score:0.384268
[example-1] [INFO] [1654925067.952743463] [PostProcessBase]: det rect: 54.0955 256.68 88.6269 266.159, det type: book, score:0.307426
输出log显示,算法使用输入的图片推理出8个目标,并输出了目标检测框坐标(输出的坐标顺序分别是人体框的左上的x和y坐标,和右下的x和y坐标)和类别。存储的渲染图片文件名为render_feedback_0_0.jpeg,渲染图片效果:
模型训练和转化
参考RDK Model ZOO: https://github.com/D-Robotics/rdk_model_zoo
- |
- +1 赞 0
- 收藏
- 评论 0
本文由雪飘梦飞转载自D-Robotics官网,原文标题为:YOLOv10目标检测,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
基于RDK X3操作思岚激光雷达驱动示例
SLLIDAR ROS2驱动,以ROS2标准消息格式发送激光雷达数据。
YDLIADAR激光雷达驱动应用实例
介绍YDLIADAR激光雷达驱动的方案与技术要求,YDLIDAR ROS2驱动,以ROS2标准消息格式发送激光雷达数据。
多模态感知仿生机械手项目案例
本项目提供了一款五指仿生机器手,其仿照人手的外观与自由度,使其能够作为人形机器人的末端执行器,完成人手所能完成的任务。
地瓜机器人与火山引擎联手打造基于大模型的“云-边-端”一体化机器人开发底座
地瓜机器人与字节跳动旗下云服务平台火山引擎达成合作,双方将在“机器人+大模型”领域强强联合,实现地瓜机器人软硬件通用底座与火山引擎边缘智能大模型网关“云-边-端”的全面打通,加速大模型在机器人场景的落地,拓展机器人的无限智能化潜能。作为拥有极致算力性价比与极简开发体验的地瓜机器人开发者套件,RDK X5可提供高达10 TOPS的端侧算力,接口丰富,极致易用。
【IC】D-Robotics RDK X5机器人开发者套件,可提供高达10 Tops算力,加速智能化应用快速落地
D-Robotics RDK X5搭载Sunrise 5智能计算芯片,可提供高达10 Tops的算力,是一款面向智能计算与机器人应用的全能开发套件,接口丰富,极致易用,支持Transfomer、RWKV、Occupancy、Stereo Perception等多种复杂模型和最新算法,加速智能化应用快速落地。
D-Robotics RDK™X5产品简介
描述- D-Robotics RDK TM X5 是一款搭载 Sunrise 5 智能计算芯片的全能开发套件,具备高算力(10 Tops),适用于智能计算与机器人应用。该套件具有丰富的接口,支持多种复杂模型和最新算法,旨在加速智能化应用的快速落地。
型号- RDK X5 4GB,RDK™ X5,RDK X5 8GB
基于RDK X3 & Module的性能检测软件使用示例
Performance Node该应用基于Web网页打造,无论是什么品牌的电脑和手机,只需要在浏览器访问即可。
RDK X5重磅发布、RDK S100惊喜亮相,地瓜机器人开发者套件全家桶全新登场
9月20日,以“加速智能生长”为主题的“2024地瓜机器人开发者日”活动在深圳成功举办。地瓜机器人重磅推出面向“机器人+”时代的软硬件产品全家桶,包括专为新一代通用机器人而生的旭日5智能计算芯片、极致易用全能开发首选RDK X5机器人开发者套件、具身智能全场景算力核心RDK S100,以及赋能全链条全生命周期的机器人云端开发环境,软硬结合、端云一体,让开发更简单、让机器更智能。
连接RDK X3操作奥比中光Astro Pro相机驱动示例
基于RDK X3的奥比中光Astro Pro相机驱动操作方案介绍。
基于RDK系统的双目深度估计算法示例
双目深度估计算法是使用地平线OpenExplorer在SceneFlow数据集上训练出来的StereoNet模型。算法输入为双目图像数据,分别是左右视图。算法输出为左视图的视差。此示例使用mipi双目相机作为图像数据输入源,利用BPU进行算法推理,发布包含双目图像左图和感知结果的话题消息, 在PC端rviz2上渲染算法结果。
2D垃圾检测应用示例
本Node是基于hobot_dnn开发的2D垃圾目标检测算法,采用PaddlePaddle开源框架, 利用PPYOLO模型进行垃圾检测任务设计和训练。为了达到快速部署的目的,本Node支持配置文件更换垃圾检测模型,开发者可以将更多精力投入在算法模型能力的迭代,减少部署工作量,识别输出的AI信息不仅可以通过话题发布,还可以在Web页面渲染显示。
基于RDK X3开发板设计并实现的手持slam建图设计
这里使用RDK X3开发板设计并实现了一款SLAM手持建图设备,它使用RDK X3开发板的计算性能,通过激光雷达实现一个纯激光里程计,通过IMU对激光数据进行畸变矫正和对SLAM的姿态矫正,实现一个手持的SLAM建图功能。
RDK平台实现MIPI相机驱动的操作实例
本项目案例为对已适配的MIPI接口摄像头进行配置,并将采集的图像数据以ROS标准图像消息或者零拷贝(hbmem)图像消息进行发布,供需要使用图像数据的其他模块订阅。
电子商城
登录 | 立即注册
提交评论