三维重建论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于体素的车身外形三维重建系统
高树健1, 公伟强2, 李鹏3
(1.长安大学汽车学院,陕西省西安市,710000;2.长安大学汽车学院,陕西省西安市,710000;
3.长安大学汽车学院,陕西省西安市,710000;)
摘要:随着越来越多的高科技技术应用于汽车领域中,汽车运行速度越来越高,由于在高速状态下,空气阻力等因素对汽车的运行状态、燃油经济性有很大影响,因此,一款车具备一种合理的车身外形是非常的。
本系统通过分析现有车辆中设计比较合理的车身外形,对其进行外形重建,获得该车身的三维模进而对其加以改进,使其能应用于即将开发的新型车辆中,从而满足更高的要求,就可大大提高汽车外设计方面的工作效率,同时节省了汽车制造商的设计成本。
关键词:三维重建、图像处理、汽车外形
The 3D Reconstruction System Of the C ar’s Shape Based On Voxel
Gao Shujian1, Gong Weiqiang2& Li Peng3
1.Xi’an Shanxi Proviece;
2. Xi’an Shanxi Proviece;
3. Xi’an Shanxi Proviece
[Abstract]As more and more hign-tech are used on the field of automotive, the speed of vehicle are increasing greatly. The air resistance has a significant impact on the running and fuel economy while driving in a high speed. So a car with a reasonable body shape is very important, this system finishs the shape reconstruction through the analysis of existing vehicles in reasonable shape of the body, then we improve them so that they can be applied to new vehicles and meet the higher requirements. Through this system we can greatly improve the car’s exterior design efficiency while saving the car manufacturer’s desing costs.
Keywords: the image processing;the 3D reconstruction;the cat’s shape
0 引言
计算机视觉是一个比较新的研究领域, 目标是通过图像创建来恢复现实世界模型。
计算机视觉不同于计算机图形学, 它主要是从图像数据中得到三维信息, 并对物体进行重建。
三维重建的方法有边缘提取发、纹理识别法、立体光学法、轮廓法等。
本文主要采用的是基于侧影轮廓额方法]1[,该方法是利用物体在图像中的侧影轮廓线来生成三维模型,具有较强的鲁棒性, 能够较好地保证几何和拓扑结构的一致性, 并且可以通过增加视点数目来得到越来越精确的三维模型。
该三维重建技术可应用于反求工程,对车身及汽车零部件等已经存在的产品,反对其产品模型和设计思想,进而进行再设计和改进,从而改善技术水平、提高生产效率、增强经济竞争力。
1 图像预处理
1.1 图像平滑处理
由于图像在成像、传输和转换等过程中受照明、设备条件和传输信道等客观因素的限制,所获得的图像往往存在某种程度上的质量下降。
另外,图像中一般混有随机的、形状和大小不规则的随机噪声(RandomNoise)]2[。
中值平滑滤波是一种对干扰脉冲和点状噪声有良好抑制作用,且对图像边缘能较好保护的低通滤波算法.采用中值滤波不能消除大噪声的影响,但它能很好地保持原灰度图像的分布特性,能滤去图像中的高频或低频分量(灰度突变),容易去除孤立点、线的噪声,同时保持图像的边缘,能很好地去除二值噪声。
下图为通过中值滤波后的处理图像:
图1 中值滤波
1.2 图像分割
图像分割是三维重构的基础,最常见的和最简单的分割方法是域值分割。
它可以对灰度图像设定合适的域值进行有效的分割。
两个具有不同灰度值的相邻区域之间总存在边缘,边缘正是灰度值不连续的结果]
3[ 。
本文用edge 命令,通过设定适当的域值来提取茶杯外轮廓的边缘。
对于分割后的图像,边缘不是很光滑,需要利用菱形结构元素对图像进行平滑处理,下图2为最后结果。
图2 图像分割效果
2 三维重建的实现
2.1 反投影方程
设Pi 为相机i( i = 1, 2,…, n) 的参数矩阵,则投影方程为:
⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡111110987654
3210Z Y X p p p p p p p p p p p p Z Y X P z y x i
⎪⎪⎩⎪⎪⎨⎧++++++==++++++==⇒1110987654
111109832101p Z p Y p X p p Z p Y p X p z y Y p Z p Y p X p p Z p Y p X p z x X
⎩⎨⎧+-+=-+---+=-+-⇔)()()()()()(1110176591481119132191081p Zp Y p Zp Y p p Y X p p Y p Zp X p Zp Y p p X X p p X
其中: (X, Y, Z ) 为空间坐标点,),(I I Y X 为图像坐标点。
如果将给定三维平面方程R: aX + bY + cZ + d = 0与方程组(3)进行联立求解,可得到相机i 中的轮廓Si 反投影到三维平面R: aX + bY + cZ + d = 0的反投
影轮廓i S R ]4[。
2.2 点集的形成
设SRi 是相机i 中的轮廓Si 在三维平面R: aX + bY + cZ +d = 0 上的反投影
轮廓( i = 1, 2,…, n)。
那么交叉轮廓i R n i R S S ⋂==
,...,1是物体表面和三维平面R: aX + bY + cZ + d =0的三维交叉轮廓,是物体表面在三维平面R 上的点集.
本文采用的轮廓交叉算法也采用平面扫描方法, 但使用了新的轮廓数据结构。
首先, 采用平面扫描方法计算出轮廓之间所有的交叉点, 然后计算出属于交叉轮廓的线段, 最后将这些线段连接成交叉轮廓。
2.3 表面的生成
上述的过程只生成物体表面上的点集,还需要连接两两相邻三维平面上的轮廓点, 并添加三角片以重构物体表面。
关于两个相邻平面间的轮廓点匹配算法,本文采用基于Delaunay 准则的匹配
算法]6[,设上层平面的线段为,,10q q …1,n q ;下层平面的线段为,,10p p …2,n p ;初始时00p q 为工作边。
设当前的工作边为j i p q ,比较两个三角片1+j j i p p q 和1+j j i q p q , 并选择最小内角为最大的三角片,设置新的工作边,重复上述过程。
下面为实现三维重建的部分代码:
clear all
imgFilename = [];
imgFilename{end+1} = 'jug1.png';
for imgLoop = 1:length(imgFilename)
imCell{imgLoop} = imread(imgFilename{imgLoop});
imCell{imgLoop} = im2double(imCell{imgLoop});
polyBoundaryVec = ExtractBoundaries( imCell{imgLoop} );
polyBoundaryVecCell{imgLoop} = polyBoundaryVec;
end
mergedViewVec = StaticMirrorObjMovingCamFn( polyBoundaryVecCell,'draw', 1 );
[pMesh,kMesh]=VhMarchTetMirror(mergedViewVec,imCell,'draw',1,'cellWid ',0.002 );
vrmlFilename = 'DoubleMirrorModel.wrl';
fid = fopen(vrmlFilename,'w');
fprintf(fid,'#VRML V2.0 utf8\n');
fprintf(fid, 'Background {skyColor [0 0 0]}\n');
cameraPosition = [0;0;5];
cameraTarget = ViewVecCentrePoint( mergedViewVec );
AddVrmlViewpoint( fid, cameraPosition, cameraTarget, 'description', 'visual hull', 'fieldOfView', 0.2 );
AddVrmlIndexedFaceSet(fid, pMesh, kMesh, 'objNameStr', 'DoubleMirror'); fclose(fid);
最后形成的三维物体效果图如下图3所示:
图3 三维重建效果图
3 结束语
通过效果显示可以看出本方法算法简单,用时较短,效率较高,但在细节方面与实体有明显差异,尤其物体凹槽部分无法重建,但可以基本满足工业化生产
的需要。
随着科学技术的发展和工业化生产效率的提高,反求工程将逐渐成为企业研发的重点领域,三维重建技术也将进一步的发展。
参考文献:
[1] LAURENTIN I A. The visual hull concep t for silhouette based image understanding [J]. IEEET ransactions on Pattern Analysis and Machine Intelligence, 1994, 16(2 ): 150- 162.
[2] 陈兵旗,孙明.实用数字图像处理与分析[M].中国农业大学出版社.2003,,50-56.
[3]罗军辉,冯平.Matlab在图像处理中的应用[M].机械工业出版社.2007.202-205.
[4]LAZEBNIKS, FURUKAWAY, PONCEJ. Projective visual hulls[ J]. Intern at ion al Journal of Computer Vision, 2007, 74( 2 ): 137-165.
[5]VATTIBR. A generic solution to polygon clipping [J]. Communications of the ACM, 1992, 35 (7 ): 56- 63.
[6] 凤, 欧宗瑛, 秦绪佳. 基于Delaunay 三角剖分的层析图像离散数据表面重建算法[J]. 工程图学学报, 2001, 22 (2 ): 53- 58.。