文章快速检索     高级检索
  浙江大学学报(理学版)  2016, Vol. 43 Issue (6): 647-656  DOI:10.3785/j.issn.1008-9497.2016.06.004
0

引用本文 [复制中英文]

缪永伟, 刘丽丽, 张旭东, 刘震. 基于对称性的单幅图像花朵建模[J]. 浙江大学学报(理学版), 2016, 43(6): 647-656. DOI: 10.3785/j.issn.1008-9497.2016.06.004.
[复制中文]
MIAO Yongwei, LIU Lili, ZHANG Xudong, LIU Zhen. Symmetry based 3D flower modeling using single-image[J]. Journal of Zhejiang University(Science Edition), 2016, 43(6): 647-656. DOI: 10.3785/j.issn.1008-9497.2016.06.004.
[复制英文]

基金项目

国家自然科学基金资助项目(61272309);浙江省自然科学基金资助项目(LY16A010021)

作者简介

缪永伟(1971-), ORCID: http://orcid.org/0000-0002-5479-9060, 男, 博士, 教授, 主要从事计算机图形学、数字几何处理、计算机视觉、虚拟现实等研究, E-mail:ywmiao@zjut.edu.cn

文章历史

收稿日期:2016-07-18
基于对称性的单幅图像花朵建模
缪永伟1 , 刘丽丽1 , 张旭东1 , 刘震2     
1. 浙江工业大学 计算机科学与技术学院, 浙江 杭州 310023;
2. 浙江工业大学 理学院, 浙江 杭州 310023
摘要: 基于自然界各类花朵普遍具有的对称特性,提出了一种利用单幅图像的三维花朵建模方法.根据输入的单幅花朵图像,用户通过交互方式描绘花朵每个花瓣的2条边缘曲线,对花朵边缘曲线的顶部顶点和底部顶点进行最小二乘圆锥拟合,利用拟合得到的圆锥计算花朵各花瓣的对称面; 根据不同种类花朵所固有的对称特性和各个花瓣的对称面信息,计算花瓣2条边缘曲线上所有采样点的深度,得到其三维构造曲线; 利用恢复了深度信息的三维构造曲线作离散化网格处理,构建各个花瓣的三维模型,进而重建整个花朵的三维模型; 最后根据输入的单幅图像纹理信息合成花朵的表面纹理,得到了真实感较强的花朵模型.实验结果表明:该建模方法充分利用了花朵的对称特性,用户交互少、建模效率高,能够准确地从单幅花朵图像中恢复其深度信息和整体结构,方便快捷地实现花朵的三维重建.
关键词: 三维重建    对称特性    花朵模型    手绘线条    深度计算    
Symmetry based 3D flower modeling using single-image
MIAO Yongwei1 , LIU Lili1 , ZHANG Xudong1 , LIU Zhen2     
1. College of Computer Science and Technology, Zhejiang University of Technology, Hangzhou 310023, China;
2. College of Science, Zhejiang University of Technology, Hangzhou 310023, China
Abstract: Based on the common symmetry properties of natural flowers, an interactive approach is proposed in this paper for modeling 3D flower using a single floral image. Firstly, the user interactively sketches two edge lines of each flower petal on the input single image. A cone then can be constructed by least squares fitting on the top and bottom sample points of the edge lines. Thus, the symmetry plane of each petal can be determined by the fitted cone. Further, the depth information of the couple edge lines on each petal can also be calculated with respect to the inherent symmetry properties of different kinds of flowers and their symmetry planes. Using the 3D constructive curves, each petal model can be generated as a triangular mesh, and the whole 3D flower model can be obtained. Finally, according to the texture information of the input image, the realistic flower model can be created by synthesizing the flower texture. Experimental results illustrate that our modeling scheme for 3D flowers can recover the depth information effectively and create the whole flower structure accurately, which can generate the 3D realistic flower models in a convenient manner.
Key words: 3D reconstruction    symmetry property    flower model    sketch curves    depth calculation    

植物的三维建模是计算机图形学和计算机视觉等领域的研究热点[1-5].随着图形学算法、虚拟现实及可视化技术等的发展, 三维建模技术也更多地应用于花朵建模.三维花朵模型在室内外场景重建、植物学和生物学研究、园林艺术发展以及真实感游戏等方面均发挥着重要作用.然而, 花朵几何结构和种类的多样性,使得其建模过程较复杂和困难.具体地说, 花朵三维几何结构的多样性主要表现在任何种类的花朵都包含花瓣、雄蕊、雌蕊和花萼等结构, 且各种结构之间相互约束; 花朵的种类复杂性主要体现在花朵种类繁多且不同种类花朵结构差异较大.目前,已有的花朵建模方法主要为基于手绘曲线的交互式建模, PRUSINKIEWICZ等[6]将花瓣看作广义的柱体, 通过用户定义的手绘曲线表示花瓣的轴来进行花朵建模, IJIRI等[7]提出了花卉表和花序的概念.这种建模方法虽然能够创建完整的花朵模型, 但需要较多的用户交互,建模时间长、过程复杂, 且基于手绘的建模对自然界真实花朵的形态及种类的表示缺乏真实性.因此,需要寻求快速创建花朵三维模型的统一方法.

