TurtleBot3使用课程-第四节(北京智能佳)
目录
1.2机器学习二 6
1.机器学习
1.1 机器学习一:object_detector_3d
1.1.1目标
使用链式机(机器学习框架之一)识别一个对象,并使用深度相机计算到对象的距离。(Link : chainer)
1.1.2操作环境
1.1.3设置
1.ROS动能装置:参考wiki.ros.org
2.RealSense D435 ROS包安装
3.依赖包装安装python-pip包
4.object_detector_3D安装
1.1.4运行(它需要超过几秒取决于PC)
1.Realsense&object_detector_3d节点
2.Rviz
1.1.5运行屏幕
左到图:显示由rostopicecho/object_detection_3d输出。
图的右上角:/object_detection_3d/result_image通过rviz显示。
如果你看右上屏幕,你可以看到一个键盘,一个杯子,一个瓶子和两个显示器从前面检测到。 每个检测都有一个标题,显示以下信息。
对象名称
检测得分。值在[0,1]范围内,随着值接近1,检测的可靠性增加。
对象中心点的三维坐标(稍后介绍)。的起源坐标系是相机的中心。x、y和z轴方向是以米为单位,分别指向右、下和向内。
如果你看z值,它是在深度方向上五个元素之间的距离检测结果,可以看到值随着对象的位置而增加再往里走。
1.1.6 ROS节点
1.主题
订阅主题
相机/颜色/image_raw[sensor_msgs/图像]彩色图像,用于二维物体检测
/相机/深度/颜色/点[sensor_msgs/点云2]
3D点云,用于计算3D坐标,需要与上面的相机图像进行时间同步
出版的主题
/object_detection_3d[object_detector_3d/第3条]
本主题由检测对象(num_detections)和检测信息(检测)的数量组成)。 检测信息Detection3D由以下信息组成。
class_id和class_name是检测对象的分类编号和名称。 得分意味着检测的可靠性。 y_min、x_min、y_max和x_max是被检测对象的包围框的左上角和右下角的坐标。 最后,位置是物体的三维坐标位置。
△ object_detection_3d/result_image[sensor_msgs/图像]
这是一个结果图像,其中包括用于检测的图像中检测到的对象的信息。 这是一个像上面右边的图像。
其他
△ sensor_msgs的内部参数。 相机信息:/相机/颜色/image_raw
△ realsense2_camera。 外部参数:从点组坐标系转换为彩色摄像机坐标系的外部参数。
1.1.7 ROS节点
1.输入数据
输入
二维摄像机图像
三维云
摄像机内部参数
外部参数,指示摄影机在点云中的位置坐标系。
输出
对象在点云坐标系中的中心点坐标。
对象的类型
检测的可靠性
2.算法概述
1.按照下面的步骤提取对象的3D坐标。
2.使用对象检测器检测图像中的多个对象,并从摄像机获得的图像中输入。
3.提取视图截锥中包含的每个点对应的子集。
4.找到每个点子集组的中心点坐标。
5.将二维检测结果和三维中心点坐标集成到三维中检测结果。
3.每种算法的描述
2D对象检测2D对象检测是指预先定义好的检测包含在图像中的对象。当您输入二维图像进行搜索时显示以下信息。以下是多个对象对应的预测值。
对象周围的框(轴对齐边界框,bbox)
对象的类型
检测可靠性
具体地说,目标探测器使用COCO和can学习的SSD300利用CNN检测80种物体。有关详细的检测列表,请参阅该列表显示在链接中。python的深度学习框架chainer用于实现和chainerv专门用于图像处理。
提取检测对象的点子集时,使用bbox上一步骤中的信息。对于每个bbox,仅限进入bbox的点从摄像机的视角提取点云中的点云作为部分点云。
部分点云中的中心点计算部分点云包括从目标、背景和屏蔽对象获得的点。这个表示这些点的集中点称为中心点。虽然对中心点有不同的定义,但中心点是从软件角度定义为点云的中心。然而,这种方法使用点数据而不区分提取的对象和非对象部分。这可能会导致根据对象形状或差异bbox。将中心点定义为计算中心似乎更好在从部分点云中移除未提取的部分后。
二维检测与三维中心点坐标的集成省略,因为它很简单。
1.2 机器学习二:YOLO
1.2.1 目标
使用YOLO练习在ROS环境中识别对象。 YOLO(您只看一次)是一个实时的目标检测系统,比其他检测系统具有更快的速度。 YOLO由darknet提供动力,darknet是一种神经网络框架,它教育和运行DNN(深度神经网络)。
1.2.2 操作环境
1.2.3 设置
ROS动能装置:参考。wiki.ros.org
RealSense D435 ROS包安装
darknet_ros安装转到catkin工作区
1.2.4运行(使用预先训练的模型)
1.2.5运行屏幕
与上面的图像一样,多个对象同时被识别。 在对象的边界创建一个框,对象的名称显示在框的左上方。
1.2.6 ROS节点
1.主题
订阅的主题
/照相机/颜色/图像_raw[传感器图像/图像]彩色图像,用于目标检测外部参数,指示摄影机在点云中的位置坐标系。
已发布主题
/暗色/边框本主题包含已识别对象的信息。如下图所示由消息头、用于检测的图像头组成,边界盒是检测到的目标信息。
显示对象信息的边界框如下所示。(BoundingBox.msg)
它由表示探测精度的概率x和y组成检测对象图像上边界框的坐标,id号以及指示对象类型的类。/暗色/探测图像[传感器图像]包含图像中检测到的对象信息的结果图像用于检测。/暗色/找到目标[标准消息/国际标准]显示检测到的对象数。
2.行动
摄像头读数[传感器图像]发送包含图像和结果值的操作(的边界框检测到的对象)。
3.参数
设置与检测相关的参数可以在与
图像查看/启用打开CV(bool)打开/关闭打开cv查看器,其中显示包含边界框。图像查看/等待按键延迟(int)打开cv查看器中的等待键延迟(毫秒)yolo_model/config_file/name(字符串)用于检测的网络的cgf名称。加载具有相应名称的cfg从darknet_ros/yolo_network_config/cfg中使用该程序。yolo_型号/重量_文件/名称(字符串)用于检测的网络的权重文件名。加载权重文件来自darknet_ros/yolo_network_config/weights的相应名称以使用程序。yolo_型号/阈值/值(浮动)检测算法的阈值。范围在0到1之间。yolo_模型/检测_类/名称(字符串数组)网络可检测到的对象的名称。
1.2.7 GPU Acceleration
如果你有NVdia GPU,使用CUDA可以比只使用快几倍中央处理器。如果安装了CUDA,则会在中自动识别CMakeLists.txt文件文件和编译时以GPU模式编译(catkin_make)
CUDA Toolkit
1.2.8 参考站点
darknet
darknet_ros
TurtleBot3使用课程-第四节(北京智能佳)的更多相关文章
- 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第四节:3D公告板
<使用Cocos2d-x 开发3D游戏>系列在线课程 第四节:3D公告板 视频地址:http://edu.csdn.net/course/attend/1330/20804 交流论坛:mo ...
- 第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表、课程章节表、课程视频表、课程资源表
第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表.课程章节表.课程视频表.课程资源表 创建名称为app_courses的 ...
- 第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明
第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明 设置后台列表页面可以直接修改字段内容 在当前APP里的adminx.py文件里的 ...
- 《Linux内核分析》 第四节 扒开系统调用的三层皮(上)
<Linux内核分析> 第四节 扒开系统调用的三层皮(上) 张嘉琪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com ...
- 第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册
第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册 基于类的路由映射 from django.conf.urls import url, incl ...
- 第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理
第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理 1.映射(mapping)介绍 映射:创建索引的时候,可以预先定义字 ...
- android内部培训视频_第四节(1)_异步网络操作
第四节(1):异步网络操作 一.结合asyncTask下载网络图片 1.定义下载类,继承自asyncTask,参数分别为:String(url地址),Integer(刻度,本例没有用到),BitMa ...
- Centos7 install Openstack - (第四节)添加计算服务(Nova)
Centos7 install Openstack - (第四节)添加计算服务(Nova) 我的blog地址:http://www.cnblogs.com/caoguo 该文根据openstack官方 ...
- 第四节,Linux基础命令
第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令 ...
随机推荐
- 商品sku的排列组合
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 原生js获取页面所有的checkbox
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- C#实例化对象的三种方式及性能对比
前言 做项目过程中有个需求要实例化两万个对象并添加到List中,这个过程大概需要1min才能加载完(传参较多),于是开启了代码优化之旅,再此记录. 首先想到的是可能实例化比较耗时,于是开始对每种实例化 ...
- MySQL技术内幕InnoDB存储引擎(四)——表相关
表是什么? 就是关于特定实体地数据集合,是关系型数据库模型地核心. 索引组织表 什么是索引组织表? 表中数据都是根据主键的顺序组织存放的,这种存储方式就是索引组织表.就是存储在一个索引结构中的表. 也 ...
- 自己编写k8s
## 基于Docker和Kubernetes的企业级DevOps实践训练营 ### 课程准备 1. 离线镜像包 百度:https://pan.baidu.com/s/1N1AYGCYftYGn6L0Q ...
- Pycharm github登录 Invalid authentication data. Connection refused.
在github.com前加上 https:// 注意登录时使用的是用户名不是邮箱
- go并发之goroutine和channel,并发控制入门篇
并发的概念及其重要性 这段是简单科普,大佬可以跳过 并发:并发程序指同时进行多个任务的程序.在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行 ...
- Java IO流 FileOutputStream、FileInputStream的用法
FileOutputStream.FileInputStream的使用 FileOutputStream是OutputStream的继承类,它的主要功能就是向磁盘上写文件.FileOutputStre ...
- [OI笔记]后缀自动机
本来没打算写的,不过想想看后缀自动机的理论看了两三天了才有点懂(我太傻了)-下周期末考的话大概要去复习一下文化课感觉回来又要忘得差不多,还是开篇blog记一下好了. 相关的资料: cls当年的课件:2 ...
- 【electron-playground系列】打包优化之路
作者:梁棒棒 简介 electron打包工具有两个:electron-builder,electron-packager,官方还提到electron-forge,其实它不是一个打包工具,而是一个类似于 ...