发明内容
本发明的一个目的提出了一种基于变焦立体视觉的三维全景图像生成方法,本发明的另一个目的是一种基于变焦立体视觉的三维全景图像生成方法使用的系统。该方法可以对在不同角度下采集的变焦二维图像进行准确的处理与分析,并复现实际空间中目标物体的三维特征,最后根据三维点云拼接技术生成三维全景图像。
采用的技术方案是:
一种基于变焦立体视觉的三维全景图像生成方法使用的系统,包括单目变焦图像的采集装置,上位机和控制器。
单目变焦图像的采集装置和上位机之间通过控制器连接。
上位机为pc机。
单目变焦图像的采集装置,用来在远景处在不同焦距下,以及不同角度对目标物体进行采集图像。
存储装置,是用来存储单目变焦图像的采集装置采集的图像,还用来存储图像处理程序的处理结果,以及生成的三维全景图像等。
处理器,用来对从存储装置中读取的图像文件进行处理,实现相关程序的运行以及传递数据。
单目变焦图像的采集装置为工业CCD单目变焦相机。
本系统可以采用一台工业CCD单目变焦相机和pc机配合使用。处理器为电脑的cpu,控制器为图像采集卡,存储装置包括工业CCD单目变焦相机的存储卡、pc机硬盘和pc机内存等。
一种基于变焦立体视觉的三维全景图像生成方法的软件部分包括图像处理程序、匹配程序和三维点云拼接程序。
图像处理程序是用来对从存储装置中读取的图像进行处理,相机标定、稀疏匹配和误匹配去除的。
匹配程序是用来对两个图像进行稠密匹配,进行三维点云计算,得到三维点云。
三维点云拼接程序是对两片三维点云进行三维点云精简、三维点云特征提取、ICP配准和基于ICP算法的单目视觉三维点云拼接算法。
本发明还提供一种基于变焦立体视觉的三维全景图像生成的方法,包括如下步骤:
1)用单目变焦图像的采集装置(工业CCD单目变焦相机)对目标物体在不同焦距下进行图像采集,得到整体图像后,将第一焦距和第二焦距下采集的图像分别存储在存储装置中,并从存储装置中读取出这两幅图像。
2)对读取的第一焦距和第二焦距下的拍摄的两幅图像分别进行处理,并对两个焦距下的单目变焦图像的采集装置(工业CCD单目变焦相机)进行标定,从而完成双焦单目图像的稀疏匹配。
3)对稀疏匹配结果进行误匹配去除,计算相机焦距实际缩放之比,然后对图像进行稠密匹配处理,生成稠密视差图。
4)对匹配好的目标物体进行三维重建,最后确定目标物体在图像中的位置以及获取准确的三维坐标,得到三维点云数据。
转换一个角度重复1)-4),共得到两片三维点云。
5)将获取的两片三维点云数据进行精简处理,对精简后的两片三维点云数据进行ICP配准,最后进行三维点云拼接生成全景图像。
所述的步骤3)中,对稀疏匹配结果进行误匹配去除,采用的是基于SIFT特征属性去除误匹配,然后基于极线距离去除误匹配。
双焦单目图像为工业CCD单目变焦相机镜头同一个角度下,在两个不同的焦距得到两幅图像。
本发明使用工业CCD单目变焦相机的镜头在第一角度,在第一焦距和第二焦距分别拍摄两张图片,经过图像处理,匹配,三维重建得到一片三维点云。
使用工业CCD单目变焦相机的镜头在转动到第二角度,在第一焦距和第二焦距分别拍摄两张图片,经过图像处理,匹配,三维重建得到另一片三维点云。
将两片三维点云进行三维点云精简,三维点云特征提取,ICP配准,基于ICP的单目视觉三维点云拼接,得到三维全景图像。
第一角度的第一焦距与第二角度的第一焦距相同。
第一角度的第二焦距与第二角度的第二焦距相同。
每个角度的第一焦距均为短焦距,第二焦距为均长焦距,使用其他工业CCD单目变焦相机,可以根据相机能调整的焦距选择其他焦距。
第一角度的第一焦距(短焦距)拍摄的图像和第二角度的第一焦距(短焦距)的图像有四分之一到二分之一的重叠。
进一步,所述步骤2)具体包括如下几个步骤:
21)对图像进行处理。
22)相机的标定。
23)双焦单目图像特征提取与匹配。
进一步,所述步骤3)具体包括如下几个步骤:
31)误匹配去除。
32)计算缩放之比。
33)双焦单目图像稠密匹配。
进一步,所述步骤4)具体包括如下:
41)目标物体的三维重建
42)获取目标物体的三维坐标。
进一步,所述步骤5)具体包括如下:
51)三维点云精简、提取三维点云特征。
52)ICP配准。
53)单目视觉三维点云数据的拼接算法。
进一步,所述步骤21)具体包括如下几个步骤:
211)对图像进行灰度处理。
212)对图像进行增强处理。
进一步,所述步骤22)具体为:
本发明中的对相机进行标定采用的方法是二维平面模板法,这种标定方法可以达到较高的标定与测量精度。该算法可以分为下面两个部分:
第一步:计算世界坐标系到图像空间的单应性矩阵,求出相机内外参数。
第二步,考虑畸变因素,相机镜头畸变系数采用四阶径向畸变模型。根据内外参数,利用最小二乘法求出两个畸变系数。
具体算法如下:
设(xwi,ywi,zwi)是三维世界坐标系中点Pi的三维坐标,(xci,yci,zci)是Pi在相机坐标系中的三维坐标。相机坐标系原点定义在O点。OiXY是图像坐标系,其中心在Oi点(光轴与图像平面的交点)。以长度单位表示的图像坐标系原点在图像中心。(Xu,Yu)是在理想针孔相机模型下以长度单位表示的P点的图像坐标。以像素表示的图像坐标系原点在左上角,u轴向右,v轴向下,(ui,vi)是以像素表示的图像坐标。X、Y分别平行于u和v轴。
假定光心的图像坐标(u0,v0)已经求出,设:
则有:
1、求取单应性矩阵H:
将平面标靶上各个特征点的坐标记为(xwi,ywi,zwi),在成像平面上的坐标记为(xci,yci,zci),图像坐标记为(ui,vi),由式(3)得:
则:
sIi=HPi (5)。
根据点Pi的图像坐标,零均值高斯噪声的方差矩阵ΛIi,利用最大似然估计获得单应性矩阵H。
2、确定内部参数:
(1)求出一个单应性矩阵后可得到相机参数的约束条件,其中,单位向量n与o是正交。
(2)通过式(7)初步求解线性相机内内外参数,设:
b=[B
11 B
12 B
22 B
13 B
23 B
33]
T,则:
其中,vij=[hi1hj1 hi1hj2+hi2hj1 hi2hj2 hi3hj1+hi1hj3 hi3hj2+hi3hj2 hi3hj3],式(7)可写成
(3)假设有n幅图像,n组方程的矩阵形式为Vb=0,设采集图像n≥3,V最小特征值对应特征向量,即为b,导出相机内参数如式(10),其中
3、计算外部参数:
(1)获得内参数,以及单应性矩阵得出外参数:
4、计算畸变系数:
(1)相机镜头的畸变系数采用四阶径向畸变模型:
设相机坐标系的纵横轴畸变系数相同,则在归一化成像平面上的实际坐标可由在归一化成像平面上无畸变的理想坐标和二阶,四阶径向畸变系数确定。
(2)将相机内参数模型
忽略k
s,代入式(13)中。根据相机的内外参数,由式(4)求取无畸变的理想图像坐标(u′,v′),由外参数矩阵求取成像点在成像平面上的无畸变理想坐标(x′,y′)。对于n幅图像取m个特征点,则可以构成mn个方程组。利用最小二乘法可以求解畸变系数k
1和k
2。
(3)获得畸变系数后使
最小,优化相机的内外参数。反复迭代畸变系数和相机的内外参数,直至收敛。
进一步,所述步骤23)具体为:
本发明所用到的特征提取和匹配的方法是基于SIFT匹配算法,可以在尺度空间、图像缩旋转以及放射变换下保持不变。该算法提取出的特征点不随着图像自身和外界环境改变而改变。独特性好信息量丰富,适用于海量特征数据库中快速、准确的匹配。基于SIFT匹配算法的步骤如下:
(1)尺度空间的构建和极值的求取。将二维图像函数I(x,y)与高斯函数
做卷积得到尺度空间函数为
进行卷积后,根据不同距离对图像进行采样,将采样后的图像作为第一组图像,下一组的图像是通过上一组图像降采样从而构成了金字塔式的分层结构,高斯金字塔相邻的尺度空间函数之差得到DOG金字塔,DOG算子是LOG尺度算子归一化的近似,为了寻找尺度空间点极值点,每个像素都要与它所在尺度和相邻尺度图像中所有像素点比较,在相邻点中的极大与极小像素点称为极值点。极值点的检测需要与像素点同尺度和上下相邻尺度的26个点比较,使该像素点在图像空间和尺度空间都符合极值点条件,通过26个点的比较检测出像素的局部极大值和极小值作为特征点,有良好的稳定性。
(2)去除边缘响应极值点。在图像边缘处DOG算子有较强的边缘响应,根据DOG算子的极值点在边缘方向上的主曲率大小,排除具有边缘响应的极值点。
(3)确定关键点的方向和生成描述子的特征向量。为了使生成描述子特征向量的具有旋转不变性,确定每个关键点的主方向。计算像素点处梯度模值和角度,确定以一个关键点位置坐标为中心的SIFT局部特征区域,关键点邻域高斯图像梯度统计结果表示SIFT描述子,通过对关键点周围图像区域分块,计算块内梯度直方图生成具有独特性的向量。
(4)双焦单目图像的SIFT特征匹配,以一幅图像生成的某特征向量为基准,在另一幅图像中找出与其欧式距离最近的两个特征向量,满足式
说明最邻近点为匹配点,否则放弃匹配。
进一步,所述步骤31)具体为:
311)、基于SIFT特征属性去除误匹配。
双焦单目图像中的目标物体并没有出现平移,旋转的现象,因此双焦单目图像的匹配点的主方向应一致,匹配点尺度的比率接近于焦距之比。根据匹配点尺度和主方向的概率统计特性去除尺度和主方向异常匹配。
312)、基于极线距离去除误匹配。
把变焦图像看作是一种特殊的平移图像,在理想状态下,双焦单目图像中的匹配点对连线应相交于一公共极点上。利用最小二乘法的用匹配点的极线拟合出一个极点,根据极点到极线的距离去除误匹配点对。
进一步,所述步骤32)具体为:
对去除误匹配后匹配点进行统计,以缩放中心为原点,匹配点对到各自原点的距离之比的平均值为变焦相机实际的焦距比。
进一步,所述步骤33)具体为:
本发明中使用到的区域生长算法进行稠密匹配。将双焦单目图像对根据步骤32)得出的缩放比例,进行图像缩放。
331)种子点选取。将处理后的图像基于SIFT算法对特征点进行,步骤如23)。其次利用RANSAC算法对初始匹配结果进行提纯,最后选取可靠性高的匹配点作为种子点。
332)区域增长。找到一个准确,可靠的匹配点对作为起始点,选取3*3和4*4的窗口大小,计算窗口内像素相似度,当相似度达到最大时,则该点是匹配点,以此方法蔓延迅速传播至整个图像区域。最终生成稠密视差图。
进一步,所述步骤42)具体为:
在精确求得物点深度信息的前提下,根据变焦相机的标定结果计算出空间点的三维坐标,
在工业CCD单目变焦相机的镜头朝向第一角度时候,调整两个焦距得到两幅图像经过图像处理和匹配得到一片三维点云。
在工业CCD单目变焦相机的镜头朝向第二角度时候,调整两个焦距得到两幅图像经过图像处理和匹配得到另一片三维点云。
三维点云重建使用了最小二乘法。
M为相机的内参数矩阵,z
c为点的深度信息,
为图像中的像点坐标。
进一步,所述步骤51)具体包括如下几个步骤:
本发明采用体素化栅格法进行三维点云精简,在点云精简后仍然可以保留点云的特征,保证在不丢失物体表面特征、速度运行快的前提下具有少量的数据量后,三维点云特征提取,具体步骤如下:
511)提取三维点云表面的法线特征。将估计表面法线转换成分析协方差矩阵的特征矢量和特征值,并且该协方差矩阵是从查询点的近邻来创建。对每个点Pi它的协方差矩阵如式(15)所示:
式中,点P
i邻近点的数量用k表示,
表示最近邻点的三维质心,λ
j为协方差矩阵中第j个特征值,对应的第j个特征矢量为
512)确定法线正负向。对所有法线
进行定向,要求法线方向一致朝向视点方向V
P,满足
进一步,所述步骤52)具体包括如下几个步骤:
本发明采用基于ICP算法对两片三维点云进行配准,其基本原理是设有两个具有一定重合区域的待拼接的三维点云集P、Q,其中P为参考三维点云(在第一角度的第一焦距和第二焦距得到两图像经过处理得到的一片点云,即三维点云1,cloud1),Q为待配准三维点云(在第二角度的第一焦距和第二焦距得到两图像经过处理得到的另一片点云,即三维点云2,cloud2),并且固定三维点云P不动,因此需要将点集Q转化到点集P所在的坐标系下。将Q中需要参加匹配的点在P中寻找最近点,并建立适合的目标函数。在理想状态下,当两个数据是最佳匹配时目标函数应该为零,但是因为噪声因素的影响,并不是总能在点集P中找到对应点,所以可以将目标函数的最小值作为最佳匹配点的判定条件,最后将点集Q正确拼合在点集P所在的坐标系下,完成三维点云拼接。ICP算法的步骤如下:
521)设could1和could2重合区域中的某点在坐标系O1X1Y1Z1的坐标为(X1,Y1,Z1),在坐标系O2X2Y2Z2中的坐标为(X2,Y2,Z2)。(X2,Y2,Z2)与(X1,Y1,Z1)之间的转换关系满足如式(16)所示。
522)ICP求解R和T的步骤:
利用ICP算法进行匹配求得最优R和T的步骤如下:
①设三维点云文件1(could1)为参考三维点云文件,三维点云文件2(could2)为待配准三维点云文件,在通过计算为待配准三维点集中的每个点找到其在参考点集中的对应最近点,设找到的匹配点对在参考三维点云文件中的三维点云集合为P,P中所含有的三维点云个数为Np,在待配准三维点云文件中三维点云集合为X,X中所含有的三维点云个数为Nx,且Nx=Np。
②计算上述所有最近匹配点对的最小欧氏距离平方和,如公式(17)所示,并求出对应的旋转矩阵R和平移矩阵T。
为了求得f(q)的最小值,求点集Np和点集Nx的重心,
利用重心up和ux根据
得到三维点云集合Np和三维点云集合Nx的协方差矩阵。
由构造的协方差矩阵可以构造如公式(18)所示的对称矩阵,然后计算该协方差矩阵的特征值,特征矢量qr=[q0,q1,q2,q3],即为利用最大特征值求得的特征矢量。
利用公式(19)便可求得旋转矩阵R(qR),即:
由求出的R(qR)可以根据式qT=uX-R(qR)uP求出qT。
③利用求出的最优旋转矩阵R和平移矩阵T对Nx进行如公式(16)的坐标变换得到新的点集NN。
④如果新的点集NN与目标点集计算得到的距离平方和小于给定的阈值,则结束迭代计算,否则将得到的新的点集NN作为点集Nx继续重复上述步骤进行迭代运算,直到与点集NN的距离平方和小于给定的阈值。
53)、进行上述ICP匹配后,根据得到的最优R和T,就可以把坐标系O2X2Y2Z2中所有的点集转换到坐标系O1X1Y1Z1中就可以实现三维点云文件1与三维点云文件2的拼接,得到三维全景图像。
三维点云拼接算法是ICP算法配准的原理上,直接利用图像匹配过程中求得的旋转矩阵和平移矩阵进行处理。
其优点在于:
本三维点云拼接系统生成全景图方法,通过安装在套袋机器人上的工业CCD单目相头,采集双焦单目图像,本发明是基于机器视觉的单目相头的目标物体全景图像系统及其实现方法,其硬件组成及相应算法简单,易于实现,能适应环境变化,该系统能够根据二维图像恢复实际三维信息,拼接生成三维全景图像,最为适合在旅游、医学等领域发展上普及应用,打破了传统的相机拍摄角度不能满足需求的方式,全方位表现出目标物体的基本构造。
具体实施方式
实施例1
各种装置的连接方式参见图1,由于需要模拟人类的眼睛,在本发明中选取的是工业CCD单目变焦相机,在不同的角度,不同焦距下采集图像,并将其采集到的图像存储到存储装置3中。处理器6中的图像处理程序4从存储装置3中读取每个相机镜头角度下的第一焦距和第二焦距下工业CCD单目变焦相机拍摄的两幅图像进行图像处理程序4并将处理后把数据传递给匹配程序5处理,得到两片三维点云,然后把数据传递三维点云拼接程序7,最后生成三维全景图像8。
软件算法及工艺流程实现方法的具体步骤见图2:
(1)分别选取两个不同焦距采集目标物体1的图像。
(2)对采集到的图像进行处理。将采集到的彩色图像转化成灰度图像,然后使用中值滤波对灰度图像进行图像增强。
(3)利用不同焦距下拍摄的两幅图像,对不同焦距下的相机内外参数进行标定。在标定过程中采用固定光圈,一次聚焦的方式保证数据的稳定性。根据二维平面模板法对不同焦距下内外参数进行标定,首先求出单应性矩阵,其次求取相机内参数和外参数。最后求取畸变系数。
(4)对增强后的图像基于SIFT算法进行特征提取与描述,完成变焦图像的稀疏匹配,最后根据变焦图像的特征点主方向一致,尺度变换为焦距之比的性质去除误匹配,在此基础上在以根据极点到极线的距离小于阈值为约束条件再去除误匹配。验证相机实际的焦距之比。
(5)本发明中对变焦图像的稠密匹配是根据稀疏匹配求出的两焦距比值对图像进行缩放处理,然后利用区域生长算法生成稠密视差图。
通过精确匹配点对以及缩放中心(接近图像中心)的坐标计算出实际尺度的比值。在此基础上对变焦图像进行性缩放处理,在此基于SIFT算法进行又一次图像稀疏匹配,利用RANSAC算法筛选出精确匹配点对作为种子点,利用区域生长算法进行稠密匹配,最终生成稠密视差图。在此基础上求出深度图,在精确求得物点深度信息的前提下,利用变焦相机的标定结果计算出空间点的三维坐标。
得到一片三维点云以后,再转动一次工业CCD单目变焦相机,在第一焦距和第二焦距得到两个图像,经过上述同样的处理,得到另一片三维点云。
(6)计算出所有空间点的三维坐标后,这些点构成了三维点云。对两片三维点云数据进行精简、三维点云特征提取以及配准最终实现三维点云拼接生成全景图像。本发明采用的三维点云精简方法是基于体素化栅格法算法,该算法的首先将对待处理的三维点云建立一个三维立体包围栏,根据三维点云的密度将围栏划分若干成小栅格,且每个小栅格内的点都可以用所有点的中心近似表示,那么每个小栅格的所有点就可以用一个重心点来表示。在三维点云精简后仍然可以保留三维点云的特征。
(7)本发明对三维点云进行特征提取:
主要是确定表面一点法线的问题近似于估计表面的一个相切面法线问题,利用最小二乘法进行平面拟合。
(8)本发明基于ICP算法进行三维点云匹配。
通过相机标定出的变焦相机的内外参数以及稠密匹配结果生成了物体的三维点云数据。在对t1时刻拍摄的双焦单目图像对进行处理获取的三维点云数据称为could1,在对t2时刻拍摄的双焦单目图像对进行处理获取的三维点云数据称为could2,利用ICP算法对could1,could2进行配准,但是实际上,在三维点云拼接的过程中,直接利用双焦单目图片进行图像匹配时获取的R和T估算出ICP算法的R和T矩阵,采用这种方法解决了ICP算法因为大量迭代算法造成计算时间较长的缺点。基于单目视觉系统的具体三维点云拼接过程如下。
1)设could1中所有三维点所在的坐标系为O1X1Y1Z1,could2中所有三维点所在的坐标系为O2X2Y2Z2,利用两幅三维点云重合区域的三维点云坐标将坐标O2X2Y2Z2中的三维点坐标转换到坐标系O1X1Y1Z1中。因此(X2,Y2,Z2)与(X1,Y1,Z1)之间的转换关系如式(16)所示。
2)求取旋转矩阵R和平移矩阵T。基于双焦单目图像的三维重建过中,在对二维的双焦单目图像进行图像匹配时已经得到了匹配过程中的旋转矩阵R和平移矩阵T,因此直接代入式(16)就可以把坐标系O2X2Y2Z2中所有的点集转换到坐标系O1X1Y1Z1中就可以实现三维点云一与三维点云二的拼接,得到三维全景图像8。
在图像采集的过程中,本发明是基于变焦相机采集双焦图像,虽然改变了Z值,但是根据焦距之比近似于图像缩放比例。因此将t1时刻的双焦单目图像中大焦距的图像以图像中心为基准按照焦距比例进行缩小,同理对t2时刻的双焦单目图像做同样处理。t2时刻拍摄的双焦单目图像只是通过移动了单目相机的旋转角度x,y得到。因此经过这样处理,可以把最后通过三维重建获取像素点的Z坐标看成不变。利用图像匹配过程中的R和T估算出三维点云拼接时R和T的值,最终生成三维全景图像8。
即:
1)基于单目双焦图像的三维重建过中,在对二维的双焦图像进行图像匹配时已经得到了匹配过程中的旋转矩阵R和平移矩阵T。
2)设could1中所有三维点所在的坐标系为O1X1Y1Z1,could2中所有三维点所在的坐标系为O2X2Y2Z2,且点云文件could1和could2存在一定的重合区域。把旋转矩阵R和平移矩阵T代入(16)中。就可以把坐标系O2X2Y2Z2中所有的点集转换到坐标系O1X1Y1Z1中就可以实现三维点云一与三维点云二的拼接,得到三维全景图像8。
第一焦距为短焦距(18mm),第二焦距为长焦距(55mm),使用其他工业CCD单目变焦相机,可以根据相机能调整的焦距选择其他焦距。
第一角度的第一焦距拍摄的图像和第二角度的第一焦距的图像有四分之一的重叠。
实施例2
第一角度的第一焦距拍摄的图像和第二角度的第一焦距的图像有二分之一的重叠。
实施例3
第一角度的第一焦距拍摄的图像和第二角度的第一焦距的图像有三分之一的重叠。