机器/视觉/六十讲(课程一)
第一章 图像处理
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、二维码检测
第一步是图像预处理。滤波一般高斯滤波用的多预处理 之后,就开始 进行 四边形检测,步骤如下:
- 边缘检测。常见的有 Canny边缘检测算子;Sobel算子。
- 过滤四边形或者较小的四边形。
- 利用角度对四边形 进一步筛选。
- 在RGB图中标示出检测到的四边形(就是类似halcon里面的一些过程)
24、图像仿射原理
在摄像头得到的图像中,比如上方二维码,四边形会有旋转畸变,我们需要判断二维码是左偏还是右偏了,这就需要仿射变换将它扭正。
25、汉明码
汉明码的设计初衷是作为 信息校验码存在的,就是防止数据出错。
26、二维码的识别
就是这么简单27、二维码测距
前面的工作完成后,再解算一下二维码在相机下的位姿并转换至机器人坐标系,得到二维码相对于机器人的坐标系,即两个齐次变换矩阵 图示二维码坐标系相对于机器人相机坐标系的位置,我们可以通过PnP来判定。再通过齐次变换矩阵连乘的方式,就可以获得二维码坐标在机器人坐标系下的位置。
28、二维码的应用
前身是一维码,应用很多了。普通的二维码,很多就是一个网页链接;对于付款二维码,就比较复杂了,需要有个秘钥的校验;也可以作为slam的路标,比如贴在玻璃上;
第五章 LK光流
29、光流法概述
光流(optical flow) 是空间运动物体在观察平面上的 像素运动的瞬时速度。
光流法是利用图像序列中 像素在时域上的变化,以及相邻帧之间的 相关性来找到 上一帧和当前帧之间存在的对应关系,从而计算出相邻帧之间物体运动信息的一种方法。
该图展示三维空间物体的运动在二维成像平面上的投影。得到的是一个描述位置变化的二维矢量,但在运动间隔极小的情况下,我们通常视其为一个描述该点瞬时速度的二维矢量u=(u,v),称为光流矢量30、光流方程
光流方程有两个基本假设条件:
- 亮度恒定不变; 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、特征点
特征点:图像中具有鲜明特性的部分 并能够有效反应 图像本质特征,能够标识图像中目标物体的点。
特征点要具备 可重复性、可区别性、高效性。
特征点的信息包括: 关键点-位置、大小、方向、评分等;描述性-特征点周围的图像信息。
常见的特征点:SIFT、SURF、ORB
。。。。。
56、构造一个简单的视觉里程计
设计VO57、直接法概述
尽管特征点法在视觉里程计中 占主流地位,不少研究者任务它有以下缺点:
- 关键点的提取与描述子的计算 非常耗时。实践中,SIFT在CPU中是无法实时计算的,而ORB也需要20毫秒的计算。如果整个SLAM以 30毫秒/帧 的速度运行,那么一大半的时间都花在特征点计算上。
- 使用特征点时,忽略了特征点以外的所有信息。一张图有几十万个像素,而特征点通常只有几百个,会丢失大量信息。
- 相机有时候会运动到特征点缺失的地方,往往这些地方没有明显的纹理特征,比如大白墙,造成我们可能找不到足够的匹配点来计算相机运动。
解决 方法是 采用多种方法根据使用场景 搭配使用。
58、光流法OV
直接法是从光流演变而来的,它们非常相似,具有相同的假设条件。光流描述了像素在图像中的运动,而直接法则附带了一个相机运动模型。
计算部分像素运动,称之为 稀疏光流;计算所有像素运动称为 稠密光流。稀疏光流主要以 卢卡斯卡内 为代表,可以在SLAM中用于跟踪特征点位置。
59、直接法
最常用的获取特征点方式就是直接法60、VSLAM简介
slam主要解决“定位”与“地图构建”这两个问题。也就是说一边要估算传感器的位置,一边要建立周围环境的模型。
怎么解决呢?这就需要用到传感器。传感器能以一定的形式观察外部世界,不过,不同传感器的观察方式是不同的。当用相机作为传感器时,我们要做的,就是根据一张张连续的图片(或视频,一个意思),从中推断相机的运动,以及周围环境的情况。
大体上来说,SLAM发展有两大趋势:
- 往轻量级、小型化发展,让其能嵌入到手机等小型化设备里,然后考虑以它为底层的功能应用。毕竟,大部分的应用都是实现机器人或VR、AR的功能,比如运动导航娱乐等。
- 利用高性能计算设备,实现高精度三维重建、场景理解等功能。
视觉惯导-融合SLAM方案。实际使用的时候,视觉结合惯导(又叫惯性传感器,主要是检测和测量加速度、倾斜、冲击、振动、旋转和多自由度(DoF)运动,是解决导航、定向和运动载体控制的重要部件)