2. 浙江理工大学 理学院, 杭州 310018
2. School of Science, Zhejiang Sci-Tech University, Hangzhou 310018, China
随着虚拟技术和电子商务市场的迅速发展, 促使了虚拟试衣技术的形成, 人们对虚拟试衣技术的真实性、准确性、个性化要求越来越高. 虚拟试衣技术是将使用者的人体形态信息、物理信息以及服装信息等结合在一起, 通过计算机处理仿真, 实现真实的穿衣效果, 而人体特征点提取以及尺寸测量则成了最为关键的一步[1].
人体特征点提取, 目前已有多种方法, 例如snake方法、主动形状模型(ASM)、主动表观模型(AAM)等[2], 其中ASM和AAM是最为常用基于点分布模型(PDM)的特征点定位算法. ASM是为每个特征点建立对应的灰度模型, 直接对形状做优化, 具有较高的特征点提取精度. AAM则是将形状与纹理相结合的表观模型, 其优点是具有较高的纹理精度. 较ASM来说, AAM算法收敛范围较小、搜索速度相对较慢, 并且单个特征点定位精度不一定比ASM高[3]. 对于人体尺寸测量方法, 主要分为接触式和非接触式两类. 接触式测量主要是人工手动测量, 其准确率较高, 但测量过程慢、需要记录大量数据, 易出错. 而非接触式测量包括照片法、三维人体扫描等, 非接触式测量优点在于测量速度快、测量数据多、易于保存等[4]. 对于三维人体扫描法与照片法进行比较, 前者需要手动标记基准点才能扫描, 而且对于测试者的穿着、要求具有较为严苛的要求, 而照片法能够较为巧妙的避开这些问题, 只需要用户拍摄人体照,而且现在拍摄的照片清晰度都比较高.
本文就是基于图片信息实现人体特征点的自动提取以及尺寸测量, 在图片测量基础上, 对单背景(白色背景)图片进行处理、方法改进达到自动化测量. 对单背景图片改进的方法提取精度较高, 速度较快. 后改进传统ASM算法单一模板局部模板匹配模式, 以人脸中心点与人体中心点的欧氏距离进行分类并训练出平均模板, 根据待测图片两个中心特征点距离分类与训练好的多模板进行快匹配; 以特征点为中心, 选取特定大小范围内10邻域点进行搜索[5]; 胯部以下拟合易出现单侧拟合效果较好, 结合马氏距离利用人体对称性特征进行处理. 减少迭代次数, 提高搜索精度, 缩短提取时间.
1 概述本文图像处理的流程是: 首先对图片做一个预处理. 通过预处理来剔除图片噪点, 对于处理好的图片, 采用Hog特征[6]对图片大致检测出人体的范围, 并且以包围盒的方式将其显示出来. 之后根据包围盒对所需要的特征点进行提取, 并获得对应的尺寸. 其操作过程如图1所示.
2 图片预处理以及特征点提取
灰度化处理是使RGB 模型中的R=G=B, 把含有亮度和色彩的彩色图像变换成灰度图像的过程. 对图像的平滑预处理为了消除图像噪声, 我们一般令Sxy表示中心在(x,y)的点, m×n滤波器模板的大小, f(x,y)为滤波器得到的结果, 并赋值给(x,y)处的像素. 在常见滤波器经过试验效果对比, 我们采用中值滤波器, 能够较好地过滤掉一定的噪声, 有利于加强我们的图片信息.
(1) 在多次阈值选择过程中阈值选择128, 图片效果较好, 其效果如图2所示. 利用Hog特征原理, 将整个图像分割成一个个8×8像素的Cell单元格, 结合Canny算子轮廓检测算法, 我们将人体轮廓与边缘检测的结果结合起来形成人体包围盒. 改进后效果如图3所示:
(2) 针对处理后图像, 我们进行边缘检测, 其主要方法是根据我们所拍摄图片人体姿态特点, 利用Canny算子二值化的图像, 在寻找到的包围盒范围内进行搜索, 找出人体特征点. 搜索过程如下:
① 至上而下和至下而上确定身高
检索范围为包围盒最上方往下至包围盒纵坐标一半的范围. 当遇到第一个白点, 停止并返回当前点的坐标; 同理下方最低点搜索方式与其类似, 遇到第一个白点, 我们认为它为人体最低点.
② 至左而右和至右而左确定臂长
我们利用Ycrcb中的cr分量以及otsu阈值化的肤色检测算法, 在包围盒的范围内检测出测试者拳头的大致范围. 同检测最高点、最低点方法一致, 分别从至左而右、至右而左搜索出第一个白色点即返回其坐标.
3 基于特征点坐标转化以及尺寸测量
由于坐标都是基于图片, 输出的坐标点都是以像素为单位, 为获得实际尺寸, 实验中利用多个标准人体模型在图片中的像素数与身高形成一个参照比例系数取他们的平均值α和图片中特征点对应的像素数h相乘, 即可将像素单位转为实际尺寸, 转换公式为实际尺寸等于α
最初的方法是通过对图片的预处理, 剔除不必要的信息以及增强所需的关键信息, 通过改进的Hog特征检测形成人体包围盒, 再通过Canny边缘检测以及搜索特征点的方法进行人体特征点自动提取和尺寸测量. 本方法一直是基于白色背景的, 人体与背景对比度较大, 所以对于检测这类图片的识别率较高, 效果较好. 如果图片背景有门窗、电灯开关、有建筑物、绿化植被或者拍摄光线较暗、服装与背景相似等, 利用上述方法都会影响人体特征点的提取以及尺寸的测量.
本文ASM算法是基于二维图像进行特征点的定位, 在对传统的ASM算法进行了改进. 对于训练好的样本, 按照人脸中心点和人体中心点欧式距离进行分类. 我们找到待测图片中人脸中心点[7]和人体中心点的欧式距离找到对应的分类, 并加载平均模板, 经过一次平移、旋转以及缩放进行快速匹配; 特征点匹配时, 以特征点为中心选取一定的区域灰度分布训练模型, 在该区域内进行搜索; 对于胯部以下区域易出现仅单侧拟合效果较好, 改变马氏距离原先搜索方式结合人体体型分布以及对称性特点进行拟合处理, 来解决这个问题.
(1) 样本建立
我们选取100幅男女正面照作为本文实验的样本集, 采集的图像要求测试者站直双手握拳两臂呈水平状态. 对于采集后的图像, 我们使用标点程序按照脸部中心点、头顶点、脖子处、手臂处、腋下、胸围、腰围、臀围、胯部点、脚底点等关键特征点进行标记, 对于每幅图像我们共标记70个特征点, 并按照一定的顺序进行标记. 标记的70个点按照一定的顺序放在一个形状向量里, 其表达式为:
$m = \left[ {{x_1},\cdots,{x_{70}},{y_1},\cdots,{y_{70}}} \right]$ | (1) |
其中, (xn, yn), n=1, 2, …, 70是按照一定顺序排列的第n个特征点的坐标值. 我们将100幅用于训练的样本构成训练集M, 则M:
${\rm{M}} = \left[ {{m_1},{m_2},{m_3},{m_4},\cdots,{m_{100}}} \right]$ | (2) |
(2) 样本分类和对齐
根据事先计算好两中心点欧式距离以及样本集人体的身高, 将我们的训练集M分成5大类, 即M1, M2, M3, M4, M5,其中身高分类标准为140 cm~150 cm,151 cm~160 cm,161 cm~170 cm,171 cm~180 cm,181 cm~190 cm. 将五类分别定义为Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ, 每个类别有20个样本集, 计算出其人脸和人体中心点的欧氏距离, 统计出距离范围区间. 我们需要将以向量形式存在的训练形状进行相对对齐, 通常使用Procrustes[8]的方法来对每类训练集Mi(i=1, 2, 3, 4, 5)进行对齐, 以合适的权重进行平移、缩放和旋转等相关几何变换, 使得对齐后的形状模型与平均形状模型之间的差距尽量最小. 对于每个特征点, 需要计算其与其余所有特征点的距离, 根据距离的标准偏差获取权重, 标准偏差公式如下所示:
$\begin{aligned}& s = \sqrt {\frac{1}{{N - 1}}\sum\nolimits_{i = 1}^1 {{{\left( {{x_i} - \overline x } \right)}^2}} } \\& {\text{其中,}}\overline x = \frac{1}{N}\sum\nolimits_{i = 1}^1 {{x_i}} \end{aligned}$ | (3) |
其中, N是样本的数量, 对于样本中每一个点对其求标准偏差平方和再取倒数, 即可作为该点的权重.
由于样本集中的样本特征点的绝对位置有差异, 为了克服上述问题, 我们需要对我们的样本集中的形状进行对齐. 对于每类训练样本, 我们选择其中一个M1为基础, 对于其他的形状进行旋转、缩放、对齐使得它们与M1尽可能接近. 之后计算经过形状变换后的训练集的平均形状
(3) 主成分分析(PCA)
把训练集中的形状向量进行归一化后, 需利用主成分分析的方法找出形状变化的规律和特点, 其过程如下:
① 求对齐后的平均形状
$\overline x = \frac{1}{N}\sum\nolimits_{i = 1}^N {{x_i}} $ | (4) |
② 对齐后各个样本形状向量的偏差
$d{x_i} = {x_i} - \overline x $ | (5) |
③ 计算样本形状向量的协方差
$s = \frac{1}{N}\sum\nolimits_{i = 1}^N {d{x_i}dx_x^{\rm{T}}} $ | (6) |
④ 对于S进行特征分解, 求得其特征值
$x = \overline x + Pb$ | (7) |
其中,
(4) 灰度模型建立
初始形状会和真实形状不相一致, 需要不断地去调整, 使其与真实形状相吻合, 通过建立局部灰度模型, 对训练图像特征点附近的灰度信息进行分析. 传统方法为对每一幅特征点标记的特征点为中心, 沿着其法线方向, 分别在特征点两边取k个像素的灰度值, 将每个像素点的k邻域范围内的平均灰度作为当前像素点的灰度值. 每一个点对应的灰度模板就是关于这个2k+1个灰度值的均值和方差, 这种方法缺点是需要花费很长时间来处理. 本文方法是在特征点的位置为中心选取3个矩形区域内的像素值进行处理[5].
局部纹理模型的作用主要是方便我们找到每个特征点最佳的匹配位置, 本文以特征点为中心, 选取其周围的10邻域点作为候选点, 使用候选点与样本点的欧式距离的大小来衡量是否为最为匹配的特征点.
(5) ASM搜索过程人体特征点以及尺寸测量
对于训练好的人体形状模型以及局部纹理模型, 对于人体照片进行目标搜索, 找出人体特征点的位置以及计算尺寸信息. 其操作流程如图5所示.
我们选取两个关键特征点的位置(人脸中心点以及人体中心点), 并计算出其对应的欧式距离, 根据距离分类加载对应平均模板, 进行缩放等操作进行匹配.
获取到人脸中心点和人体中心点的坐标, 我们能够计算出两点之间的欧式距离w,再计算出我们所使用的平均模板两个中心点的欧式距离w', 计算出缩放因子s=w/w'. 以人脸中心点为参考点, 计算出待测图片中的人脸中心点位置与训练模板人脸中心点的位置的距离得到平移向量d=(dx, dy)T, 将待测图片中人脸中心点与人体中心点之间的连线与平均模板人脸中心点和人体中心点之间的连线的夹角作为标准形状模型的旋转因子[10], 通过如下式子的变换可以初步确定出初始形状:
$\begin{split} \left( {\begin{array}{*{20}{c}} {x_i^\theta } \\ {y_i^\theta } \end{array}} \right) & = M\left( {s,\theta } \right)\left( {\begin{array}{*{20}{c}} {{{\overline x }_i}} \\ {{{\overline y }_i}} \end{array}} \right) + t \hfill \\& = \left( {\begin{array}{*{20}{c}} {s\cos \theta }&{ - s\sin \theta } \\ {s\sin \theta }&{s\cos \theta } \end{array}} \right)\left( {\begin{array}{*{20}{c}} {{{\overline x }_i}} \\ {{{\overline y }_i}} \end{array}} \right) + \left( {\begin{array}{*{20}{c}} {{t_x}} \\ {{t_y}} \end{array}} \right) \hfill \\ \end{split} $ | (8) |
欧氏距离分类快速搜索匹配后的初始形状效果如图6所示.
获得初始形状后, 我们需要计算出当前特征点与其周围的10个邻域点的候选点与模型点进行欧氏距离计算, 选择欧式距离最小的点作为最佳特征点, 并且生成新的形状; 计算姿态参数和形状参数改变量, 更新参数使得新形状与模型相匹配, 直至最后收敛, 则判断ASM搜索结束并根据标记点的序号计算出对应的特征点尺寸.
我们通过计算相邻两次新形状之间的欧式距离来不断更新我们所需要的参数, 当我们得到的欧式距离大于我们设定的阈值, 则需要继续更新参数继续搜索. 因为我们事先做了模板分类快速拟合的操作, 所有对于身高点、臂长点等位置的拟合匹配较快, 迭代次数较少.
胯部以下区域在迭代过程中会出现仅单侧轮廓点拟合效果较好, 我们采用了灰度向量马氏距离最小的匹配原则[11]以及结合人体体型分布以及对称性特点来解决这个问题. 马氏距离表示数据的协方差距离, 能考虑到各种特性之间的联系, 其公式为:
${D_M}(x) = \sqrt {{{(x - \mu )}^{\rm{T}}}\sum\nolimits_{}^{ - 1} {(x - \mu )} } $ | (9) |
其中
根据之前灰度模型构建的方法, 我们可以得到一个向量集{grayt}, {grayt}的均值记为
$ f\left( {gra{y_t}} \right) = {\left( {gra{y_t} - \overline {gra{y_t}} } \right)^{\rm{T}}}\sum\nolimits_{gray}^{ - 1} {\left( {gra{y_t} - \overline {gra{y_t}} } \right)} $ | (10) |
根据上述公式, 对于部分区域拟合易出现问题的地方, 我们采用上述方法, 也就是解决f(grayt)最小值问题. 在轮廓搜索过程中, 对于当前候选点为中心取3个矩阵区域的邻域点, 再沿着其法线方向取3个矩阵区域的邻域点, 沿着每条法线获取其灰度向量grayt, 利用马氏距离方法计算出f(grayt)的最小值, 寻找出最佳匹配位置. 这样一来不断地计算, 不断更新参数, 使得部分区域拟合失败问题得到解决.
由于人体体型存在对称特征[13], 通过上述方法, 找出人体轮廓图. 标记对应特征点, 我们发现人体特征点存在对称性特征. 但由于我们算法在胯部以下易出现单侧拟合效果较好, 故只对胯部以下部分作对称性研究, 效果如图7所示.
在ASM特征点搜索过程中, 我们根据人体特征点分布特征以及人体对称性特点进行处理. 依据拟合好的位置点标号, 记录下其坐标点的位置. 搜索过程中, 单侧拟合效果好, 选择左外侧所有特征点位置与人体中心的位置距离d, 再选取人体右外侧特征的与人体中心点的位置距离d1. 将d和d1进行比较, 设定误差小于1 cm. 两者误差在这范围内, 就判定两侧特征点拟合基本正确, 当两者误差大于设定的范围, 判定某侧特征点拟合有误.
对于有误的两侧特征点, 我们利用人体骨架线来进行判断, 人体骨架体提取效果如图8所示. 分别计算左外侧特征点和内侧特征点中点, 与骨架线上同一高度点的坐标进行比较, 当两点的距离小于1 cm, 我们可以判断出当侧特征点拟合效果较好, 当距离大于1 cm说明拟合有误, 对于拟合效果不好的那侧特征点, 利用人体对称性特点, 进行拟合.
使用改进的灰度向量马氏距离最小的匹配原则和人体体型对称性特征, 较好地解决了ASM搜索过程中单侧效果较好的问题. 参照朱欣娟等方法对最大迭代次数的限定, 我们设定了最大迭代次数为26[5]. 通过多次反复试验, 我们所使用的待测图像数据迭代次数一共进行5次, 即可完成最终的匹配, 其部分迭代过程如图9所示.
完成ASM搜索后, 我们可以根据拟合好的点找出对应的编号, 找出对应的坐标点位置, 做差值运算, 可以做出对待测图像的人体尺寸测量. 再根据之前像素点转为实际尺寸的计算方法, 可以直接计算出待测人体真实尺寸. 对于胸围、腰围、臀围特征尺寸, 我们的方法只计算这些特征点位置的距离, 所有特征点测量结果如表1所示.
5 实验结果及其结果讨论
本文先是提出一种基于单背景的人体尺寸测量提取, 主要是基于Canny算子人体轮廓的提取方法以及尺寸测量. 同国外的系统Loughborough人体扫描仪、TC2分层轮廓测量方法等比较起来, 本文适用性更强, 检测速度快, 准确度高. 同时我们也发现当轮廓中出现断点时, 会使测量出现异常的问题. 针对上述问题, 我们采用人体特征点比例分析法、图像特征增强来解决轮廓点缺失出现断点导致检测异常. 改进效果图如图10所示, 其中图10(a)是轮廓出现断点造成检测异常效果图, 图10(b)则是本文改进方法检测效果图.
后在主动形状模型(ASM)算法的基础上, 结合之前的算法, 并且对传统的ASM算法进行修改, 选取特征点特定大小矩形范围内邻域点, 结合马氏距离公式, 选择特定矩阵大小邻域范围内点的灰度与灰度模型比较,并且结合人体体型分布及对称性特点进行拟合处理选择特定矩阵大小邻域范围内的点进行处理. 本实验室选择100幅特定照片作为训练集, 服务器端图像处理算法电脑CPU为Intel酷睿4核4.20 GHz, 内存为16 GB, 在MyEclipse运行环境中, 通过Java程序对待测图片中的人体特征点进行标定, 获取坐标点连线、训练、测试, 并且记录完成人体轮廓搜索所需要的时间、迭代次数以及与真实人体测量尺寸进行比对, 记录误差值. 本文改进的ASM算法与最初的Canny算子轮廓提取算法、传统ASM算法、朱欣娟等方法做了比较及分析, 如表2所示.
实验结果对比分析表明, 本文方法在对之前传统方法改进的基础上, 较好的适应了复杂背景的人体轮廓检测, 并且提高了特征点提取的准确率. 与传统ASM方法进行比较, 搜索过程中减少了迭代次数, 缩短特征点提取时间, 一定程度上提高了我们的特征点提取准确率. 与朱欣娟等方法进行比较, 由于我们检测的特征点位置较多, 准确率比其方法较低一点, 但在搜索过程中我们的迭代次数较少, 提取时间较短.
为了验证我们的算法对于不同光照下、复杂背景下的有效性, 我们选取了不同背景下的人体图片进行提取. 选择拍摄背景为建筑物并且拍摄光线较暗的图片进行测试, 效果图11所示; 选择拍摄背景为建筑物并且拍摄光线正常的图片进行测试, 效果图12所示; 选择拍摄背景为门框并且拍摄光线较亮的图片进行测试, 效果如图13所示.
为了验证我们的算法能够适用较为复杂的背景, 我们用了同一组人体在正常背景下、亮度较暗背景下、复杂背景下分别用了传统方法、改进的ASM算法进行对比, 我们发现对于亮度正常背景单一的环境下, 传统方法检测效果较好准确率较高效果如图14(a)所示; 对于光线较差, 人体出现阴影的情况下, 传统方法检测胸围、腰围、臀围等关键位置出现较为明显的偏差, 其检测结果如图14(b)所示; 对于复杂背景下, 传统方法对于关键特征点检测几乎全部失效, 背景建筑物的轮廓会被识别为特征点, 其检测结果如图14(c)所示. 针对上述图片, 我们采用了改进的ASM算法进行处理发现, 其准确率大大提高, 几乎不会出现传统方法误检测的问题, 其检测效果如图15(a)(b)(c)所示.
6 总结与展望本文通过对人体图片预处理和增强, 并且使用针对人体轮廓缺失使用人体比例关系方法对人体与背景对比度较大的图片进行人体特征点提取和尺寸测量. 由于人体与背景对比度较大的图片检测范围较狭隘, 对于复杂背景下的特征点提取与尺寸测量, 上述方法完全失效. 为此, 本文在ASM算法基础上, 改变传统ASM算法单模板匹配模式, 选择较少有效邻域点在其灰度模型中搜索, 改变胯部以下搜索方式, 利用改进的马氏距离搜索方式以及利用人体体型对称性特点解决. 改进后的ASM方法, 能够很好的解决复杂背景下人体轮廓提取的问题, 对于复杂背景提取准确率较高, 并且提取速度快; 较其他方法, 提取精度高, 速度快.
由于人体胸围、腰围、臀围等特征尺寸存在一定的弧度, 用本文的方法进行测量时, 对于胸围、腰围存在一定的误差. 本文改进的ASM方法也可适用于人体侧面的轮廓提取. 下一步的研究内容是使用本文方法结合人体正面和侧面图, 研究如何提高人体腰围、胸围等特征尺寸的测量. 同样, 虚拟试衣技术也越来越广泛, 将我们的算法推广到实际应用中也是我们今后的工作.
[1] |
罗仕鉴, 朱上上, 孙守迁. 人体测量技术的现状与发展趋势. 人类工效学, 2002, 8(2): 31-34. |
[2] |
Bălan AO, Black MJ. The naked truth: Estimating body shape under clothing. Proceedings of the 10th European Conference on Computer Vision. Marseille, France. 2008. 15–29.
|
[3] |
Dang L, Kong FR. Facial feature point extraction using a new improved active shape model. Proceedings of the 3rd International Congress on Image and Signal Processing. Yantai, China. 2010. 944–948.
|
[4] |
骆顺华, 王建萍. 基于二维图像非接触式人体测量方法探析. 纺织学报, 2013, 34(8): 151-155. |
[5] |
朱欣娟, 熊小亚. 基于改进ASM模型的人体特征点定位和建模方法. 系统仿真学报, 2015, 27(2): 286-294. |
[6] |
田仙仙, 鲍泓, 王波波, 等. 一种局部多特征融合的行人检测算法. 北京联合大学学报, 2013, 27(3): 21-25. |
[7] |
周筠. 监控系统中人脸识别的研究[硕士学位论文]. 北京: 清华大学, 2008.
|
[8] |
冯振华, 吴小俊. 改进的用于ASM的归一化方法. 计算机工程与应用, 2009, 45(2): 187-190. |
[9] |
孙砚铭. 基于ASM自动人脸特征点定位及应用的研究[硕士学位论文]. 北京: 北京交通大学, 2010.
|
[10] |
Tao L, Zhuang ZQ. Locating human eyes in complex background. Journal of Computer-Aided Design & Computer Graphics, 2003, 15(1): 38-42. |
[11] |
George RC, Mishra SK, Dwivedi M. Mahalanobis distance among the phase portraits as damage feature. Structural Health Monitoring, 2017. DOI:10.1177/1475921717722743. |
[12] |
Li CM, Huang R, Ding ZH, et al. A level set method for image segmentation in the presence of intensity inhomogeneities with application to MRI. IEEE Transactions on Image Processing, 2011, 20(7): 2007-2016. DOI:10.1109/TIP.2011.2146190 |
[13] |
夏凤勤, 毋戈, 谢昊洋, 等. 基于人体纵截面特征曲线的体型分类. 纺织学报, 2017, 38(6): 86-91. |