首页> 中国专利> 基于单幅图像文化遗存遗址的三维重建方法

基于单幅图像文化遗存遗址的三维重建方法

摘要

本发明涉及一种基于单幅图像文化遗存遗址的三维重建方法,首先将单张图像输入计算机;通过交互式手动或自动的图像处理方法,提取图像中三个主方向上的平行直线簇;并将平行直线簇分组,通过灭点重心求取法求取每组平行直线簇对应的灭点;利用灭点与相机内外方位元素的几何关系进行相机标定,在世界坐标系下建立一系列平行于参考平面的平行平面;通过反投影射线与平行平面的交点完成像点对应空间点的三维重建;对重建的图像点云进行点云网格化及纹理映射完成真实感三维模型的构建。本发明可以利用单张图像进行三维重建,对于仅存留一张照片且目前不复存在或损坏的古建筑三维重建尤为适用,有助于文化遗存遗址的数字化保护和文化旅游的宣传。

著录项

  • 公开/公告号CN104809755A

    专利类型发明专利

  • 公开/公告日2015-07-29

    原文格式PDF

  • 申请/专利权人 福州大学;

    申请/专利号CN201510165036.X

  • 发明设计人 方莉娜;王思洁;陈崇成;黄明伟;

    申请日2015-04-09

  • 分类号G06T17/00(20060101);

  • 代理机构35100 福州元创专利商标代理有限公司;

  • 代理人蔡学俊

  • 地址 350108 福建省福州市闽侯县上街镇大学城学园路2号福州大学新区

  • 入库时间 2023-12-18 10:16:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-10-20

    授权

    授权

  • 2015-08-26

    实质审查的生效 IPC(主分类):G06T17/00 申请日:20150409

    实质审查的生效

  • 2015-07-29

    公开

    公开

说明书

技术领域

本发明涉及计算机虚拟现实、图像建模技术、计算机视觉以及摄影测量领域,特别是一种基于单幅图像文化遗存遗址的三维重建方法。

背景技术

 文化遗存遗址是古代劳动人民伟大创造和聪明智慧的结晶,是历史高度、文化厚度、自然生命的沉淀,是研究古代历史、文化、艺术、科学技术发展的及其重要的实物资料。它们经历了长时间的风化侵蚀、历史变迁,遭遇着由于现代社会经济的高速发展、人类频繁活动的破坏和冲击,其中一部分已损坏或不复存在。然而随着社会对文化遗存遗址保护意识的增强及现代旅游业的迅猛发展,人们渴望恢复重建这些老旧的遗址文物,以便能够让其继续存留下来,提高文化遗存和文化内涵的形象,更大范围的向世人展示这些文化遗存遗址独特的文化、科学、艺术价值,以此来促进人们对文化的理解,提高传播和弘扬文化的能力。所以在现有数据的基础上如何恢复重建出这些已破坏或不复存在的文化遗存遗址是文化遗产保护和文化旅游宣传共同需要解决的重要问题。

 目前,文化遗存遗址的三维模型的获取要有三种方式:第一种是组织人力进行现场采集测量,以此积累的建筑工程测绘图纸和文档资料;第二种是基于现代激光扫描设备所采集的高精度离散点云数据;第三种是借助数码相机获取的古建筑二维影像数据。对应于三种不同的数据源有三种不同的遗存遗址三维模型构建方式:1)基于3DMAX、AUTOCAD、CREATOR等建模软件的参数化建模技术,这种方法虽在一定程度上构建了精细的古建筑三维模型,但该技术建模周期长、操作过程复杂、需要专业熟练的操作人员,对于非专业人员的实时获取三维模型就显得尤为困难。2)基于深度数据的三维建模技术,该方法虽可以获取高精度的三维模型,但需要借助高昂的扫描设备,数据自动化处理程度低,工作量大。3)基于图像的三维重建技术是以计算机视觉和数字摄影测量理论为依托,运用单幅图像或多幅图像,通过图像匹配、相机标定、三维重构等一系列步骤重构三维模型。该方法不需要专业的建模人员,重建成本低、周期短,自动化程度高,且可以构造出照片级真实感的三维模型。

 基于图像的三维重建技术根据所利用的图像的数目不同可以分为基于多张图像的三维重建及基于单张图片的三维重建。研究人员对于多张图片的三维重建(又称为基于图像序列的三维重建)多采用从运动中恢复和从轮廓中恢复两大主要方法。基于多张图片的三维重建需要在多张图片中寻找特征点,计算量大、过程复杂且易受拍摄角度及成像过程的影响,当仅存一张图片时无法采用该方法进行三维重建。基于单张图片的三维重建可以根据单张图片中的信息利用不同约束重建三维场景,这里的约束有透视变形约束、反射模型约束两种。

 专利号为CZ103824323A,发明名称为“一种基于单幅二维图像的三维重建方法”的专利提出了一种利用反射模型约束从单幅图形重建三维场景的方法,通过二维灰度图像计算朗伯体表面反射模型(ambertian surface reflection model),将模型进行逆求解解算像点深度信息。这种方法快速且适用广泛,但重建精度较低且对图像拍摄要求较高,对于凹凸面不能实现唯一重建,所以对于规则形体的单张三维重建不太适用。

 专利号为CN1453740A,发明名称为“由单幅图像测量场景及场景内物体几何信息的方法”的专利提出了一种基于单幅图像的场景测量方法,该方法可以对场景内任意平面的信息进行度量,但要利用这些测量信息进行三维重建需要借助第三方软件,没有形成一个完整的单幅三维重建系统。

 专利号为CN104143211A发明名称为“基于单幅图像的三维自由形体生成方法”和专利号为CN102855665A发明名称为“从单幅图像重建三维建筑模型的方法”分别介绍从单幅图像恢复曲面形体的方法,但方法都仅适用于非规则形体,忽略了规则形体的三维重建。

