机器/视觉/六十讲(课程一)

2020-02-21  本文已影响0人  时间之友

第一章 图像处理

01、数字图像概述

像素是数字图像的基本元素。像素是在模拟图像数字化时对连续空间离散化得到的。

02、 颜色空间

RGB颜色最大的好处是适合显示系统,直观且容易理解,但是有如下不足:
1.RGB利用3个颜色分量的线性组合来表示颜色,因此不同的色彩难以用精确的数值表示,定量分析困难
2.在RGB颜色系统中,3个颜色分量之间是高度相关的,即只要亮度改变,三个分量都会相应改变,如果一个颜色的某个分量发生了改变,那么这颜色也可能要发生改变
3.RGB颜色空间是一种均匀性较差的颜色空间

03、视觉传感器

TOF、双目、结构光


仅供参考,并不准确

04、深度图像

深度图像也被称为距离影像,是将从图像采集器到场景中各点的距离(深度)作为像素值的图像,它直接反映了景物可见的几何形状,深度图像经过坐标转化可以计算出点云数据。

在PCL [(Point Cloud Library)是在吸收了前人点云相关研究基础上建立起来的大型跨平台开源C++编程库] 中深度图像和点云图像区别在于,其邻近的检索方式不同,并且可以相互转换。

05、图像灰度化

我们日常处理图片时候很多时候是把图像灰度化,因为灰度图像是单通道的,RGB图像是三通道的,计算量少。


加权平均值法灰度转换公式。灰度转换还有两种最高值、平均值转换法,最常见的还是加权,跟进人眼对于RGB的敏感程度推算得来

06、直方图

直方图又称质量分布图,是一种统计报告图,一般用一些纵向条纹表示数据分布的情况。

07、直方图均衡化

就是通过一个数学公式,增强图像对比度,便于把特征区分开。

09、边缘检测

边缘检测是检测灰度变换较大的区域,常见的算法如Sobel算子,或叫sobel滤波,它的原理是使用3*3矩阵对原图进行卷积,计算出两个方向的灰度差分(偏导);另外还有Canny边缘检测算子

10、图像卷积

卷积在图像中最大的应用是平滑化(应该是平滑吧,锐化主要是高通滤波和微分滤波法,锐化是使得灰度变换大的区域更清晰,即图像高频部分,这部分要多保留) 和 边缘检测(常用于计算图像边缘或者说梯度值)。
色彩剧烈变化的地方,就是图像的高频区域;色彩稳定平滑的地方,就是低频区域

11、图像去噪

消除图像中的噪声成分也叫做图像的平滑化或滤波操作。
高斯噪声:是指它的概率密度函数符合高斯分布(正态分布)的一类噪声。
椒盐噪声:也称脉冲噪声,它是一种随机出现的白点或者黑点。
信噪比(SNR):信号与噪声的比值。

高斯滤波:一种线性平滑滤波,可以消除高斯噪声。高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值都是像素本身和邻域内其他像素加权获得。
另外还有 均值滤波;邻域平均法;中值滤波;形态学噪声滤波;小波去噪;

12、图像缩放

最邻近图像插值算法;双线性插值算法;



第二章 相机标定

13、相机模型 和 标定

相机的模型即为小孔成像

14、内外参定义

相机中有四个坐标系:世界坐标系;相机坐标系;图像坐标系;像素坐标系;

相机坐标之间的转换就是 RT矩阵变换,即刚体的旋转平移。


相机的标定就是 标定相机的 内参 和 外参

15、标定方法的概述

通常使用棋盘格作为相机标定的工具,因为角点就是很好的特征。
大致步骤,打印一张A4纸的棋盘格(黑白间距需要已知,用于外参标定),并贴在一个平板上,针对棋盘格拍摄若干照片(10-20张),在图片中检测特征点(Harris特征),利用 解析解 估算方法 计算出5个内部参数,以及6个外部参数,根据极大似然估计策略,设计优化目标并实现参数的refinement (改善;也就是 张正友标定法)

机器人一般用:xyz-4点标定法(TCP以不同的姿态移动到参考点的位置)
2D视觉常用标定板:实心圆阵列图案;国际象棋盘图案

17、张正友标定方法

张正友标定法 整理后得出 计算外参 计算内参

内参外参标定,技术较为复杂

18、手眼标定



第三章 图形检测

19、直线检测

说到图形检测,必提 Hough 变换(霍夫变换),是一种特征提取技术,用于隔离图像中 特定形状的技术。比如直线检测,就可以通过霍夫变换。


如图,左边是像素坐标,那么可得知 y=kx+b即为直线,xy为变量,kb为常量;那么我可以这样,当xy为常量,kb为变量时,所组成的图如右边,当这个k-b空间中可发现直线相交一点,就证明这个交点就是我们要的直线

圆形检测,也是认为图像中一个非零像素点都有可能是 一个潜在的圆上的点,跟霍夫变换一样,也是通过投票,生产累计坐标平面,设置一个累计权重来定位圆。

矩形检测,利用直线检测的功能,将检测的直线段存储在一个列表里;从列表中提取出一条直线段,检测与它相连的直线;检测是否有四条直线段,依次垂直闭合相连。



第四章 二维检测

22、二维码作用和种类概述

一维码和二维码 矩阵式二维码

23、二维码检测

第一步是图像预处理。滤波一般高斯滤波用的多

预处理 之后,就开始 进行 四边形检测,步骤如下:

24、图像仿射原理