一般来说, 人们可以根据花朵的花瓣来表征自然界各类花朵的形状结构[8], IJIRI等[9]、LI等[10]、LIANG等[11]在研究过程中仅使用花瓣的形状变化来模拟花朵的生长过程.因而,要解决花朵建模中的结构复杂性问题, 可主要考虑花朵的花瓣结构而忽略雄蕊、雌蕊和花萼等其他附属结构.

同时, 研究发现,绝大多数花朵在生长乃至进化的过程中, 结构上表现出一定的对称性[12],有两侧对称和辐射对称2种形式[13].两侧对称是指通过花中心轴有且只有一个对称轴能将花朵分为对等的两半, 而辐射对称是指花中所有同类型的器官(如花瓣等)都完全相同且均匀排列在花托周围, 形成2个或者2个以上对称面.HONG等[14]利用对称性以及多视角几何解决了单幅图像的结构以及标定问题.CORDIER等[15-16]提出了一种镜像对称的物体表面重建算法, 使得生成的三维模型侧影轮廓可以垂直投影为输入的二维曲线.根据临摹描绘得到对称物体的二维手绘线画图, ÖZTIRELI等[17]提出了一种可以从一系列平面曲线重建三维对称物体的方法.TEVS等[18]提出了一种利用几何体的对称关系实现复杂几何匹配的算法.MIAO等[19]提出了一种利用对称性计算手绘线条深度信息的方法, 从而重建生成三维对称自由形体.将建筑物的对称特性引入相机校准中, JIANG等[20]提出了一种基于单幅图像输入的三维建筑物重建方法.

与以往的花朵建模方法相比, 本文使用的建模方法旨在利用花朵对称性及其结构的特殊性, 通过对输入的单幅图像进行少量的交互处理,结合一定的深度计算重建花朵模型.主要贡献有:1)提出了一种新颖的花朵建模方法, 即使用对称性解决花朵的三维重建问题; 2)通过对输入图片简单的交互处理, 实现了对多层花朵结构的三维建模, 减少了对输入图像的预处理工作; 3)设计了一个简单的花朵建模平台, 在建模的过程中将图片交互窗口和三维渲染窗口分开, 使得三维建模过程更加方便、高效.

1 相关工作

花朵的三维建模方法主要包括:过程式的全交互花朵建模方法[7]、基于花瓣数据库的形状匹配与变形拟合的花朵建模方法[21]、基于单幅图像的花朵建模方法[22].

在过程式的交互建模方面, IJIRI等[7]提出了一种基于花卉表和花朵花序的交互式快速建模系统, 该系统将结构编辑与几何编辑分开, 并采用自下而上的建模方式生成结构复杂的花朵模型.结合交互式手绘建模方式[23-24], IJIRI等[25]提出了一种由图像引导的手绘式花朵建模系统, 该系统采用从上到下的建模过程, 即在概念设计过程中就完成整体的花朵结构设计, 在建模过程中根据最初设计的花朵结构引导各部分的建模.基于花朵的生物学机理, 宋成芳等[26]采用交互式方法实现了花朵的三维建模并模拟了花开的过程.过程式的交互花朵建模方法虽然能够创建出复杂的花朵模型, 但需要大量的人工交互, 耗时长且过程复杂.

为了减少用户交互,实现高效建模, 研究者们提出采用模板数据库的方法进行花朵建模.ZHANG等[21]针对需要重建的不同种类花朵, 如百合花、三色堇等, 构建了其对应的花瓣数据库, 实现了数据驱动的花朵建模.葛娟等[27]使用三维扫描点云并结合不同叶片法,对差距较大的叶片进行聚类, 用一个叶子模型将每个类拟合成三维模型.数据驱动的建模方法能够构造图像中的花朵模型, 但该类方法需要进行较多预处理, 包括预先进行图像分割和花瓣数据库构建等, 其建模的精准性往往和提供的模型库有关.

基于单幅图像的建模方式,得到了计算机图形学和计算机视觉等领域研究者的普遍关注[22, 28-30].为了减少用户交互, YAN等[22]利用单幅图像实现了花朵的半自动建模, 该方法通过拟合花朵生成一个花瓣模板模型, 并对照其他花瓣利用该模板模型进行相应变形,实现花朵的三维建模.TAN等[28-29]根据输入的单幅图像, 通过定义植物生长规则创建的三维分支库实现花朵树木的建模.为了重建单幅输入图像中的物体, 缪永伟等[30]提出了一种利用二维手绘线画图重建生成三维自由形体的方法.

基于花朵普遍具有的对称特性, 本文提出了一种基于单幅图像的三维花朵建模方法.根据输入的单幅花朵图像, 首先通过交互描绘图像中花朵各个花瓣的2条边缘曲线, 根据这些边缘曲线的顶点信息,将花朵拟合到一个圆锥面上, 并利用花朵特有的结构和对称性,计算每个花瓣的对称面, 然后根据求得的对称面计算每个花瓣的2条构造曲线的深度信息, 最终构建整个花朵的三维模型.不同花瓣的边缘曲线深度的计算方法完全统一, 因此该方法适用于处理不同花瓣数目和不同对称面数目的花朵建模; 同时该方法能够简单快速地创建真实感较强的三维花朵模型.与已有的花朵建模方法相比, 本文提出的建模方法充分利用了花朵的对称特性并辅以少量的用户交互, 从而可高效恢复输入图像中花朵花瓣的精确深度信息, 快捷生成三维花朵模型.

