1. 机器人视觉

机器人视觉研究的核心内容是:视觉定位与导航、路径规划、避障、多传感器融合。视觉定位技术有多种,包括单目视觉、双目视觉、多目视觉、RGB-D等,后三种方法可以使图像具有深度信息,这些视觉“眼睛”亦可以称为VO--视觉里程计。VO在机器人乃至计算机视觉问题中,是一个通过分析处理相关图像序列来确定机器人的位置和姿态的解决方案。

现今,随着计算机图像处理技术的不断进步以及传感器电子科学的飞速发展,使得越来越多的研究者采用摄像机作为全自主移动机器人的感知元器件,这主要是因为常见的超声或红外传感器感知信息能力有限,鲁棒性差,而视觉系统则可以弥补这些缺点。但是,现实世界是立体的、三维的,而投影在摄像头感光器件(CCD/CMOS)上的图像是二维的、平面的,因此,基于摄像机的视觉处理目标就是从感知到的二维图像中提取有关的三维世界信息,用于机器人的定位与导航。

2. 视觉系统组成

机器人视觉系统主要由软件和硬件两部分组成,硬件方面主要有:视觉传感器(组)、图像采集卡、计算机(主处理机)、机器人及其附属的通信和控制模块等;软件方面主要包括:图像处理软件和机器人控制软件等。机器人视觉系统组成如图1所示。

Fig.1 机器人视觉系统组成部分

2.1 CCD/CMOS

CCD/CMOS传感器原理:

一行硅成像元素,在一个衬底上配置光敏元件和电荷转移器件,通过电荷的依次转移,将多个象素的视频信号分时、顺序地取出来,如面阵CCD传感器采集的图像的分辨率可以从32×32到1024×1024像素等。

2.2视频数字信号处理器

图像信号一般是离散的二维信号,一幅图像通常由512×512个像素组成(当然有时也有256×256,或者1024×1024个像素),每个像素有256级灰度,或者是3×8bits,RGB_16M种颜色,一幅图像就有256KB或者768KB(对于彩色)个数据。为了完成视觉处理的信号采样量化、编码压缩、预处理、分割、描述、识别和解释,上述前几项主要完成的数学运算可归纳为:

(1)点处理:

常用于对比度增强、密度非线性较正、阈值处理、伪彩色处理等。每个像素的输入数据经过一定关系映射成像素的输出数据,例如对数变换可实现暗区对比度扩张。 

  
(2)空间域处理:

二维卷积的运算常用于图像平滑、锐化、轮廓增强、空间滤波、标准模板匹配计算等。若用M×M卷积核矩阵对整幅图像进行卷积时,要得到每个像素的输出结果就需要作M2次乘法和(M2-1)次加法,由于图像像素一般很多,即使用较小的卷积和,也需要进行大量的乘加运算和访问存储器。

(3)二维正交变换:

常用二维正交变换有DFT、FFT、Walsh、Haar、DWT、DCT和K-L变换等,常用于图像增强、复原、二维滤波、数据压缩等。

(4)坐标变换:

常用于图像的放大缩小、旋转、移动、配准、几何校正和由摄影值重建图像等。

(5)统计量计算:

如计算密度直方图分布、平均值和协方差矩阵等。在进行直方图均衡器化、面积计算、分类和K-L变换时,常常要进行这些统计量计算。

3.视觉导航定位系统的工作原理

简单说来就是对机器人周边的环境进行光学处理,先用摄像头进行图像信息采集,将采集的信息进行压缩,然后将它反馈到一个由神经网络和统计学方法构成的学习子系统,再由学习子系统将采集到的图像信息和机器人的实际位置联系起来,完成机器人的自主导航定位功能。

Fig.2 视觉处理流程

(1)摄像头标定算法:2D-3D映射求参

传统摄像机标定主要有 Faugeras 标定法、Tscai 两步法、直接线性变换方法、张正友平面标定法和 Weng迭代法。自标定包括基于 Kruppa 方程自标定法、分层逐步自标定法、基于绝对二次曲面的自标定法和 Pollefeys 的模约束法。视觉标定有马颂德的三正交平移法、李华的平面正交标定法和 Hartley 旋转求内参数标定法。

(2)机器视觉与图像处理:

a.预处理:灰化、降噪、增强、滤波、二值化、边缘检测....
b.特征提取:特征空间到参数空间映射。算法有HOUGH、SIFT、SURF。
c.图像分割:RGB-HIS。
d.图像描述识别

(3)定位算法:

基于滤波器的定位算法主要有KF、SEIF、PF、EKF、UKF等。也可以使用单目视觉和里程计融合的方法。以里程计读数作为辅助信息,利用三角法计算特征点在当前机器人坐标系中的坐标位置,这里的三维坐标计算需要在延迟一个时间步的基础上进行。根据特征点在当前摄像头坐标系中的三维坐标以及它在地图中的世界坐标,来估计摄像头在世界坐标系中的位姿。这种降低了传感器成本,消除了里程计的累积误差,使得定位的结果更加精确。此外,相对于立体视觉中摄像机间的标定,这种方法只需对摄像机内参数进行标定,提高了系统的效率。

4.定位算法基本实现过程:

简单的算法过程,可基于OpenCV进行简单实现。

输入
通过摄像头获取的视频流(主要为灰度图像,stereo  VO中图像既可以是彩色的,也可以是灰度的 ),记录摄像头在t和t+1时刻获得的图像为It和It+1,相机的内参,通过相机标定获得,可以通过matlab或者opencv计算为固定量

输出
计算每一帧相机的位置+姿态

基本过程

