孟蕊 唐好选
摘 要:衣料库是虚拟试衣系统中非常重要的一部分。为了更好地满足基于图像的虚拟试衣系统中衣料库生成的需要,本文提出一种基于OneCut和共享抠图算法的自适应衣物目标抠取方法。首先,利用OneCut算法将服装图像从背景中分割出来。然后,使用数学形态学方法自动生成三分图。最后,通过共享抠图算法得到服装图像前景和用于虚拟试穿的alpha值。实验结果表明,能够利用较少的人工交互,实时地生成较理想的服装前景图像。
关键词:OneCut;共享抠图;服装提取;虚拟试衣系统
中图分类号: TP391.41 文献标识码: A 文章编号:2095-2163(2015)04-
Clothing Target Matting for Algorithm based on OneCut and Shared Matting
MENG Rui, TANG Haoxuan
(1 School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China; )
Abstract: The clothing database is an important part of virtual fitting system. In order to better meet the need of generating clothing database in image-based virtual fitting system, the adaptive clothing target matting method is proposed in the paper, which is based on OneCut and shared matting. First, the paper utilizes segmentation algorithm named as OneCut to segment the cloth image from background. Second, the trimap is automatically generated by mathematical morphology methods. Third, shared matting algorithm is used to obtain the clothing foreground and alpha image used to implement virtual try-on. It is clearly proved by the proposed experiment that it can make use of less interaction to produce the more ideal garment foreground image in real time.
Keywords: OneCut; Shared Matting; Garment Matting; Virtual Try-on
0 引 言
随着计算机互联网的深入应用,网络购物也进入了蓬勃发展。但是,顾客无法试穿网络上的服装这一限制,制约了网购服装业的发展,为了打破这一制约,虚拟试衣系统应运而生。虚拟试衣系统的发展,一方面可以使得网购消费者查看试穿效果而购买合适的服装,提升消费者的购物满意度,另一方面减少了电子商家因退换服装而造成的损失。
衣料库决定网购用户可以选择试穿的服装有哪些,直接影响着虚拟试衣系统的试穿效果。如何从丰富多样的服装图片上提取出衣物目标图像,是虚拟试衣系统中衣料库建立的关键问题。图像分割和抠图技术是衣料库建立的关键技术,图像分割是将每个像素标记为前景或者背景像素,与图像分割不同,图像抠图是计算每个像素的前景和背景部分的技术。目前,图像分割技术主要分为基于聚类的图像分割、基于图割原理的图像分割、基于区域和边缘的图像分割以及基于多尺度的图像分割等。现存的图像抠图技术可以分为基于传播的图像抠图和基于采样的图像抠图。基于传播的图像抠图将抠图问题看做是从已知区域中插值得到未知区域alpha值;基于采样的图像抠图先估计像素的前景和背景颜色值,然后再计算alpha值。
本文提出了一种自适应衣物目标前景提取方法,首先使用OneCut分割算法对原始服装图像进行分割,得到分割二值掩码;然后使用数学形态学原理对二值掩码进行相应处理,得到三分图;最后利用基于三分图的共享抠图算法对服装图像进行抠图处理,最终得到衣物目标前景图和alpha值图。
1 衣物目标抠取
图像抠图技术按照附加约束方式的不同,可以分为基于线条的抠图技术和基于三分图的抠图技术。基于线条的抠图技术对于边缘比较复杂的图像往往需要进行大量计算来实现较好的抠图效果,并且因约束太少往往抠图效果不好。与之相对,基于三分图的抠图技术在速度和效果上都有明显提高。
因此,本文选用基于三分图的共享抠图技术;但是精细准确的三分图是最终抠图结果好坏的关键[1],为解决如何生成精细准确的三分图,并且使用尽可能少的用户交互,本文对图像进行OneCut分割得到二值分割模板,其中前景为1值,背景为0值,用户只需简单地手动指定矩形框,框内为包含衣物目标的未知区域,框外为背景区域。同时,由于前景和背景有可能存在颜色相近或者一致的区域,仅仅依靠矩形框指定背景区域和未知区域得到的分割结果并不一定就获评满意,因此,本文在分割阶段向用户提供交互式地指定前景和背景,即对首次分割结果不满意时,用户可以通过划线的方式指明确定的前景和背景像素点,再次进行分割,依次交互进行直到用户满意。根据衣物目标往往是一个大的整体这一经验事实,利用数学形态学开操作将分割模板中细小狭长前景区域去掉,再进行膨胀和腐蚀操作即可生成精细准确的三分图。这样利用OneCut分割结果得到三分图,既可以减少用户交互,保证处理时间,也可以获得较好的效果。方法1为本文提出的一种衣物目标抠取方法。
方法1 衣物目标提取
输入:原始服装图片I;
输出:服装目标前景图像F和alpha值图像A;
1. 原始图像交互分割
(a) 用户手动画矩形框,指定服装目标区域;
While(1)
{ (b) 对I执行OneCut分割算法,得到分割模板BW;
(c) if(用户对分割结果满意) break;//跳出循环;
(d) 用户划线指定前景或者背景确定区域;
//鼠标左键按下划线指定前景,右键指定背景;};
2. 三分图生成 //S为结构元素
(a) openBW=open(BW,S);//形态学开操作
(b) dilateBW=dilate(openBW,S);//形态学膨胀操作
(c) erodeBW=erode(openBW,S);//形态学腐蚀操作
(d) for (i,j)是I的所有像素点
if(dilateBW(i,j)=0) Trimap(i,j)=0;
if(erodeBW(i,j)=1) Trimap(i,j)=255;
if(dilateBW(i,j)=1 and erodeBW(i,j)=0)
Trimap(i,j)=128;
endfor;
3. 服装目标抠图
(a) 根据Trimap,对服装图像I进行共享抠图,得到服装目标前景图像F和alpha值图A;
1.1 原始图像交互分割
1.1.1 OneCut算法
在众多分割算法中,基于图论的分割方法具有反映全局图像属性的能力,越来越受到欢迎[2],其中GrabCut算法[3]目前是较流行的一种基于图论的分割算法。Tang等人[4]提出的OneCut算法是对GrabCut算法的一种改进算法,GrabCut算法是通过迭代的图切割来获得硬分割结果,而OneCut算法则通过使用一次图切割即可获得硬分割结果,并且在时间和效果上均要优于GrabCut算法。
OneCut算法使用快速全局最优二元分割技术,明确地最小化目标、背景颜色分布之间的表观重叠。用户提供一个包围感兴趣的目标矩形包围盒,矩形包围盒外面的像素使用硬性约束分配为背景。使用一次图切割最小化公式(1)表达的能量函数,实现目标分割。
(1)
式中, 表示包围盒相对应的二元掩码, 是一个分割段, 是 的特征函数,第一项是包围盒 的一个标准膨胀,第二项是表观重叠惩罚项,最后一项是对比敏感平滑项。 , , , , 指的是 集合的元素个数, 值则是图像I中相邻的像素对集合。
, 是一个全局参数,通过实验发现 取0.9, 取9。
1.1.2 用户交互分割
用户手动通过交互界面在服装图像上拖拉绘制矩形框,该矩形框内包含要提取的服装目标前景图像,框外为背景区域。由于OneCut算法对矩形框比较敏感,则需要用户绘制的矩形框要完全覆盖目标,并且尽可能小。本文采用OneCut算法分割服装图像,获得二值分割模板,若用户对分割结果很不满意,则可以使用额外画笔形式指定新的前景和背景,再次执行OneCut分割算法,如此下去,获得较满意的分割结果。实验发现,往往用户只需要简单的拖拉矩形框即可得到较满意的分割结果。
因为无论图像分割还是抠图都会考虑图像的颜色进行分割与抠图,所以为了更好的得到衣物抠取效果图,抠取的服装图像尽量避免服装前景中的颜色与背景中颜色一致或者相近的情况。但是,如果出现前景和背景相近的情况,或者出现用户对分割结果不满意的情况,用户可以通过额外的手动划线方式指定前景和背景。如图1(a)中的右侧胳膊部分的颜色在背景中基本未出现,使得易于误判为前景部分,图1 (b)则为单纯地通过指定前景矩形框得到的分割模板,可以看出未能正确地将胳膊部分去除掉,图1 (c)即为用户通过额外划线方式指定胳膊部分区域为前景,图1 (d)就是与图1 (c)相对应的分割效果图,可以看出效果非常好。
(a)首次交互 (b)首次分割 (c)再次交互 (d)再次分割(a)first interaction (b)first segmentation (c)interactive image again (d)segmentation again
图1 交互分割对比图
Fig.1 Comparison chart of interactive segmentation
由于输入图像往往是穿着服装的模特图像,其模特的身体与服装接触的地方有时颜色相近,使得分割结果不好,往往将与服装颜色相近的边缘错误地分割为前景,从图1(b)和图1 (d)分割结果上也可以得到确认。同时,OneCut分割结果边缘比较粗糙,直接用于图像合成真实感较差。因此,本文将利用更精细的抠图算法来重新分配和估计边缘部分,获得服装前景图和alpha值图。
1.2 三分图生成
1.2.1 三分图算法原理
数学形态学已经成为图像处理和图像分析领域的重要工具,尤其是与形状相关的方面[5]。其开发实现的主要思想是:利用几何模板(例如圆盘、正方形、线)探测图像中物体的形状,其中几何模板被称为结构元素。数学形态学由一组形态学运算子组成,最基本的运算子有膨胀、腐蚀、开和闭。图像A被x平移的结果记为 ,即图像A中每个像素点a的坐标值与x的坐标值相加,得到新的像素点的坐标值。
图像B和结构元素S的膨胀操作公式如式(2)所示,其中B为二值图像。该操作即将图像B上所有点按照S中所有点平移之后,重叠在一起形成一幅新的图像。可以看出,膨胀操作可以使得二值图像扩大一圈,当结构元素足够大时,可以将距离比较近的两物体联通在一起。膨胀对填补空洞很有作用。
(2)
腐蚀操作如公式(3)所示,即S被移动x之后的集合,完全被图像B所包含的所有x集合。可以看出,腐蚀操作可以使得二值图像减少一圈,当结构元素足够大时,可以将细小联通的两物体分开。
(3)
开操作是以膨胀和腐蚀操作而基础的组合运算,即先对图像进行腐蚀操作然后再对其结果进行膨胀,最后得到的就是开操作的结果。公式(4)即为开操作,开操作使得对象的轮廓变得光滑,断开狭窄的间断和去掉比结构元素小的突刺。
(4)
1.2.2 三分图生成实验及结果分析
通过大量实验发现,OneCut分割结果往往将背景图像中与服装目标颜色相近的细长狭小边缘误分为目标区域。同时,根据经验可知,服装图像往往是一个大的整体,几乎没有细长狭小的突起部分,除非一些特殊的衣服或者衣服上的带子之类的。如果将这些细长狭小的突起部分去掉,并不会影响整体衣服的效果。
因此,本文采用数学形态学的开操作去除这些比结构元素小的突起,并且本文根据服装图像大小来确定结构元素大小,避免因结构元素太大或者太小而导致过度或者不足去除效果。为了更好地得到实验结果数据,将服装图像像素点个数设为512*512个,那么结构元素S可取长度为11的正方形结构,正方形中心位置为(0,0)。如图2所示,图2 (a)为输入服装图像,图2 (b)为分割模板图像,可以看出服装下面有细长的突起,并且这些突起并不是服装的一部分,而是两腿之间的边缘部分。该部分与服装图像相似,从而导致误判为前景部分。通过形态学开操作消除了突起部分得到如图2(c)所示的二值模板,以其为基础最终得到图2(d)所示的三分图。
此后,利用膨胀和腐蚀操作获得三分图,三分图中的未知区域为服装图像的覆盖边缘的狭长区域。对二值分割图像执行腐蚀操作,值为1的区域为三分图中的前景区域。对二值分割图像进行膨胀操作,值为0的区域为三分图中的背景区域。三分图中其他区域为未知区域。
1.3 服装目标抠图
1.3.1 共享抠图算法
共享抠图算法[5]是基于一个基本观察,在小范围的邻近像素点往往与其真实的前景值、背景值、alpha值存在高度相似。因此,对于每个像素点各自分别地计算alpha值就是明显冗余的工作,可以引入一些原则来避免这一冗余工作,同时保证不会降低抠图的质量。该共享抠图算法的输入是输入图像和相应的三分图,主要包括扩展已知区域、采样选择和抠图计算、局部平滑这三个步骤。
扩展已知区域,即扩展三分图中未知区域中的点为已知前景点或者已知背景点,减少三分图中未知区域中点的数量,从而减少接下来的计算量。对未知区域中的每个像素点,利用邻近像素点间的亲和力,将其重新划分为前景像素点或者背景像素点或者未知像素点,从而实现已知区域的扩大,减少未知区域点的个数。邻近像素点的亲和力利用的是计算两像素点的图像空间距离以及颜色空间距离,将其两距离分别与 、 阈值进行比较,判断是否与已知像素点具有相同的标签(前景或者背景)。
采样选择和抠图计算,即对于三分图中未知像素点获得前景和背景采样点对集合,利用邻近像素点之间的强亲和力,从中选择未知像素点的最好采样点对,再精细平滑最好采样点,最后利用选择的最好采样点对来计算抠图结果,得到每个未知像素点的四元组。综上可知,就是首先先进行采样点的收集,然后选择得到最好的采样点,再精细最好采样点,以及抠图计算。
局部平滑,尽管采样选择阶段考虑了像素点附近的亲和力,但却不足以阻止结果抠图的不连续性,所以需要对结果进行局部平滑操作,来获得最终的四元组,即前景颜色、背景颜色、置信度和alpha值。对抠图结果进行局部平滑,不但可以去除噪声的影响,同时还可保持其鲜明特征。
1.3.2 抠取服装前景
输入原服装图像和三分图,执行共享抠图算法得到服装图像前景图和alpha值图。共享抠图算法中的扩展未知区域部分可以大大减少后面的计算量,所以就将尽可能更多并正确地扩展未知区域。实验结果表明,根据三分图中膨胀和腐蚀的结构元素大小,确定空间距离阈值大小可以达到很好的扩展未知区域效果。由于三分图是通过长度11的中心为原点的正方形结构元素进行膨胀腐蚀操作得到的,故空间距离阈值设置为 和颜色距离阈值取 。如图3所示。图3(a)为服装图像的分割结果,可以看出分割边缘比较粗糙,并且出现手部误分边界;经过共享抠图之后得到图3(b)的服装前景,其边缘比较光滑,且减少了误分像素数量;图3(c)和图3(d)分别是图3(a)和图3(b)左下角放大部分。
2 实验结果及分析
实验服装数据库为从淘宝网、京东服装商城、唯品会等各大网站上搜集的服装图片,去掉服装目标占整个图片比例太小或者太大的图片,共1 000张服装图片,其中男女式服装各500张,其中这些图片分类为背景单一前景单一、背景复杂前景单一、背景单一前景复杂和背景复杂前景复杂这四类,并且每类图片各250张。将背景和前景分为单一和复杂的标准是颜色是否多样、图案是否杂乱无章、是否存在多个目标。为了更好地统计实验结果,输入的服装图像大小为512*512个像素点,本文OneCut算法和共享抠图算法在这四类服装图片上的平均运行时间,以及总的平均每幅服装图片运行时间如表1所示。表1中的平均总耗时间不包括用户交互时间,而是用户指定服装目标区域之后,完成一次服装目标前景抠取过程的平均时间。从表1中可以看出,服装目标前景抠取方法的运行时间与服装图像类别无关。由于三分图生成中使用的形态学操作,与图像的复杂程度无关,与图像大小近似成正比相关,其平均运行时间为0.031秒。
同时,大量实验结果发现,对于背景复杂前景复杂类的服装图片,单纯利用矩形框的交互得到的分割效果绝大多数都不是非常理想,往往需要通过多次交互进行指定前景和背景,而对于前景服装图像颜色单一并且背景颜色也比较单一的服装图片中却只有极少数前景和背景颜色较接近的图片不能很好地分割,其他绝大多数图片分割效果都可达良好。另外,对于前景复杂背景单一和前景单一背景复杂这两类服装图像分割效果往往也较好。如图4所示,第一行到第四行分别为属于背景单一前景单一、背景复杂前景单一、背景单一前景复杂和背景复杂前景复杂的男女服装图片抠取结果,从图中可以看出背景复杂前景复杂的图片抠取效果最差。并且即使通过多次交互指定前景和背景抠图结果也未臻于理想,如图5所示,分别为图4第四行的两幅服装图片经过划线交互之后的抠取效果。表2为用户凭经验指定矩形区域以及少许确定前景或者背景区域获得的衣物提取统计结果,每类服装图片各250张,人为地将抠取结果分为满意、基本满意和不满意三类结果。从表2中可以看出,背景单一前景单一这类服装图片中分割结果满意的服装图片个数最多,背景单一前景单一、背景复杂前景单一和背景单一前景复杂这三类服装图片中满意的分割结果个数所占比重在72%以上,而背景复杂前景复杂的服装图片中满意分割结果所占比重最低,但60%以上的这类图片分割结果均已达到基本满意之上。
3 结束语
本文提出一种基于OneCut和共享抠图算法的自适应衣物目标提取方法,需要较少人工交互指定服装目标。大量实验结果表明,该方法既可以消除衣物目标轮廓边缘比较粗糙的问题,得到边缘平滑的衣物目标前景图像,也可以尽量避免背景边缘误分,尤其是针对背景单一或者前景单一的服装图片效果很好,准确性较高,可以直接用于虚拟试衣系统,并且在运行时间上完全可以满足其实时性需要。
参考文献:
[1] SINGH S, JALAL A S. Digital image matting: A review[J]. International Journal of Computer Vision & Image Processing, 2013, 3(4):16-36.
[2] CAMILUS K S, GOVINDAN V K. A review on graph based segmentation[J]. International Journal of Image Graphics & Signal Processing, 2012, 4(5):1.
[3] ROTHER C, KOLMOGOROV V, BLAKE A. "GrabCut": interactive foreground extraction using iterated graph cuts[J]. Acm Trans Graph, 2004, 23(3):2004.
[4] TANG M, GORELICK L, VEKSLER O, et al. GrabCut in One Cut[C]//International Conference on Computer Vision, Sydney:IEEE 2013:1769 - 1776.
[5] HARALICK R M, STERNBERG S R, ZHUANG X. Image analysis using mathematical morphology[J]. Pattern Analysis & Machine Intelligence IEEE Transactions on, 1987, 9(4):532-550.
[6] GASTAL E S L, OLIVEIRA M M. Sampling for real-time alpha matting[J]. Eurographics, Computer Graphics Forum,2010, 29(2) : 575-584.