2 方法概述

自然界中花朵对称均衡的结构美成为很多艺术家及学者研究的重点.根据对称类型可以将花朵分为两侧对称花(如图 1(a)中仅有一个对称面的花)和辐射对称花(如图 1(b)中有多个对称面的花)[13].然而, 利用单幅输入图像时, 由于两侧对称花所包含的结构信息较少,难以利用花朵的对称性很好地恢复其深度信息.

图 1 花朵的对称性 Fig. 1 Symmetries of flowers

本文主要考虑辐射对称的单视图花朵建模,旨在利用对称性及其结构的特殊性, 通过对单幅输入图像进行少量的交互, 计算花瓣深度信息以重建花朵模型.建模流程如图 2所示.

图 2 基于对称性的花朵建模流程 Fig. 2 Diagram of symmetry based 3D flower modeling

(1) 基于单幅图像的花瓣线画图生成.根据输入的单幅二维图像(见图 2(a)), 用户在图像画板上交互地手动描绘花朵上每个花瓣的2条边缘曲线(见图 2(b)), 系统即时捕捉手绘边缘曲线上的点, 并插值生成相应的二次B样条曲线, 然后根据用户自定义的每条边缘曲线应包含的采样点数,对得到的二次B样条曲线进行均匀采样.

(2) 利用对称性计算花瓣边缘曲线的深度信息.在确定每个花瓣的2条边缘手绘曲线后, 利用对称性计算这2条手绘曲线上每对采样点的深度信息.基于花朵特殊的对称结构和生物结构, 在把花瓣的2条手绘边缘轮廓线看作其三维构造曲线投影线的前提下, 先将整个花朵拟合到一个圆锥上(见图 2(c)), 通过拟合圆锥确定花朵上每个花瓣的对称面.通过遍历每个花瓣上的2条边缘手绘曲线, 结合求得的该花瓣对称面信息, 计算该花瓣2条构造曲线的深度信息.

(3) 多层花瓣对称性的处理.对于层次结构较清晰的花朵, 在拟合圆锥时可以使用多层花瓣的特殊处理方式解决.根据输入的花朵图像, 对位于不同层上的花瓣进行相应的圆锥拟合, 求得不同层上花瓣的对称面, 并通过遍历每层花瓣的2条边缘手绘曲线, 结合分层处理时得到的相应花瓣的对称面信息, 计算每个花瓣2条曲线的深度信息.

(4) 花朵模型的生成和纹理合成.在计算得到每个花瓣的2条边缘曲线的深度信息后, 为了达到更好的三维建模效果, 算法规定花朵三维模型上每个顶点处的深度值均大于零.在完成每个花瓣的处理后, 通过离散化网格构建每个花瓣的三维模型, 进而得到整个花朵的三维模型(见图 2(d)).进一步, 根据输入图像的纹理信息为生成的花朵模型进行纹理合成, 最终生成真实感很强的三维花朵模型(图 2(e)为模型的正视图, 图 2(f)~(h)分别为模型左、右和侧视图).

3 单幅图像花朵建模 3.1 基于单幅图像的花瓣线画图生成

在花朵的三维建模中, 根据输入的单幅图像, 用户交互,描绘图像中每个花瓣的2条边缘曲线, 并对边缘曲线进行采样处理.花瓣线画图生成,包括用户交互和花瓣边缘曲线采样预处理, 具体如下.

3.1.1 用户交互

在单视图建模中, 直接利用图像的几何投影信息得到其三维深度信息比较困难, 这是由于输入的单幅图像往往信息不全, 比如图像中存在物体遮挡现象, 导致建立的三维模型精度不高.为了有效克服该缺陷, 采用少量人工交互的方式对遮挡的花瓣曲线进行补全.根据单幅花朵图像, 用户以交互方式描绘每个花瓣的2条边缘曲线, 对于被遮挡的花瓣,用户可根据花瓣边缘曲线走向将其补全.需要注意的是, 本文方法需要利用花瓣边缘曲线的起点和终点拟合表示花朵整体结构的椭圆, 如图 3所示的花朵, 花瓣的起点通常取为P1P2P3P4P5, 每个顶点Pi为每个花瓣2条边缘曲线的共同起点; 终点通常取花朵花蕊的中心即圆锥顶点O.

图 3 用户交互 Fig. 3 User interactions
3.1.2 花瓣边缘曲线的采样预处理

根据用户在描绘的花朵图像中每个花瓣的2条边缘曲线, 系统自动捕获花瓣边缘手绘线的离散采样点并将其保存.随后在利用花朵的对称特性计算每个花瓣的对称面时, 不再对各个花瓣手绘的先后顺序作任何要求, 但每个花瓣的2条边缘曲线作为三维空间中对称曲线的投影线需成对保存.

