1. 引言
近年来,个性化私人定制的需求越来越大,服装的个性化定制需要更快、更准确的人体测量方法,非接触式三维人体自动测量方法已成为现代人体测量技术研发的重点,也是人体测量进一步发展的方向。目前,许多研究人员利用便携的相机和手机拍摄视频或图像,利用三维重建方法和计算机视觉技术完成三维重建 [1] 。在正常情况下,从一个二维视角只能获得目标物体一定角度的信息,不可能获得目标物体三维空间结构的信息。因此,为了完成高精度的三维重建工作,需要从不同角度获取多个二维视图,进一步应该使用哪种达到其拍摄需求的设备,同时基于多张多视角的图像序列如何实现三维重建等问题,对实现更快速、精准的三维人体测量意义重大 [2] 。
杨冬梅 [3] 利用两个摄像机获取人体的正侧面图像信息,运用算法对图像进行处理得到人体轮廓线,重建出三维重建得到人体身高,长度和围度尺寸值,但由于样本规模小,使得在利用人体尺寸回归模型计算围度尺寸时存在一定的误差。Lee H Y等 [4] 通过三维测量技术研究热防护服当中空气层的分布,研发出符合人体热分布的个性化防护服。王雅芳 [5] 通过手机拍摄的二维图像为背景搭建开发了一款基于移动手机的人体测量平台,该测量平台已经广泛应用于普通用户对身体关键参数的估算。陈月兴 [6] 通过三维人体扫描仪建立了文胸基型的模型,提出了评价数字化定制文胸试穿的方法。基于Android移动端肖祎 [7] 开发了一款测量人体尺寸的系统,该系统通过对拍摄用户的服装和该用户正、侧面照片进行一系列处理及用户体型和服装的合体性分析,该测量系统已经被嵌入到中国服装网络购物平台,用于对所有服装购买者和身体大小数据进行推荐。但该系统没考虑到服装面料的伸缩性及厚度,使人体体型模型分类不够全面。张菲菲 [8] 通过三维人体扫描仪采集人体数据,得到旗袍的参数化样板模型。目前的服装领域需要开发更高效、更便宜、更精准的人体测量方法,以满足特体用户和消费者定制的服装需求,提高大规模定制的生产效率,为服装行业的进一步发展提供技术和理论基础。
2. 数据采集及处理
2.1. 手工测量和视频采集
该研究采用手工测量和非接触式三维拍摄视频测量的复合实验,通过手工量体数据验证基于非接触式手机拍摄视频的人体测量方式的有效性和准确性。
2.1.1. 手工测量
测量设备为软尺和人体测高仪,测量时要求测量对象自然站立、目视前方、双手自然下垂、手心朝向身体一侧、双脚后跟并拢。根据GB/T 16160-2017《服装用人体测量的尺寸定义与方法》 [9] 进行,考虑到人力和物力,该研究选取的人体测量部位如表1所示:
![](Images/Table_Tmp.jpg)
Table 1. Human body measurement parts
表1. 人体测量部位
2.1.2. 视频采集
视频拍摄设备为华为P40手机,视频格式为1920*1080 × 30 fps。视频拍摄使用华为P40手机来拍摄静态场景。为了保证进行非接触式3D视频测量时测量数据的准确性,对拍摄环境、服装和目标人体的姿势提出了要求,要求如下:
1) 拍摄环境:光线均匀、避免目标对象和场景的高速动态的移动,并使用纹理良好的图像。
2) 着装要求:避免红色着装。
3) 站姿要求:被测者双脚站在指定位置,身体保持挺直、眼睛平视前方;且与肩部保持同宽;双臂自然张开15˚~45˚,同时手掌朝内微握拳头。
采集流程为:首先,被测者按站姿要求站在标定板上的线框内。然后,测量者双手握住手机,以半径为1.5 m的圆形绕被测者旋转3圈,手机需要正对人体正面拍摄第一帧。拍摄三圈视频分别为人体头顶到胸部、人体胸部到大腿、人体大腿到脚底。视频采集最后一圈时,两个位于人体前面一些的红色标记点需要被轻扫在视频采集范围内。拍摄者为降低手机拍摄不稳定导致的误差全程应保持手机稳定。视频采集流程如图1所示。
2.2. 视频预处理
2.2.1. 视频格式解析
采用目前较常用的视频处理开源软件FFmpeg [10] 将采集的MP4格式的视频解析成图像序列。设解析后的视频序列帧为
,M为总帧数,一般约1000帧左右,其中,M = 868帧。
2.2.2. 运动检测
被摄体的运动矢量基于混合L-K流量监测算法 [11] 通过Opencv光流检测,相机运动的方向和幅度通过设计评估函数评估每帧之间的运动矢量来确定。有运动发生在视频流的连续两帧图像之间时,光流能量变化就明显,反之变化就微弱。拍摄视频中的相对静态冗余帧就可以基于此原理去除掉。相邻帧之间的光流能量算子
通过稠密逆搜索算法计算,其中,M为帧总数,
为第i帧图像。设运动能量阈值为
,满足
,则剔除静态帧。设
表示为删减静态帧后的视频序列帧。通过Ffmpeg和稠密逆搜索算法得到视频序列帧之间的光流能量曲线及其静态帧剔除阈值曲线如图2所示,静态帧删减的阈值线用红线表示,M = 868,N = 815。
![](//html.hanspub.org/file/69-2570912x15_hanspub.png?20230630095631498)
Figure 2. Motion energy curve and its static frame rejection threshold curve
图2. 运动能量曲线及其静态帧剔除阈值曲线
2.2.3. 关键帧提取
关键帧通过等距抽样的方法来选择,该方法的原理为设定目标帧数为
,则采样率
,第i个关键帧为
,依据具体的重建速率来确定k值,通常K = 120。并且,为解决相机不均匀运动、抖动、急速运动或光线突变导致的图像序列清晰度和对比度问题,还设计了单帧图像的模糊能检测算子 [12] ,用以评估所抽取的关键帧及其位置调整,使得优化前后重构有效帧比例显著提高。
图3表示删减静态帧后的能量曲线,模糊能量值
越高,像素变化越明显,图像更清楚。关键帧图像的确定应为关键帧固定领域内的最高能量值所对应的帧。其中,抽样系数
,领域半径R = 2。关键帧提取及其局部调整曲线如图4所示,其中局部领域调整用加号表示、固定间隔抽样用圆形表示。局部领域调整示意图如图5所示,其中,左侧和中间图像为局部模糊对比图,最右侧图像为调整后的清晰关键帧。
![](//html.hanspub.org/file/69-2570912x21_hanspub.png?20230630095631498)
Figure 3. Fuzzy energy detection curve
图3. 模糊能量检测曲线
![](//html.hanspub.org/file/69-2570912x22_hanspub.png?20230630095631498)
Figure 4. Key frame extraction and local adjustment curve
图4. 关键帧提取及其局部调整曲线
![](//html.hanspub.org/file/69-2570912x25_hanspub.png?20230630095631498)
Figure 5. Schematic diagram of local area adjustment
图5. 局部领域调整示意图
3. 特征提取与重建
3.1. 特征提取与匹配
选取当前提取效果较好且应用广泛的SIFT算法 [12] (尺度不变特征变换)进行特征提取,该算法的实质是在不同尺度空间上搜寻原图像和目标图像搜寻的关键点,然后用128维方向向量的对特征点进行描述,最后通过对比描述向量将二者图像上同一特征点进行特征点匹配。特征提取的匹配结果如图6所示:
![](//html.hanspub.org/file/69-2570912x29_hanspub.png?20230630095631498)
Figure 6. SIFT feature point extraction and matching results
图6. SIFT特征点提取与匹配结果
3.2. 稀疏重建
增量式SFM的相机空间位置稀疏点阵通过openMVG [13] —IncrementalSFM完成重构。稀疏点阵重建结果如图7所示。使用bundle adjustment计算重构相机点阵会发生局部缺失的问题。通过相机位置空间结构约束规则的添加使bundle adjustment全局求解最优。某一序列图像添加约束前后的稀疏重建结果对比如图8所示。
![](//html.hanspub.org/file/69-2570912x30_hanspub.png?20230630095631498)
Figure 7. Camera spatial position sparse lattice reconstruction results
图7. 相机空间位置稀疏点阵重建结果
![](//html.hanspub.org/file/69-2570912x32_hanspub.png?20230630095631498)
Figure 8. Comparison of sparse lattice reconstruction results of camera position before and after spatial position constraint
图8. 空间位置约束前后的相机位置稀疏点阵重构结果比较
3.3. 稠密重构
为了获取更全面和完整的三维场景信息,需通对点云进行加密重建。由于openMVS可以很好地与openMVG对接,MVS算法用于细化通过SFM技术获得的网格,从而产生密集重构。稠密点云重建结果如图9所示。搜寻空间结构中具有图像一致性的点是openMVS的实质,其主要的作用是进行稠密点云重建、网格重建及纹理映射。
![](//html.hanspub.org/file/69-2570912x33_hanspub.png?20230630095631498)
Figure 9. Dense point cloud reconstruction result map
图9. 稠密点云重建结果图
3.4. 人体着装分割
人体着装分割基于深度学习和Graphnonmy [14] 进行,人体分割和着装解析结果如图10所示。运用稀疏空间点阵重新将分割后的着装轮廓区域投映到稠密点云空间上,选出只含有被测者的点云轮廓并完成人体点云空间的去噪与分割。分割后重建的轮廓稠密点云如图11所示。
![](//html.hanspub.org/file/69-2570912x34_hanspub.png?20230630095631498)
Figure 10. Human body segmentation and clothing analysis results
图10. 人体分割及服装解析结果
![](//html.hanspub.org/file/69-2570912x35_hanspub.png?20230630095631498)
Figure 11. Dense and cloudy after segmentation of the human body dress contour
图11. 分割后的人体着装轮廓稠密点云
4. 人体关键尺寸计算
4.1. 基于标定板点云尺寸校正
4.1.1. 三维空间平面估计
通过RANSAC的点云形状估计法对概率全局进行最大化平面估计 [15] ,估计结果如图12所示。
![](//html.hanspub.org/file/69-2570912x37_hanspub.png?20230630095631498)
Figure 12. Probability global maximization plane estimation
图12. 概率全局最大化平面估计
4.1.2. 基于标定板匹配的最优缩放尺度估计
本文为了保证移动测体方法的通用性,没有对相机内参进行校正,改用参考标志点进行校正。定位被测者所站板上的两个红色参考点可校准重建点云尺寸至真实大小。将估计的三维空间平面局部点云分割,将平面空间坐标按照所估计的平面法向校正至Y向。以计算分割后点云平面的立体包围盒的中心为图像中心,按比例将包围盒的长宽的尺寸调整为1024 × 1024,对平面点云的X-Z图像重新进行投影,得到图像如图13所示。红色参考点区域通过颜色分割算法提取并将两个区域中心也一起计算。计算两点间距
和实际点云缩放系数
,L表示实际参考点间距,调整重建稠密点云的大小。
![](//html.hanspub.org/file/69-2570912x40_hanspub.png?20230630095631498)
Figure 13. X-Z image reprojection of plane point cloud of calibration plate
图13. 标定板平面点云的X-Z图像重投影
红色的两个标记点之间的距离为
,单棋盘格尺寸为13 cm × 12.5 cm,参考板尺寸为101 cm × 105 cm。因黑白色度远低于红色色度,所以在分割参考标志点时需要将参考板用Adobe Photoshop CC 2019预处理,处理基本步骤是:将参考板由RGB模式变成Lab色彩通道模式,阈值化处理a通道后确定至区域的中心,如图14所示,其中,图14(a)为a通道处理前的图像,图14(b)为a通道阈值化后图像。
(a)
(b)
Figure 14. Evolution of a-channel threshold in Lab mode with two red markers. (a) A-Channel image before processing; (b) A-Channel image after thresholded
图14. 两红色标记点Lab模式下的a通道阈值演化。(a) a通道处理前图像;(b) a通道阈值化后图像
在粗定参考点一定领域内,通过亚像素的刚性模板匹配算法优化分割模板图像和刚性模板之间黑白色块的重叠度,优化参考板最优缩放尺度及区域中心低精度定位,准确计算得到空间尺寸的距离变化,其结果如图15所示,其中,s = 0.575326。
4.2. 人体站姿校正
精确定位参考板中参考点位置后,利用分割后的图像反投影矩阵来选定参考板的中心、法向和垂直于参考点连线的身体正面朝向,旋转三维空间点云至所需取向。以双脚中心为原点,设人体正面与Z轴正向垂直、Y轴正向为脚底往上方向、X轴正向为身体右手边方向 [16] 。旋转基本原理:旋转前某个向量为
旋转后得到目标向量
,固定一个轴,旋转剩下两个轴。固定X轴,Y、Z轴绕X轴旋转,X轴无变化,从左手坐标系定义的X轴正方向往负方向看,正方向为顺时针、负方向为逆时针。相机坐标系和世界坐标系相同方向的坐标系只经过旋转,X轴旋转原理:
(1)
同理,绕Y、Z轴旋转如式(2)和(3)所示:
(2)
(3)
图13旋转后的点云如图16所示。
4.3. 特征点识别
身体部位的凹凸变化可以通过人体轮廓变化明显的特征数据的向量变化或曲率表示。分别映射三维人体点云到YOZ平面和XOZ平面上获取人体的正、侧投影轮廓,人体关键特征点通过正、侧向投影曲线曲率可以迅速找到,根据GB/T 23698-2009《三维扫描人体测量方法的一般要求》从投影的正、侧轮廓上分别选取15个和10个特征点,如图17所示。
注:1-头顶点;2-前颈点;3-左肩端点;4-右肩端点;5-左腋窝点;6-右腋窝点;7-左腰围点;8-右腰围点;9-左腹围点;10-右腹围;11-左手腕点;12-右手腕点;13-左臀围点;14-右臀围点;15-脚底点;16-后颈点;17-胸高点;18-肩胛点;19-前腰围点;20-后腰围点;21-前腹围点;22-后腹围点;23-臀高点
Figure 17. Human body front and side projection profile
图17. 人体正侧面投影轮廓
4.4. 人体关键尺寸计算
身体特征点的大致范围根据上述确定,接下来需精确定位特征点位置,计算出关键的身体部位大小。根据特征点的坐标求出长度尺寸。利用基于切面点云的粘连围度测量方法 [17] 与基于切面点云的领围测量方法 [18] 求围度尺寸。本文开发的非接触式三维拍摄测量系统得出的人体参数结果如图18所示。
4.5. 误差评估
考虑到人力和物力的条件,选取人体关键部位进行绝对误差和相对误差进行分析。
![](Images/Table_Tmp.jpg)
Table 2. Manual measurement location and measurement method
表2. 手工测量与程序测量部分数据误差对比
由表2可知,程序测量值和手工测量值之间产生的误差较小,二者无显著性差异。服装定制人体测量要求样本误差最大值不超过5 cm,该样本最大误差在5 cm以内。其中,在进行手工测量时不易确定腰部最细位置,导致测量结果误差大,臀围为人体敏感部位,手工测量时存在误差。
程序测量三次的稳定性分析如图19所示。
![](//html.hanspub.org/file/69-2570912x53_hanspub.png?20230630095631498)
Figure 19. The stability of the program measurement three times
图19. 程序测量三次的稳定性
由图19可知,经程序测量三次的整体波动范围在10 mm以内,符合整体人体测量要求。经以上图表可以看出,程序测量值和手工测量值之间产生的误差较小,程序测量数据较稳定,考虑到实验条件以及测量误差等客观原因,因此本文的测量结果基本准确,达到了本实验预期的要求,证明本文提出的非接触式人体参数测量满足精度要求,证明了基于多视图重构的三维人体测量研究是可行且有效的。
5. 结论
使用手机非接触式视频采集的三维人体测量的方法弥补了传统手工测量效率低、误差大等不足,解决了传统三维扫描仪器不便携、昂贵等问题。这种非接触式使用手机拍摄的三维人体测量的方式操作方便、成本低、自动化程度高,为私人定制服装业的发展开发了新的研究思路。但它还存在以下不足之处:
1) 在视频获取方面,由于采用SFM进行三维重建,拍摄时场景内物体尽可能保持静止或较少的刚性运动,这就要求目标人体和拍摄背景在拍摄期间尽可能保持静止。但由于人体包含许多纤细而颤抖的部位,如腿、脚、手臂和手,这使得采用便携式手机拍摄的人体仍然是一个非常具有挑战性的问题,特别是当目标人在此期间不能保持绝对静态视频捕捉。
2) 拍摄时距离忽远忽近及手机突然地抖动或倾斜都会导致单帧模糊,受拍摄者主观影响较大,后期可将手机固定于匀速环绕移动的设备上,对人体进行全方位的拍摄,获得数据。
基金项目
上海市科委项目(18030501400)。
参考文献
NOTES
*第一作者。
#通讯作者。