[发明专利]基于单张图片的三维建模实现方法有效

专利信息
申请号: 201810381028.2 申请日: 2018-04-25
公开(公告)号: CN108665530B 公开(公告)日: 2021-12-14
发明(设计)人: 姚俊峰;赵恒恒;黄萍 申请(专利权)人: 厦门大学
主分类号: G06T17/00 分类号: G06T17/00;G06T19/20;G06T7/12;G06T7/13;G06T7/194
代理公司: 泉州市文华专利代理有限公司 35205 代理人: 陈雪莹
地址: 361000 福建*** 国省代码: 福建;35
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明一种基于单张图片的三维建模实现方法,对用户输入单张图片通过图像分割获得前景和背景,并进行识别和检测前景中的基、层、帽、边四个结构元素,利用层式建模和曲线Morphing的建模方法进行三维重建达到平滑、过渡和不规则曲面建模的效果,最后网格化、映射纹理和三维模型格式输出,最终实现三维建模。本发明避免了多张图片建模的庞大的计算量和复杂的操作,实时性较好,计算量较少,同时可视化效果好且有着广阔的应用前景和应用领域。
搜索关键词: 基于 单张 图片 三维 建模 实现 方法
【主权项】:
1.一种基于单张图片的三维建模实现方法,其特征在于包括如下步骤:步骤1、输入单张图片和图片分割基于Unity3D开发平台,输入单张图片并显示在窗口中;利用前背景之间纹理信息和边界信息的差异,对输入的单张图片实现前景分割,得到并保存需要的遮罩图、前景图和纹理信息;步骤2、结合步骤1中的遮罩图,对步骤1中分割出的前景内容进行轮廓和特征点的检测使用边缘检测算子对步骤1中分割出的包括建模对象的前景内容进行轮廓检测,标定轮廓每个点的贡献值,递归删除贡献值小于阈值范围的点,不断演绎出前景图中不同层的轮廓,将移除贡献值小于阈值范围的点后所剩余的轮廓点作为特征点,并构成特征点集合P;步骤3、子级轮廓的提取、对称轴提取和对称轴的曲线拟合(1)子级轮廓提取对建模对象进行轮廓检测的过程中会检测出多层级的轮廓集合C:C={ci|ci={pi,j|j∈[0,m‑1]},i∈[0,n]},其中,pi,j是第i个轮廓ci第j个点的坐标,m表示轮廓的索引值,n是轮廓上点的索引值;首先,选择特征点集合n表示特征点集合P点的个数,xi和yi是点pi的横纵坐标值,特征点集合P对应的轮廓ci,根据对应的pi点分解成多个边a表示特征点集合P中某个特征点的索引值,b表示a所对应的特征点后一个特征点的索引值;分解后轮廓集合C的表达式为其中m表示轮廓的个数,ci表示第i个轮廓,a,b,c,...,f均是索引值;采用逆时针顺序选择边进行组合,通过计算每条边起始点之间的欧式距离值的大小,确定好连接顺序和方向后,通过迭代完成子级轮廓连接和提取;(2)使用基于轮廓逼近的中轴剪枝算法进行对称轴提取首先,使用最小二乘法贝塞尔对轮廓边缘进行曲线逼近,如公式(1)所示:其中,p0,p1,p2,p3,pi表示点,S表示逼近后的曲线,ti∈[0,1],ε表示轮廓点的个数;(3)同时使用最小二乘法进行对称轴f(x)的曲线拟合,如公式(2)所示:f(x)=a0+a1x+a2x2+...+akxk  (2)其中,k表示k次多项式,a0,a1,a2,...,ak表示多项式系数;步骤4、创建基、帽、层、边四个元素(1)创建基结构创建基结构时需要结合用户操作,若建模对象是立方体,则在立方体基标定时,用户点击A、B、C三处,通过三维空间的逆变换获得相应的空间坐标,设定B点的三维空间坐标z值小于A点的z值且AB之间的深度距离Φ是定值,结合A、B点所在的图像坐标的位置,得出公式(3):其中,SA和SB是点A、B的图像坐标,三维空间点A(xA,yA,zA),B(xB,yB,zB),C(xC,yC,zC),根据得到C点的z值zc若建模对象是圆形时,则在进行圆形基标定时,用户让底面圆形按照固定轴进行旋转,当旋转后的椭圆形投影图像和实际图片中的图片的投影相吻合时释放鼠标,根据旋转角度θ,即可获得相应的旋转矩阵;结合GUI功能,通过鼠标绘制出帽在三维空间的线条形状,通过贝塞尔曲线,进行添加、删除、移动锚点和控制杆的操作,实现三维空间位置属性的调整;在基标定完成后,对基结构进行三角剖分,以及将基结构进行网格化;(2)创建边结构在步骤2中,检测到输入图片的前景内容的轮廓,即得到了该建模对象的边缘信息,使用点集来表示轮廓,同样,也使用点集来表示边结构其中,S表示边结构,xi,yi表示边结构上所有点的坐标值,τ表示边结构点的个数,由于边是轮廓点集C去掉基和帽剩余的点的集合,用来表示帽的点集,其中K表示点的个数,ti表示帽上的某点,那么得出公式(5),其中N表示轮廓中点的个数,Q表示基结构点的个数,使用Base表示基结构:根据步骤3中的对称轴提取和拟合得到的对称轴f(x)曲线,将边结构分解为两侧点集Pleft={pa,...pb},Pright={pb,pb+1,...pa},其中pa是边结构起点,pb是边结构上的某个点,对任意边结构上的点pi=(xi,yi),带入公式(2),如果满足||f(xi)‑yi||≠0,则该点pi在对称轴f(x)曲线的“左右侧”,当||f(xi)‑yi||<0时,该点pi在对称轴f(x)曲线的左侧,当||f(xi)‑yi||>0时,该点pi在对称轴f(x)曲线的右侧,根据每个点pi的计算结果,依次添加到相应的两侧点集Pleft和Pright中去,最终的边结构可简化用公式(6)表示:(3)创建帽结构基于基结构进行帽结构的创建,当建模对象的基结构和帽结构具有相同的结构时,帽结构默认是基结构的复制;若不具有相同的结构的情况下,需要对帽结构进行提取,沿着帽结构进行移动,通过算法自动分割出帽结构二维空间的轮廓C2,C1是由底面基结构复制得到并映射到二维空间中的轮廓,轮廓C1上任意点p0、p0点对应到C2上的点p1和C1的中心点Center在一条直线上;将C1的三维空间表示为VC1,C2的三维空间表示为VC2,p0、p1和Center的三维点表示分别为V0、V1和Vcenter,定义三维空间到二维空间的映射关系表示符号为→,由于p0、p1和Center在一条直线上,则V0、V1和Vcenter也在一条直线上,将V0沿着直线向Vcenter等距运动到V',将V'→p',计算此时p'的二维坐标和p1坐标是否近似相等,不相等的话V0继续运动,相同或在阈值误差范围内,记录当前V'点的坐标为V1空间坐标;同样,计算VC1上面所有点沿着Vcenter方向等距运动到VC2对应的V'点,再将V'映射到二维空间p',并保证p'和C2上对应的点近似相等,即可求解出帽结构的三维空间坐标,并且C1和C2的三维空间图形是在同一个平面上;(4)创建层结构层结构的创建是基于步骤5点对的创建,且层结构的基本形状取决于基平面和帽结构;当建模对象是圆柱形的时候,基结构和帽结构都是圆形,其中基平面是圆形的面,所以层结构也是圆形;如果基平面是圆形面而帽结构是三角形,那么层结构的形状是两者之间的过渡形状;计算点对的中心点坐标、缩放比例和旋转角度,将基结构中心复制和平移、缩放、旋转到该中心点,形成此中心点所在的层结构,同理,其他层也是同样处理;层结构的形状取决于基结构和帽结构,层结构的数量取决于边结构,边结构指定了层的方向的空间位置,点对决定了层的缩放比例s、旋转角度θ,层结构f(l)由公式(7)表示如下:所述的方向是指图像坐标系下y轴的方向向量;步骤5、创建点对根据步骤3中曲线逼近得到的对称轴f(x),将建模对象的轮廓均匀分解为两侧点集Pleft、Pright,其中,Pleft={pa,pa+1,...,pb},Pright={pb,pb+1,...,pa},pa是轮廓起点,pb是轮廓上的点,对点任意轮廓上的点pi=(xi,yi),带入公式(2),如果||f(xi)‑yi||=0,说明点pi在曲线f(x)上;如果||f(xi)‑yi||≠0,点pi在f(x)曲线的左右侧;创建点对需要对对称轴f(x)进行均匀采样,对公式(2)计算一阶导数即是点pi的切线方向向量利用方向向量和点pi,创建经过点pi的法线且法线函数其中pi=(xi,yi),使用||N(xi)‑yi||≠0将点集Pleft、Pright分别分成两侧,分别计算每侧点集到法线的距离最短的点p1left、p2left、p1right p2right,其中p1left和p2left在法线的同侧,p1right和p2right在法线的同侧,点即是逼近相交法线的轮廓点,同理计算另一侧的轮廓点这样得到的两个轮廓点组成一组点对pp=(p1,p2);步骤6、曲线Morphing将步骤5中创建的任意相邻的层结构称为相邻层,使用相邻层之间的变换,解决从一个曲线变换到另一个曲线,从而生成中间变换过程,模拟过渡效果,从相邻层中获得x‑z平面的起始点集C1=(x1,y1)...(xn,yn)和目标点集Ct=(x1,y1)...(xn,yn),首先对起始点集C1和目标点集Ct做采样处理,采样距离是Δ,即其中i∈[1,m‑1],表示采样后的点集,u表示的个数,分别表示采样后点i的横纵坐标值,dE表示两点之间的距离;利用编辑距离算法,构造字符串集合Z=z1...zm‑1,其中pi=(xi,yi),pi+1=(xi+1,yi+1),使用距离函数来衡量两条曲线之间的不相似度,使用公式(8)求解出编辑矩阵:假设是从的某个中间过程,根据公式(9),推理可得公式(10):p(t)=(1‑t)p1+tp2,t∈[0,1]  (9)通过取值的不同,可以生成k个中间层;步骤7、相邻层间三维建模,创建网格步骤6中得到层Call=C0,C1,...,Cσ‑1,其中C0是基结构且C0已经网格化,σ表示的是层的个数,其网格化后的面的索引值是I(σ,0),I(σ,1),...,I(σ,δ‑1),其中δ表示索引值,索引值最大的是Imax,构建网格时,计算第σ层第δ个点的索引值I(σ,δ):其中,N表示每个层的点的个数;构建网格的时候,先创建四边形,由两个逆时针排序的三角形组合而成,计算第ψ层第ρ个四边形Quad(ψ,ρ)的索引值:Quad(ψ,ρ)={(I(ψ+1,ρ+1),I(ψ+1,ρ),I(ψ,ρ)),(I(ψ+1,ρ+1),I(ψ,ρ),I(ψ,ρ+1))}  (12)对于所有创建好的四边形Quad(ψ,ρ),创建所有三角形的集合其中ψ是层的个数,ρ是每层点的个数,每层的半径rψ=ω*rψ‑1,其中ω是相邻层之间的缩放比例;不同层之间y值y=λ*(||Sψ‑Sψ‑1||),其中||Sψ‑Sψ‑1||表示第ψ和ψ‑1层在图像中的y轴方向的距离,λ表示每个像素对应的三维空间的尺寸单位;每个索引值I(σ,δ)对应的点的坐标如公式(13)所示:步骤8、纹理映射和三维模型格式输出,实现三维建模从步骤1中得到遮罩图和前景图,结合OpenCvSharp中的CopyTo方法对前景图进行前景区域提取,得到前景区域后再对它进行预处理;对前景区域使用图像形态学膨胀和腐蚀算法处理其边界,对非前景区域使用平均像素值进行填充,最后得到的前景区域即是纹理贴图;将步骤7中得到的三维模型的每个点的坐标映射摄像机最远面的二维空间中去,再对得到的二维点横纵坐标分别除以贴图纹理的宽高长度值,从而得到每个点的UV映射坐标,结合纹理贴图应用于模型显示实现纹理映射;对三维模型的点进行平滑和降噪处理,优化面片后以三维模型格式输出,实现三维建模。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于厦门大学,未经厦门大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201810381028.2/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top