论文:三维鱼体参数化建模
三维鱼体参数化建模
胡海涛,赵银君,石敏*,赵国亮,朱登明
(1.华北电力大学控制与计算机工程学院,北京 102206;2.中国科学院计算技术研究所前瞻研究实验室,北京 100190)
鱼类作为水产养殖中最重要的生物物种,对其进行监测有助于提高渔业的精细化管理水平。三维鱼体作为重要的量化指标,对预测鱼类生长状况[1]、估 计 鱼 群 密 度[2]、分 析 鱼类 种 群 结 构[3]具 有 重 要意义。
近年来,随着三维重建技术的发展,重建范围不断扩大,使得水下三维建模成为可能。水下三维建模主要分为主动式重建和被动式重建。主动式重建,通过发射激光雷达[4]、结构光[5]等重建水底环境;被动式重建,通过拍摄水底多视角图像重建水底环境[6]。但这两种方法都无法实现对游动鱼类的三维重建。在空中虽可利用三维扫描仪[7]、基于双目视觉的三维重建[8]等方法获取鱼类三维模型,但耗时费力,成本高,得到的三维模型精度不高,且不能快速批量采集,无法对基于三维鱼体数据驱动的自动化研究工作提供大量数据。
基于真实三维注册数据的三维参数化建模已应用于多个领域,主要有人体参数化建模[9-12]、基于真实的人体扫描注册数据、统计分析人体体型分布空间、构建人体体型参数化表示模型、通过控制相关权参数生成丰富的三维人体模型等。
目前尚未见三维鱼体的参数化表示模型,为此,本文提出了一种三维鱼体参数化建模方法。主要贡献有:扫描仪采集真实三维鱼体数据,对其进行网格注册,构建拓扑结构一致的三维鱼体数据集,在此基础上,基于主成分分析法研究三维鱼体参数化建模方法,构建三维鱼体参数化表示模型,进而快速生成大量三维鱼体模型,解决了三维鱼体数据获取困难的问题。
1 相关工作
1.1 三维数据注册
对三维数据注册的研究已有多年,其本质是对标准网格模板进行平移、旋转、变形等操作,使得标准模板能表征所扫描的目标模型。其可分为刚性注册及在此基础上的非刚性注册,刚性注册只是将标准模板进行平移和旋转操作,非刚性注册还会使模板网格发生变形。BESL等[13]提出的最近迭代点(iterative closest point,ICP)算法,通过贪心算法迭代求解2个点云模型之间的对应点,然后用最小二乘法求解得到两模型之间的旋转、平移参数,实现2个点 云模型的刚性注 册。ALLEN等[9]提 出的变形标准模板网格使其逼近真实扫描数据的方法,通过构建拓扑结构一致的网格数据集,实现非刚性注册。AMBERG等[14]在ALLEN等[9]工作的基础上提出了非刚性最近迭代点(non-rigid ICP,NRICP)算法,通过迭代寻找最近点实现非刚性注册,得到了较好的注册效果。LI等[15]和YAO等[16]提出的非刚性注册方法均用于解决最小化NRICP中的注册代价函数,前者通过重加权提高变换矩阵的稀疏性,降低计算量,后者则用优化-最小化(majorization-minimization,MM)算法将每次迭代简化为L-BFGS的最小二乘问题,2种方法在注册精度和计算速度上均有所提升。
1.2 参数化建模
三维鱼类参数化建模方法多种多样.涂晓媛等[17]最早提出“人工鱼”模型,用生物力学方法建模人工鱼的物理和生理结构,设计了“质点-弹簧-阻尼”鱼体模型,其主要由23个“质点”和91个“弹簧-阻尼”单元组成。此外,还有三维仿生机器鱼模型[18-20],将鱼体作为刚性多级连杆进行建模,但上述方法均不是对真实三维鱼体的建模,构建的三维鱼体模型主要用于水下环境作业、军事侦察、考古等,无法用于对鱼体体型的研究。
目前尚未发现有基于真实鱼体扫描数据进行参数化建模的研究工作。但在人体建模领域,基于真实的三维人体注册数据集,ALLEN等[9]采用主成分分析法进行了人体体型参数化建模,通过调整身高、体重等参数生成相应的三维人体模型。之后出现了许多用相同方法进行人体体型参数化建模的工作,如 经 典 的 人 体 参 数 化SCAPE模 型[10]、SMPL模型[11]。SCAPE模型在参数化人体姿势的基础上也对人体体型进行了参数化,但无法直接通过修改参数生成相应的体型,参数化控制不直接;德国马普所的SMPL模型提炼了人体的10个体型参数和72个姿态参数,实现了给定参数即可生成对应的人体,但由于对参数缺乏约束,有时会生成不自然的人体,为此,2020年,马普所提出了STAR模型[12],在改进上述问题的同时也减少了参数量,是一个轻量级的人体参数化表示模型。
本文的三维鱼体参数化方法是受ALLEN等[9]的工作和SMPL模型[11]的启发,通过控制相关参数,直接快速生成丰富的三维鱼体模型。
2 本文方法
提出了一种基于主成分分析的鱼体参数化建模方法,主要包括鱼体扫描数据注册和鱼体体型参数化建模两部分,如图1所示。
图1 三维鱼体参数化建模方法Fig.1 Parametric modeling method of 3D fish body
2.1 鱼体标准模板构建
扫描仪采集的原始三维鱼体数据,网格顶点数量庞大,拓扑结构杂乱,无法批量放入计算机进行统计分析和参数化建模,需对其进行网格拓扑同构处理,使网格模型具有相同的顶点数以及点之间相同的连接结构。通过标准模板变形,令变形后的模板能表征原始扫描数据,实现对原始扫描数据的注册,得到拓扑结构一致的三维鱼体注册数据。
采集鱼体多视角图像,由专业建模师在三维建模软件3ds Max中进行三维鱼体标准网格模板建模,见图2。
图2 三维鱼体标准模板构建Fig.2 Standard template construction of 3D fish body
上述标准鱼体模板定义为S=(H,Ε),其中,H为由m个顶点构成的顶点集,Ε为由n条边构成的边集。
2.2 鱼体网格注册
用标准模板对原始扫描数据进行注册,以原始扫描鱼体数据为约束变形标准鱼体模板,令其逼近原始扫描鱼体,使变形后的模板能表征原始扫描数据。由于所有原始扫描数据的注册均基于同一标准鱼体模板,因此注册得到的数据具有一致的拓扑结构。本文采用刚性注册和非刚性注册相结合的鱼体网格注册方法,用刚性注册算法为非刚性注册算法提供初始条件。
2.2.1 刚性注册
网格注册时对标准模板和原始扫描数据的初始值较敏感,为此设计了鱼体刚性注册算法,以变换两者之间的初始位置和大小。以采集的原始三维鱼体为坐标原点,因它们处于不同的坐标系,需将扫描数据变换到标准模板坐标系下,使扫描数据和模板的位置尽量重合;因采集的不同生长周期的鱼体体型差异明显,需缩放标准模板,令每个三维鱼体的扫描数据均与一个大小相仿的模板模型对应。因此,鱼体刚性注册包含坐标变换和缩放变换。
通过坐标变换将扫描模型变换至模板空间下,目标函数定义为
其中,Told为原始扫描模型,R和t分别为扫描数据坐标系和模板坐标系之间的旋转和平移参数,Tnew为变换到模板坐标空间的扫描模型。
缩放变换是将模板模型刚性地缩放至接近扫描模型,目标函数定义为
其中,Sold为标准模板,s为模板和扫描数据之间的缩放矩阵,Snew为缩放后的模板。
在刚性注册时,先进行一次坐标变换,将扫描数据变换至模板坐标系下,再进行缩放变换,将模板缩放至扫描模型大小,缩放变换将导致模板空间位置变动,因此需再进行一次坐标变换,将扫描模型调整至模板坐标系下。刚性注册算法步骤如下:
输入扫描网格Told,标准模板Sold。
输出坐标变换后的网格Tnew,缩放变换后模板的Snew。
Step1第1次坐标变换。
Step1.1求解Told和Sold2个坐标系之间的R和t。
Step1.2用式(1)将Told变换为T1new。
Step2缩放变换。
Step2.1求解T1new和Sold之间的缩放矩阵s。
Step2.2用式(2)将Sold变换为Snew。
Step3第2次坐标变换。
Step3.1求解T1new和Snew2个坐标系之间的R和t。
Step3.2用式(1)将T1new变换为Tnew。
2.2.2 非刚性注册
通过鱼体刚性注册,在空间位置和大小上令标准模板和扫描模型近似对齐,但作为柔性物体的鱼类,鱼体之间存在差异,因此,还需进行鱼体非刚性注册,通过调整模板使其逼近扫描模型,令调整后的模板能最大限度地表征扫描鱼体模型体型。
用非刚性ICP算法进行鱼体模型非刚性注册,非刚性注册算法思想如图3所示,其中,S表示标准模板,S′表示变形后的模板,T表示扫描模型。非刚性ICP算法,即最小化S′和T之间的距离,使S′能够表征T。
图3 非刚性ICP算法思想Fig.3 Non-rigid ICP algorithm idea
非刚性ICP算法的目标函数由数据项误差Ed、平滑项误差Es和特征点误差El组成:
其中,X为模板顶点的变换矩阵,α和β分别为Es和El的影响因子。
数据项误差Ed表征变形后的模板鱼体模型与扫描鱼体三维网格模型之间网格顶点的接近程度,具体表示为
其中,vi表示模板模型上的第i个顶点,Xi表示对第i个顶点进行的变换,ui表示vi在扫描模型上对应的第i个顶点,wi表示vi顶点的变换对整体的影响权重。式(4)第2个等式为数据项误差在所有模型数据中的表示。
平滑项误差Es约束变形过程中相邻顶点的仿射变换矩阵,令模板平滑形变,具体表示为
其中,ε为模板S中所有边的集合,G为权重矩阵,M表征点之间的连接关系,M的行表示三角形的边,列数表示顶点,当第r条边连接第i个顶点和第j个顶点(i<j)时,Mri的元素为-1,同时Mrj中的元素为1,其他元素为0,符号⊗表示求解M和G之间的Kronecker积,下标F表示范数。
特征点误差El表征变形后模板与扫描模型上对应特征点之间的距离,相当于稀疏的数据误差项,具体表示为
其中,L={(v1,l1),(v2,l2),…,(vi,li)}为特征点。
综上,目标函数完整的二次损失函数可表示为
令该二次损失函数的导数为0,直接求解,当X=(ATA)-1ATB时,损失函数值最小。
由于特征点需要手动标记,而采集的鱼体扫描数据和模板数据顶点数量又较多,只有标记了大量标记点的数据才有较好的注册效果,但手动标记大量顶点造成的误差将影响鱼体模板模型变形的准确性。基于准确性和配准效率考虑,因在鱼体非刚性注册时没有使用特征点误差El,故设置β=0,则在鱼体非刚性注册中,目标函数可简化为
在每轮迭代中,α依次取50,20,2,0.8,0.5,0.35,0.2。
2.3 鱼体参数化建模
参数化建模又称变量建模,通过统计分析三维注册数据集,用少量变量表征数据集中模型的三维空间分布,由控制变量生成丰富的三维模型。主成分分析(principal component analysis,PCA)作为一种最广泛使用的数据降维算法,其主要思想是将n维特征映射至k维,称此k维全新的正交特征为主成分。k维主成分保留了原n维数据中绝大部分维度特征,实现以少数维度表示高维空间。本文用PCA法进行鱼体三维模型参数化建模,实现用低维度参数空间表示高维的三维鱼体网格数据。
鱼体体型空间的PCA参数化可表示为
其中,SE∈R3N表示三维鱼体的平均体型,D∈R3N×k表示由k个主成分分量构成的主成分矩阵,S∈R3N表示参数控制生成的具有N个顶点的三维鱼体网格模型,ωs∈Rk表示k个可调控参数。
各参数的具体求解过程如下:
鱼体模型的体型均值向量SE∈R3N:
其中,K为三维鱼体数据集中的鱼体网格模型数,Si为第i个鱼体的三维网格向量。
对所有鱼体数据去均值,得到三维鱼体体型的变化空间U:
其中,Ui∈R3N为数据集中第i个鱼体去均值后的向量表示,U∈R3N×K为由数据集中所有K个鱼体去均值后向量Ui构成的高维矩阵。
分解U求解其特征向量,取前k个特征向量作为主成分,此k维主成分能表征U空间的主要特征:
用一组权参数ws={w1,w2,…,wk}表示鱼体模型S:
通过设置权参数ws可合成新的鱼体模型,ws即为参数化构造得到的可控制的权参数。
3 实验与分析
草鱼是典型的纺锤鱼型,因其体型特征变化明显,故选择草鱼作为实验鱼。采集草鱼的多视角图像,由专业建模师给出有粒度划分的拓扑结构清晰的三维鱼体标准模板,该标准模板共有9 846个顶点,19 688个三角面片,如图4所示。
图4 标准鱼体模板Fig.4 Standard fish template
搭建扫描平台采集草鱼的全包围数据,将草鱼挂起,固定鱼鳍使其呈张开状态,用手持式激光扫描仪扫描,如图5所示。共采集11条处于不同生长期的草鱼扫描数据,每个三维鱼体扫描数据的三角面片数均超30万,其中含大量冗余数据。为提高注册效率,用经典的网格简化算法:二次误差量(quadric error metrics,QEM)[21]法简化原始扫描数据,将三维鱼体扫描数据降采样至近似标准鱼体模板的顶点数和三角面片数。
图5 草鱼扫描数据采集Fig.5 Grass carp scan data collection
3.1 鱼类刚性注册实验
对降采样后的11条草鱼的扫描数据进行刚性注册实验。经坐标变换,将草鱼的扫描数据变换至标准模板坐标空间;对标准模板进行缩放变换,使采集的所有草鱼数据均对应一个大小相近的模板。
图6给出了4组草鱼体刚性注册的实验结果。其中,第1行为刚性注册前的模板模型(浅色)和扫描模型(深色),分别位于2个坐标空间,且大小差异明显;第2行和第3行为刚性注册后的效果,模板和扫描模型已调整至同一坐标空间,标准模板调整至近似扫描模型大小。
图6 刚性注册实验结果Fig.6 Results of rigid registration experiment
3.2 鱼类非刚性注册实验
基于刚性注册结果进行非刚性注册实验,计算机配置为Quad-Core Intel Core i5 CPU@2.00 GHz,内存为16 GB,操作系统为macOS。图7给出了4组鱼体非刚性注册的实验结果。以上述刚性注册结果作为非刚性注册的输入,得到的变形模板模型(浅色)高度逼近扫描模型(深色)。
图7 非刚性注册实验结果Fig.7 Results of non-rigid registration experiment
进一步,对变形模板的变形精度进行定量分析,表1记录了11条草鱼扫描数据非刚性注册后变形模板与扫描数据之间的均方根误差以及注册所需配准时间,平均均方根误差为0.691 3 mm,平均配准时间为45.61 s,注册精度和配准时间均在可接受范围,定量分析表明,变形后的鱼体模板能很好地表征真实扫描鱼体体型。
表1 鱼体非刚性注册均方根误差及配准时间Table 1 Root mean square error of fish body non-rigid registration and registration time
由于标准鱼体模板有9 846个顶点、19 688个三角面片,在最终构建的三维鱼类注册数据库中,11个鱼体模型的顶点数均为9 846,三角面片数均为19 688。
3.3 鱼体体型参数化实验
对上述非刚性注册构建的三维鱼体拓扑数据集进行了鱼体参数化建模实验,图8为生成的三维鱼体平均体型。经多次实验发现,当k=4,权参数ws={w1,w2,w3,w4}施加在平均鱼体体型上时,鱼体体型会发生较大变化,而当k>5时,改变权参数,鱼体体型变化不明显,故取k=4,即采用4维主成分进行定性与定量分析,平均鱼体体型默认的权参数为ws={1.000,1.000,1.000,1.000}。
图8 三维鱼体平均体型Fig.8 Three-dimensional mean body shape of fish
图9给出了鱼体定量分析示意,绿线为鱼体体长,红线为体高,蓝线为体宽,通过计算体长、体高和体宽,定量分析鱼体模型的变化。
图9 鱼体定量分析示意Fig.9 Schematic diagram of quantitative analysis of fish
图10为改变权参数w1时生成的三维鱼体模型的侧视图和俯视图,第1列为w1=0.851时生成的鱼体体型,第2列为w1=1.000时生成的鱼体体型,第3列为w1=1.135时生成的鱼体体型,可以发现,减小或增大w1,生成的鱼体体型较标准鱼体体型有所缩小或放大。表2定量分析了权参数w1对鱼体体长、体高和体宽变化的影响,发现随着w1的变化,鱼体的体长、体高和体宽均发生了明显变化,w1控制鱼体体型的整体变化。
表2 权参数w1对鱼体体型的影响Table 2 The effect of weight parameters w1 on fish body shape
图10 三维鱼体模型随权参数w1的变化Fig.10 The three-dimensional fish model changes with the weight parameter w1
表3定量分析了通过控制w2,w3,w4中的某一参数,鱼体体长、体高和体宽发生的变化。分析发现,随着其中任一权参数的变化,鱼体的体长、体高、体宽只在小范围内变动。因此,w2,w3,w4对鱼体体型只有微调作用。
表3 权参数w2,w3,w4对鱼体体型的影响Table 3 The effect of the weight parameters w2,w3,w4 on fish body shape
基于拓扑结构一致的三维鱼体数据集构建了三维鱼体参数化表示模型,通过改变不同的权参数可快速生成不同体型的三维鱼体模型。权参数ws={w1,w2,w3,w4}中,第一主成分对应的权参数w1对鱼体体型的控制作用明显,通过调节w1,生成不同体型的鱼体模型;改变权参数w2,w3和w4,鱼体体型变化不明显,此3主成分对鱼体模型只起微调作用,表征的是数据集中鱼体的个体差异。此外,任一权参数ws不能单独改变鱼体某一维度。分析产生上述2种情况的原因,主要在于数据集规模小,注册数据集中仅有11条三维鱼体模型,而主成分分析法只有在数据集规模为参数量的5~10倍甚至更多时才能实现单维度控制以及令三维模型发生较大变化,因此在数据量较少时,只有权参数w1在生成鱼体三维模型时起决定性作用。
4 结论
由于水底环境复杂,三维鱼体模型获取较困难,本文基于主成分分析法对三维鱼体参数化建模方法进行了研究,构建了三维鱼体参数化表示模型,通过改变相应的权参数,可快速、方便地生成丰富的三维鱼体模型,从而解决了三维鱼体模型获取困难的问题。得到的三维鱼体模型可应用于鱼体三维模型重建、三维动画等领域,但仍存在以下不足:
(1)由于鱼鳍非常轻薄且透明,导致鱼鳍扫描不完整。在鱼体阶段,因鱼鳍注册效果不佳,出现鱼鳍三角面片法向量朝内以及三角面片交叉的情况,有待后续重点研究。
(2)在参数化建模阶段,由于注册数据集规模较小,无法做到权参数单维度控制,造成参数设置不直观,没有与鱼体体型特征的语义相关联。后续可适当增加三维鱼体数据的采集量,将拟合的鱼体体型语义参数线性映射至参数化鱼体模型权参数空间,实现用具有语义信息的参数,如鱼体的体重、体长等生成相应大小的三维鱼体模型。
声明:本站未注明出处的转载文章是出于传递更多信息之目的。若有未注明出处或标注错误或侵犯了您的合法权益,请与本网站联系,我们将及时更正、删除,谢谢!
欢迎关注本站"养鱼第一线"微信公众帐号和头条号!将会定期向你推送本号信息!将为你精诚服务!