主要介绍用于实现感知自主层的理论。

感知是在观测的基础上理解环境的过程,也通常是一个模型构建的过程。

虽然定位技术使机器人的移动成为可能,但是环境感知能够使系统对外界激励产生智能响应——即使环境与所有预设情况都不同。

通常,只有通过感知,机器人才能自然地表现出足够智能的行为。

8.1图像处理算子与算法

8.1.1计算机视觉算法分类

在本书中出现的计算机视觉算法分为以下三类:

  • 图像处理:对像素进行操作,在图像中创建和处理任意几何形状。
  • 计算机视觉几何:侧重理解空间位置关系,场景中物体的定位以及传感器和物体间的相对运动。
  • 计算机视觉语义:识别或推理自然物体或场景要素,以及试图理解或解释场景内容。

1.图像处理算法

主要处理摄像头数据或图像测距传感器数据,部分重要算法包括:

  • 边缘检测(高通滤波):提取图像数据的空间导数,以这种方式找到的边缘来定义对象边界
  • 平滑(低通滤波):滤出图像中的噪声
  • 图像分割:提出图像中的连接区域,这些区域通常对应着场景中的对象
  • 特征检测:提取线,感兴趣点,角点等特征信息,对位姿估计和校正非常有用
  • 光流:近似表示图像中部分或全部像素的速度

2.计算机视觉几何

在最基本的图像处理之上,做进一步的处理。部分重要算法包括:

  • 形状推理:最重要的还是计算机立体视觉
  • 特征跟踪:跟踪图像间的点,线,角点等的位置变化,来推测表现运动
  • 视觉里程计:在禁止场景中,利用特征跟踪来推测传感器的运动
  • 从运动恢复结构(SFM):可以同时推断形状和运动。当摄像头做传感器时,视觉里程计和SFM相似

3.计算机视觉语义

在基本的图像处理和计算机视觉几何之外,再进行一些额外的处理。往往包括先验知识,复杂的概率模型或搜索过程,或两者兼有。部分重要算法包括:

像素分类:将每个像素分配到场景中的不同地物类型中,对路径跟踪时的道路选择,避障时的障碍物识别非常有用。

  • 对象检测:搜索场景以探测指定对象的一个或多个实例
  • 对象识别:为多种目的对对象进行分类和标记,对象类型可以是人,其他机器人或者路标等
  • 障碍物探测:根据通行难度或对车辆运动的阻碍程度,对场景中的物体或区域进行分类评估
  • 位置识别:基于先前的经验标记传感器位置
  • 场景理解:解释场景中的内容或行为,以提取其中的语义信息

8.1.2高通滤波算子

高通滤波算子能增强信息中的高频信号,并抑制低频信号。当高频信号是我们关注的主要信息时,就要用到高通滤波。如果噪声中也包含高频信息时,那么噪声也会被高通滤波算子放大。

使用中心差分方法可以从激光雷达的城市道路点云数据中探测出各边缘。

对二维图,一个著名的中心差分算子是索贝尔算子,索贝尔算子是一个3×3模板,它生成一个向量值输出。更复杂的边缘检测算法会搜索梯度方向上一阶导数的局部最大值。

8.1.3低通算子

对信号进行低通滤波算子是为了增强低频信息,同时抑制高频信息。当对信号中的低频信息感兴趣时,就会用到低通滤波算子。当信号中存在高频噪声干扰,低通滤波算子会倾向于抑制高频信息。

在信号处理中,求导运算可以增强高频信息,反之,积分运算则会增强低频信息,因此低通算子更接近于积分运算。

1.均值滤波

最简单的高频滤波方法就是围绕该点的邻域均值代替其实际值。

如果希望利用变尺度掩膜对一幅图像进行多次滤波,那么通常可以定义一个递归图像金字塔。

2.高斯滤波

为对接近邻域中心的信号值赋予更高的权重,因此选择使用类似高斯分布的掩膜。

8.1.4 信号和图像匹配

信号匹配时图像处理中的另一个基本运算,其具有广泛用途:

  • 检测:判断图像中是否出现对象实例;
  • 识别:对图像中的对象打上正确的标签;
  • 配准拼接:将两张局部图像拼接在一起以生成一幅大型图像;
  • 跟踪:确定已知区域因视差或运动而引起的位移。

1.卷积

在计算机视觉领域中,数字图像是一个二维的离散信号,对数字图像做卷积操作起始就是利用卷积核(卷积模板)在图像上滑动,将图像点上的像素灰度值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素对应的图像上像素的灰度值,并最终滑动完成所有图像的过程。

图像处理中,平滑 模糊 去噪 锐化 边缘提取等等工作,起始都可以通过卷积操作来完成。

不同的卷积核作用于图像,可以更清晰的获取图像的某种特征,如轮廓,颜色等。

在卷积神经网络中,卷积核对输入的图像数据分区域进行卷积运算,通过运算的结果判定图像区域是否符合某种预设特征(如判断人脸,鼻子,眼睛,嘴巴)

