此文档主要是学习优酷里面的浙大机器视觉(谭平老师自录)的课程学习笔记,主要是重新熟悉一些基础理论知识。
一、camera
小孔成像原理
1.光圈,光圈就是与那个小孔的参数,大光圈即孔大些,则前景光聚焦好,后景光聚光就发散,形成虚化效果,这样就使得景深小,小光圈则相反,需要曝光时间久些,在camera中 光圈是F表示,光圈大小去F的倒数,即数值越小,光圈越大。日F1.4,F5.6等
2.视角 Filed of view(Zoom)
镜头焦距小,视角FOV大,即为广角,镜头焦距大,视角FOV小,
二、COLOR
HSV
RGB
YUV
三种不同的表示方法
其中人对绿色较为敏感
三、光照模型
radiance 单位空间角度内收到的能量,irradiance单位时间单位面积如(CCD)接收到的能量,这个能量与图片的像素值的函数关系。
四、Filtters
1.edge detecting
索贝尔算子
高斯模糊
颜色梯度
2.Bilateral filter(双边)在梯度大的地方不同模糊参数不同,
3.一些惯用trick
图像detail: 通过边缘平滑图-原图
边缘明显:通过边缘平滑图+原图
五、Interactive segmantation
用了graph cut 图切割
原理用max flow 来理解
六、Feature
1.Harris corner
就是找出哪些颜色尖点,在每一个像素邻域内计算梯度变换大小总和,巧妙的运用泰勒展开得到一个M矩阵,通过对这个矩阵求特征值和特征向量即可判断(需要阈值),党两个特征值都足够大就是特征点,一个大一个小就是边界,这样直接通过对矩阵M 用det(M)/Trace(M)及可判断。可以加些尺度自适应进去
2.Fast corner
七、Descriptors
描述子,用来描述特征点的数据
SIFT SURF BRIEF ORB GIST HOG
后面添加
几何摄影里面的基础数学知识
1.一条平面直线用参数形式表示,可以把参数抽出来(a,b,c)看作是一个向量,一个向量可以对应一条平面直线;
2.一个点 如果用齐次坐标表示(x,y,z)(define up to scale),可以把一个点看成一个向量,但这个向量只有两个dof;
3.如果一个点在一个直线上,可以把对应的点(x,y,z) 放到代表直线的向量中,进行内积,如果内积为0,就表示这个点在直线上;
4.两条直线的交点,直接可以用表示直线的向量进行叉乘,得出的就是两条直线的交点(齐次坐标),需要除以第三个元素转换成欧式点,平行的话,第三个元素就是0;
5.两个点可以确定一条直线,通过两个点(齐次坐标),直接进行叉乘就可以得到这两个点确定的直线;
6.所有的无穷远点(x,y,0)都会经过一条直线(0,0,1) ;
7.点和线对偶,线与线对偶,三维空间里面,点与平面对偶,线与线对偶;
8.椭圆可以用一个二次曲线描述,转换成一个参数表达,可以用一个3*3的矩阵表示(是一个对称矩阵),5个平面的点,可以拟合一个椭圆;
还需要一个约束,即C 不能等于0,即C的norm=1,这样就可以用SVD求的 把求得的V的最后一列就是所求解。
9.三个向量共面,则mix-product=0,mix-product的物理意义是这三个向量组成的平行立方体的体积。
八、homograph
1基本知识(来源于知乎:单应性Homograph估计:从传统算法到深度学习 - 知乎
图像旋转平移、仿射变换
此处给出单应性不严谨的定义:用 [无镜头畸变] 的相机从不同位置拍摄 [同一平面物体] 的图像之间存在单应性,可以用 [投影变换] 表示 。
九、双目、极平面、极线等 可参考双目相机基本原理
十、相机几何模型
1. Resectoning
就是已知一个空间三维点,投影到相机平面,那中间那个投影矩阵怎么求? 即投影矩阵,这个投影矩阵包括了内参和外参
p可能有个退化解,所以加了个约束P的norm等于1,但有个更好的约束,即投影矩阵的第三行前三个数组成的向量因为表示的就是相机中心点的朝向(即相机平面的法向量1*3),直接让他的norm等与1,即就是单位方向了。
注: P 是一个3*4的矩阵,就是空间上的点 到成像平面的投影矩阵,直接包括了后面的内参和外参矩阵的融合。按列分解,每一列分别对应的是在x,y,z方向的无穷远点,和原点(世界坐标系原点(0,0,0))在相机平面的投影,按行分,第三行对应的是相机平面的法向量方向
DLT是一种代数优化 求投影矩阵P,还有一种是通过优化几何距离求P,其步骤首先对空间点和像平面点进行normalization:
2.PnP(Perspective-n-Points)
就是已知内参矩阵,去求外参矩阵的一种方法:
主要用到余弦定理,已知世界坐标系下的点P(X,Y,Z)对应了相机图像里面的p(x,y,z),
只要求出P点在相机坐标系下的坐标就可以利用3个以上的点得出的对应关系求解出相机在世界坐标系下的变换矩阵(R、T)
主要是求解方法,现在基本用Epnp来求解
十一、Calibration 标定
思想:内参的标定,假设有个空间点e,该点在相机平面的投影就是内参矩阵*外参矩阵(世界坐标到相机坐标的变换矩阵)*点e,如果选一个z方向上的一个点,且是一个无穷远,其投影到成像平面的坐标就是vi,当再选取一个与z方向垂直的放向上的一个无穷远,其其投影到成像平面的坐标就是vj,垂直,那其两个的方向的内机为0,利用这种关系就可以求出内参矩阵K,如下ppt
三个互相垂直的方向,对应三个投影平面的是哪个像素点,有三组方向,三个未知数,就可以求内参了。
2.在相机坐标系下,如果以及内参标定,给出已给空间点在图像上的坐标(在相机坐标系下),就可以求出这个空间点在相机坐标系下的朝向;如果给出两个空间点,可以直接算出相机中心点到这两点的向量之间的夹角:
3.在摄影几何里,任何空间上的一个圆与一条无穷远线都会相交与两个点(虚数点,想象出来的):
相似的,任何一个球面,与无穷远的平面都会相交与一个绝对椭圆,这个椭圆的点是由这些平面里的两个circular points 组成(每个平面都有一条无穷远线上的)。一个椭圆可以由一个3*3的矩阵表示。
就是这个IAC,绝对椭圆在成像平面的投影,也是一个椭圆,可以通过3*3矩阵表示。
2.基于以上基础,去理解张正友标定方法
就是三块标定板(也可利用一块标定板在不同平面位置拍三张图片),每一块标定板平面都会有两个circular points (以为每个平面都有一条无穷远线有这两个circular points,),在每一块标定板上有一个正方形,四个角点,以其中一个角点为坐标原点,其他两个为两个垂直坐标方向的点,还有一个是(1,1)点,即每块标定板都有一个自己的坐标系,对应的这四个角点投影到相机平面上都有四个点(很容易通过角点提取出像素位置),有了像素位置 和空间位置,且有4对点,就可以通过SVD求出homograph matrix ,计算每个平面的两个circular points 投影到到成像平面的点(用Homograph matrix去变换),3个平面就有6个点,这样就可以拟合一个椭圆了(椭圆需要5个点拟合),这个椭圆有了,就可以通过 求出K 及内参。
十二、小结
1.Homograph matrix 是一个平面坐标到另一个平面坐标的变换矩阵(要满足单应性,投影变换,即直线还是直线),典型的就是拼全景图是,两张图存在一个变换矩阵,求H出来,就可以把两张图拼在一起;
2.投影矩阵(projection matrix), 就是一个实物点(空间点)投影到图像坐标的变换矩阵,分几种情况,一个是内参外参都不知道,直接利用多个对应点求出P;另外一种是已知内参,求外参 PnP方法;还有一种是求内参(标定),利用消失的垂直点求出来,或者是张正友的绝对椭圆求出来。
十三、Two-View
两个相机,看到同一个物体点,存在这一些集合约束:
几个重要的概念
epipolar plane 极平面、epipolar line 极线、epipole 极点
关键的两个约束矩阵 Essential matrix,。
1.Essential matrix 是已知内参的情况下的约束矩阵:
2.Fundamental matrix是内参未知的情况下的约束矩阵:
有以下属性:
3.如果已知 Fundamental matrix
根据一张图的特征点位置,可以在另外一张图中找到极线,利用缩小特征点匹配范围
剩下的就是如果求这两个矩阵了,
可以7点法等,要注意的是
当相机只有旋转时,就退化成单应性,无解,用homography来求,如果场景时纯平面时也无解
4.Essential matrix 可以通过F来求出,也可以用8点发来求:
5.Essential matrix 可以推出相机的投影矩阵
有四个解,要排除,找出计算出来的点(根据图像算出三维点)在两个相机前面 较多的那个