发明内容

有鉴于此,本发明的目的是提出一种基于单幅图像文化遗存遗址的三维重建方法,可以借助本发明在同一系统内完成规则形体及非规则形体的三维重建,整个重建过程以面为单元,重建过程更为灵活。

    本发明采用以下方案实现:一种基于单幅图像文化遗存遗址的三维重建方法,具体包括以下步骤实现:

步骤S1:将一张待重建文化遗存遗址场景的图像或相片输入计算机;

步骤S2:采用手动或自动的方法从步骤S1中所述图像中提取X、Y、Z三个垂直方向的平行直线簇,并将提取的直线簇分成三组;

步骤S3:利用步骤S2提取的X、Y、Z方向的三组平行直线簇计算X、Y、Z三个主方向灭点,得到三个主灭点;

步骤S4:利用步骤S3计算的X、Y、Z三个主灭点,根据三个主灭点计算相机内参数矩阵(K)及外参数矩阵(R,t)完成相机标定,即求取投影矩阵(P);

步骤S5:在三维空间中设定参考平面及参考方向,其中所述参考平面为空间直角坐标系的XY平面,所述参考方向为空间直角坐标系的Z方向,在所述参考方向上建立多个平行于参考平面的平行平面,利用反投影射线与平行平面的交点完成三维点重建,得到点云;

步骤S6:对步骤S5重建的点云进行点云网格化及纹理映射完成真实感三维模型重建。

进一步的,所述步骤S1中的图像为照片或图片的数字化影像,图像的数字化分辨率为600dpi~1200dpi。

进一步的,所述步骤S2中的手动方法具体为:用户可根据输入的图像选取建筑骨架线,运用交互式方法分别在X、Y、Z三个垂直方向上绘制三条或四条直线,根据用户绘制的直线方向,依据空间直角坐标系三个坐标轴方向完成直线分组。

进一步的,所述步骤S2中的自动方法具体包括以下步骤:

步骤S21:对待提取的图像进行图像预处理,具体包括:利用Ostu阈值分割算法对图像进行分割用以提取待重建建筑物目标区域,利用数学形态学原理清除图像中的孤立点,对图像进行细化处理;

