三维模型重建的流程: 三维点云获取——几何结构恢复——场景绘制 三维点云获取: 1.激光雷达 2.微软Kinect 有效距离比较短 3.单目多视角 :几乎很难实时 4.双目立体视觉
基于图像的三维模型重建: 1.输入图像 2.基于图像的点云生成 3.点云到模型的重建 4.纹理图像的创建与编辑 5.纹理模型
相关商业软件: Acute3D,Altizure,Agisoft PhotoScan
图像特征点应用: 1.相机标定 2.图像拼接 3.稠密重建 4.场景理解
图像特征点的检测方法:
图像特征点的基本要求: 1.差异性——可检测 特征点应该呈现出区别于非特征点的明显特征 2.重复性——可匹配 对应同一三维点的特征点应该在不同视角中被重复检测到
动机:特征点具有局部差异性
图像梯度
Harris矩阵
以每个点为中心取一个窗口,窗口大小为55或者77,如果这个点具有差异性,往周围任意方向移动,周围的环境变化都是会比较大的,如果满足这个特性,我们就认为这个特征点具有明显的局部差异性。在工事中,I表示像素,如果是 彩色图像就是RGB,灰色图像就是灰度。(u,v)表示方向。然后对上式进行一阶泰勒展开。
Harris矩阵H的特征值分析:
矩阵特征值反应了两个垂直方向的变化情况,一个事变化最快的方向,一个事变化最慢的方向
兴趣点位于光滑区域,不是特征点
,兴趣点位于边缘区域,
, 兴趣点位于角点区域 所以检测特征的任务转化为计算Harris矩阵,判断特征值大小。 在实际操作中,很少通过计算特征值来判断,因为计算特征值计算量比较大,取而代之的是Harris角点准则。
行列式值为特征值相乘,行列式的迹为特征值相加
和
同时取得最大值时,C才能取得较大值
在特征点附近,其他点的响应也比较大。 所以选取局部响应最大值,避免重复检测
算法流程
Harris角点检测一般用于快速检测,比如视频里面的跟踪
动机:Harris角点检测不具有尺度不变性 LoG算子:Lindeberg(1993)提出Laplacian of Gaussian (LoG)函数的极值点对应着特征点 Lindeberg(1993)提出Laplacian of Gaussian (LoG)函数的极值点对应着特征点 尺度空间: 对于一幅图像,用不同大小的滤波核进行滤波,一般用高斯滤波,得到一系列图像,这些图像就称之为尺度空间。然后把这些图像摞起来
尺度归一化LoG算子:
LoG特征检测效果好,但是计算量比较大。 工程中也很少用。为了更好地利用LoG的性质,提出了一种近似的算法:基于DoG的特征检测子
LoG可以由DoG近似: Lowe(2004)提出LoG近似等价于相邻尺度的高斯差分(DoG) 高斯空间:
高斯差分(DoG)
上图为3个Octive,每个octive的尺寸都会减小一半。 上图每个Octive中,左侧为高斯空间,相邻高斯空间做差得到DoG空间 特征点检测为在三维空间上做一个极值的比较,(三维空间为图像的二维空间+尺度的空间),必须需要两个方向有极值。在高斯差分,边界上的两层是无效的,只有中间的红色区域是有效的。 在Octive, if 每阶有效差分数 S =3,则高斯空间层数为N = S+3
特征点位置确定: 在位置和尺度空间组成的三维空间中寻找极值点
亚像素特征点位置确定:
除去边缘点: DoG在边缘处值较大,需要避免检测到边缘点
通过统计梯度直方图的方法确定主方向,使算法具有旋转不变性
旋转 不变性、 尺度 不变性 、亮度 变化 不变性 ,对视角变化、 仿射 变换有一定程度的稳性 SIFT特征点非常稳定和鲁棒,但是计算量很大,对于要求稳定的图像建模可以采用。 针对实时要求比较高的应用提出了快速特征检测。
FAST特征点(Feature from Accelerated Segment Test) 通过检测局部像素灰度变化来确认特征点的位置
速度快,SIFT的一百倍,不具有尺度和旋转不变性
基于直方图的描述子 基于不变性的描述子 二进制描述子
以特征点为中心取一块区域,有圆形或者矩形,称之为特征支持区域 主方向:进行旋转并重新插值 特征尺度:影响支持区域的大小
用于微小运动的描述子 以特征点为中心的矩形区域内所有 像素的灰度值作为描述子,拉成一个向量,计算向量间距离
适用于微小变化的图像 对图像存在明显的旋转、尺度、光照和透视变换时不稳定
根据主方向对支持区域进行旋转,并通过双线性插值重构
减去均值再除以方差 图像归一化处理,去除光照变化
过程: 1.统计局部梯度信息 将区域划分成44的block 每个 block 内统计梯度方向 的直方图 (高斯加权梯度 作为系数 )
高斯加权保证距离特征点近的像素作用更大,梯度直方图计算8个方向
每个block,统计8个方向的直方图,将16个block拉成一列,那就是168 = 128 SIFT描述子——生成描述子
SIFT描述子——归一化处理
描述子形式: 描述向量由N个0或者1组成 N= 128,256,512 生成速度快,匹配效率高,不具有旋转不变性
为了使其具有旋转不变性 N对采样点
根据特征点的主方向计算旋转
在新的采样点上进行BRIEF描述子生成
最近邻搜索
最近邻距离比(lowe-ratio)
最近邻距离和次近邻距离比小于一定值
快速最近邻搜索 哈希表 多维Kd-tree
BFM(Bruce Force Mather)匹配ORB的结果
选择最好的 50 个匹配结果进行显示
错误的匹配可以通过估计相机模型方式去除 估计 Homography Homography 矩阵之前最好的 50 对匹配对