【AR技术点】(一)如何通过捕捉特征图像来建立起三维空间
来源:互联网 发布:ps4游戏淘宝的 认证版 编辑:程序博客网 时间:2024/06/15 04:20
在AR的技术中,最主要的技术点主要有三个:
1. 捕获特征图像2. 跟踪特征图像的移动3. 计算捕获的特征图像相对于原特征图像的偏移向量
为什么说这三个是最重要的呢
原因就是AR技术最关键的就是能够高效的捕捉你给予的特征图像,并在此之上将二维的视频图像转换成三维的空间,然后在此之上展示你想要展示的3D模型。
捕获特征图像
说到特征匹配,就得先说一下什么是特征点,现在几乎所有的特征图像捕捉算法都是基于特征点进行匹配的
特征点,顾名思义,就是图像中或者全局或者局部的一种能够描述图片特征的具有标识性的点。
一般情况下,特征点是指的是图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点(即两个边缘的交点)。听起来有点像是角点,但是实际是角点只是特征点中的一类。
举一个例子,对于FAST特征点检测算法,特征点判别如下:
判别特征点p是否是一个特征点,可以通过判断以该点为中心画圆,该圆过16个像素点。设在圆周上的16个像素点中是否最少有n个连续的像素点满足都比Ip+t大,或者都比Ip−t小。(这里Ip指的点p的灰度值,t是一个阈值)
如果满足这样的要求,则判断p是一个特征点,否则p不是。
通过这些点我们可以用来识别图像、进行图像配准、进行3D重建等。
由于我们这里只是讲解AR的关键技术,所以就不对特征匹配算法进行一一地讲解了
我们梳理一下一般的特征图像匹配算法的流程:
PS:这里设摄像头图像为srcImg,想捕获的图像为grabImg
- 灰度化原图像srcImg
- 进行平滑滤波,去除噪点
- 特征点检测,取出grabImg在srcImg上匹配的特征点(一般采用FAST算法)
- 筛选特征点,去除特征点中的坏点(一般采用Lowe’s算法来进一步获取优秀匹配点)
- 匹配对应的特征点
求出srcImg上的grabImg的偏移和变换向量
最后得到的效果大致如下(网络图片,特征点被用颜色圈标出,并用线条一一对应):
建立空间坐标系
我们通过图像特征匹配的方式可以得到一些什么东西——可以得到我们的特征图像和从摄像图像中捕捉到的图像之间的对应关系
这种对应关系有什么用呢,想一下,假设我们的普通摄像头拍到的图像如下:
我们想寻找的特征图像如下:
我们通过特征匹配算法匹配这两张图,可以得到什么信息?
第一、可以获取到特征图像在摄像头图像中的位置(确定位置)
第二、可以得到特征图像的大小变化(确定大小变化)
第三、可以得到特征图像的旋转角度变化(三维空间下的旋转角度)
比如上面的摄像头图像,我们可以获得这样的信息(数据是瞎编的,领会意思就行):
获得了这样的信息有什么用呢?
通过这些信息我们就可以确定特征图像的法向量方向,进而求出特征图像在三维空间中的平面场的延展(这个平面就是我们展示AR-3D模型的基础平面)
也许上面的图像不太明显,我们用这样的图像进行示例(PS:下面的图像绘画也许有一定错误)
通过这样的方式,我们就可以建立起一个神奇的三维坐标系:
然后的事情就变得很简单了,将你的3d模型通过OpenGL或者其他的渲染手段,在这个不断变化的坐标系中,不停地改变其大小、旋转角然后渲染出来,或者直接就在这个平面上移动,都是可行的了。
我们所需要的,就是为这个模型在2d的摄像头图片中,找到其相对于特征图像的三维特征位置和标定
不过,如果仅仅通过这样的特征匹配算法来一帧一帧的匹配,计算量是非常非常大的,有没有办法不每次都这样全局的去寻找特征图像,而是跟踪其移动,然后建立坐标系呢?
当然有
所以下一节我们要了解的就是AR的另外一个技术点——图像跟踪
- 【AR技术点】(一)如何通过捕捉特征图像来建立起三维空间
- 图像形状特征(六)--AR模型形状描述子
- Kinect 开发系列之 获取捕捉点图像的横纵坐标并用来做图像剪切
- 如何建立起基于Vagrant的Open EDX的虚拟开发环境(一)
- 图像特征点概述
- 图像特征点概述
- 基于opencv的图像拼接(一): sift特征点提取
- 图像特征提取与检索技术-笔记一
- 图像局部特征(一)--概述
- 图像特征提取之(一)HOG特征(理论知识)
- 图像特征提取之(一)HOG特征
- 图像特征提取之(一)HOG特征
- 特征点提取-图像处理
- 人脸特征点检测(一)
- opencv 特征点提取、匹配(一)
- 一分钟了解“Matlab画三维空间中的点scatter3”
- 一分钟了解“Matlab画三维空间中的点plot3”
- 【图像处理专题(一)】图像边缘特征提取
- HashTable底层代码及与HashTable的差别
- DOM节点类型
- JAVA多线程编程——1.8 线程暂停
- c语言基础(四)
- Visual Studio中Radio Button组绑定变量方法(DDX_Radio方法)
- 【AR技术点】(一)如何通过捕捉特征图像来建立起三维空间
- 整合ssm思路
- HDOJ2103 Family planning
- 多线程:协调顺序运行
- 刷新输出缓冲区操作flush & ends & endl
- 使用main函数的参数,实现一个整数计算器.
- uva10820(欧拉函数)
- 延迟
- [leetcode] 547. Friend Circles