步骤S22:利用步骤S21预处理完成的图像,采用Canny边缘检测算法提取目标区域的边缘图像;

步骤S23:利用步骤S22提取的边缘图像,采用累计概率霍夫变换,通过将同方向、间隔短的直线段合并为一条直线提取长直线;

步骤S24:利用步骤S23提取的长直线,采用角度和距离的共同限制,将提取的直线分成与空间坐标系三个坐标轴对应的三组。

进一步的,所述步骤S3具体包括以下步骤:具体包括以下步骤:

步骤S31:假设两条非平行直线L1=[a1 b1 c1]、L2=[a2 b2 c2],则L1×L2可以确定这两条直线的交点的齐次坐标,公式如下:

L1×L2=[b1c1b2c2,c1a1c2a2,a1b1a2b2];

步骤S32:将同一方向上平行直线簇中的直线Li=[ai,bi,ci]按照斜率从小到大进行排序,记L(A)为从第一条直线到第n/2条直线的加和,L(B)为从第n/2+1条直线到第n条直线的加和,公式如下:

L(A)=aibici=Σi=1n/2aiΣi=1n/2biΣi=1n/2ci

L(B)=aibici=Σi=n/2naiΣi=n/2nbiΣi=n/2nci,

则L(A)×L(B)即为这组平行直线簇交点的重心,将该重心作为这组平行直线簇的灭点;

步骤S33:采用以上步骤分别计算X、Y、Z三个坐标轴方向上的平行直线簇的灭点,并将其作为X、Y、Z三个主方向灭点,即三个主灭点。

进一步的,所述步骤S4具体包括以下步骤:

步骤S41:将步骤S3解算的三个主灭点所构成三角形的垂心设置为像主点,根据垂心计算公式解算像主点坐标;特别的,一个三维点M经透视投影变化得到二维图像点m,这个透视投影变换可表示为:

λm=PM,

其中P=K[R t]为投影矩阵,λ为比例系数,K为相机内参矩阵(K=f0u00fv0001,(u0,v0)为像主点坐标,f为焦距),(R、t)为相机外参矩阵(R为旋转矩阵,t为平移向量);

步骤S42:定义相机的中心为投影中心,投影中心到像平面的垂直投影点为像主点,投影中心与像主点间的距离为相机焦距;所述的投影中心、三个主灭点构成一个直角三角椎体,该椎体以投影中心为顶点、三主灭点构成的三角形为底面,顶点到底面的高为相机焦距,根据三角形相似及勾股定理计算相机焦距,通过步骤S41、S42确定相机内参矩阵K;

步骤S43:相机外参数矩阵的确定与世界坐标系的选取有关,本专利选取三个主灭点方向为世界坐标系的三个坐标轴,主灭点Vx、Vy分别对应世界坐标系的X轴、Y轴。由透视投影方程、旋转矩阵R 为单位正交矩阵及世界坐标系为右手坐标系可得关于旋转矩阵的四个解,再通过确定世界坐标系X轴、Y轴正方向来唯一确定旋转矩阵R的解,其推导过程如下:

λxVx=K[R,t]1000=λxKr1

λyVy=K[R,t]0100=λxKr2,

|r1|=|r2|=1

r1=±K-1Vx|K-1Vx|

r2=±K-1Vy|K-1Vy|,

r3=±r1×r2

其中ri为旋转矩阵的第i个列向量,λx、λy为比例系数,Vx、Vy为X、Y方向主灭点;

步骤S44:设定世界坐标系原点的图像坐标为O,根据透视投影方程求取相机外方位元素t,其推导过程如下:

λoO=K[R,t]0001=λot,

t=λoK-1O,

其中λo为比例因子。因本专利不涉及绝对欧式度量信息,为简化计算,λo取值为1。

进一步的,所述步骤S5三维点重建具体包括以下步骤:

步骤S51:为完成基于单幅图片的三维重建,需要建立多个平行于参考平面的平行平面。将世界坐标系XOY平面设定为参考平面Π0,世界坐标系Z轴方向为参考方向;