在摄像头得到的图像中,比如上方二维码,四边形会有旋转畸变,我们需要判断二维码是左偏还是右偏了,这就需要仿射变换将它扭正。

25、汉明码

汉明码的设计初衷是作为 信息校验码存在的,就是防止数据出错。

26、二维码的识别

就是这么简单

27、二维码测距

前面的工作完成后,再解算一下二维码在相机下的位姿并转换至机器人坐标系,得到二维码相对于机器人的坐标系,即两个齐次变换矩阵 图示

二维码坐标系相对于机器人相机坐标系的位置,我们可以通过PnP来判定。再通过齐次变换矩阵连乘的方式,就可以获得二维码坐标在机器人坐标系下的位置。

28、二维码的应用

前身是一维码,应用很多了。普通的二维码,很多就是一个网页链接;对于付款二维码,就比较复杂了,需要有个秘钥的校验;也可以作为slam的路标,比如贴在玻璃上;



第五章 LK光流

29、光流法概述

光流(optical flow) 是空间运动物体在观察平面上的 像素运动的瞬时速度。

光流法是利用图像序列中 像素在时域上的变化,以及相邻帧之间的 相关性来找到 上一帧和当前帧之间存在的对应关系,从而计算出相邻帧之间物体运动信息的一种方法。

该图展示三维空间物体的运动在二维成像平面上的投影。得到的是一个描述位置变化的二维矢量,但在运动间隔极小的情况下,我们通常视其为一个描述该点瞬时速度的二维矢量u=(u,v),称为光流矢量

30、光流方程

光流方程有两个基本假设条件:

  1. 亮度恒定不变; 2. 时间连续或运动是小运动;

31、卢卡斯卡内德方法

LK光流算法的原理和数学推导方法

32、Pyramid LK(金字塔光流法)

常规LK算法的约束条件是小速度、亮度不变,图像区域一致性较强,但这种情况并不容易得到满足。如果以上约束条件没有满足,最终算出来的结果误差较大,那么金字塔光流法就是来解决这个问题的。

33、辅助人脸识别的LK光流法实例

大致方法是先获得实时人脸,再通过LK光流算法计算人脸的中心位置,并使用seetaface开源人脸识别库进行人脸位置校正,然后根据人脸位置相对于图像中心位置,来计算机器人头部跟随人运动的方向。

34、其他追踪方法介绍

传统追踪算法:LK;卡尔曼滤波以及各种相关滤波;CSK相关滤波;



第六章、传感器融合

35、传感器融合概述

比如里程计、比如 IMU(惯性测量单元)

卡尔曼滤波:是一种线性系统 状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包含系统中的噪声和干扰的影响,所以最优估计也可以看成是滤波过程。

粒子滤波:通过寻找一组在状态空间中传播的随机样本 来近似的表述概率密度函数,用样板均值代替积分算法,进而获得系统状态的最小方差估计的过程,这些样本被形象称为粒子,故称为粒子滤波。

36、卡尔曼滤波(一)

以下暂略,都是关联视觉slam技术 (simultaneous localization and mapping 即时定位与地图构建) 这块的。



第七章 视觉里程计

47、视觉里程计概述

Visual Odometry 视觉里程计:通过分析处理下相关图像序列来确定机器人的位置和姿态。 其目标是跟进相机拍摄的图像来 估算相机运动的特征。通常来说,可以认为是VSLAM(视觉slam)的前端。
视觉里程计主要有两个方向,一是特征点法:能够在噪声较大,相机运动较快时运动,但缺点是 地图是稀疏特征点; 二是 直接法,直接法不需要计算特征点,能够建立稠密地图,但是存在计算量大,鲁棒性不好的缺点。

48、特征点

特征点:图像中具有鲜明特性的部分 并能够有效反应 图像本质特征,能够标识图像中目标物体的点。
特征点要具备 可重复性、可区别性、高效性。
特征点的信息包括: 关键点-位置、大小、方向、评分等;描述性-特征点周围的图像信息。
常见的特征点:SIFTSURFORB

。。。。。

56、构造一个简单的视觉里程计

设计VO

57、直接法概述

尽管特征点法在视觉里程计中 占主流地位,不少研究者任务它有以下缺点:

解决 方法是 采用多种方法根据使用场景 搭配使用。

58、光流法OV

直接法是从光流演变而来的,它们非常相似,具有相同的假设条件。光流描述了像素在图像中的运动,而直接法则附带了一个相机运动模型。
计算部分像素运动,称之为 稀疏光流;计算所有像素运动称为 稠密光流。稀疏光流主要以 卢卡斯卡内 为代表,可以在SLAM中用于跟踪特征点位置。

59、直接法

最常用的获取特征点方式就是直接法

60、VSLAM简介

slam主要解决“定位”与“地图构建”这两个问题。也就是说一边要估算传感器的位置,一边要建立周围环境的模型。
怎么解决呢?这就需要用到传感器。传感器能以一定的形式观察外部世界,不过,不同传感器的观察方式是不同的。当用相机作为传感器时,我们要做的,就是根据一张张连续的图片(或视频,一个意思),从中推断相机的运动,以及周围环境的情况。

常见的开源slam算法

大体上来说,SLAM发展有两大趋势:

视觉惯导-融合SLAM方案。实际使用的时候,视觉结合惯导(又叫惯性传感器,主要是检测和测量加速度、倾斜、冲击、振动、旋转和多自由度(DoF)运动,是解决导航、定向和运动载体控制的重要部件)

上一篇下一篇

猜你喜欢

热点阅读