建立个性化的三维人体模型的制作方法

文档序号:6460455阅读:300来源:国知局
专利名称:建立个性化的三维人体模型的制作方法
技术领域
本发明涉及计算机人体三维建模领域(大的技术领域),特别是涉及一种建 立个性化的三维人体模型。
技术背景虚拟人模型具有广泛的应用需求。如何以较少的经济和人力投入简单方便 地建造大量的虚拟人模型具有重要的意义。人体模型的表示方法包括棒模型、体模型、表面模型和多层模型等。其中 表面模型,尤其是多边形网格,由于计算简单,表达能力强,是主流的表示方 法和业界的事实标准。为了建立人体表面模型,研究者们提出了多种多样的算法,,大致可以划分为创作型、捕获型、插值型、拟合型和参数化方法共5大 类。在第一类人体建模方法中,用户通过交互地操作底层的造型元素,从无到 有地创建人体的模型。这种方法虽然给了用户最大的控制权,但对使用者的艺 术天分以及使用该造型软件的熟练程度都有很高的要求。第二类是近年来流行的捕获型方法。此类方法的数据采集需要专门的捕获 设备,从昂贵的三维扫描仪到定标过的相机不等。这类方法的优点在于结果模 型的精确性比较高。但是生成的结果模型里没有结构信息。要利用它来完成动 画必须经过繁杂的装配(rigging)处理。第三类是数据驱动型方法。这种方法需要大量模型样本来支撑,然后通过 插值或者分割后再组装获得新的模型。显然好的模型库对数据驱动型建模方法 是至关重要的,但建立这样的库需要大量的时间和资源。第四类是基于模型的重构方法它利用从个体照片中提取的外形特征来修改 通用模型,使其具有照片中人的外观特征,并保留原有的结构信息。这类方法 对设备的要求低,操作简单,结果模型有较好的视觉效果,而且完成动画也很 方便。创作型方法需要使用者具有较高的艺术天分和熟练的软件使用技巧,而且 创作一个模型的过程也比较复杂,需要较长的时间和精力。捕获型方法需要昂 贵的硬件设备,而且生成的模型里不具备支持动画的骨架信息。模型驱动方法 需要大量的优秀模型样本才能运行,现在正缺少这样的模型库,建造一个又需 要大量的时间和资源。参数化方法依赖使用者的设计能力和大量参考模型支撑。这些方法都不能满足大批量建模的要求。 发明内容本发明的目的在于提供一种建立个性化的三维人体模型的方法。 建立个性化的三维人体模型方法包括如下步骤1) 照片的拍摄和参考图像的合成人站在离照相机2 4米的地方,双臂举起,拍摄正面、侧面两幅照片,与拍摄相机相同的参数用虚拟相机合成参考模型的图像,从照片和合成的参考图 像中提取人体的轮廓线;2) 轮廓线分割按照头、左上臂、左前臂、左手、右上臂、右前臂、右手、上躯干、骨盆、 左大腿、左小腿、左脚、右大腿、右小腿、右脚分割从正面照片、侧面照片、 正面参考图像、侧面参考图像中提取的轮廓线得到子轮廓线,对应于参考图像 的叫参考子轮廓线,对应于照片的叫目标子轮廓线;3) 二维映射的构造用垂直于主轴的直线细密地切割参考子轮廓线和目标子轮廓线,对形成的 切割线进行参数化,定义一个切割线空间,把相同部位的参考子轮廓线和目标 子轮廓线内的点分别进行参数化,相同参数值的点形成二维映射,经过这样的 处理,就可以在切割线空间中构造从参考图像里的一点到目标图像里的一点的 二维映射;4) 三维点位置的修改按切割参考图像相同的位置切割参考模型,得到15个子参考模型,把子参 考模型里的每个三维点投影到二维空间的一个像素,称为参考像素,该像素必 定位于参考子轮廓线内,利用上一步得到的二维映射把该像素映射到目标子轮 廓线内的一个像素,称为目标像素,把目标像素反投影到三维空间,生成三维 点的新位置;5) 三维点的合成分别把参考模型投影到正面和侧面,进行三维点位置的修改,正面处理得 到人体的高度和宽度信息,侧面处理得到人体的高度和厚度信息,组合得到完 整的三维模型。组合方式为,结果模型的宽度信息从正面处理得来,结果模型 的厚度信息从侧面处理得来,结果模型的高度信息由正面处理和侧面处理的平 均值得来。所述的用垂直于主轴的直线细密地切割参考子轮廓线和目标子轮廓线,对形成的切割线进行参数化,定义一个切割线空间步骤轮廓线分为左右两半有 向边界,边界起点的连线叫做起始切割线,边界终点的连线叫做终止切割线, 连接起始切割线中点和终止切割线中点的直线叫主轴,左右两侧边界里的点都 是一一对应的,对应点的连线叫做切割线,则空间任何一点由两个参数确定, 即点所在的切割线在所有切割线中的相对位置以及点在切割线中的相对位置。本发明既不需要昂贵软、硬件支持,也不需要对使用者进行长期培训,只 需给定人的正、侧面照片,它就能把照片里提取的外形特征嵌入到算法内建的 参考模型里,生成一个具有真实感的、关节化的和个性化的人体模型。硬件费 用低不需要特殊或专有硬件;软件费用低操作简单,无需培训即可掌握使用 方法;建立的模型外形拼接良好;建立的模型具有内置的骨架结构,方便用来 制作动画。