利用系统自动捕获每个花瓣一对对称曲线采样点, 通过等间距插值生成二次B样条曲线, 并对每条二次B样条曲线进行均匀离散采样, 采样时通常要求每条二次B样条曲线被重采样为用户指定数目的采样顶点集合.需要注意的是, 采样点数目过少会影响花瓣模型的建模效果, 过多会增加计算量, 本文采样顶点数目取150.在花朵的三维重建中, 需要恢复每个花瓣重采样后的2条边缘曲线的三维信息, 下节将详细介绍利用花朵结构的对称性,结合曲线采样点的对称关系,计算每个花瓣上采样点的深度信息.

3.2 利用对称性计算花瓣边缘曲线深度信息

对于预处理阶段生成的花朵每个花瓣一对离散化边缘曲线, 结合花朵结构的对称性, 计算手绘线条上对称采样点的深度坐标信息, 并利用求得的坐标深度信息生成各花瓣边缘的三维构造曲线.研究发现[12-13], 自然界中大量花朵的整体结构都可以用一个倒圆锥表示.利用圆锥拟合以简化花朵建模的相关计算, 同时可用拟合的圆锥快速计算花朵各个花瓣的对称面法向量,最后利用各个花瓣对称面计算花瓣边缘曲线的深度.

3.2.1 花朵整体结构的圆锥拟合

根据预处理过程中对花朵每个花瓣的2条边缘曲线产生的对称点集合, 采用最小二乘法对花朵整体结构进行圆锥拟合, 具体如下:

1) 首先,利用最小二乘法对各个花瓣的边缘曲线起点集合(如图 4中的P1P2P3P4P5)进行椭圆拟合, 得到的椭圆实际上是三维圆锥底面在投影下的二维成像, 从而可以得到椭圆圆心(图 4(a)中的O′点)及其长短轴的长度.

图 4 花朵的圆锥拟合 Fig. 4 Conic fitting of flower

2) 然后,利用各个花瓣边缘曲线的底端终点集合,取其平均值点作为圆锥顶点(图 4(a)中的O点).

3) 为了得到花朵整体结构的三维拟合圆锥, 需要计算圆锥高即图 4(a)中的OO″长度R.如图 4(a)所示, 设平面∏1为二维投影面即XOY平面, 三维空间中的圆锥经过正投影变换后, 圆锥的底面圆投影成为二维椭圆, 即在步骤1)中由花瓣起点集合拟合的椭圆.利用步骤2)中得到的圆锥顶点O计算其与投影椭圆的圆心O′之间的距离r.设平面∏2是过OO′且垂直于投影平面∏1截三维圆锥得到的平面, 由正投影性质易知, 平面∏2上圆锥底面直径AB的长度为拟合椭圆的长轴, AB的投影BC的长度为拟合椭圆的短轴.花朵三维圆锥结构的底面中心O″的投影点为O′, 且设垂直投影高度为h, 如图 4(a)所示, 由于OO″⊥AB, OO′⊥OO″, ACBC, 在平面∏2中由△ABC~△OOO′可得:

$ \frac{R}{r} = \frac{{\left\| {AB} \right\|}}{{\sqrt {{{\left\| {AB} \right\|}^2}-{{\left\| {BC} \right\|}^2}} }}. $ (1)

根据式(1)可以求得R的值, 同时椭圆的倾斜角θh值分别计算如下:

$ \theta = arccos\left( {\frac{r}{R}} \right), $ (2)
$ \theta = {\rm{arccos}}\left( {\frac{r}{R}} \right), $ (3)

在求出Rθ后, 便得到了花朵整体结构的三维拟合圆锥.图 4(b)展示了在圆锥拟合后的花朵结构中, 各个花瓣的对称面分别为OOPi(i=1, 2, …, 5).

3.2.2 花瓣对称面法向量的计算

在具有辐射对称的花朵中, 每个花瓣的对称面法向量的计算具有相似性, 本节中的法向量计算及下一小节中花瓣曲线深度的计算均以一个花瓣的计算为例, 其余花瓣可以类似得到.

方便起见,直接使用用户描绘的画板绘制平面作为XOY平面, 即该平面上点的z值为0, 人工交互输入的花朵每个花瓣边缘曲线的手绘线条可以看作相应三维构造曲线的平行投影, 投影方向垂直于绘制平面.因此, 所求三维构造曲线上点xy的取值,即为画板上输入的相应花瓣边缘曲线上采样点的x坐标和y坐标.花朵各个花瓣的2条边缘构造曲线的三维信息计算,主要取决于花瓣边缘曲线上对称采样点z坐标的计算.如图 4(b)所示, 在将花朵拟合到圆锥上后, 算法需要计算各花瓣的对称面法向量.

图 5所示, 点P是花瓣顶点, 平面OPO″为花瓣对称面, n为其法向量.由输入的单幅图像可得点OO″及Pxy坐标, 且OO″⊥OP, Oz=Oz+h.由于OO″⊥PO″,故