步骤S52:根据透视投影变换,解算某一平行平面Πi到参考平面Π0之间的距离d及平行平面Πi的齐次方程Πi=[0 0 1 -d];

步骤S53:设定投影中心和像点的连线为反投影射线,计算反投影射线与平行平面的交点来重构相平面中任意可见点所对应的空间三维点;

步骤S54:对于不可见点及遮挡点采用灭点几何原理,通过求取多条直线的最优交点来确定不可见点的图像坐标,再利用步骤S53求取该点对应空间三维点。

进一步的,所述步骤S6点云网格化和纹理映射主要包括以下步骤:

步骤S61:将步骤S5得到的空间点映射到平面中变为二维点,对二维点进行Delaunay三角剖分,再将剖分完成的点反映射到三维空间中完成点云网格化;

步骤S62:采用基于OpenGL的纹理映射法,首先通过glGenTextures函数创建纹理,再利用glBindTexture、glTextImage2D函数完成纹理的绑定,接着进行纹理坐标的对应,最后利用glTexCoor2d、glVertex3d函数完成纹理的渲染与绘制。

与现有技术相比,本发明在三维重建过程中以面作为解决透视投影病态问题的关键点,当三维空间中面唯一确定,则根据透视反投影,这个面上的所有信息都可以唯一确定,本发明提供的方法对于规则形体和非规则形体的单幅三维重建都适用。本发明能够直接从单幅图像通过交互式方法获取图像对应三维场景的三维模型,为文化遗存遗址的数字化保护及虚拟旅游提供技术支持。

附图说明

图1 为本发明方法具体实施例的技术流程示意图。

图2(a)为待重建建筑物图像;图2(b)为三组主平行线对手动提取结果。

图3 (a)为待重建建筑物图像;图3(b)为Ostu图像分割结果;图3(c)为Canny边缘检测结果;图3(d)为三个主方向平行线对自动提取结果。

图4 为像主点、焦距、主灭点几何关系示意图。

图5 为平行平面求取示意图。

图6 为基于平面的三维重建示意图。

图7不可见点图像坐标恢复示意图。

图8 重建效果图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

如图1所示,本实施例提供了一种基于单幅图像文化遗存遗址的三维重建方法,具体包括以下步骤实现:

步骤S1:将一张待重建文化遗存遗址场景的图像或相片输入计算机;

步骤S2:采用手动或自动的方法从步骤S1中所述图像中提取XYZ三个垂直方向的平行直线簇,并将提取的直线簇分成三组;

步骤S3:利用步骤S2提取的X、Y、Z方向的三组平行直线簇计算X、Y、Z三个主方向灭点,得到三个主灭点;

步骤S4:利用步骤S3计算的X、Y、Z三个主灭点,根据三个主灭点计算相机内参数矩阵(K)及外参数矩阵(R,t)完成相机标定,即求取投影矩阵(P);

步骤S5:在三维空间中设定参考平面及参考方向(参考平面即空间直角坐标系的XY平面,参考方向即空间直角坐标系的Z方向),在所述参考方向上建立多个平行于参考平面的平行平面,利用反投影射线与平行平面的交点完成三维点重建,得到点云;

步骤S6:对步骤S5重建的点云进行点云网格化及纹理映射完成真实感三维模型重建。

在本实施例中,所述步骤S1中的图像为照片或图片数字化影像,图像的数字化分辨率为600dpi~1200dpi。

在本实施例中,所述步骤S2中的手动方法具体为:用户可根据输入的图像(如图2(a)所示)选取建筑骨架线,运用交互式方法分别在X、Y、Z三个垂直方向上绘制三条或四条直线(如图2(b)所示),并根据用户绘制的直线方向,依据空间直角坐标系三个坐标轴方向完成直线分组。

在本实施例中,所述步骤S2中的自动方法具体包括以下步骤:

步骤S21:对待提取的图像(如图3(a)所示)进行图像预处理,具体包括:利用Ostu阈值分割算法对图像进行分割用以提取待重建建筑物目标区域,其中分割结果如图3(b)所示,利用数学形态学原理清除图像中的孤立点,对图像进行细化处理;