图1 (a)是本发明的参数化示意图,图l (b)是本发明的调整切割线朝向示意图。
具体实施方式
建立个性化的三维人体模型方法包括如下步骤1照片的拍摄和参考图像的合成1.1拍摄照片新生成的人体模型中的外形特征是从真人照片中抽取出来的。拍摄真人照 片需要注意下列事项。人站在离照相机2 4米的地方,双臂举起;照片必须是 对同一个人从正面和侧面拍摄的。拍摄此人时,他/她必须不能穿太宽松的衣 服。照片中的人必须足够大,以提供细节。1.2合成标准模型图像用与拍摄照片参数相同的参数设置虚拟相机的投影矩阵、模型变换矩阵、 视点变换矩阵和视口变换矩阵,然后利用OpenGL的脱机绘制功能,绘制参 考模型得到参考图像。1.3从标准图像中提取轮廓线合成图像时可以做合理的设定使得背景颜色和前景颜色有明显的差别,这 样就可以利用自动的边界抽取算法提取边界。具体的算法是首先将图像进行二 值化,然后依次经过去边界抽取、去毛刺和边界连接3个步骤的处理,即可以 得到按顺序连接好的轮廓。边界抽取我们利用图像的形态学(morph)算子抽取人体的外轮廓。从图中可以看出,从一副图像中减去进行了一次腐蚀操作的该图像,即可获得图像 中物体的外边界。
去毛刺二值图像中存在一些毛剌。其原因有两个在生成标准图像时, 由于扫描转换的精度不够;二值化时造成的误差。这种毛刺会给后续的边界连 接造成困难。因此,我们利用结构元素为去除端点元素对图像进行thin操作来 去掉这些毛刺。
边界连接以前面得到的边界元素组成的图像为输入,以按连接顺序排列 的边界元素的坐标值序列为输出,连接操作的基本思想是从一个边界元素出 发,寻找最近的一个未处理过的边界元素,并将坐标串接在序列的最后。然后 以新得到的边界元素出发重复上述过程,即可得到边界连接的结果。
1.4从照片中提取轮廓线
本阶段的任务是从照片或者合成图像里面提取人体的轮廓线。如果照片的 背景比较简单,比如是蓝背景,则可以利用1.3中的算法。如果背景比较复 杂,则利用程序辅助的手工描绘来抽取轮廓线。
自动提取人体轮廓线有两种自动方案可供选择。方案一是利用边缘检测和 边缘连接的方法。边缘检测是计算机图像处理中经典的问题,分为检测梯度的 最大值方法、检测二阶导数的零交叉点方法、统计型方法和基于小波的多尺度 方法。然而由于在一般的照片(上述简单前景背景的照片除外)中,除去人体 轮廓线外,在背景和人体内部还存在其他线条。而且在信号强度上,人体轮廓 线比不其它线条明显占优。因为这个原因,算法无法自动的找出人体轮廓现。
方案二是采用活动轮廓模型的方法。活动轮廓模型方法从一条初始的曲线 出发,沿着使目标能量递减的方向移动并最终停止于所要寻找的物体边缘附 近。目标能量包含由轮廓自身特征决定的内部能量和图像特征决定的外部能量 两部分。在本人体建模方法的应用背景下,活动轮廓模型的最终结果显著依赖 于初始边界的选择。采用活动轮廓模型方法达到全自动提取人体轮廓线也是行 不通的。
在这种情况下采用程序辅助人工指导的方法更为合适。这种方法在图像中 边界比较清楚的情况下借助程序的自动计算,只需很少的人工指导就能抽取人 体轮廓。在边界模糊甚至缺失的情况下也能由操作者凭借人类自身超凡的视觉 手工勾画出所需的边界。这种方法将照片作为背景显示在窗口中,然后由操作 员利用鼠标在窗口内部点击的方式指定轮廓线中的节点,鼠标移动时程序自动 生成从上一个节点到鼠标指针位置的部分轮廓线,该轮廓线受到图像中的边界的吸附。操作员评估程序计算的结果,在认为合适的情况下确认该结果,并以 鼠标当前位置为新的起点计算下一段轮廓。图展示了计算一段轮廓的情形。总 的来说,图像中的干扰信号越少,轮廓线需要的节点就越少,操作员的工作量 就
越小。这种方法直接生成轮廓线上点坐标的序列,无需再做边缘连接的操作。
2轮廓线分割
按照头、左上臂、左前臂、左手、右上臂、右前臂、右手、上躯干、骨盆、 左大腿、左小腿、左脚、右大腿、右小腿、右脚分割从正面照片、侧面照片、 正面参考图像、侧面参考图像中提取的轮廓线得到子轮廓线,对应于参考图像 的叫参考子轮廓线,对应于照片的叫目标子轮廓线;
2.1分割三维模型
对三维模型的分割由程序参照二维图像的分割位置自动完成。具体的做法 是将二维的切割线沿视线方向做投射,扩展切割面。标准图像和标准模型的分 割结果如图。
3 二维映射的构造
用垂直于主轴的直线细密地切割参考子轮廓线和目标子轮廓线,对形成的 切割线进行参数化,定义一个切割线空间,把相同部位的参考子轮廓线和目标 子轮廓线内的点分别进行参数化,相同参数值的点形成二维映射,经过这样的 处理,就可以在切割线空间中构造从参考图像里的一点到目标图像里的一点的 二维映射;
基于切割线空间表示的二维映射算法把任意给定位于标准轮廓线内的一个 点映射到一个惟一的位于特性轮廓线内部的点,该算法是非均匀变形的基础。 下面我们先讲述在最理想情况下如何构造这个二维映射,然后针对实际情况提 出具体的实现方法。
3.1切割线空间的定义和参数化
先来考虑如图1 (a)所示的基本情况:轮廓线分为左右两半有向边界;边界 起点的连线(起始切割线)平形于边界终点的连线(终止切割线),并且垂直于 连接两个起点的中点与两个终点的中点的直线(主轴);左右两侧边界里的每一 对点都是一一对应的。我们把对应点的连线叫做切割线。空间任何一点都可以 由下面两个参数确定点所在的切割线在切割线簇中的相对位置w,和点在切割 线中的相对位置v。
将边界定义为左右两半边界的合集5二丄U及,其中丄和及是点的集合,点的坐标用(W)表示。我们可以定义两个辅助函数是/(,)和KO,分别实现下面的功能 给定一个整数,,找到它左(或右)边界上对应的S值。设边界内部的任何一点 的笛卡尔坐标为(S力,切割线空间坐标为(",V),则有
<formula>formula see original document page 9</formula>

<formula>formula see original document page 9</formula>
3.2倾斜主轴的处理
实际上并非所有分段的伸展方向都是竖直的,比如手臂和腿。以起始切割 线的中点为中心旋转一个角度可以使主轴恢复到竖直的情况。设旋转前后的坐 标分别为Oc,力和(s力,旋转中心为(cx,o;),旋转角为0,则它们之间的正逆变换的
公式分别为<formula>formula see original document page 9</formula>
和:
<formula>formula see original document page 9</formula>
3.3姿态差异的处理
通用模型里的人体一般呈松弛状态,这时相邻分段的边界上的点在空间上 重合。当子分段绕结合处旋转一个角度以后,传统的做法是只旋转下端分段中 的点,这样处理会使边界处的切割线产生交叉,破坏模型表面的连续性。本文 用一个平滑过渡的旋转角来调整这两个分段里边界的切割线的朝向。离边界越 近,旋转角度就越大,反之,越远值越小,到一定距离后衰减为零(如图l(b))。 假设调整前后的参数分别是(","和(a》),则正反方向上的两个映射定义如下
<formula>formula see original document page 9</formula>式中的w(")是权值函数,定义为:<formula>formula see original document page 10</formula>(7)4三维点位置的修改按切割参考图像相同的位置切割参考模型,得到15个子参考模型,把子参 考模型里的每个三维点投影到二维空间的一个像素,称为参考像素,该像素必 定位于参考子轮廓线内,利用上一步得到的二维映射把该像素映射到目标子轮 廓线内的一个像素,称为目标像素,把目标像素反投影到三维空间,生成三维 点的新位置;二维点和三维点可以通过投影矩阵、model-view矩阵和视口矩阵联系起来。<formula>formula see original document page 10</formula>8)式中及是旋转矩阵,?是平移矩阵,/是相机的焦距,(X,^l)是二维点的齐次坐标,(兀KZ,1)是三维点的齐次坐标。函数库GLU提供的工具函数gluProject和gluUnproject可以实现上面的变 换。对通用三维模型中的一个点(XKZ),投影得到二维坐标(x,力和深度值z,利用二 维映射找到(x,力的对应点(;c',乂),然后利用",;/力反向投影得到新的位置。和 Hilton的方法[7]—样,本文也采用通用模型中点的深度值近似地代替新模型中点 的深度值。通常人和相机的距离大约是3m,而标准人体和特定人体中点的坐标 的差别只有几厘米,所以这个近似是合理的。 5三维点的合成分别把参考模型投影到正面和侧面,进行三维点位置的修改,正面处理得到 人体的高度和宽度信息,侧面处理得到人体的高度和厚度信息,组合得到完整 的三维模型。组合方式为,结果模型的宽度信息从正面处理得来,结果模型的 厚度信息从侧面处理得来,结果模型的高度信息由正面处理和侧面处理的平均 值得来。
权利要求
1. 一种建立个性化的三维人体模型方法,其特征在于包括如下步骤1)照片的拍摄和参考图像的合成人站在离照相机2~4米的地方,双臂举起,拍摄正面、侧面两幅照片,与拍摄相机相同的参数用虚拟相机合成参考模型的图像,从照片和合成的参考图像中提取人体的轮廓线;2)轮廓线分割按照头、左上臂、左前臂、左手、右上臂、右前臂、右手、上躯干、骨盆、左大腿、左小腿、左脚、右大腿、右小腿、右脚分割从正面照片、侧面照片、正面参考图像、侧面参考图像中提取的轮廓线得到子轮廓线,对应于参考图像的叫参考子轮廓线,对应于照片的叫目标子轮廓线;3)二维映射的构造用垂直于主轴的直线细密地切割参考子轮廓线和目标子轮廓线,对形成的切割线进行参数化,定义一个切割线空间,把相同部位的参考子轮廓线和目标子轮廓线内的点分别进行参数化,相同参数值的点形成二维映射,经过这样的处理,就可以在切割线空间中构造从参考图像里的一点到目标图像里的一点的二维映射;4)三维点位置的修改按切割参考图像相同的位置切割参考模型,得到15个子参考模型,把子参考模型里的每个三维点投影到二维空间的一个像素,称为参考像素,该像素必定位于参考子轮廓线内,利用上一步得到的二维映射把该像素映射到目标子轮廓线内的一个像素,称为目标像素,把目标像素反投影到三维空间,生成三维点的新位置;5)三维点的合成分别把参考模型投影到正面和侧面,进行三维点位置的修改,正面处理得到人体的高度和宽度信息,侧面处理得到人体的高度和厚度信息,组合得到完整的三维模型。组合方式为,结果模型的宽度信息从正面处理得来,结果模型的厚度信息从侧面处理得来,结果模型的高度信息由正面处理和侧面处理的平均值得来。
2. 根据权利要求1所述的一种建立个性化的三维人体模型方法,其特征在 于所述的用垂直于主轴的直线细密地切割参考子轮廓线和目标子轮廓线,对形成的切割线进行参数化,定义一个切割线空间步骤轮廓线分为左右两半有向 边界,边界起点的连线叫做起始切割线,边界终点的连线叫做终止切割线,连 接起始切割线中点和终止切割线中点的直线叫主轴,左右两侧边界里的点都是 一一对应的,对应点的连线叫做切割线,则空间任何一点由两个参数确定,即 点所在的切割线在所有切割线中的相对位置以及点在切割线中的相对位置。
全文摘要
本发明公开了一种建立个性化的三维人体模型的方法。包括如下步骤1)照片的拍摄和参考图像的合成;2)轮廓线分割;3)二维映射的构造;4)三维点位置的修改;5)三维点的合成。本发明既不需要昂贵软、硬件支持,也不需要对使用者进行长期培训,只需给定人的正、侧面照片,它就能把照片里提取的外形特征嵌入到算法内建的参考模型里,生成一个具有真实感的、关节化的和个性化的人体模型。硬件费用低不需要特殊或专有硬件;软件费用低操作简单,无需培训即可掌握使用方法;建立的模型外形拼接良好;建立的模型具有内置的骨架结构,方便用来制作动画。
文档编号G06T17/00GK101271581SQ20081006138
公开日2008年9月24日 申请日期2008年4月25日 优先权日2008年4月25日
发明者任利锋, 潘志庚 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1