图 5 花瓣对称面法向量计算 Fig. 5 Normal vector computation of petal symmetry plane
$ \begin{align} & \left( {{{{O}''}}_{x}}-{{O}_{x}} \right)\cdot \left( {{{{O}''}}_{x}}-{{P}_{x}} \right)+\left( {{{{O}''}}_{y}}-{{O}_{y}} \right)\cdot \\ & \left( {{{{O}''}}_{y}}-{{P}_{y}} \right)+\left( {{{{O}''}}_{z}}-{{O}_{z}} \right)\cdot \left( {{{{O}''}}_{z}}-{{P}_{z}} \right)=0, \\ \end{align} $ (4)

$ {{{{O}''}}_{z}}-{{P}_{z}}=\left[\left( {{{{O}''}}_{x}}-{{O}_{x}} \right)\cdot \left( {{{{O}''}}_{x}}-{{P}_{x}} \right)+\left( {{{{O}''}}_{y}}-{{O}_{y}} \right)\cdot \left( {{{{O}''}}_{y}}-{{P}_{y}} \right) \right]/\left( -h \right). $ (5)

另外, n为对称面法向量, 故nOP, nOO″, 有

$ \begin{array}{l} \mathit{\boldsymbol{n}} = PO'' \times OO'' = \\ \left| {\begin{array}{*{20}{c}} i&j&k\\ {\left( {{{O''}_x}-{P_x}} \right)}&{\left( {{{O''}_y}-{P_y}} \right)}&{\left( {{{O''}_z}-{P_z}} \right)}\\ {\left( {{{O''}_x} - {O_x}} \right)}&{\left( {{{O''}_y} - {O_y}} \right)}&{\left( {{{O''}_z} - {O_z}} \right)} \end{array}} \right|. \end{array} $ (6)

由已知$\left\| {{{O''}_z} - {O_z}} \right\| = h $得到式(5), 进而可以计算该花瓣对称面法向量n, 如式(6)所示.同时, 其余花瓣的对称面法向量可以类似计算, 且计算过程中花瓣之间互不影响.此外, 由于该方法是根据之前保存的花瓣结构顺序求其对应的法向量, 故手绘花瓣的边缘曲线时可以根据用户的习惯自定义手绘顺序, 但必须保证一个花瓣的2条边缘曲线描绘完后再进行下一个花瓣的描绘.

3.2.3 花瓣边缘曲线深度的计算

根据计算得到的各个花瓣对称面信息, 类似于MIAO等[19]的方法, 可以求出每个花瓣2条边缘曲线上每对对称采样点的深度.

图 6所示, 设点P1P2分别为花瓣2条边缘曲线上的一对对称点, 花瓣对称面为∏3, 对应法向量为n, nn的某一垂直向量, 由对称性可知:

$ \left( {{P_2} + {P_1}} \right) \cdot \mathit{\boldsymbol{n}} = 0,$ (7)
$ \left( {{P_2} - {P_1}} \right) \cdot {\mathit{\boldsymbol{n}}^ \bot } = 0. $ (8)
图 6 花瓣边缘曲线深度计算 Fig. 6 Depth computation of petal edge lines

为计算方便, 若n=(nx, ny, nz)(此处nxnz均不为零), 不妨取n=(-nz, 0, nx), 解得:

$ \begin{array}{*{20}{c}} {{z_1} = }\\ {- \frac{1}{2}\left[{\frac{{\left( {{x_2} + {x_1}} \right) \cdot {n_x}}}{{{n_z}}} + \frac{{\left( {{y_2} + {y_1}} \right) \cdot {n_y}}}{{{n_z}}} + \frac{{\left( {{x_2}-{x_1}} \right) \cdot {n_z}}}{{{n_x}}}} \right], } \end{array} $ (9)
$ \begin{array}{*{20}{c}} {{z_2} = }\\ {- \frac{1}{2}\left[{\frac{{\left( {{x_2} + {x_1}} \right) \cdot {n_x}}}{{{n_z}}} + \frac{{\left( {{y_2} + {y_1}} \right) \cdot {n_y}}}{{{n_z}}}-\frac{{\left( {{x_2}-{x_1}} \right) \cdot {n_z}}}{{{n_x}}}} \right]. } \end{array} $ (10)

从而, 可以计算得到花瓣2条边缘曲线的各对称采样点的深度, 进而得到每个花瓣的2条三维边缘构造曲线.

3.3 多层花瓣对称性的处理

多层花朵的建模与单层花朵类似, 可以将其拟合到2个甚至多个圆锥面上, 同时遍历花瓣的每一层, 对每个处在同一层的花瓣分别执行单层花朵建模计算, 从而完成整个花朵的三维建模, 如图 7所示.对于输入的花朵照片, 用户首先判断图中的花朵分为几层以及每一层的花瓣数目; 然后对每一层花瓣分别进行圆锥拟合(见图 7(b)), 求出每一层花各个花瓣的2条三维边缘构造曲线; 最终构建出整个花朵的三维网格模型(见图 7(c)).

图 7 多层花朵的建模处理 Fig. 7 Modeling of multi-layer petal

为计算方便, 仅考虑2层花朵的建模.在用户手绘过程中, 首先按顺序描绘第1层上的所有花瓣, 接着继续描绘第2层上的所有花瓣.设第1层花瓣数目为m, 将前m个花瓣单独保存并作为单个花朵进行圆锥拟合处理和深度计算; 接着处理第2层花瓣, 设其花瓣数目为n, 将后n个花瓣单独保存并作与前m个花瓣类似的处理.需要指出的是, 由于对同一层的花朵花瓣需进行圆锥拟合, 因此要求每一层上的花瓣数目至少为3个, 当然不同层上的花瓣数目可以不同.

