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使用课程-第四节(北京智能佳)的更多相关文章

  1. 火云开发课堂 - 《使用Cocos2d-x 开发3D游戏》系列 第四节:3D公告板

    <使用Cocos2d-x 开发3D游戏>系列在线课程 第四节:3D公告板 视频地址:http://edu.csdn.net/course/attend/1330/20804 交流论坛:mo ...

  2. 第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表、课程章节表、课程视频表、课程资源表

    第三百七十四节,Django+Xadmin打造上线标准的在线教育平台—创建课程app,在models.py文件生成4张表,课程表.课程章节表.课程视频表.课程资源表 创建名称为app_courses的 ...

  3. 第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明

    第三百九十四节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置2,以及目录结构说明 设置后台列表页面可以直接修改字段内容 在当前APP里的adminx.py文件里的 ...

  4. 《Linux内核分析》 第四节 扒开系统调用的三层皮(上)

    <Linux内核分析> 第四节 扒开系统调用的三层皮(上) 张嘉琪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com ...

  5. 第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册

    第三百八十四节,Django+Xadmin打造上线标准的在线教育平台—路由映射与静态文件配置以及会员注册 基于类的路由映射 from django.conf.urls import url, incl ...

  6. 第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理

    第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理 1.映射(mapping)介绍 映射:创建索引的时候,可以预先定义字 ...

  7. android内部培训视频_第四节(1)_异步网络操作

    第四节(1):异步网络操作  一.结合asyncTask下载网络图片 1.定义下载类,继承自asyncTask,参数分别为:String(url地址),Integer(刻度,本例没有用到),BitMa ...

  8. Centos7 install Openstack - (第四节)添加计算服务(Nova)

    Centos7 install Openstack - (第四节)添加计算服务(Nova) 我的blog地址:http://www.cnblogs.com/caoguo 该文根据openstack官方 ...

  9. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

随机推荐

  1. 第8.33节 Python中__getattr__以及__getattr__与__ getattribute__的关系深入剖析

    一. 引言 前面几节分别介绍了Python中属性操作捕获的三剑客:__ getattribute__方法.__setattr__方法.__delattr__方法,为什么__ getattribute_ ...

  2. PyQt(Python+Qt)学习随笔:Model/View中的枚举类 Qt.MatchFlag的取值及含义

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 枚举类 Qt.MatchFlag描述在模型中搜索项时可以使用的匹配类型,它可以在QStandardI ...

  3. 【笔记】「pj复习」深搜——简单剪枝

    深搜--简单剪枝 说在最前面: 因为马上要 NOIP2020 了,所以菜鸡开始了复习qwq. pj 组 T1 ,T2 肯定要拿到满分的,然后 T3 , T4 拿部分分, T3 拿部分分最常见的做法就是 ...

  4. 题解-[NOI2005]瑰丽华尔兹

    题解-[NOI2005]瑰丽华尔兹 [NOI2005]瑰丽华尔兹 \(n\times m\) 的矩阵.以 \((x,y)\) 为起点.一共 \(k\) 段时间,每段时间为 \([s_i,t_i](t_ ...

  5. Kubernetes实战指南(三十四): 高可用安装K8s集群1.20.x

    @ 目录 1. 安装说明 2. 节点规划 3. 基本配置 4. 内核配置 5. 基本组件安装 6. 高可用组件安装 7. 集群初始化 8. 高可用Master 9. 添加Node节点 10. Cali ...

  6. 【Azure Developer】通过Azure提供的Azue Java JDK 查询虚拟机的CPU使用率和内存使用率

    问题描述 在Azure上创建虚拟机(VM)后,在门户上可以查看监控指标(Metrics),如CPU Usage,Memory,Disk I/O等.那如何通过Java 代码获取到这些指标呢? 关于VM ...

  7. STL——容器(Set & multiset)的删除 erase

    set.clear();             //清除所有元素 set.erase(pos);     //删除pos迭代器所指的元素,返回下一个元素的迭代器. set.erase(beg,end ...

  8. 基础的DOS命令

    基础的dos命令 注:所有的命令以及符号应使用英文 打开CMD的方式 开始+系统+命令提示符 Win+R 输入cmd打开控制台 略 常用的dos命令 //切换盘符的方法:直接输入想进入的盘加冒号,例如 ...

  9. base64 基本使用 和os模块使用

    1  base64 的基本使用 import base64 with open('../static/upload/63bc620d1594779d6a98c53a3a8db1e5.png','rb' ...

  10. Redis数据持久化(RDB、AOF)

    1. 简介   Redis作为内存型数据库,数据都保存在内存中,如果重启或意外宕机后,数据会全部丢失.因此,Redis提供了完善的持久化机制,将内存中的数据持久化到磁盘上,避免了完整性和安全性的问题, ...