将卷积核作用于图片,直接进行卷积运算,就会发现对于识别的特征计算出来的值非常大,对于不能识别的特征,计算的值非常小。

提取图片特征的关键是合理的卷积核。卷积神经网络训练的过程,就是提供合理的样本,让程序通过样本自动为各种卷积核给出阈值的过程。

2.相关计算

3.二维空间的相关性

利用模板相关计算,通过找到插头模板图像在现实拍摄图像中的位置,机器人可以定位插头的位置,以便将插头插入插座中进行充电。

与待寻精确信号进行相关计算被称作匹配滤波,广泛应用于立体视觉,特征跟踪,表面配准,甚至GPS信号处理等领域。

4.误差和

基于相关计算的信号匹配是使匹配标准最大化,也使误差最小化。

可以证明,最小化SSD(误差平方和)等价于相关最大化。

该运算可以看最两幅图像之间的残差平方,或者是两个面之间体积平方,也可以看做两个向量信号之间或矩阵图像之间的欧氏距离。

8.1.5 特征检测

特征也被称为“兴趣点”,指的是图像中有区分度且具有某种特定功能的点,曲线,或者区域,主要包括:

  • 图像中纹理明显的点;
  • 图像中直线的交点;
  • 距离图像中的大曲率点;
  • 图像中类似边缘,直线,形状的区域;
  • 距离图像中的等曲率区域;
  • 声纳数据中的等深度区域;

边缘检测与(点)特征检测问题密切相关,都希望在图像中找到信号不连续性位置。

当特征被用于几何推理时,主要关心他们在图像中位置;当特征被用于分类和识别时,特征属性,如长度 纹理 曲率等则更加重要。

1.特征检测在图像跟踪中的应用

对应运动推理而言,主要聚集于评估图像中纹理丰富的位置的强度快速变化。

哈里斯(Harris)角点检测器通过在像素邻域内对梯度向量的加权协方差矩阵进行特征值计算(在两个特征值中,如果只有一个比较大,那么表示该区域是一条边缘;如果过两个特征值都比较大,那么该区域就是一个“角点”),可以识别出沿两个方向都有较大梯度的特征。这些特征在图像之间通常较为稳定,特别适合用于匹配和跟踪。

2.提取测距数据中的角点

激光雷达在室内场景中的扫描数据包含很多直角,利用这些直角特征可用于计算机器人自身的运动或基于地图的导航。

8.1.6 区域处理

具有相对一致性的特性。特征具有位置属性,并且可能具有方向属性,而区域具有几何形状属性。常用的区域处理算法如下:

  • 分割:提取有某种相似性的像素区域,通常这些区域对应着场景中的对象;
  • 生长于细化:图像区域的缩小或扩大,可以有效滤出小的噪声干扰;
  • 分裂与合并:可搜索对目标对象的关键描述。此外,这也是针对给定类型物体,找出其最大可能性的理想方法;
  • 中轴变换与烧草(Grassfire)算法:包含一系列高效算子,可以搜寻任意结构形状的骨架和距离轮廓
  • 矩与尺度不变性计算:把图像区域抽象或称具有尺度不变性且有时具有透视变换不变性的若干子区域。这些计算提供了一种便于通过比较形状进行对象识别的准则;
  • 直方图和阈值:通过统计找到不同像素类别之间的自然边界;

8.4 几何级与语义级计算机视觉概述

8.4.1像素级分类

8.4.2 计算机立体视觉

8.4.3 障碍物探测

某些物体或区域会给机器人带来碰撞风险,因此需要探测机器人移动范围内是否存在障碍物并确定其位置。

1.障碍物识别依据

与期望值的偏差:对环境特性进行强假设,那么相对于假设的微小测量偏差就可以可靠的指示障碍物,如假设环境地面时平面的;

占有率/存在概率:

颜色/组成:颜色和纹理在很多情况下是进行识别障碍物的好途径。例如,高大的绿色物体可能比高大的棕褐色物体更容易识别为树木;

密度:对应激光雷达这一类传感器,能沿着激光束的精确指向穿透叶簇,或被遮挡。在三维栅格中,通过统计阻挡激光束与被激光束穿透的栅格单元的相对比例,可以估计区域密度。当穿过与遮挡比较高时,则栅格单元中很可能是稀疏植被。但是需要高了季节变化的因素。

PCA特征值:求解散布矩阵的特征值,如果只有一个大的特征值,则表示数据可能代表场景中的一根线状物体,如果其中只有两个明显特征值,则说明数据可能代表一个二维平面。

形状:确定哪些形状是不利于车轮与之碰撞的

类:如果知道物体属于某一类,就足以断定它是否是一个障碍物

2.性能

可靠性:障碍物找全与障碍物找准的平衡;

车辆速度:在实现实时障碍物探测及实时反应的前提下对应的车辆速度上限;