3.4 花朵模型的生成和纹理合成

在计算得到花朵各个花瓣的2条三维边缘构造曲线后, 为了得到形状逼真的花瓣模型, 在每对边缘对称采样点之间均匀采样一定数量的三维点作为构建花瓣网格模型的顶点.如图 8(a)所示, 顶点PiPi′为其中一对边缘对称点, 边缘对称点经均匀采样可以得到顶点Pi, 1, Pi, 2, …Pi, k, Pi, k+1, …, Pi, m(实验中m取18).将花瓣的2条边缘构造曲线上所有对称点及对称点之间的采样点按照顺序依次保存为顶点集合L1, L2, …, Ln(设每条花瓣边缘上对称采样点个数为n), 其中集合Li为{Pi, Pi, 1, …, Pi, k, Pi, k+1, …, Pi, m, Pi},且各集合中包含的采样点数目相同.在构建花朵的三维网格模型时, 依次选取集合Li与集合Li+1={Pi+1, Pi+1, 1, …, Pi+1, k, Pi+1, k+1, …, Pi+1, m, Pi+1}上的2组相邻顶点(如图 8(a)圆圈中的4个点), 按照Pi, k, Pi, k+1, Pi+1, k顺序将该3点形成的面片添加到模型中, 同时将Pi+1, k, Pi, k+1, Pi+1, k+1形成的面片作为相邻面片添加到模型中, 对每组顶点集合Li上的所有点进行类似操作, 直至遍历所有顶点对, 得到整个花瓣的三角网格模型, 图 8(a)为花瓣的三角网格表示, 图 8(b)为生成的花瓣模型, 图 8(c)为花瓣模型经纹理合成后的效果.

图 8 模型生成和纹理合成 Fig. 8 Flower model generation and texture synthesis
4 实验结果与讨论

本算法在3.40 GHz Intel (R) Core (TM) PC机上利用Visual C++实现, 图形渲染采用OSG3.0.1渲染引擎.根据输入的单幅花朵图像, 用户通过交互方式描绘花朵每个花瓣的2条边缘曲线, 系统能够对花朵整体结构进行圆锥拟合; 进一步利用拟合圆锥计算花朵各花瓣的对称面信息; 基于花瓣对称面信息, 计算各个花瓣的边缘构造曲线的深度信息, 从而得到花瓣的三维模型; 最终重建生成整个花朵的三维模型.

图 9给出了利用本文方法重建花朵三维模型的例子, 图 9(a)为输入的花朵图像, 图 9(b)为生成的三维花朵模型, 图 9(c)为经纹理合成后的三维花朵模型, 图 9(d)图 9(e)分别为不同视角下的花朵模型.从中可以看出, 本文方法对具有3~6个花瓣的花朵均能实现高效三维建模.同时, 方法对重建的花朵种类没有限制, 不同花瓣数目的花朵有相应数目的对称面, 如图 9中自上而下分别给出了3个花瓣的紫露草花(有3个对称面)、4个花瓣的秃疮花(有4个对称面)、5个花瓣的赛葵花(有5个对称面)、6个花瓣的百合花(有6个对称面)的建模结果.需要指出的是, 花瓣的数目并不影响其建模方法, 只要图像中的花朵视角一定, 便可构建具有真实感效果的花朵模型.

图 9 单层花朵的三维建模 Fig. 9 3D model reconstruction of single-layer flowers

基于单幅输入图像, 本方法能够方便快捷地重建三维花朵模型.为了验证该方法的有效性, 请一些没有专业建模技能的同学通过简单的学习使用该建模系统进行花朵建模, 建模效果如图 9所示, 平均建模耗时在5 min以内, 且大部分时间花费在花朵花瓣边缘曲线的描绘上, 多数同学认为该建模系统操作容易.用户体验发现, 图像中花朵处于左视角或者右视角时建模效果较好(如图 9中的紫露草花、百合花等), 而在正视角下, 建模效果相对不理想(如图 9第2行的侧视图效果), 这主要由正视图下圆锥拟合产生较大的圆锥误差造成.

此外, 利用本文的建模方法可以处理层次结构分明的多层花瓣的花朵, 图 10给出了多层花朵的建模效果.其中第1行是葱兰花, 其花朵有2层, 每层上有3个花瓣, 花朵共有6个对称面.第2行是韭兰花, 2层, 每层有4个花瓣, 花朵共有8个对称面, 每层上有4个对称面.相对于单层花朵建模来说, 多层花朵交互手绘的线条数目较多, 结构相对复杂, 建模过程往往存在一定的误差.图 10第1行给出了具有6个对称面的葱兰花的建模效果, 图 10(b)给出了重建后结构清晰的三维模型, 图 10(c)(d)(e)分别给出了不同视角下经纹理合成后的葱兰花模型.对比图 10中第2行的具有8个花瓣的韭兰花, 可以看出花朵的对称面数目较多, 往往存在一定的重建误差.