1. 获得图像It,It+1
2. 对获得图像进行畸变处理
3. 通过FAST算法对图像It进行特征检测,通过KLT算法跟踪这些特征到图像It+1中,如果跟踪特征有所丢失,特征数小于某个阈值,则重新进行特征检测
4. 通过带RANSAC的5点算法来估计两幅图像的本质矩阵
5. 通过计算的本质矩阵进行估计R,t
6. 对尺度信息进行估计,最终确定旋转矩阵和平移向量

在深度学习和人工智能大行其道的今天,数字图像处理技术也搭上了顺风车。主流的人工智能架构TensorFlow等,结合OpenCV强大的图像处理工具,可以衍生出非常多优异的算法,在提升处理效果的同时,处理速度和效率也大大提高。

基于TensorFlow和OpenCV的计算机视觉算法和实现将在OpenCV专题详述。

机器人视觉系统组成及定位算法相关推荐

  1. 单目视觉机器人的循迹_机器人视觉系统传感器的关键技术盘点

    导读:机器人视觉系统,是指用计算机来实现人的视觉功能,也就是用计算机来实现对客观的三维世界的识别.人类接收的信息70%以上来自视觉,人类视觉为人类提供了关于周围环境最详细可靠的信息. 资料图 机器人要 ...

  2. 带你深入了解机器人视觉系统工作原理及其应用

    https://www.toutiao.com/a6666219746205106691/ 人类想要实现一系列的基本活动,如生活.工作.学习就必须依靠自身的器官,除脑以外,最重要的就是我们的眼睛了,( ...

  3. 机器人视觉系统包括哪些关键技术?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 机器人视觉系统是指用计算机来实现人的视觉功能,也就是用计算机来实现 ...

  4. 机器人视觉系统由哪些结构组成?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 随着工业自动化的发展,同时也带动了机器人视觉系统技术的发展,由于机 ...

  5. C语言机器人视觉系统原理,机器人视觉系统的组成及工作原理

    [摘 要]随着大规模集成电路技术的发展,视觉系统逐渐走向实用化.由于微型计算机的飞速发展,使用的视觉系统已经进入领域,其中机器人视觉系统是机器视觉应用的一个重要领域.本文叙述机器人视觉系统的各部分组成 ...

  6. 机器人视觉系统的构成

    机器人视觉系统主要包括光源.镜头.相机.信息处理器.视觉算法软件这些部分. 物体反射光源光线,通过镜头在相机中成像,通过图像处理算法处理得到需要的信息,再将其传送到执行单元对机器人进行运动控制. 光源 ...

  7. 机器人视觉系统(Robot Vision)简介

    机器人视觉系统(Robot Vision)简介 机器视觉系统的组成 机器视觉系统是指用计算机来实现人的视觉功能,也就是用计算机来实现对客观 的三维世界的识别.按现在的理解,人类视觉系统的感受部分是视网 ...

  8. 机器人用计算机图片,带你深入了解机器人视觉系统!

    原标题:带你深入了解机器人视觉系统! [文章由犀灵工业机器人培训中心推荐] 人类想要实现一系列的基本活动,如生活.工作.学习就必须依靠自身的器官,除脑以外,最重要的就是我们的眼睛了,(工业)机器人也不 ...

  9. 机器人视觉系统(一)

    机器人视觉系统包括三个主要模块:机器人模块,相机模块和计算机模块.三大模块推荐采用以太网连接通信. 软件结构包括视觉系统主控和机器人或上位机主控. 视觉主控系统中,机器人都可以通过接入视觉系统,实现视 ...

最新文章

  1. 吴恩达神经网络和深度学习——第四周笔记
  2. python的shutil模块是内置的_Python之shutil模块11个常用函数详解,python内置函数是什么...
  3. MybatisPlus实现逻辑删除
  4. 在iview的Table中添加Select(render)
  5. timm 视觉库中的 create_model 函数详解
  6. Pytest-ordering自定义用例执行顺序
  7. Dao接口返回数组_JavaScript二进制数组(2)TypedArray视图
  8. 数据库连接池和线程池比较
  9. 【1.0】忘记mysql 密码 如何修改之后
  10. 7.微服务设计 --- 测试
  11. gimp 抠图_GIMP入门教程2——利用蒙版抠图.pdf
  12. android 怎么反编译,Android反编译工具的用法
  13. 微型计算机虚拟内存器件,内外存储器与缓存内存虚拟内存.ppt
  14. spring-security实现权限管理
  15. android通讯录换ipone,换新iPhone手机,通讯录你会转移吗?90%人居然还不会!
  16. 车主委托过户和电子委托书
  17. seajs 和spm的使用简介
  18. Sigar 获取CPU和Memory内存等信息使用详解
  19. vue+springboot 制作属于自己的个人网站 ① vue前端部署
  20. mx150 宏碁swift3_宏碁Swift 3评测:炫美轻薄还有MX150独显

热门文章

  1. 想明白再行动 也许就晚了
  2. 企业网站标志设计需要注意什么,5点
  3. 宁静致远,方得始终(初学者的心得)
  4. Nginx+Memcached+Tomcat集群配置实践(Sticky Session)
  5. 深度学习中正样本、负样本、困难样本、简单样本区别
  6. 破解压缩包的几种方式(zip伪加密 爆破 CRC32碰撞 已知明文攻击)
  7. 为什么GAN不能处理离散数据?
  8. 微型计算机键盘上的tab键是指标定位键,微型计算机键盘上的Tab键是指标定位键。...
  9. 内存卡 android 刷机教程,android刷机步骤求解
  10. 用函数实现simulink_simulink频率特性仿真方法