意外障碍物:在某些视角存在障碍物被遮挡的情况,传感器无法探测到这些危险。有时一个非常小的突起物,就可能遮挡住位于测距阴影范围内的车轮大小的孔洞。

移动机器人学-第八章 感知 学习笔记相关推荐

  1. 机器人学中的状态估计——学习笔记

    机器人学中的状态估计--学习笔记 离散时间的批量估计问题 1.最大后验概率法(Maximum A Posteriori, MAP) 2.贝叶斯推断(Bayesian inference) 离散时间的迭 ...

  2. 机器人学中的状态估计学习笔记(二)第三章线性高斯系统的状态估计

    机器人学中的状态估计学习笔记(二)第三章线性高斯系统的状态估计 3.1 离散时间的批量估计问题 3.1.1 问题定义 3.1.2 最大后验估计 3.1.3 贝叶斯推断 3.1.4 存在性.唯一性与能观 ...

  3. 压缩感知学习笔记1—综述

    http://blog.csdn.net/abcjennifer/article/details/7721834/ 压缩感知是近年来极为热门的研究前沿,在若干应用领域中都引起瞩目.最近粗浅地看了这方面 ...

  4. 【网络安全态势感知学习笔记】——“行远自迩”基础篇一:网络安全态势感知的基本概念

    文章目录 1. 网络安全态势感知的基本概念 1.1 态势感知的基本概念 1.2 网络安全态势感知 1.2.1 网络安全态势感知的定义 1.2.2 网络安全态势感知的阶段 1.2.3 网络安全态势感知的 ...

  5. 【现代机器人学】学习笔记十二:轮式移动机器人

    目录 轮式机器人类型 全向轮式机器人 建模 单个全向轮是怎么运动的 多个全向轮是如何带动底盘运动的 运动规划和反馈控制 非完整约束轮式移动机器人 建模 独轮车 差速驱动机器人 车型机器人 非完整移动机 ...

  6. 【现代机器人学】学习笔记十:机器人控制

    这节的内容主要讲述在关节空间和任务空间中的运动控制中的反馈控制,力控制,运动-力混合控制以及阻抗控制.导纳控制,pid控制等内容. 在之前的内容当中,往往不涉及到实际对机器人的操纵,即我们计算出一个结 ...

  7. 《Go语言圣经》学习笔记 第八章 Groroutines和Channels

    <Go语言圣经>学习笔记 第八章 Groroutines和Channels 目录 Goroutines 实例:并发的Clock服务 实例:并发的Echo服务 Channels 并发的循环 ...

  8. [原创]java WEB学习笔记48:其他的Servlet 监听器:域对象中属性的变更的事件监听器 (3 个),感知 Session 绑定的事件监听器(2个)...

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  9. 鸟哥的Linux私房菜(基础班)第八章学习笔记

    第八章 Linux磁盘与文件系统管理 学习笔记 认识EXT2文件系统 硬盘物理组成 分区 文件系统 Linux的EXT2文件系统(inode) EXT2/EXT3文件的访问与日志文件系统的功能 Lin ...

最新文章

  1. 单片机如何使用?51单片机C语言编程实例有哪些?
  2. 渗透测试与自动化安全测试工具比较
  3. 如何简单形象又有趣地讲解神经网络是什么?(知乎) 说的人很多,理解很充分_kebu12345678的博客-CSDN博客_神经网络知乎
  4. java 有多少api_Java常用API(二)
  5. python标记跳转_Geany的跳转到标记定义“功能如何使用
  6. Log4Net 最简配置
  7. 如何删除JAVA集合中的元素
  8. 删除文件夹下面n天前时间的文件
  9. poj 1251 Jungle Roads
  10. IOCP中多次投递WSASend
  11. 5亿次Web攻击 怎么防住的?
  12. 中国游戏的未来在哪里 - 游戏行业20年历史观察及趋势分析
  13. 基于分析Laplace方程“放射状”函数特解的基本解引入
  14. 桥水基金:对中国股市自上而下的分析
  15. UMTS 与 WCDMA的区别
  16. WINDOWS虚拟内存设置
  17. mysql修改变量立即生效_mysql变量修改及生效
  18. Dynamics crm2013 IFD部署后启用多组织
  19. Java开发商用免费必备神器
  20. 用Javascript实现鼠标经过某一行,那一行变色

热门文章

  1. CMOS 器件版图 DUMMY 图形
  2. (附源码)ssm基于JAVA的二手房屋信息管理系统设计与实现 毕业设计271542
  3. 自定义一个类型实现go时间类型的json和bson的序列化和反序列化
  4. ERD Online终极愿景
  5. 卡农D大调(钢琴版)
  6. 信号值强度值dBm详解
  7. 那些可能被你忽略的Mac系统自带工具
  8. 中青cookie中青ck提取
  9. r语言怎么把txt数据变成一个Rdata格式_BIOM:生物观测矩阵——微生物组数据通用数据格式...
  10. 已成功拿下字节、腾讯、脉脉offer,全网最新