图 10 多层花朵的三维建模 Fig. 10 3D model reconstruction of muti-layer flowers

相较IJIRI等[7]的传统交互式花卉建模方法, 本文方法大大降低了用户的交互工作量, 建模速度更快, 操作更加简单.不需要用户掌握复杂的建模过程,仅需用户描绘图像中花朵各花瓣的2条边缘曲线, 从而大大简化了花朵的三维建模过程.从建模效率上看, 本方法创建花朵模型的时间基本在5 min以内, 而IJIRI等[7]的方法由于需要创建具有完整结构的花朵模型, 一般需15 min左右, 创建复杂花朵场景一般在30~40 min.值得注意的是, 与YAN等[22]的方法相比(见图 11), 本方法利用花朵特殊的结构性和对称性, 计算每个花瓣的三维构造曲线, 从而构建具有较强真实感的花朵三维模型; 而YAN等[22]的方法则利用一个拟合好的花瓣模板来匹配图像中的花朵花瓣, 该方法虽然可以创建出较好的花朵模型, 但无法给出图像中花朵的相对深度信息,且预处理操作较多.与ZHANG等[21]方法中百合花建模效果的比较(见图 12), 其中第1行为ZHANG等[21]的建模效果, 第2行为本方法的建模效果.ZHANG等[21]的方法是利用同一花朵物种花瓣形状的尺度不变性, 构建花朵物种的花瓣数据库, 结合输入的花朵单视角图片的分割结果并对此图片进行扫描,得到花瓣的三维数据信息, 进行花瓣模型变形与匹配构建花朵模型.与ZHANG等[21]方法相比, 本方法在花朵建模中仅需利用单幅输入图像, 建模过程更简单便捷.

图 11 与YAN等方法的比较 Fig. 11 Comparison of the existing method of YAN et al
图 12 与ZHANG等方法的比较 Fig. 12 Comparison of the existing method of ZHANG et al 第1行为ZHANG等的建模效果,第2行为本方法的建模效果.
5 结语

基于单幅输入图像, 提出了一种结合花朵对称性的三维重建方法.通过在绘制平面上手动描绘输入图像中花朵花瓣的2条边缘曲线, 根据其特殊的生物结构特性及输入的边缘曲线信息,将花朵拟合到一个三维圆锥上;再根据花朵的对称性求出每个花瓣对应的对称面, 进一步得到每个花瓣2条边缘曲线上每一对对称点的深度, 构造三维边缘曲线;最后通过离散化网格处理生成花朵的三维模型.由实验结果可知, 该方法可以方便快捷地重建输入图像中的花朵模型.

然而, 输入图像中花朵的拍摄视角、用户手绘花瓣边缘时产生的误差等都可能对建模效果产生影响.在未来的工作中, 需要减少用户交互,以减少用户手绘输入误差对建模效果的影响.针对复杂的花朵场景建模,亦是一项有意义的工作.

