基于手绘查询的3D模型数据库系统及其实践应用
立即解锁
发布时间: 2025-08-29 10:32:49 阅读量: 8 订阅数: 16 AIGC 

### 基于手绘查询的3D模型数据库系统及其实践应用
#### 1. 引言
在3D模型数据库系统的开发过程中,存在两个关键问题:一是确定3D模型间最佳的相似性度量特征;二是找到指定查询的最佳方式。为解决这些问题,有人提出以手绘图像作为查询方式,同时采用轮廓图像匹配作为相似性度量方法,并开发了相应的3D模型数据库系统。此外,还利用IntelligentBox开发了更直观的界面,用户能在3D空间中指定所需3D模型的边界框,然后使用鼠标在边界框的三个正交面上绘制模型的轮廓图像。
此前已有一些关于3D模型匹配的研究。例如,Paquet和Rioux提出的系统通过颜色分布、比例和形状分布来管理彩色3D模型;Osada等人提出的D2方法,利用3D模型表面任意两点间的距离分布进行匹配;Hiraga等人使用多分辨率Reeb图(MRGs)进行拓扑匹配;Bandlow等人则基于物体轮廓进行识别,但这些研究的对象多为2D图像。目前尚未有使用手绘图像作为查询的3D模型匹配研究,以及像本文所提出的具有直观查询界面的3D模型数据库系统。
#### 2. 匹配算法
系统的基本思路是:先自动生成3D模型数据库中每个3D模型的轮廓图像,并将其作为特征信息存储;接着用户输入手绘图像作为查询;最后系统根据轮廓图像匹配结果检索并显示最匹配的模型。
##### 2.1 主轴
生成轮廓图像时,需在计算机屏幕上渲染3D模型并捕获存储其图像。确定渲染视角常用模型惯性张量的主轴。模型的惯性张量定义为矩阵$I$,其元素$l_{qr}$($q,r \in \{x,y,z\}$)的计算公式如下:
\[l_{qr} = \sum_{i=1}^{n} S_i \left[(q_{CM}^2 + r_{CM}^2)\delta_{qr} - q_{i}r_{i}\right]\]
其中,$n$是模型的三角形面数,$S_i$是第$i$个面的面积,$q_{CM}$和$r_{CM}$是模型质心的$q$和$r$元素,$q_i$和$r_i$是第$i$个面中心的$q$和$r$元素。
通过计算惯性张量的特征向量得到主轴,特征值最大的特征向量为第一主轴,第二大的为第二主轴,剩余的为第三主轴,其正负方向由表面积分布决定。
##### 2.2 轮廓图像生成
系统通过在计算机屏幕上渲染3D场景生成三个黑白轮廓图像,背景设为白色,3D模型设为黑色。由于大部分渲染过程由硬件支持,计算成本较低。渲染后,图像以指定分辨率(如8x8、16x16、32x32像素等)的正方形形式捕获并存储。
轮廓图像有两种归一化方式(A)和(B),如图2所示。方式(A)以3D模型边界框的最大宽度、高度和深度作为正方形的大小,保留了模型边界框的长宽高比例;方式(B)将3D模型边界框归一化为立方体,会丢失模型长宽高比例信息,但可通过缩放信息作为相似性度量的一部分进行补偿。此外,在计算模型的三个轮廓图像与用户输入的三个手绘图像的相似度时,会使用轮廓像素分布信息,即一组三个轮廓像素分布的直方图,并与轮廓图像一起存储。
##### 2.3 轮廓图像匹配
若两个3D模型的三个轮廓图像之间的误差较小,则认为它们相似。以下是误差的计算方法:
- **两个模型轮廓图像集之间的误差**:简单情况下,两个图像之间的误差为不同像素数与总像素数的比值,但这种方法对比例和位置敏感。因此,采用轮廓像素距离分布来计算误差。轮廓像素距离表示为集合$D = \{D_1,D_2,\cdots,D_i,\cdots,D_{n - 1},D_n\}$,其中$D_i$的计算公式为:
\[D_i = \sqrt{(X_i - X)^2 + (Y_i - Y)^2}\]
其中,$X$和$Y$是轮廓中心的坐标。
生成三个轮廓像素分布的直方图后,通过计算两个直方图$F$和$G$之间的欧几里得距离得到两个图像之间的误差值:
\[Error = \sqrt{\sum_{i = 1}^{n} (f_i - g_i)^2}\]
其中,$f_i$和$g_i$分别是直方图$F$和$G$的第$i$个等级值。
每个3D模型有三个轮廓图像,总误差为三个图像匹配误差的平均值。但由于两个相似模型的三个主轴可能不同,需要计算所有六种组合模式下的误差,最终取最小误差值作为两个3D模型之间的最终误差。
- **两个模型缩放因子的误差**:由于直观界面生成的手绘图像属于归一化方式(B),会丢失3D模型的缩放因子信息。因此,使用模型第二主轴与第一主轴的长度比$l_2$、第
0
0
复制全文
相关推荐










