基于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目标检测,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
双机械臂四转四驱机器人设计与实现
该研究设计了一种创新的双机械臂四转四驱机器人,旨在突破传统轮式机器人的限制。该机器人底盘采用四转四驱设计,显著提升了灵活性和负载能力,使其能够在复杂环境中精确移动和执行任务。双机械臂系统使机器人能够高效与现实生活互动,完成复杂任务。
应用方案 发布时间 : 2024-10-29
多模态感知仿生机械手项目案例
本项目提供了一款五指仿生机器手,其仿照人手的外观与自由度,使其能够作为人形机器人的末端执行器,完成人手所能完成的任务。
应用方案 发布时间 : 2024-10-29
WiFi和Zigbee网关在智能家居中的应用及其优势
随着智能家居的快速发展,WiFi和Zigbee成为了两种最常用的智能家居通信协议。而WiFi和Zigbee网关作为连接智能家居设备与互联网的桥梁,起到了至关重要的作用。本文东胜物联将探讨WiFi和Zigbee网关在智能家居中的应用及其优势。
应用方案 发布时间 : 2024-02-02
【IC】D-Robotics RDK X5机器人开发者套件,可提供高达10 Tops算力,加速智能化应用快速落地
D-Robotics RDK X5搭载Sunrise 5智能计算芯片,可提供高达10 Tops的算力,是一款面向智能计算与机器人应用的全能开发套件,接口丰富,极致易用,支持Transfomer、RWKV、Occupancy、Stereo Perception等多种复杂模型和最新算法,加速智能化应用快速落地。
产品 发布时间 : 2024-09-20
基于RDK X3和OriginBot的手势控制机器人应用案例
通过视觉进行人手检测、跟踪和手势识别,根据手势类别生成不同运动控制指令并控制机器人运动,包括左右旋转和前后平移运动。该功能支持机器人实物和Gazebo仿真两种体验方式。以下操作过程以OriginBot为例,满足条件的其他机器人使用方法类似。
设计经验 发布时间 : 2024-11-13
地平线RDK实现智能循线机器人应用示例
巡线任务,即机器人小车能够自主跟着一条引导线向前运行。地平线RDK通过摄像头获取小车前方环境数据,图像数据通过训练好的CNN模型进行推理得到引导线的坐标值,然后依据一定的控制策略计算小车的运动方式,通过UART向小车下发运动控制指令实现整个系统的闭环控制。
设计经验 发布时间 : 2024-11-12
基于RDK X3的机械臂物体拾取操作实例
本文介绍RDK X3该功能包接收用户选择方块数字的请求,通过yolov5检测目标,在Z轴距离确定的情况下解算出物体的三维坐标,并请求仿真机械臂控制节点夹取物体的应用实例。
设计经验 发布时间 : 2024-10-28
智能语音聊天机器人功能及使用指南
智能语音聊天机器人通过识别用户语音,调用ChatGPT API获取答复并播放,实现语音聊天。需地平线RDK、ChatGPT API Key及音频板等物料。准备、组装后,安装功能包并运行,配置音频和ChatGPT API Key。常见问题包括设备连接、音频驱动、配置文件及网络访问等。
设计经验 发布时间 : 2024-10-18
NodeHub快速入门示例:小海龟绘画
NodeHub快速入门示例,通过键盘控制小乌龟进行绘画。
设计经验 发布时间 : 2024-11-11
RDK平台实现MIPI相机驱动的操作实例
本项目案例为对已适配的MIPI接口摄像头进行配置,并将采集的图像数据以ROS标准图像消息或者零拷贝(hbmem)图像消息进行发布,供需要使用图像数据的其他模块订阅。
设计经验 发布时间 : 2024-11-05
人手关键点检测算法示例
本文主要介绍了地瓜机器人的X3RDK的系统应用在人手关键点检测算法的示例以及使用说明,并给出具体功能代码。
设计经验 发布时间 : 2024-10-28
镭神激光雷达驱动
镭神激光雷达驱动设计方案及应用介绍, LSLIDAR ROS2驱动链接RDK X3,以ROS2标准消息格式发送激光雷达数据。
设计经验 发布时间 : 2024-11-09
电子商城
登录 | 立即注册
提交评论