参考文献
[1] FRANCON J. The algorithmic beauty of plants[J]. Plant Science, 1997, 122(1): 109–110. DOI:10.1016/S0168-9452(96)04526-8
[2] PRUSINKIEWICZ P, HAMMEL M, HANAN J, et al. L-systems:From the theory to visual models of plants[C]//Proceedings of the 2nd CSIRO Symposium on Computational Challenges in Life Sciences,1996(3):1-32.
[3] LONGAY S, RUNIONS A, BOUDON F, et al. TreeSketch:Interactive procedural modeling of trees on a tablet[C]//Proceedings of Eurographics Symposium on Sketch-based Interfaces & Modeling. Switzerland:Eurographics Association, 2012:107-120.
[4] LINTERMANN B, DEUSSEN O. A modelling method and user interface for creating plants[J]. Computer Graphics Forum, 1998, 17(1): 73–82. DOI:10.1111/cgf.1998.17.issue-1
[5] 刘彦宏, 王洪斌, 杜威, 等. 基于图像的树类物体的三维重建[J]. 计算机学报, 2002, 25(9): 930–935.
LIU Yanhong, WANG Hongbin, DU Wei, et al. Image-based 3D reconstruction of tree-like objects[J]. Chinese Journal of Computers, 2002, 25(9): 930–935.
[6] PRUSINKIEWICZ P, NDERMANN L, KARWOWSKI R, et al. The use of positional information in the modeling of plants[C]//Conference on Computer Graphics and Interactive Techniques. New York:ACM, 2001:289-300.
[7] IJIRI T, OWADA S, OKABE M, et al. Floral diagrams and inflorescences:Interactive flower modeling using botanical structural constraints[J]. ACM Transactions on Graphics, 2005, 24(3): 720–726. DOI:10.1145/1073204
[8] ENDRESS P K. Symmetry in flowers:Diversity and evolution[J]. International Journal of Plant Sciences, 1999, 160(S6): 3–23. DOI:10.1086/314211
[9] IJIRI T, YOKOO M, KAWABATA S, et al. Surface-based growth simulation for opening flowers[C]//Graphics Interface 2008 Conference. Windsor:Canadian Information Processing Society Toronto, 2008:227-234.
[10] LI J, LIU M, XU W, et al. Boundary-dominant flower blooming simulation[J]. Computer Animation & Virtual Worlds, 2015, 26(3/4): 433–443.
[11] LIANG H, MAHADEVAN L. Growth, geometry, and mechanics of a blooming lily[J]. Proceedings of the National Academy of Sciences, 2011, 108(14): 5516–5521. DOI:10.1073/pnas.1007808108
[12] RUDALL P J, BATEMAN R M. Evolution of zygomorphy in monocot flowers:Iterative patterns and developmental constraints[J]. New Phytologist, 2004, 162(1): 25–44. DOI:10.1111/nph.2004.162.issue-1
[13] 李交昆, 唐璐璐. 花对称性的研究进展[J]. 生物多样性, 2012, 20(3): 280–285.
LI Jiaokun, TANG Lulu. Progress in the study of floral symmetry[J]. Biodiversity Science, 2012, 20(3): 280–285.
[14] HONG W, YANG A Y, HUANG K, et al. On symmetry and multiple-view geometry:Structure, pose, and calibration from a single image[J]. International Journal of Computer Vision, 2004, 60(3): 241–265. DOI:10.1023/B:VISI.0000036837.76476.10
[15] CORDIER F, SEO H, MELKEMI M, et al. Inferring mirror symmetric 3D shapes from sketches[J]. Computer-Aided Design, 2013, 45(2): 301–311. DOI:10.1016/j.cad.2012.10.013
[16] CORDIER F, SEO H, PARK J, et al. Sketching of mirror-symmetric shapes[J]. IEEE Transactions on Visualization & Computer Graphics, 2010, 17(11): 1650–1662.
[17] ÖZTIRELI A, UYUMAZ U, POPA T, et al. 3D modeling with a symmetric sketch[C]//Proceedings of the Eighth Eurographics Symposium on Sketch-Based Interfaces and Modeling. New York:ACM Press, 2011:23-30.
[18] TEVS A, HUANG Q, WAND M, et al. Relating shapes via geometric symmetries and regularities[J]. ACM Transactions on Graphics, 2014, 33(4): Article No. 119.
[19] MIAO Y, HU F, ZHANG X, et al. SymmSketch:Creating symmetric 3D free-form shapes from 2D sketches[J]. Journal of Computational Visual Media, 2015, 1(1): 3–16. DOI:10.1007/s41095-015-0002-8
[20] JIANG N J, TAN P, CHEONG L F. Symmetric architecture modeling with a single image[J]. ACM Transactions on Graphics, 2009, 28(5): Article No. 113.
[21] ZHANG C, YE M, FU B, et al. Data-driven flower petal modeling with botany priors[C]//2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus:IEEE, 2014:636-643.
[22] YAN F, GONG M, COHEN-OR D, et al. Flower reconstruction from a single photo[J]. Computer Graphics Forum, 2014, 33(2): 439–447. DOI:10.1111/cgf.12332
[23] ANDRE A, SAITO S. Single-view sketch based modeling[C]//Proceedings of the Eighth Eurographics Symposium on Sketch-Based Interfaces and Modeling. New York:ACM Press, 2011:133-140.
[24] IGARASHI T, MATSUOKA S, TANAKA H. Teddy:A sketching interface for 3D freeform design[J]. ACM Transactions on Graphics, 2007, 26(3): Article No. 21. DOI:10.1145/1276377
[25] IJIRI T, OWADA S, IGARASHI T. Seamless integration of initial sketching and subsequent detail editing in flower modeling[J]. Computer Graphics Forum, 2006, 25(3): 617–624. DOI:10.1111/cgf.2006.25.issue-3
[26] 宋成芳, 彭群生, 丁子昂, 等. 基于草图的花开建模与动画[J]. 软件学报, 2007, 18(Supp): 45–53.
SONG Chengfang, PENG Qunsheng, DING Zi'ang, et al. Sketch-based modeling and animation of floral blossom[J]. Journal of Software, 2007, 18(Supp): 45–53.
[27] 葛娟, 周炜, 刘浏, 等. 结合法向聚类的大叶片植物重建[J]. 计算机辅助设计与图形学学报, 2010, 22(11): 1940–1944.
GE Juan, ZHOU Wei, LIU Liu, et al. Large-leaf-plant modeling with normal direction clustering[J]. Journal of Computer-Aided Design & Computer Graphics, 2010, 22(11): 1940–1944.
[28] TAN P, ZENG G, WANG J, et al. Image-based tree modeling[J]. ACM Transactions on Graphics, 2007, 26(3): Article No. 43. DOI:10.1145/1276377
[29] TAN P, FANG T, XIAO J, et al. Single image tree modeling[J]. ACM Transactions on Graphics, 2008, 27(5): Article No. 108.
[30] 缪永伟, 胡非夏, 冯小红, 等. 基于单幅图像的三维对称自由形体重建[J]. 计算机辅助设计与图形学学报, 2015, 27(9): 1637–1647.
MIAO Yongwei, HU Feixia, FENG Xiaohong, et al. Single image based 3D symmetric free-form objects reconstruction[J]. Journal of Computer-Aided Design & Computer Graphics, 2015, 27(9): 1637–1647.