三维物体(共6篇)
三维物体 篇1
1 引言
随着投影技术的发展, 虚拟世界和现实世界有了一种很好地同步结合方式——三维影像投射。通过三维影像投射技术, 艺术家可以将虚拟世界创造的艺术作品与现实世界的物体进行同步, 完成虚拟世界到现实世界的转换, 将虚拟世界的内容通过异面投影技术真实的展现在人们面前。相对于传统形式, 三维影像投射技术更加自由, 任何可以反射投影光的物体都可以作为被投影介质, 而投影物体的立体性可以很好地增加投影内容的真实感, 可以很好地吸引观众的目光, 同时使用实时渲染三维影像投射系统可以便捷地更换显示内容, 丰富展示的多样性, 不会让人感觉到枯燥。
本文的研究课题就集中于一种结合投影仪和运动物体结合的新的系统。在目前三维影像投射方法的基础上, 保证虚拟世界与现实世界运动的同步, 同时保证虚拟世界与现实世界完全一致, 只有这样才能保证不需要调整模型点的情况下完成旋转的同步。随后需要创造一种可以实时变换投影融合带的算法, 使得旋转物体也保证投影仪可以完成融合, 只有这样才能保证成功。
2 渲染内容的简介
2.1 模型内容的建立
首先需要明确的是三维扫描后录入的数据其形式。通过三维扫描仪录入电脑的是点云, 及每一次激光反射的位置和距离, 这样的一系列点集构成了整个模型的点云。通过三维扫描仪自带的软件进行补洞操作后, 完整模型就完成了, 但是补洞的模型只有大致形状, 没有任何走线, 所有面由无数小三角面构成, 显然这些密集的三角面是不能作为虚拟模型加载的, 图2:模型参数传输序列图其占用资源过多, 需要进行拓扑。
在获得了已经补完洞的模型后, 需要对模型进行拓扑。拓扑的方式完全依靠模型师的经验和手法, 如何体现物体的细节, 如何保证拓扑的模型既与原物体基本一致, 又要保证尽量少的走线, 这些都与模型师的经验息息相关。总的来说拓扑的最佳结果是保证最少的走线和最佳的模型形状, 尽量贴合三维扫描的的模型, 满足上述条件的拓扑模型才是比较好的模型, 相对来说技术要求较高。
获得拓扑模型后需要将其转换成vvvv可以识别的模型形式, vvvv主要使用Direct X进行渲染, 使用的也是Direct X默认的后缀名为.x的模型文件, 默认包含两部分, 包含模型文件以及动画键。MAYA和3DMAX都有其转换插件, 这部分交给插件即可。
最后需要对模型文件进行加载, vvvv中加载模型文件有自己的节点, 但是只提供了基本的模型信息, 其余的位移、旋转、变形矩阵等信息需要自行设计, 基本设计如图1所示。
至此, 模型模块从录入、拓扑、到加载完成了一整个的流程, 成为了构建虚拟空间的基础。
2.2 实时渲染的设计
拥有模型之后, 虚拟世界才算是有建立的基础, 实时渲染的基本要素如图2所示:
构成本文虚拟空间的基本要素如上图所示, 分别是:
(1) 模型:在获得拓扑模型后, 转换成vvvv可以识别的模型文件, 同时要保证文件的UV合理展开, 保证模型的大小合适, 方便调整。满足如上要求才算符合要求。
(2) 着色器:Direct X拥有自己的渲染器, 需要利用其自己的语言来完成对模型渲染的操作, 包括灯光、融合拼接等。
(3) 摄像机:作为与现实世界同步的虚拟构建, 摄像机的参数需要保证与投影仪的参数完全保证一致, 焦距, 高度, 距物体距离, 中心位置等等, 必须与现实世界同步。
(4) 相对位置信息:除基本的位置、角度信息外, 物体与物体之间的相对位置也需要保证, 其中之后同步阶段需要虚拟世界和现实世界保持一致的旋转参数等。
(5) 艺术视频文件:在UV基础上根据艺术内容进行加载的图形视频文件, 对于艺术设计而言, 这将是展现整个视觉效果的部分, 在之前艺术设计部分已经详细描述。
其中不得不说的是融合拼接的方式。一般的平面投影的拼接方式较简单, 根据融合公式即可进行较完整的融合拼接。但显然在不规则曲面上没有办法找到一个普适的算法可以让所有的物体都可以做到很好地融合。每一个投影仪根据其位置和角度不同, 所能显示模型的角度和大小都不可能完全一样, 所以类似平面上通过投影仪画面做切割进行融合的方式在异面投影上是不可取的。
异型投影的融合通常分两类, 一类是完全的硬拼接, 通常立方体等有明显面变化, 或者形状简单, 可以对模型形状和大小可以精确变换的模型可以使用硬拼接。另一类是软拼接, 通过划分融合带, 对两个融合带进行叠加来达到融合拼接的目的。本文的汽车没有明显的面与面的划分, 由于点数众多, 也没有办法进行精确的形状调整, 只能使用软拼接的方式完成融合。
根据汽车模型的特点, 其形状类似长方形, 故一台投影最多可以覆盖其中的三个面, 显然, 光路直线的原理表明, 投影仪最多只可能覆盖到三个平面, 不可能超过三个。
以汽车作为示例, 由于汽车的前面和尾部的面较小, 所以并不需要单独分割出来, 连接到汽车顶面即可, 故整个分割方案如图3所示:
红色和绿色线内为融合带, 通过融合算法进行软拼接, 具体如何形成软拼接的将在实现章节详述。
完成着色器后, 需要对模型的位置, 摄影机的位置等相对位置进行确定, 之前已经提到。
至此虚拟世界部分设计基本完成, 从模型的构建到渲染再到同步接口的设计, 完成了虚拟世界的构建。
3 渲染结果
通过实时渲染软件对三个部分进行实施渲染, 后通过三台投影仪分别对分割部分的图像进行输出, 最终完成现实世界和虚拟世界的匹配, 对三个投影图像进行软拼接, 形成完整的去昂防伪覆盖汽车投影, 如图4所示:
经测试, 融合带基本完全覆盖, 顶部有少许偏差, 数以正常范围允许之内, 算法分割成功, 解决了运动物体全覆盖投影的难题。
4 结束语
通过对输出图像进行精确的分割, 并结合融合带, 最终完成了三台投影分别输出不同图像, 覆盖整个物体的方案, 以此类推, 可以完成任何形状和大小的物体投影覆盖方案, 只要物体处于投影仪投影范围以内, 都可以通过对物体进行分割渲染的方式, 完成物体图像的拼接, 最终形成完全的图像覆盖方案, 做到对旋转物体的三维影像全投射。
摘要:三维影像投射, 也称为影装、异面投影, 是一种通过投影仪将虚拟空间中实时渲染的三维影像投影到实体物体上的技术。本文所设计的系统是在现有宣发基础上, 进一步研究虚拟世界和现实世界的关系, 完成两者的同步, 保证虚拟世界和现实世界的一致, 利用虚拟摄像机代替投影仪位置, 虚拟摄像机拍摄到的内容即是投影仪需要显示的内容。最终达到虚拟世界物体跟随现实世界物体转动, 实时渲染输出图像, 使得现实世界中物体不断转动也能保证可以实时覆盖投影内容。
关键词:旋转物体,三维影装,三维影像投射投影仪
参考文献
[1]张杨林, 杨红雨, 唐荣, 邓昌胜.分布式曲面投影系统几何校正算法的研究[J].微计算机信息, 2009 (36) .
[2]周艳霞, 秦开怀, 罗建利.多投影仪自由立体显示的GPU几何及亮度校正技术[J].计算机辅助设计与图形学学报, 2011 (04) .
三维物体碰撞检测包围盒算法分析 篇2
包围盒算法是目前三维交互软件中常用的碰撞检测算法, 其优点是能够实现快速碰撞检测。在这里最具代表性的就是AABB算法和OBB算法。
1.1轴平行包围盒AABB 算法
AABB (Axis-Aligned Bounding Box) 是进行碰撞检测的三维几何体的外接平行六面体, 它的每条边都平行于坐标轴。因此描述一个AABB包围盒只需要六个标量, 在构造AABB时, 要沿着物体的局部坐标系的轴向进行构造。故由AA BB构造的包围盒具有一致的方向。图1给出了一个使用AABB包围盒的例子, 它可以很简单确定包围盒的尺寸, AABB内的任意一点P (x, y, z) 都需满足:
xmin≤x≤xmax;
ymin≤y≤ymax;
zmin≤z≤zmax;
其中xmin和xmax是对象在三维场景中x方向上的最小和最大值;ymin和ymax是y方向的最小和最大值;zmin和zmax是z方向的最小和最大值。
从AABB包围盒的构造过程分析, 它的优点有以下几点:
(1) 构造难度低。因为只需分别计算物体各个元素顶点的x、y、z坐标的最大值和最小值, 如果一个顶点的个数为n, 只需6n次比较运算。
(2) 存储量很小。只需6个浮点数。
(3) 相交测试复杂度低。由于立方体有六个面, 所以只需在xy、xz、yz 三个面投影两个物体6个面, 故只需计算6次即可。
(4) 变形物体碰撞适用度较大。与OBB算法相比其缺点是紧密性较差, 尤其是对具有凹凸面的多面体, 用AABB将留下很大空隙, 导致大量的冗余包围盒相交测试。
1.2任意方向包围盒OBB算法
OBB (Oriented Bounding Box) 是最贴近三维几何体的平行六面体。其最大的特点是方向的任意性, 这使得它可以根据三维对象的形状来包围该对象。虽然该算法实现复杂, 但不会对场景的运行速度产生很大的影响。它的计算相对复杂, 需要对包围盒的方向、中心位置、尺寸分别进行计算。其中, 中心位置和方向是用均值和协方差矩阵统计量来计算的。尺寸是通过位置和方向两个量进行计算。需要进行碰撞检测的几何体是由很多三角形面片组成, 设三角形集的第i个三角形的顶点矢量为pi、qi和ri组成的包围盒包围对象的三角面片数为n, 则包围盒的中心位置m为:
undefined
协方差矩阵元素Cjk:
undefined协方差矩阵Cjk的三个特征向量是正交的, 规范化后可以作为一个基底, 用于确定OBB方向。分别计算物体所包含的各个元素的顶点在该基底的三个轴上投影的最大值和最小值, 以确定该OBB大小。如图2OBB包围盒:
从OBB包围盒的构造过程分析, 它主要得优点是紧密性好, 因为其方向的任意性, 可根据被包围对象的形状尽可能紧密地包围对象;物体在旋转时包围盒更新计算量小。当几何对象发生旋转运动后, 只要对OBB的基底进行同样的旋转即可。因此比较适用于刚体的碰撞。其缺点是构造难度大, 构造给定物体的OBB 的计算复杂;存储量相对于AABB较大, 存储一个OBB需要15个浮点数。如果两个OBB包围盒在一条轴线上的投影不重叠, 那么可以判定这两个包围盒不相交;两个OBB的相交测试最多需要15次比较运算、60次加减运算、81次乘法运算和24次绝对值运算;变形体碰撞适用度小, 当几何体对象发生旋转运动后, 只要对OBB的基底进行同样的旋转即可。因此适用于刚体的碰撞检测。
通过对AABB算法和OBB算法的分析比较 (表1) 可知, 在三维场景中可以根据不同类型三维物体使用适当算法去进行碰撞检测。
2算法改进
对于虚拟场景中某段时间内的不活跃模型, 如果采用OBB相交判断算法检测它们之间是否相交, 会浪费很多时间。为了提高虚拟场景碰撞检测的实时性能, 可以按照AABB和OBB的优点对场景中的对象进行分类, 即将碰撞检测分为两个阶段进行:第一阶段用简单的AABB算法排除不可能相交的模型对, 第二阶段运用OBB算法对未被排除并且在该时间活跃的模型对进行精确的OBB相交判断。其流程如图3所示。
2.1AABB相交对的计算
因为AABB的三边与该几何对象的局部坐标轴分别平行, 所以两个AABB包围盒相交当且仅当它们在三个坐标轴的投影都相交。
传统的AABB算法在物体发生碰撞时, 对所有的AABB两两进行相交判断, 这样将会浪费很多计算时间。一般而言, 模型的空间位置以及模型间的空间位置关系在连续的两次检测之间变化不会很大, 因此AABB相交对的集合在两次检测之间的变化也不会很大。那么可以在计算AABB相交对时利用缓冲区中上次计算结果, 将会节省很多计算时间。
组织2条链表, 一条链表存储由AABB算法计算发生碰撞的一对几何体, 其节点的数据结构如下:
Struct AABBNode
{
几何对象1;
几何对象2;
几何对象发生碰撞的次数;
}
几何对象1:主要存储对象1的AABB包围盒在x、 y、z轴上的最小坐标和最大坐标。
几何对象2:主要存储对象2的AABB包围盒在x、 y、z轴上的最小坐标和最大坐标。
其结构体如下:
Struct Item
{
Float Xmin,
Float Xmax,
Float Ymin,
Float Ymax,
Float Zmin,
Float Zmax
}
几何对象发生碰撞的次数:其作用是为了防止缓冲区过大, 采用最近最少使用算法将碰撞频率最低的几何体从链表中删除。
2.2OBB相交对的计算
相对于AABB缓冲链表来说, OBB的缓冲链表的设计要复杂些。在三维场景中, 通常在帧和帧之间都会有很强的关联性, 这就意味着虚拟环境中物体从一帧变化到另一帧时是相对静止的。假设新的碰撞总是会在上一次碰撞的多边形处发生, 那么应该把上次碰撞的相关信息存入缓冲区供当前碰撞检测使用。
该链表节点的数据结构如下:
Struct OBBNode
{
几何体信息1,
几何体信息2,
碰撞时几何信息
}
其中几何体信息1、几何体信息2是存放运动物体的几何信息。
碰撞时的几何信息包含两个几何体发生碰撞时三角形的信息、标志物体是否发生过碰撞的逻辑变量、标志该几何信息是否被反问过、时间标识。其数据结构如下:
Struct 碰撞几何信息
{
发生碰撞的位置 (三角形位置) ,
BoolbCollide, //是否发生了碰撞
BoolbUse, //碰撞几何信息是否使用过
DateDtime //发生碰撞的时间
}
每当需要检测该物体的碰撞情况时, 系统先检测该物体的碰撞几何信息字段中存放的三角形的碰撞情况, 如果发生碰撞, 则直接将结果返回;如果没有发生碰撞, 那么该缓冲区中的三角形此时也未发生碰撞, 此时需要重新检测该物体的方向包围盒, 如果新的碰撞发生, 那么将发生碰撞的三角形的几何信息返回给系统, 并将缓冲区几何信息字段中的所有值全部更新。
2.3实验结果
试验采用VC基于OpenGL实现以上改进算法。试验用例为10个球体、4个墙壁和一个地面。在物体与墙壁或者是地面发生碰撞, 则建立AABB包围盒并将碰撞几何体存入AABB缓冲链表, 当球体和球体进行碰撞时, 则建立OBB包围盒, 将碰撞的球体以及碰撞的几何信息存入到OBB缓冲链表中。
改进前与改进后的碰撞检测算法所用时间的平均值如图4所示。由图4可见, 改进后的算法在效率上优于传统的算法, 时间减少大约10%。
碰撞的效果如图5所示, 虽然在三维场景中运动的球体比较多, 但是程序能够准确判断球体之间和球体与墙壁和地面所发生的碰撞。
3结语
三维物体计算全息的方法研究 篇3
人类对现实世界的感知中,很大一部分是来源于双眼,然而目前占据主流地位的依然是2D显示技术,2D显示技术能够满足人们大部分的日常生活需求。但是随着科技的发展,人们把目光逐渐转移到了3D显示技术上面,它与传统2D显示技术相比更具备临场感和视觉冲击感。然而,3D物体的空间结构复杂,难以用具体函数描述其物波的分布。近年来,国内外学者在这方面做了许多相关研究工作。为此,本文拟从3D物体计算全息空间再现技术的理论基础、全息图制作和再现方法等方面做简要的论述,并对3D物体计算全息空间再现技术中存在的问题和不足进行分析和讨论。
随着空间光调制器的快速发展,全息显示已经成为3D显示中的研究热点,而计算全息又是全息显示中的关键技术,通过快速计算获取数字全息图,在计算全息中具有重要的研究价值。计算全息术是将实际物体的光波进行抽样或者直接用光波的描述函数输入计算机用计算机模拟实际的干涉过程,计算出干涉条纹得到计算全息图,再将计算全息图进行再现就可以得到重现像。
由于计算全息并不一定非要有实际的物体存在,只要有物体的描述函数就行,并且整个成图过程都是在计算机中完成,因而对环境的要求较为简单,可重复性也比较高,计算全息图也比较容易存储和复制。因此计算全息在3D显示方面的应用前景无限光明。
计算3D物体全息图的根本方法是根据菲涅耳-基尔霍夫衍射积分公式来进行计算。但是由于3D物体比2D物体的信息量大很多,这也导致计算全息图的计算量比较大[1]。而对于形成全息图及显示图像,计算机的运行速度还达不到相应的要求。所以,人们提出了几种方法来解决这一问题,常用的方法有点源法[2]、层析法[3]、 多视角投影法[4]等,本文将主要介绍点源法和层析法。
1点源法
1.1菲涅耳波带
计算全息根据物体和全息图平面位置的不同,可分为像计算全息图,傅里叶变换计算全息图和菲涅耳计算全息图。在三维物体的计算全息中,需要有深度变化, 故一般采用的是菲涅耳计算全息图[5]。接下来,讨论点的菲涅耳图,也就是菲涅耳波带。
设O点(x0,y0,0)为物面上的任意一点,P点(x,y,z) 为O点产生的菲涅耳波带上的任意一点,λ为光波长,a0为波在r等于1个单位距离处的振幅,那么可以得出r和全息面上的复振幅分布:
如图1所示,可以得到点物与全息面距离为0.3 m时的菲涅耳波带图。
1.2三维全息图的制作
对于一幅空间三维图像,一般方法是将三维物体沿深度方向切割为若干个二维图像,再分别进行全息计算后叠加获得三维图形的全息图。在这里,对同一深度的信息直接利用点源法进行全息计算,而并非是看作一幅平面图进行处理。
采用离轴全息来进行全息记录和再现过程,在全息面上参考光波的倾斜角为θ,物光波为,于是,全息面上的光强分布为:
采用振幅为C的平面光垂直照射全息面,从全息图出射的光场为:
式中:分别是直透光和晕轮光,沿光轴传播,得到“0级”像;携带原物光波信息, 沿参考光波的共轭光方向传播,反向延长可以得到“+1级”像;而携带原物光波的共轭光信息, 沿参考光波方向传播,会聚之后可以得到“-1级”像[6]。 图2(a)是一副简单三维图像,上面的汉字“昆工”距全息面0.3 m,下面的英文“KMUST”距离全息面0.45 m,像素为512 pixel×512 pixel。全息图的制作过程采用Matlab仿真[7],其中光波长为632.8 nm。图2(b)是利用点源法获得的全息图。
上面由Matlab仿真得到了简单三维物体的全息图, 接下来也是在计算机上利用Matlab进行仿真得到再现像,分别取再现距离为0.3 m和0.45 m,如图2(c)、(d)所示(为观察需要,图片处理为pink色)。观察两张再现像的“-1级像”可知,包含深度信息的全息图的再现在一定程度上表达了原物的深度感。由此可以看出,利用点源法可以实现三维物体的记录和再现。点源法的计算简单,但是计算量却太大,人们进行过提高计算速度的大量研究。例如可以将某一空间区域视为一三维离散点源的集合,预先计算出这些点源在全息图平面的光波复振幅,计算结果形成数组存入计算机内存[8]。
2层析法
利用层析法也可以实现三维物体的计算全息。首先将处于坐标系x,y,z中的三维物体沿z轴方向进行分层,也就是将立体的三维物体用一系列平行的平面来近似,将各层面的菲涅耳衍射复振幅叠加后,最后加入参考光制作成一张全息图。设物体描述函数为U(x,y,z), 在沿z方向分层后有:
式中:Un(x,y)为一系列与x,y平面平行的平面,两个平面之间的距离为Δz;n是沿z轴方向的抽样平面的个数。然后再逐个对每个平面再全息平面的复振幅分布进行运算,例如对第n个面片Un(x,y),在全息平面的复振幅分布Pn(x,y)为Un(x,y)的菲涅耳衍射:
式中zn是第n个平面Un(x,y)到全息平面的距离。从式(6)可以发现,要得到Pn(x,y),需要进行以下计算:
(1)将Un(x,y)乘以一个二次相位因子exp[jk(x2+y2)2zn];
(2)进行傅里叶变换;
(3) 对计算结果乘上一个相位因子
最后将所有平面的复振幅分布Pn(x,y)进行叠加就得到了全息平面的总光场P(x,y)。
下面进行全息图的制作,这里采用同轴全息进行全息记录和再现过程。采用振幅为1的垂直平面光照射一个高度透明的物体,其透射率可以表示为
式中t0≈1,而Δt(x0,y0) 远小于1,由于入射光振幅为1, 则透射光场与透射率相同。透射光场由两部分组成,t0代表的平面光将形成参考光场,在全息记录面用表示,而 Δt代表的弱散射光会形成物光场,在全息记录面上用表示,于是,全息面上的光强分布为:
用振幅为C的平面光垂直照射全息面,从全息图出射的光场为:
式中:第一项是透过全息图的受到均匀衰减的平面波; 第二项正比于弱的散射光的光强,可以忽略不计;第三项正比于O͂(x,y) ,再现了原始物光波前,产生原始物体的一个虚像;第四项正比于O͂*(x,y) ,将在全息图的另一侧与虚像对应位置产生物体的实像。
同样,在计算机上采用Matlab模拟仿真。这里的3D图片为图3(a),上面的汉字“昆工”距全息面0.3 m, 英文“KMUST”距离全息面0.45 m,像素为512 pixel×512 pixel,照明光波长为632.8 nm。图3(b)为通过层析法得到的全息图。
接下来进行再现过程,分别取再现距离为0.3 m和0.45 m,得到的再现像分别为图3(c)和图3(d)。再现像很好地表达出了物体的深度信息,由此可以看出,层析法可以很好地实现三维物体的记录和再现。
3结语
本文利用Matlab仿真了三维物体全息以及再现过程,并分别采用了点源法和层析法,其中点源法中采用的是离轴全息,故可以看到分离开的“+1级”像、“0级” 像和“-1级”像,实际需要的为携带原物光波的共轭光信息的“-1级像”。层析法采用的是同轴全息。
三维物体 篇4
(1) 营销手段的进步, 对商品模拟软件的需求
技术的发展已经慢慢进入了人们的生活, 以前买东西, 你可能在犹豫这个东西是否适合自己家的氛围, 购买时犹豫不决, 现在的营销模式改变了这一现状, 很多厂家将三维仿真技术用到了商业促销上, 提高了成交率。例如你要为自己家里选择木地板, 但你不知道选择什么颜色和花纹适合自己家, 商家通过计算机将铺装后的效果展现出来, 供消费者决策。
(2) 商品模拟软件开发可以使用OpenGL技术
OpenGL技术完全可以胜任仿真物体的任务, OpenGL是最早出现的图形接口标准, 它以动态库的方式提供给软件开发者所有图形绘制接口函数。OpenGL易学易用, 开发方便, 本文重点就是讨论OpenGL技术中比较关键技术之一, 即贴图技术, 选用DELPHI 7做了演示程序。
二、相关概念和实现工具
(1) 建模
现实世界中, 固体物体正常状态下都有固定的形状, 仿真物体首先要对物体建立模型, 任何物体的表面都可以用无数个小三角形或者多边形去逼近, 这些三角形和多边形都有各自的顶点坐标, 根据这些坐标与OpenGL坐标系之间的对照关系, 就可以将物体置放到虚拟世界中。
(2) OpenGL纹理与贴图
现实世界中的物体表面往往有各种纹理, 仿真时需要给物体加上纹理, 同时结合光照和材质参数的设置, 使物体看起来更真实。OpenGL编程的重点是图形的生成和如何逼近真实效果。纹理贴图技术贯穿于整个OpenGL技术体系纹理和贴图时两个并行的概念, 物体有纹理, 而纹理是通过贴图技术来实现的。
(3) 单片贴图和重复贴图
贴图最基本的方式有两种, 一种方式是单片贴图, 比如对一扇门来讲, 我们就应该用单片贴图方式。如果是目地板或者瓷砖, 因为需要好多地板或者是瓷砖, 就需要重复的贴图。贴图的方向需要注意, 图片的顶点和物体的顶点要一一对应否则, 图片就会颠倒, 下图就是图片和物体表面顶点的对照关系。
(4) 贴图的右手法则
在实际的开发工程中, 经常发现贴上去的图, 无论如何显示不出来, 坐标都是正确的, 但是无论如何贴图无法显示。所以一定要注意贴图遵循右手法则:即面对你要观看的物体, 深处右手, 大拇指对向你的脸, 手指的方向就是贴图的次序。
(5) 阴影
阴影的实现过程的操作可以说是一条深度比较指令。根据场景物体像素在光源视觉下的深度得到的阴影图, 在视图转换阶段对应相机视觉中的像素判断是否属于阴影图中的像素, 这本来就是一个TRUE OR FALSE的判断, 若TRUE证明非阴影, 像素颜色值不变;若FALSE则涂黑, 以表明该处阴影, 例如, 当门打开时, 我们需要实现阴影。或者当放置物体时, 我们需要在地板或者地板瓷砖上建立阴影。
三、以家装中贴图为例, 说明三维物体贴图技术具体实现过程
1.编程实现贴图的一般过程
(1) 定义纹理
有两种方法定义纹理:连续法和离散法。连续法把纹理定义为一个二元函数, 函数的定义域就是纹理空间。而离散法则是把纹理定义在一个二维数组中, 该数组表示纹理空间中行间隔和列间隔固定的一组网格点上的纹理值。网格点之间的其它点的纹理值可以通过对相邻网格点上纹理值进行插值来获得。通过纹理空间与物体空间之间的坐标变换, 可以把纹理映射到物体表面。
(2) 纹理贴图方式
OpenGL用于纹理贴图方式的函数为glTex~v () , 该函数的原型 (以glTexEnvf形式为例) 为:voi dglTexEnv (Gl_enum target, Gl_enum pname, GLfloat param) 其中target参数必须为GL_TEXTURE_ENV, pname参数必须为GL_TEXTURE_ENV_MODE, 而参数parmn为GL_MODULATE、GL_DECAL或GL_BLEND。纹理坐标可以是1、2、3、4维的, 通常用齐次坐标来表示, 即 (5, t, r, q) 。OpenGL定义纹理坐标的函数为xCoord () 。
2.程序贴图后的效果
3.关键代码与技术
(1) 建立模型。
房屋的模型可以通过如下代码设置顶点坐标, 与纹理坐标和顶点坐标对应。类似于如下代码实现。
(2) 确保贴图不颠倒
在程序中, 窗户和门, 墙壁, 顶棚和地板都是通过绘制矩形的方式来实现的, 然后对这个矩形四个顶点分别和纹理的四个顶点相对应, 使图像能正常显示出来不会颠倒, 具体形式如下。
这里有三个OpenGL的关键函数, glNormal3f, glTexCoord2f glVertex3f。
分别定义了这个顶点的法向量位置, 纹理坐标的位置, 和顶点坐标。
如果法向量的位置设置错误, 那么光照将不能很好的表现出贴图的效果, 会使物体看上去没有真实的感觉。纹理坐标决定该坐标点对应于图片的哪个角。顶点坐标就是物体的某个顶点的空间位置了。
(3) 重复和单片贴图技术实现。
从上面的图片可以看到, 地板和顶棚是采用了重复贴图而门和窗户使用了单片图贴图。对应于上面代码段的glTexCoord2f (TexVer ts[iVertex].X, TexVerts[iVertex].Y) 部分, 这里需要说明的是, 该函数的参数, 在初始化时根据实际情况赋给初始数值, glTexCoord2f (0.0, 1.0) , 该参数表示该物体此时的顶点对应于物体的左上一点。同时是整张图贴图, 如果参数是glTexCoord2f (0.0, 8.0) , 表示该物体此时的顶点对应于物体的左上一点, 但用纵向8张图来映射物体表面, 实现贴图。当然, 如果8.0变成8.5, 意思是物体此时的顶点对应于物体的左上一点, 但用纵向8张半图来映射物体表面, 实现贴图, 可以看出, OpenGL是支持半张图贴图的, 这说明了OpenGL技术的强大。
(4) 正反面贴图
对于门的实现, 因为考虑到门是应该可以开合的, 那么就对门单独建模, 然后进行贴图处理, 这里就需要正反面的贴图方式, 相当于对立方体的六个面贴图, 至于门如何开合, 使用OPENGL旋转函数就可以了。
(5) , 光照和阴影
为了使得贴图后的仿真效果更加逼真, 往往在三维场景中广泛使用光照和阴影。OpenGL光的类型, 包括环境光, 漫射光, 反射光, 和发色光。在程序实现中要对这些元素进行编程处理, 使得贴图后的效果更加逼真, 特别是光线的明暗及阴影处理, 能真实的体现三维的效果, 可以说, 没有光照和阴影, 就不会有完美的三维成像效果。如下代码给出阴影的绘制方法。
结束语:
开发一套应用于商业演示的三维程序是营销历史上的一次重大事件。本文充分说明了贴图在三维程序编制过程中的重要性, 同时也论述了单片贴图, 重复贴图, 以及光照和阴影的相关技术, 能为喜欢虚拟现实编程爱好者提供一定的帮助。
摘要:现代的销售方式, 越来越借助于高技术含量的计算机的手段, 例如建材商品的销售活动, 消费者往往犹豫商品的颜色和花纹是否和家里的氛围相协调, 这阻碍了成交的顺利进行。为了解决这个问题, 论文提出了用OPENGL进行高仿真三维物体, 将这一物体搬到计算机上顾客虚拟的家里, 这样就可以看到接近实际的效果了。论文着重介绍这一仿真技术中的一项关键技术—贴图技术。
关键词:OpenGL,高仿真,贴图技术
参考文献
[1]航天部二院陈峰.OpenGL中文本的显示[N].计算机世界, 2000.
[2]评测实验室吴挺.“火烤”OpenGL[N].计算机世界, 2004.
三维物体 篇5
利用视觉传感器、图像采集装置等机器视觉产品对目标物体进行非接触三维测量,获取物体的三维信息,实现全自动或半自动建模,是物体三维重建技术的一个重要发展方向。视点规划(view planning)亦称传感器规划(sensor planning,SP),它利用给定的环境信息以及将要完成的任务信息来自动决定传感器参数最佳值的策略[1],对三维重建效率、采集的图像信号数据质量、图像的后处理和分析都有较大影响。许多学者开展了视点规划的研究[2,3,4,5],研究方法逐渐从基于模型的视点规划方法向基于未知模型的视点规划方法发展。
由于机器视觉系统本身的结构或目标物体的形状特征产生遮挡区域,故视觉传感器未能获取到目标物体上的三维信息,在物体的三维表面数据中出现点云孔洞。通过网格修补等图像处理方法解决遮挡问题[6,7]的方法可在解决形状规则和较小区域的点云孔洞时能够保证一定的精度,但有一定的局限性。
文献[8]对未知物体三维重建的视点规划分为线激光扫描侧面视点规划和上表面视点规划,侧面视点规划预测出遮挡部分的轮廓模型,结合可视空间确定消除遮挡的视点位置。针对上表面重建过程中的遮挡问题,以遮挡边界连线的法矢为依据,确定规划方案。该视点规划方法能够实现未知物体的三维重建,但物体三维重建效率和如何保证重建精度有待进一步研究。
选择遮挡孔洞部分的合适视点位置来消除遮挡部分是视点规划研究的一个重要内容。本文针对遮挡问题提出了通过建立点云孔洞边界最小包容盒以确定消除遮挡部分视点位姿的新方法,视点规划方案为先进行侧面激光扫描视点规划,再对侧面扫描产生的遮挡部分进行视点规划,提高了规划的自动化程度,并在视点规划方案中选择合适的测量距离以提高表面拟合精度。
1 研究实验方法
1.1 实验设备
本文的实验设备为五自由度机器视觉系统,如图1所示。OP为工作台旋转中心,线激光发生器和CCD摄像机组成视觉系统,机器视觉设备的5个自由度运动如下:①X方向平动,行程为-400~400mm;②Z方向平动,行程为0~400mm,其中,激光发生器的扫描高度H为50mm;③Y方向平动,行程为0~300mm;④绕OPZ1轴做0°~360°转动;⑤绕OPX1轴做-90°~90°转动。视觉系统对目标物体扫描时的运动平面与XOZ平面平行。
根据文献[9]的研究结果,视觉系统最小测量距离为64mm,最大测量距离为186mm,有效测量深度为122mm。测量距离影响被测物体表面的拟合精度,视觉系统测量精度δ为25~58μm。为满足系统对任意未知高度物体均能进行有效测量的要求,系统最佳可视测量深度d为94~186mm。机器视觉系统实验装置如图2所示。
1.2 孔洞边界点的判断
点云数据预拼合后,把拼合坐标系偏置到以工作台旋转中心OP为原点的坐标系,根据点云数据的Z坐标值大小细分为若干等分层,把每个等分层内的点云向X1OPY1平面投影,设定点云孔洞投影点的距离阈值为a,若X1OPY1平面上相邻投影点的距离大于a,则该投影点对应的三维空间点即为孔洞边界点。
如图3所示,将间隔为ΔZ的分层区间内的点云向X1OPY1平面方向投影,计算坐标原点OP和各投影点的连线与X1轴之间的角度γ(OP在点云数据轮廓投影点内,目标物体放置在工作台中央位置),按角度γ大小顺序计算相邻投影点的距离。若相邻投影点Q′i、Q′i+1的距离|Q′iQ′i+1|=Ti>a,则Qi、Qi+1为孔洞边界点;若相邻投影点Q′j、Q′j+1的距离|Q′jQ′j+1|=Tj≤a,则Qj、Qj+1不是孔洞边界点。
2 目标物体表面三维扫描视点规划方法
为了有效消除遮挡孔洞问题,本文把视觉系统获取的目标物体表面三维信息的视点规划分为侧面信息激光扫描视点规划和遮挡孔洞扫描视点规划。
2.1 遮挡孔洞扫描视点规划方法
2.1.1 孔洞扫描平面方向的确定
线激光扫描中,如果用视觉系统扫描运动平面的两个平行面包容待检测的轮廓面部分,两包容平面间的距离越小,轮廓面相对视点位置的角度变化就越小,轮廓面可视性越大,拟合精度的变化量也越小。因此,利用孔洞边界点,以最小二乘法确定视点扫描方向,对孔洞轮廓面进行扫描,采集其点云数据,能够有效地解决遮挡孔洞问题,并可通过选择合适的测量深度来提高点云采集精度。
孔洞边界点为Pi (i=1,2,…,n),其坐标为(xPi,yPi,zPi)。假设扫描平面方向最小二乘平面M的方程为
z=ax+by+c (1)
则各边界点到最小二乘平面的距离di为
沿平面法向量方向,边界点在平面上方时,点到平面的距离di为正值,在平面下方时,点到平面的距离di为负值(下同)。
设
根据孔洞边界点的坐标值,采用最小二乘法,使得S为极小值,并求出最小二乘平面方程的参数a、b、c值。
视点的扫描运动平面与最小二乘平面z=ax+by+c平行,其法向量n=(-a,-b,1)。最小二乘平面M如图4所示。
2.1.2 孔洞边界点的最小包容盒
如图4所示,过工作台旋转中心(坐标原点)OP作垂直于最小二乘平面z=ax+by+c的直线,直线与最小二乘平面相交于点OM,OM在X1OPY1平面上的投影点为O′M,OM在平面Y1OPZ1平面上的投影点为O″M。
直线OPOM的方向向量是最小二乘平面的法向量,OPOM直线方程如下:
联立式(1)、式(4)得到OM点坐标
从图4分析可知,平面OMOPO′M与平面Y1OPZ1之间的夹角为
γOM=arctan(a/b) (6)
直线OPOM绕OPZ1轴旋转γOM角后到平面Y1OPZ1上的直线为OPOγ,直线OPOγ与平面X1OPY1的夹角为
平面OMOPO′M的方程为
bx-ay=0 (8)
平面OMOPO″M的方程为
y+bz=0 (9)
界点Pi到平面OMOPO′M的距离:
界点Pi到平面OMOPO″M的距离:
dLi为最大值dLmax、最小值dLimin时对应的孔洞边界点分别为PL和PR,dWi为最大值dWimax、最小值dWimin时对应的孔洞边界点分别为PU和PD。
孔洞边界点的最小包容盒为由前后平面和四周平面组成的六面长方体,如图5所示。前后平面与孔洞边界点的最小二乘平面平行,分别为经过到最小二乘平面距离最大值和最小值的边界点的平行面,
设dimax为孔洞边界点到最小二乘平面的最大距离,dimin为孔洞边界点到最小二乘平面的最小距离,前后包容面的距离为
DH=dimax-dimin (12)
四周平面中的左右平面与平面OMOPO′M平行,分别为经过到边界点PL和PR的平行面,左右平面的距离为
DL=dLimax-dLimin (13)
四周平面中的上下平面与平面OMOPO″M平行,分别为经过到边界点PU和PD的平行面,上下平面的距离为
DW=dWimax-dWimin (14)
2.1.3 遮挡孔洞表面扫描视点规划
遮挡孔洞的扫描运动平面与孔洞边界点的最小二乘平面z=ax+by+c平行,视点方向垂直于最小二乘平面。利用五自由度机器视觉系统研究设备进行遮挡孔洞扫描时,放置目标物体的工作台绕OPZ1轴旋转γOM角后再绕OPX1轴翻转φOM角,使工作台运动后孔洞边界点的最小二乘平面与扫描运动平面平行,即最小包容盒的前后平面与扫描运动平面XOZ平行。
此时,工作台旋转中心OP到最小包容盒前后面的距离分别是rOM+dimax和rOM+dimin。根据点云数据预拼合的轮廓形状预估遮挡孔洞轮廓的凸凹情况,判断可能超出最小包容盒前后面的距离,考虑视觉系统的表面拟合精度与测量距离之间的关系情况,选择工作台沿Y方向平移的位置。视觉系统沿X方向和Z方向的平移运动范围大于最小包容盒的四周平面范围,对孔洞轮廓表面采集点云数据。
2.2 目标物体扫描视点规划
侧面信息激光扫描视点规划参照文献[10]的方法。使用被动视觉技术获取目标物体的最大尺寸信息,根据极限曲线构建出相应的极限曲面,分析该曲面模型的可视性,最后选取能够获得最大可视区域的视点位置作为下一最优视点。目标物体扫描视点规划流程如图6所示。
2.3 实例应用
2.3.1 实例1
对模型1进行三维数字化建模,利用五自由度机器视觉系统获取其表面三维信息,对侧面信息激光扫描后,三维点云数据预拼合后如图7所示,遮挡孔洞主要集中在物体上部。
拼合坐标系原点偏置到工作台旋转中心,遮挡孔洞边界点如图8所示,其最小二乘平面M的方程为z=-0.0328x-0.0031y+119.2538。
工作台旋转中心到最小二乘平面的距离rOM=119.1891mm,到最小二乘平面的垂足OM点坐标为(3.9073,0.3693,119.1245)。
建立孔洞边界点的最小包容盒,包容盒前后包容面的距离为8.94mm。工作台绕OPZ1轴旋转84.60°后再绕OPX1轴翻转89.94°,工作台沿Y方向平移,选取视点到最小二乘平面的距离为125mm。视觉系统沿X方向和Z方向的平移运动范围大于最小包容盒的四周平面范围,对遮挡孔洞表面进行扫描的点云如图9所示。模型1侧面信息扫描和遮挡孔洞表面扫描的点云拼合结果如图10所示。
2.3.2 实例2
对模型2进行侧面信息激光扫描,各视点下的扫描结果如图11所示。
侧面扫描各视点的点云都出现孔洞,三维点云数据预拼合后如图12所示,遮挡孔洞只有3处,孔洞1和孔洞2在模型2的上部,孔洞3在模型2的下部。
遮挡孔洞边界点如图13所示,由于上部的孔洞1和孔洞2和下部的孔洞3位置较远,分2个视点进行扫描。视点6扫描孔洞1和孔洞2,视点7扫描孔洞3。孔洞1和孔洞2的最小二乘平面M1方程为z=0.1707x-0.0938y+96.7238,孔洞3的最小二乘平面M2方程为z=0.0826x+0.1105y+37.4491。建立孔洞边界点的最小包容盒,模型2各孔洞扫描视点的有关参数计算结果如表1所示。
(a)孔洞1和孔洞2边界点 (b)孔洞3边界点
视觉系统沿X方向和Z方向的平移运动范围分别超过最小包容盒的左右平面和上下平面之间的范围,对遮挡孔洞表面进行扫描的点云如图14所示。模型2侧面信息扫描和遮挡孔洞表面扫描的点云拼合结果如图15所示。
实验中侧面信息采集时不需对各视点的扫描点云遮挡孔洞进行判断和再扫描,只要在侧面信息采集完成后对三维点云数据预拼合,进行点云孔洞的判断和视点规划,提高了规划的效率和自动化程度,取得较好的效果。
3 结语
本文把视觉系统获取目标物体表面三维信息的方法分为侧面信息采集和遮挡孔洞表面信息采集两个阶段,即先进行侧面激光扫描视点规划,再对侧面扫描产生的遮挡部分进行视点规划。为消除遮挡孔洞,本文提出了基于点云孔洞边界点最小包容盒的视点位姿新方法,将孔洞边界点最小二乘平面的平行面作为遮挡孔洞表面的扫描运动平面,在遮挡孔洞表面点云数据采集时选择合适的测量距离以提高表面拟合精度,有效地获取目标物体表面的三维数据信息。实验验证了所提方法的有效性。本文研究方法对于实现视点规划的自动化和提高目标物体三维数字化的准确度具有积极作用,遮挡孔洞表面扫描视点规划需要对侧面扫描得到的点云数据进行预拼合,确定消除遮挡孔洞表面的视点位置,适用于对物体表面有一定拟合精度要求的场合。
参考文献
[1]孙九爱,吕东辉,宋安平,等.计算机视觉中传感器规划综述[J].中国图象图形学报,2001,6(11):1047-1052.
[2]Wang Pengpeng,Gupta K.A Configuration Space View of View Planning[C]//2006IEEE/RSJ International Conference on Intelligent Robots and Systems.Bei-jing,2006:1291-1297.
[3]Chen S Y,Li Y F,Zhang J W,et al.Active Sensor Planning for Multiview Vision Tasks[M].Berlin:Springer-Verlag,2008.
[4]Maver J,Bajcsy R.Occlusions as a Guide for Planning the Next View[J].IEEE Transactions on Pattern A-nalysis and Machine Intelligence,1993,17(5):417-433.
[5]Connolly C.TheDetermination of Next Best Views[C]//IEEE International Conference on Robotics&Automation.San Franscisco,1985:432-435.
[6]Pernot J P,Moraru G,Veron P.Filling Holes in Me-shes Using a Mechanical Model to Simulate the Curva-ture Variation Minimization[J].Computers&Graph-ics,2006,30(6):892-902.
[7]陈杰,高诚辉,何炳蔚.三角网格模型孔洞修补算法研究[J].计算机集成制造系统,2011,17(8):1821-1826.
[8]何炳蔚,林东艺,陈志鹏,等.三维物体视觉测量重构中解决遮挡问题的方法研究[J].中国激光,2011,38(7):1-10.
[9]何炳蔚,周小龙.面向未知物体自动测量和重建的视点规划方法[J].计算机辅助设计与图形学学报,2010,22(8):1374-1381.
三维物体 篇6
关键词:三维物体识别,纹理分析,颜色矩,仿射不变矩,支持向量机
0 Introduction
In recent years,the view-based(or appearance-based)three-dimensional object recognition has attracted much attention and been widely researched[1,2,3,4].In a two-dimensional image,the appearance of a three-dimensional object depends on its shape,reflectance properties,pose and the illumination conditions in the scene.Among the view-based 3D object recognition approaches,Murase et al.proposed a parametric eigenspace methods to recognize 3D object directly from their appearance[5].They developed a near real-time recognition system to recognize complex objects,and got accurate recognition results.Early in the 1990s,a new learning algorithm based on statistical learning theory was proposed by Vapnik and coworkers.This algorithm,named Support Vector machine(SVM)[6],has produced excellent performances in a number of difficult learning tasks and is also used in 3D object recognition problems recently.Jun et al.decomposed 2D images to sub-images using wavelet transformation,then extracted feature vectors from each sub-images using Singular Value Decomposition(SVD),finally these feature vectors were sent to Support Vector Machines for classification.Yang and Roth[3,7]proposed a view-based algorithm using a network of linear units,the Sparse Network of Winnows(SNoW)learning architecture,to learn the objects representations and was specifically tailored for learning in the presence of a very large number of features.After converted color images to gray-level images of 32 pixels×32 pixels,they tested their method using pixel-based and edge-based representation of the objects respectively in large scale of object recognition experiments.Zhang et al.proposed a multi-scale intelligent recursive recognizer for recognizing3D object,in which BP neural network and RBF neural network are the basic cells,and regular moment invariants of the multi-scale binary characteristic views of the target model are used as the pattern feature vectors.
Generally speaking,above-mentioned methods can be traced back to a basic idea,that is,recognize objects through visual similarity.These methods firstly learn or train a system with appearance of objects in two-dimensional images under different poses and illumination conditions.Then at recognition phase,presented an unseen two-dimensional image with a new pose and illumination,this system is used to determine whether the target object exists in the new image.According to this basic idea,we propose a view-based 3D object recognition method,which only use a few remarkable features extracted from each 2D image of 3D objects.That is,we use color moments[8],texture characteristics[9]and affine invariant moments[10]as object features to distinguish 3D objects with similar shapes,colors,texture and poses.We combine these feature vectors into a 1-dimensional feature vector of 23 elements for each view image of 3D objects,and present the feature vectors to support vector machine for training and recognition.The proposed method has been tested on the Columbia Object Image Library(COIL-100)dataset[5]and a subset of the Amsterdam Library of Object Images(ALOI)[11].
The remainder of the paper is organized as follows.In section 1,we review the related theories about texture analysis,color moments,affine invariant moments and support vector machine.Section 2 discusses the implementation of our recognition system,and the obtained experimental results in the case of various numbers of training views are illustrated comparing with previous works on the same COIL-100 dataset.Finally,we conclude some directions for future work from our researches in Section 3.
1 Theoretical Overview
We recall in this section about the related theories used in our method,including Gray Level Co-occurrence Matrix(GLCM)based texture analysis,color moments,affine invariant moments and Support Vector Machine.
1.1 Color Moments
Compared with geometric characteristics,the color of objects is quite robust,and insensitive to size and orientation of objects.In this paper,we use the method proposed originally by Stricker et al[8].to store the first three moments of each color channel of an image.For an image of RGB format or HSI format,only 9 numbers of moments are required.
A probability distribution is uniquely characterized by its moments according to probability theory.Color distribution of an image also can be regarded as a probability distribution,so color distribution also can be determined by its moments.The first moment,the second and the third central moment of each color channel can be used.The first moment is the average color of an image.And the second central moment of an image is the variance;the third central moment of an image is the skewness of each color channel.To make the value of the moments somewhat comparable,the standard deviation and the third root of the skewness of each color channel of an image are used,in this way all the values have the same unit.If pij is the pixel of a digital image f(x,y)of M×N dimension,A is the area of the image,then the first three moments for each HSI color channel can be defined as follows:
1.2 GLCM Based Texture Analysis
Texture analysis is used in a variety of applications,including remote sensing,automated inspection,and medical image processing.Texture is an important feature of objects in an image.When traditional threshold technical can not be used effectively,texture analysis can be helpful when objects in an image are more characterized by their texture than by intensity.In this paper we use texture analysis method in the task of 3D object recognition.
Gray Level Co-occurrence Matrix(GLCM)[9]is one of the effective texture analysis methods,which estimates image properties using second-order statistics.Gray level co-occurrence matrix Pd(i,j)is constructed with each element(i,j)equals to the number of occurrence of gray level i and j pair which are a distance d apart in original images.Haralick[9]proposed 14 statistical features extracted from GLCM to estimate the similarity of GLCM in different distance d and different occurrence of gray level i and j pair.To reduce the computationa complexity,we only use 4 of these texture features for recognition as following:
1)Contrast:a measure of the intensity contrast between a pixel and its neighbor over the whole image;
2)Correlation:a measure of how correlated a pixel to its neighbor over the whole image.Here ux,uy,σx,σy are the average and standard variance of Px,Py separately.Px is the sum of each row of Pd(i,j),and Py is the sum of each column of Pd(i,j);
3)Energy:also known as Angular Second Moment,provides the sum of squared elements in the GLCM;
4)Homogeneity:measure the closeness of the distribution of the elements in the GLCM to the GLCM diagonal.
1.3 Affine Invariant Moments
In realistic application,due to the affection of camera visual angles,we can observe the 3D object showing different poses in its 2D images which generally can be regarded as the affine transformation of objects.To guarantee the extracted features have invariant properties under affine transformation,naturally we consider the affine invariant moments,such as the first three orders affine moment invariants[10].
Given a digital image f(x,y)of M×N dimensional,the(p+q)th order geometry moments and central moments are defined as follows:
whereis the center of gravity of the image.For an intensity image,m00 is its quality;for a binary image,m00 is its area.Both geometry moments and central moments can represent shapes in images and central moments are invariants under translation.The general formulation of affine invariant moments isµ0r0divided by polynomial ofµpq,where r is certain appropriate exponential:
1.4 Support Vector Machine
After extracted above-mentioned 3D object features from 2D view images,this features based 3D objec recognition task is a typical classification problem from the point of view of pattern recognition.In recent years the research of Support Vector Machine(SVM)has been widely developed.This algorithm has produced excellen performance in a number of difficult learning tasks in the case of small sample,nonlinear and high dimensiona pattern recognition.SVM is based on the Structural Risk Minimization(SRM)theory[6],and it guarantees the learning machine has preferable generalization ability.Further SVM guarantees global optimality of the algorithm and avoid the local minimum problem which can not be solved by neural network method[12].
Consider the classification task given by a data set S={(xi,yi),i=1,2,…,l}in two classes,where each instance xi belongs to the input space RN andyi∈{-,1+}1.If the training set x are linear separable,there exist separating hyperplane w·xi+b=0 such that:
wherew∈RN.From statistic learning theory,if all the training vectors are separated correctly by the hyperplane and the distance of the nearest sample data from the hyperplane is maximum,this hyperplane is named Optimal Separating Hyperplane(OSH),as shown in Fig 1.
We require the separating hyperplane to separate the data set in two classes correctly with maximum distance.Because the distance equals 2/‖w‖,the maximum distance problem equals minimum‖w‖2/2,and thus the solution to the OSH can be written as quadratic programming problem as Eq.(9):
The 3D object recognition problem studied in this paper belongs to non-linear separable problem.When the training set x is non-linear separable,the training vectors can be mapped into a(usually high dimensional)linear feature space through a nonlinear mapping functionφ(⋅).In this high dimensional linear feature space the OSH w⋅φ(xi)+b=0is constructed,and the OSH problem(9)is then regarded as Eq.(10):
whereξi is non-negative slack variables and C is the penalty coefficients.Using Lagrangian multiplier method and Kuhn–Tucker theory to solve this quadratic programming problem with linear constrain,then we have Thus the decision function is:
whereK(xi,x)=φ(xi)φ(x)is the kernel function.Though the training set is mapped into high dimensiona feature space by non-linear functionφ(⋅),this non-linear function need not be calculated explicitly.We only need to calculate the kernel functionK(ix,x)in the initial feature space and thus avoid the curse of dimensionality problem of feature space.Different Support Vector Machine can be designed if we select different inner product kernel function which meets Mercer condition.In this paper,we adopt the Gaussian Radial Basis Function(RBF) with kernel width equals to
2 Experiments
The Columbia Object Image Library[5](COIL-100)and the Amsterdam Library of Object Images[11](ALOI)are two public dataset.The COIL-100 is widely used to evaluate the performance of 3D object recognition algorithms,consisting of 7 200 true color images of 128×128 resolution of 100 objects(72 images per object).The objects have a wide variety of geometric and reflectance characteristics.The ALOI dataset is made public recently contains 1 000 objects recorded under various imaging circumstances.This dataset covers a wide variety of illumination color,illumination direction,viewing directions and wide-baseline stereo pairs.Compared with COIL-100 dataset,ALOI dataset contains more 3D objects and the objects in it have more complex shapes reflectance properties,and illumination conditions.The generation of the two datasets was similar:each objec was placed on a motorized turntable against a black background.The turntable was rotated through 360°to vary object pose in front of a fixed color camera.Images of objects were taken at pose intervals of 5°,i.e.,72 poses per object.Each of the 7 200 images in COIL-100 was size normalized,however images in ALOI were not.
We evaluated the recognition rate of our method based on both COIL-100 and ALOI dataset.For COIL-100dataset,we took all of the 100 3D objects,totaled 7 200 images.The images of each object with view angel at 30o are shown in Fig.2.For ALOI dataset,we took a subset of it,200 3D objects,totaled 14 400 images.The images of each object with view angel at 30o are shown in Fig.3.In the first experiment,we chose 36 views per objec(10o intervals)to consist the training set,amounted to 3 600 training view images for COIL-100 dataset and 7 200training view images for ALOI dataset,and the rest images were chosen as testing view images.
After preprocessing to the training view images,we calculated color moments of the training view images according to Eq.(1)and calculated the affine invariant moments according to Eq.(6)~(7).To reduce computationa cost,we chose the first order moment and the second central moment of each HSI color channel,in the sum of 6moments,and chose the first order affine invariant moment.To fully use the spatial information of images,we calculated the Gray Level Co-occurrence Matrices in 4 directions of 0o,45 o,90o and 135o(horizontal,vertical,and two diagonal)of the training view images,and got the values of contrast,correlation,energy and homogeneity from these GLCM according to Eq.(2)~(5),in the sum of 16 texture features.At last we combined the extracted color moments,texture features and affine invariant moment into a feature vector of 23 elements.Provided with these feature vectors,the SVM was trained and the learned SVM was then used to recognize the testing images of unseen views in the two 3D object dataset.
In the first experiment,the correct rate of recognition of trained SVM both achieved 100%for all the 3 600testing view images of 100 objects in the COIL-100 database and all the 7 200 testing view images of 200 objects in the ALOI dataset,as showing in Table 1.This result indicated the good performance of our method using SVM for recognition in high-dimensional patterns recognition.Compared with our previous work[13]which used the BP(Back Propagation)neural network for recognition and only performed 40 objects recognition experiments based on COIL-100 database,the performance of our method in this paper was greatly improved.
In order to evaluate our method in more realistic situation,we ran several experiments when fewer numbers of views of the 3D objects were presented during training.For each experiment the number of training views was step-wise reduced from 36 views per object(10°intervals)to 2 views per object(180°intervals).The case of 4training views of one object is demonstrated in Fig.4.The recognition performance was tested on the remaining views in the two databases(which were 36 to 70 views per object).We repeated our experiments decreasing training views,and reported the recognition results in Table 1.
Under these more challenging experimental setups,although it is not surprising to see from Table 1 that the correct rate of recognition decreased as the number of available views decreased during training,it is worth noticing that when the number of training views per object were reduced to 18(20o interval),our method achieved99.81%correct rate of recognition for the two datasets,i.e.,only 10 poses were not recognized in all the 5 400testing views of COIL-100 database,and only 21 poses were not recognized in all the 10 800 testing views of ALOI database.At the most hardness setup,we reduced the number of training view to 2,i.e.only 0o and 180o view angles were used,the correct rate of recognition of our method also achieved 74.50%for COIL-100 and77.31%for ALOI.This result indicated the advantage of our method using SVM in recognition task when provided a small quantity of samples.From Table 1,compared with the correct rate of recognition obtained on COIL-100 dataset reported in previous literatures[3,14],our method outperformed these results significantly when fewer training views were used.
3 Conclusions
In this paper,a view-based 3D object recognition method has been proposed,which extract texture features color moments and affine invariant moments of the 3D object from its 2D view images to combine 1-dimensiona feature vectors of 23 elements,and then these feature vectors are fed to Support Vector Machine for training and recognition.Our method is simple and the dimension of extracted feature is very low that can reduce the computational complexity for training and recognition.The experiments based on two public 3D object datase including COIL-100 dataset and ALOI dataset were performed with different number of view angles as training set.The 100%correct rate of recognition could be obtained when the training set were presented with view angle of every 10o.And when the number of training views was reduced,the correct rate of recognition was also good and outperformed the results reported in previous literatures.This paper addresses the view-based 3D objec recognition,that is,we mainly focus on the problem of recognizing 3D object in images,the framework of our method also can be used for general object recognition or image classification,such as face recognition,rock or wood texture classification and handwriting recognition,etc.