步骤S22:利用步骤S21预处理完成的图像,采用Canny边缘检测算法提取目标区域的边缘图像,其中Canny边缘检测结果如图3(c)所示;

步骤S23:利用步骤S22提取的边缘图像,采用累计概率霍夫变换,通过将同方向、间隔短的直线段合并为一条直线提取长直线;

步骤S24:利用步骤S23提取的长直线段,采用角度和距离的共同限制,将提取的直线分成与空间坐标系三个坐标轴对应的三组,其中三个主方向平行线对的提取结果如图3(d)所示。

在本实施例中,所述步骤S3中采用同一坐标轴方向上的多条直线交点的重心替代平行直线簇灭点的方法来确定平行直线簇灭点,具体包括以下步骤:

步骤S31:假设两条非平行直线L1=[a1 b1 c1]、L2=[a2 b2 c2],则L1×L2可以确定这两条直线的交点的齐次坐标,公式如下:

L1×L2=[b1c1b2c2,c1a1c2a2,a1b1a2b2];

步骤S32:将同一方向上平行直线簇中的直线Li=[ai,bi,ci]按照斜率从小到大进行排序,记L(A)为从第一条直线到第n/2条直线的加和,L(B)为从第n/2+1条直线到第n条直线的加和,公式如下:

L(A)=aibici=Σi=1n/2aiΣi=1n/2biΣi=1n/2ci

L(B)=aibici=Σi=n/2naiΣi=n/2nbiΣi=n/2nci,

则L(A)×L(B)即为这组平行直线簇交点的重心,将该重心作为这组平行直线簇的灭点;

步骤S33:采用以上步骤分别计算X、Y、Z三个坐标轴方向上的平行直线簇的灭点,并将其作为X、Y、Z三个主方向灭点,即三个主灭点。

在本实施例中,所述步骤S4具体包括以下步骤:

步骤S41:一个三维点M经透视投影变化得到二维图像点m,这个透视投影变换可表示为:

λm=PM,

其中P=K[R t]为投影矩阵,λ为比例系数,K为相机内参矩阵(K=f0u00fv0001,(u0,v0)为像主点坐标,f为焦距),(R、t)为相机外参矩阵(R为旋转矩阵,t为平移向量);

如图4所示,Vx、Vy、Vz为S3解算的三个主灭点,在三角形VxVyVz中,三角形垂心(O1)即为像主点,根据垂心计算公式解算像主点坐标;

步骤S42:如图4所示,定义相机的中心为投影中心O,投影中心到像平面的垂直投影点为像主点O1,投影中心O与像主点O1间的距离为相机焦距f;所述的投影中心O、三个主灭点Vx、Vy、Vz构成一个直角三角椎体O-VxVyVz,该椎体以投影中心O为顶点、三主灭 点Vx、Vy、Vz构成的三角形VxVyVz为底面,顶点到底面的高OO1为相机焦距f。在三角形OO1Pxy中,由勾股定理得根据S41得O1Pxy。在直角三角形OVxVy中,根据三角形相似原理得OPxy2=VyPxy*PxyVx。将O1Pxy、OPxy带入上式得OO1,即f。通过步骤S41、S42确定相机内参矩阵K,

步骤S43:相机外参数矩阵的确定与世界坐标系的选取有关,如图4所示,OVx、Ovy、OVz分别两两垂直,所以本专利选取OVx、Ovy、OVz三个方向为世界坐标系的三个坐标轴,OVx、Ovy分别对应世界坐标系的X轴、Y轴,由透视投影方程可得如下两式:

λxVx=K[R,t]1000=λxKr1

λyVy=K[R,t]0100=λxKr2,

其中ri为旋转矩阵的第i个列向量,λx、λy为比例系数,Vx、Vy为X、Y方向主灭点;

R为单位正交矩阵,有|r1|=|r2|=1、r3=±r1×r2。由于世界坐标系是右手坐标系,所以r3=r1×r2,根据以上约束条件可得如下方程组:

r1=±K-1Vx|K-1Vx|

r2=±K-1Vy|K-1Vy|,

|r1|=|r2|=1

r3=r1×r2

该方程组可得R的四个解,这四个解对应四种世界坐标系,通过确定世界坐标系X轴、Y轴正方向来唯一确定R;

步骤S44:设定世界坐标系原点的图像坐标为Ow,根据透视投影方程求取相机外方位元素t,其推导过程如下:

λoOw=K[R,t]0001=λot,

t=λoK-1Ow

其中λo为比例因子。因本专利不涉及绝对欧式度量信息,为简化计算,λo取值为1。

在本实施例中,所述步骤S5三维点重建具体包括以下步骤:

步骤S51:为完成基于单幅图片的三维重建,需建立多个平行于参考平面的平行平面。设定世界坐标系XOY平面为参考平面Π0,世界坐标系Z轴方向为参考方向;

步骤S52:如图5所示,设某一平行平面Πi到参考平面Π0之间的距离为d,根据透视投影变换得:λ0*m0=P*M0λi*mi=P*Mi,其中M0=[x y 0 1]为参考平面上任意点坐标,Mi=[x y d 1]为该点在平行平面上沿参考方向上的对应点坐标,m0、mi为M0、Mi对应的图像坐标,λ0、λi为未知比例因子,P为投影矩阵。根据上式可确定任意平行平面到参考平面的距离d,从而确定该平行平面Πi=[0 0 1 -d];

步骤S53:如图6所示,投影中心O和任意可见像点mi构成一条反投影射线,该反投影射线与平行平面Πi的交点为像点mi对应的 空间点Mi

步骤S54:对于不可见点及遮挡点(如图7中的m点)采用灭点几何原理,通过求取多条直线的最优交点来确定不可见点的图像坐标,再利用步骤S53求取该点对应空间三维点。

在本实施例中,所述步骤S6点云网格化和纹理映射主要包括以下步骤:

步骤S61:将步骤S5得到的空间点映射到平面中变为二维点,对二维点进行Delaunay三角剖分,再将剖分完成的点反映射到三维空间中完成点云网格化;

步骤S62:采用基于OpenGL的纹理映射法,首先通过glGenTextures函数创建纹理,再利用glBindTexture、glTextImage2D函数完成纹理的绑定,接着进行纹理坐标的对应,最后利用glTexCoor2d、glVertex3d函数完成纹理的渲染与绘制。

进一步的,其中步骤S62具体包括以下步骤:

步骤S621:通过函数glGenTextures(GLsizei n,GLuint* textureNames)来创建纹理数量和相应的内存空间;

步骤S622:将纹理编号与相应的纹理图像进行绑定。首先利用glBindTexture(GL_TEXTURE2D,mTexture[i])函数对纹理进行编号,接着利用glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,Width,Height,0,GL_BGR,GL_UNSIGNED_BYTE,array)函数来指定存放纹理图像的数组首地址,通过这两个函数完成纹理的绑定;

步骤S623:由于本文的模型空间点是通过像点反投影得到,所以通过前面三维重建过程已经建立三维点到二维点的一一映射关系。在此基础上,将二维图像点坐标变换到纹理坐标系下即可;

步骤S624:纹理渲染绘制。调用glTexCoord2d(GLdouble s,GLdouble t)函数来指定纹理坐标,利用glVertex3d(GLdouble x,GLdouble y,GLdouble z)函数指定模型点坐标,完成纹理的渲染绘制。

较佳地,三维模型重建效果图如图8所示。

综上所述,本发明在三维重建过程中以面作为解决透视投影病态问题的关键点,当三维空间中某一平面唯一确定,根据透视反投影,则该平面上的所有信息都可以唯一确定,本发明提供的方法对于规则形体和非规则形体的单幅三维重建都适用。本发明能够直接从单幅图像通过交互式方法获取图像对应三维场景的三维模型,为文化遗存遗址的数字化保护及虚拟旅游提供技术支持。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号