首页 / 专利库 / 资料储存系统 / 自动识别与数据采集技术 / 一种结合RGBD数据的GrabCut自动分割算法

一种结合RGBD数据的GrabCut自动分割算法

阅读:548发布:2020-05-18

专利汇可以提供一种结合RGBD数据的GrabCut自动分割算法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种结合RGBD数据的GrabCut自动分割 算法 :首先将 深度相机 Kinect V2采集到的深度、 颜色 等数据通过彩色图的 像素 点对应 深度图 的 坐标系 来初步分割包含人物的前景,并作为GrabCut的掩码框。然后将深度数据作为高斯混合模型的第四通道中来改进GrabCut算法的 能量 方程,实现对人物轮廓进行自动分割。我们改进后的Grabcut算法解决了原有算法在复杂静态背景下存在人物上下半身的服饰颜色差异大时分割不完整、前背景颜色相近时分割不准确、需要用户交互的问题,并且具有自动分割人物轮廓、实时性强、分割准确度高等特点。进一步利用多边形拟合绘制人物轮廓,实现轮廓矢量化。,下面是一种结合RGBD数据的GrabCut自动分割算法专利的具体信息内容。

1.一种结合RGBD数据的GrabCut自动分割算法,该技术根据深度相机Kinect V2采集到的深度、颜色等数据通过彩色图的像素点对应深度图坐标系来初步分割包含人物的前景,并作为GrabCut的掩码框。然后将深度数据作为高斯混合模型的第四通道中来改进GrabCut算法的能量方程,实现对人物轮廓进行自动分割。该方法包括以下步骤:
S1、基于Kinect相机的场景深度、颜色等数据采集
S2、深度图修复以及初步分割人物前景图;
S3、初始化GrabCut掩码,结合RGBD四通道数据进行人物的自动分割;
S4、矢量化轮廓边缘并绘制人物轮廓线。
2.如权利要求1所述的结合RGBD数据的GrabCut自动分割算法,其特征在于,所述步骤S1具体包括以下处理:
随着强大的测距传感器的出现以及深度数据(depth,即深度相机拍摄的场景每个点到相机面的距离)提取技术日趋成熟,RGB-D图像(RGB+Depth Map,Depth Map是包括场景深度数据的图像或通道)逐渐受到了图像研究人员的关注。RGB-D相机与我们平时使用的普通相机不同,它同时装载了光学RGB相机和深度相机。因而该相机可以同时采集场景中各个点的纹理信息和深度信息。Kinect V2相机(微软于2014年10月发布的第二代3D体感摄像机,也称为深度相机,在计算机视觉领域常用于教学或科研实验)证明了物体识别系统的准确性可以通过附加深度信息的方式得到大幅提高,而不再仅仅依赖于颜色信息。Kinect采用Time of Flight(TOF)技术来得到目标物体距离相机所在垂直平面的距离。TOF利用连续波调制相位偏移与物体距离成正比的关系,计算出深度。利用微软提供的开发组件读取kinect传输过来的数据,其中颜色信息以RGB的格式保存为BGR三通道的彩色图,深度信息以8位无符号整型形式保存为灰度图。与此同时,保存对应的由kinect提供的人物索引值(BodyIndex)数据源。
3.如权利要求1所述的结合RGBD数据的GrabCut自动分割算法,其特征在于,所述步骤S2具体包括以下处理:
Kinect在渲染Depth Map时,将没有识别到的领域默认填充为黑色。但“黑洞”将影响后续的运算,因此在进行初步前景分割前先采用像素滤波器修复深度图像。遍历整幅深度图,选定深度值为0的像素点为待修改的滤波像素点,建立一个以该像素点为核心的两层滤波器。然后寻找该滤波器器内深度值不为0的像素点,分别记录两层滤波方框内深度值不为0的像素点的数量,然后与自定义阈值比较。若内外层中记录的深度值非零的像素数目超过了阈值,则该待修改的滤波像素点的深度值将以该两层滤波器内出现频率最高且不为0的深度值进行赋值,最终完成修复。本发明像素滤波器内外层阈值分别为2,5;内层大小为3*
3,外层大小为5*5;
深度相机与彩色相机之间存在间距、其视野范围以及分辨率不一致,导致RGB图片不能按像素点与深度图直接对应。因此进行坐标空间的映射校准,利用开发组件的接口类能把以深度相机为原点的坐标系与彩色相机的空间坐标系链接起来,寻找映射到深度中与彩色帧相对应的像素点。再对比人物索引数据,确定用户的深度像素并保留相应位置的RGB值,从而得到初步前景图。为了降低数据量,现将上一步提取到的初步前景图中的每个像素点与合理的阈值进行比较,从而获取与初步前景图相对应的二值图像。由于初步前景二值图像仍然存在一些边缘干扰项,采取数学形态学处理来去除,提供更好的GrabCut初始掩码(掩码也是最终图割结果)。
4.如权利要求1所述的结合RGBD数据的GrabCut自动分割算法,其特征在于,所述步骤S3具体包括以下处理:
遍历步骤S2初步提取到的初步前景二值图找到包含所有人物目标的最小矩形框,并记录其所在位置与大小。二值图经过数据拷贝之后,重新将白色前景像素赋值为3、黑色背景像素分赋值为0,并缩小图像尺寸至一半大小后,以此初始化GrabCut的掩码。
提取矩形框与初始化掩码之后,以标记图代替人工框选前景、背景种子集。这样便使得GrabCut算法由用户交互式转换为自动化。
最先GrabCut算法的原作者定义了一个Gibbs能量方程:
E(α,k,θ,z)=U(α,k,θ,z)+V(α,z)  #(1)
其中,U(α,k,θ,z)是区域项,表示着图像像素集的整体性质;V(α,z)是边界项,表示两两像素点的纹理颜色差异。求解出能量方程E的最小值,换而言之,找到了分割整幅图像所花费最小代价或者损失。
区域项U由现在图像包含了RGB颜色空间的像素点zn,使用图片的区域像素整体性和边缘像素差异作为分割软指标,GMMs(高斯混合模型)的每个GMM进行全协方差高斯混合,分别作用于前/背景。GMMs添加矢量k={k1,…,kn,…,kN},其中kn∈{1,…K}(K个分量,通常K=
5)是为了分配给图中每个像素以概率最大的GMM分量,从而更加有效地处理GMMs。若标记αn=0则该像素属于背景模型的某个高斯分量,若标记αn=1则该像素属于前景的某个高斯分量。
D(αn,kn,θ,zn)=-log p(zn|αn,kn,θ)-logπ(αn,kn)  #(3)
其中,p(zn|αn,kn,θ)为GMMs的概率分布,π(αn,kn)为GMMs所包含的样本数/所有采样像素数即权重系数,解得:
因此高斯参数模型0变换为:
θ={π(α,k),μ(α,k),∑(α,k),α=0,1,k=1...K}  #(5)
其中,π为高斯混合系数、μ为均值、α为不透明度,∑求和为协方差,k∈{1,…K}为分量数量
使用颜色空间中的欧几里德距离来计算边界项:
β=(2<(zm-zn)2>)-1  #(7)
其中,C为相邻像素对,γ为常数项(一般为50),dis(·)是相邻像素的欧几里德距离,β由图像的对比度决定。
在之前的预处理过程中,利用Kienct原始数据生成了矩形和掩码。为了更有效利用深度数据,接下来将深度信息融合到GrabCut的能量函数公式(1)中。
对区域项的改进:
新增加的深度图区域项U中的dn包含了RGB图像每个像素点的深度信息,其余参数含义与之前RGB图像的区域项一致。此时利用RGB图像与Depth图像进行GMMs估计,需要求解的参数有:前/背景第k个高斯模型的权重π、均值μ以及协方差∑。
对边界项的改进:
β1=(2<(dm-dn)2>)-1  #(11)
GrabCut算法中边界项主要由颜色的欧式距离计算得出,基于此,本文新增加的深度图边界项V中由dmn(RGB图像每个像素点的深度信息)之间的欧式距离来改进,其余参数含义与之前RGB图像的边界项一致。
结合公式(8)(9)(10)(11),最终能量公式(1)变为:
E(α,k,θ,z,d)=U(α,k,θ,z)+U(α,k,θ,d)+V(α,z)+V(α,d)  #(12)将新添加的深度图区域项和边界项添加入能量公式中,表示深度信息depth以彩色帧中RGB三通道相同的方式,作为第四通道加入高斯混合模型中相关参数的计算,使得能量函数融合RGBD的信息,更加准确地分割出人物。
改进后的程序流程为:
(1)制作RGBD图片
首先创建一个存放八位无符号整形四通道的图片数据集Mat,再分别将步骤S1得到的彩色图以及灰度图的数据分离出来,然后按B/G/R/D顺序(这是因为openCV是按BGR的顺序存放RGB图片数据,为保持程序逻辑一致性)将数据保存到Mat,融合RGB-D四通道数据,根据图片像素相对位置不变的关系,缩小图片至原来的一半大小来减少计算量。
(2)初始化GrabCut算法
在GrabCut中,GMMs(高斯混合模型)估计对颜色通道具有很好的鲁棒性,且理论上GMMs可以逼近任何概论分布,所以直接将深度数据作为高斯混合模型的第4通道进行计算,在原先RGB三维的基础上添加深度信息,重新调整了单高斯模型参数个数(4个均值、16个协方差、1个权重系数),初始化前景、背景GMMs。
(3)学习参数,重构高斯模型
利用kmeans聚类将当前未知像素的RGBD四通道数据融入到模型内部权重系数、均值、协方差矩阵的计算,完成像素概率估计,并将该像素添加到所属概率最大的前景或背景混合多高斯模型的单高斯分量kn中。GMMs迭代收敛完成后,构建网络流图,并计算其边权值。
(4)生成图割结果
先运用最大流/最小割算法分割该网络流图,然后放大图片至原来大小,最后显示图割结果。
5.如权利要求1所述的结合RGBD数据的GrabCut自动分割算法,其特征在于,所述步骤S4具体包括以下处理:
利用基于二值图像的轮廓算法提取人体轮廓,假设f(i,j)为图像第i行,第j列的像素点的值(只有0,1两种值),其思想如下:
(1)确定二值图像外边界、孔边界的层次等级关系。运用Canny算子描述图中人物轮廓的完整边界特征,其中外边界代表值为一的连通域,孔边界表示值为零的连通域。
(2)通过标记不同的边界以代表他们层级、边界性质的值,勾画整幅人物二值图轮廓边界之间的层次等级关系。
(3)遍历每一行像素,碰到下列情况停止遍历:
(a)f(i,j-1)=0,f(i,j)=1;这时f(i,j)是外边界起点
(b)f(i,j)>=1,f(i,j+1)=0;这时f(i,j)是孔边界起点
(4)再从该起点入手,指定给新边界以唯一的标示符New Border Denote(NBD)并标注该边界的点。起先NBD赋值为1,当碰到一个新边界时,NBD++。倘若过程中碰到f(i,j)=1,f(i,j+1)=0,将f(i,j)赋值为-NBD,即f(i,j)为右边界终点。
最终定位人体轮廓并保存人物轮廓向量集,以多边形拟合人物轮廓,在RGB图片上绘制轮廓线。

说明书全文

一种结合RGBD数据的GrabCut自动分割算法

技术领域

[0001] 本技术着重于Kinect相机下用图像分割相关技术以及RGBD图实时标注并拟合人物轮廓,属于图像分割领域。在Kinect相机采集的视频序列中,利用特定的技术和算法去除背景等干扰信息,只保留有关人体的关键数据(如身体尺寸、姿势、着装颜色等),再将人物边界轮廓序列化,为接下来一系列研究(如行为分析、目标跟踪、模板匹配等)提供有效的处理数据,打下坚实的基础

背景技术

[0002] 人体轮廓提取的精准程度和分割速度决定了人物行为处理分析以及后续处理操作的最终效果,而拟合操作能以最少的点保留其轮廓关键特征,减少数据量。人体轮廓识别的重点是构建一种对处于复杂场景的人物进行准确识别的图像特征描述。
[0003] 现有的大多数人体轮廓提取技术大都依赖于RGB图像,而RGB图像的质量易受强光、剧烈的光照强度变化、多物体重叠遮挡与数据传输损失等因素的影响。这也就导致算法或者模型受到局限,适应性低。最重要的是人物运动比较复杂,导致有些方法因为过于简单而识别精度达不到要求,另一些模型却因为过于复杂而无法适用于实际情况。到目前为止,基于人体运动的复杂性、环境的多变性以及当前研究现状和技术平并不能构造一个满足所有情形的人体轮廓识别体系,并且其人体轮廓提取与拟合算法的分割精准度、健壮性和实时性三方面之间的统一仍然是难题。
[0004] 完整的人物轮廓是特征提取与表达、目标分类与识别等系统后期处理的前提条件。近年来,有研究人员将GrabCut算法应用到人物轮廓分割上并取得一定效果,但其使用过程中需要人工手动框选前景区域,不适合实时人物轮廓提取。
[0005] 本发明提出结合RGBD数据的GrabCut自动分割算法,利用Kinect 相机所提供的数据特性,初步提取前景框,同时添加第四通道深度来改进 Grabcut算法,使其实现自动分割人物。本发明依赖的关键技术介绍如下:
[0006] (1)GrabCut算法
[0007] GrabCut算法是基于图论的经典图像分割算法。它通过用户指定前景框来得到目标前景样本集和背景样本集,并采用三维高斯混合模型来表示颜色统计的权重、均值、协方差分布,以此来确定当前像素属于前/背景的可能性大小。然后收敛能量方程,从而产生全局最优解,完成对所有像素的标记,最后利用最大流/最小割算法进行分割。
[0008] (2)基于二值图像的轮廓提取算法
[0009] 该算法利用Canny算子描述轮廓的完整边界特征,其中外边界代表值为一的连通域,孔边界表示值为零的连通域。通过标记不同的边界以代表他们层级、边界性质的值,勾画整幅二值图轮廓边界之间的层次等级关系。
[0010] 本发明所改进的GrabCut算法并利用放缩图片的方式减少计算数据量、提高精准度,分割所用时间比openCV实现的GrabCut减少5倍左右,处理一的速度基本上在0.09s左右,相当于1秒可以处理11帧,满足实时要求,并且精准度较高。在人物未超出Kinect检测范围以及光照变化不剧烈的情况下,依然能在人物服饰颜色相差较大时能有较好的分割效果,获取细节明显、较为完整的人物轮廓。

发明内容

[0011] 为解决上述技术问题,我们提出了一种结合RGBD数据的GrabCut 自动分割算法,该技术根据深度相机Kinect V2采集到的深度、颜色等数据通过彩色图的像素点对应深度图坐标系来初步分割包含人物的前景,并作为GrabCut的掩码框。然后将深度数据作为高斯混合模型的第四通道中来改进GrabCut算法的能量方程,实现对人物轮廓进行自动分割。该方法包括以下步骤:
[0012] S1、基于Kinect相机的场景深度、颜色等数据采集
[0013] S2、深度图修复以及初步分割人物前景图;
[0014] S3、初始化GrabCut掩码,结合RGBD四通道数据自动分割人物目标;
[0015] S4、矢量化轮廓边缘并绘制人物轮廓线。
[0016] 2、如权利要求1所述的结合RGBD数据的GrabCut自动分割算法,其特征在于,所述步骤S1具体包括以下处理:
[0017] 随着强大的测距传感器的出现以及深度数据(depth,即深度相机拍摄的场景每个点到相机面的距离)提取技术日趋成熟,RGB-D图像(RGB+ Depth Map,Depth Map是包括场景深度数据的图像或通道)逐渐受到了图像研究人员的关注。RGB-D相机与我们平时使用的普通相机不同,它同时装载了光学RGB相机和深度相机。因而该相机可以同时采集场景中各个点的纹理信息和深度信息。Kinect V2相机(微软于2014年10月发布的第二代3D体感摄像机,也称为深度相机,在计算机视觉领域常用于教学或科研实验)证明了物体识别系统的准确性可以通过附加深度信息的方式得到大幅提高,而不再仅仅依赖于颜色信息。Kinect采用Time of Flight (TOF)技术来得到目标物体距离相机所在垂直平面的距离。TOF利用连续波调制相位偏移与物体距离成正比的关系,计算出深度。利用微软提供的开发组件读取kinect传输过来的数据,其中颜色信息以RGB的格式保存为BGR三通道的彩色图,深度信息以8位无符号整型形式保存为灰度图。与此同时,保存对应的由kinect提供的人物索引值(BodyIndex)数据源。
[0018] 3、如权利要求1所述的结合RGBD数据的GrabCut自动分割算法,其特征在于,所述步骤S2具体包括以下处理:
[0019] Kinect在渲染Depth Map时,将没有识别到的领域默认填充为黑色。但“黑洞”将影响后续的运算,因此在进行初步前景分割前先采用像素滤波器修复深度图像。遍历整幅深度图,选定深度值为0的像素点为待修改的滤波像素点,建立一个以该像素点为核心的两层滤波器。然后寻找该滤波器器内深度值不为0的像素点,分别记录两层滤波方框内深度值不为0 的像素点的数量,然后与自定义阈值比较。若内外层中记录的深度值非零的像素数目超过了阈值,则该待修改的滤波像素点的深度值将以该两层滤波器内出现频率最高且不为0的深度值进行赋值,最终完成修复。本发明像素滤波器内外层阈值分别为2,5;内层大小为
3*3,外层大小为5*5;
[0020] 深度相机与彩色相机之间存在间距、其视野范围以及分辨率不一致,导致RGB图片不能按像素点与深度图直接对应。因此进行坐标空间的映射校准,利用开发组件的接口类能把以深度相机为原点的坐标系与彩色相机的空间坐标系链接起来,寻找映射到深度帧中与彩色帧相对应的像素点。再对比人物索引数据,确定用户的深度像素并保留相应位置的RGB值,从而得到初步前景图。为了降低数据量,现将上一步提取到的初步前景图中的每个像素点与合理的阈值进行比较,从而获取与初步前景图相对应的二值图像。由于初步前景二值图像仍然存在一些边缘干扰项,采取数学形态学处理来去除,提供更好的GrabCut初始掩码(掩码也是最终图割结果)。
[0021] 如权利要求1所述的结合RGBD数据的GrabCut自动分割算法,其特征在于,所述步骤S3具体包括以下处理:
[0022] 遍历步骤S2初步提取到的初步前景二值图找到包含所有人物目标的最小矩形框,并记录其所在位置与大小。二值图经过数据拷贝之后,重新将白色前景像素赋值为3、黑色背景像素分赋值为0,并缩小图像尺寸至一半大小后,以此初始化GrabCut的掩码。
[0023] 提取矩形框与初始化掩码之后,以标记图代替人工框选前景、背景种子集。这样便使得GrabCut算法由用户交互式转换为自动化。
[0024] 最先GrabCut算法的原作者定义了一个Gibbs能量方程:
[0025] E(α,k,θz)=U(α,k,θ,z)+V(α,z)  #(1)
[0026] 其中,U(α,k,θ,z)是区域项,表示着图像像素集的整体性质;V(α,z) 是边界项,表示两两像素点的纹理颜色差异。求解出能量方程E的最小值,换而言之,找到了分割整幅图像所花费最小代价或者损失。
[0027] 区域项U由现在图像包含了RGB颜色空间的像素点zn,使用图片的区域像素整体性和边缘像素差异作为分割软指标,GMMs(高斯混合模型) 的每个GMM进行全协方差高斯混合,分别作用于前/背景。GMMs添加矢量k={k1,…,kn,…,kN},其中kn∈{1,…K}(K个分量,通常K =5)是为了分配给图中每个像素以概率最大的GMM分量,从而更加有效地处理GMMs。若标记αn=0则该像素属于背景模型的某个高斯分量,若标记αn=1则该像素属于前景的某个高斯分量。
[0028]
[0029] D(αn,kn,θ,zn)=-log p(zn|αn,kn,θ)-log π(αn,kn)  #(3)[0030] 其中,p(zn|αn,kn,θ)为GMMs的概率分布,π(αn,kn)为GMMs所包含的样本数/所有采样像素数即权重系数,解得:
[0031]
[0032] 因此高斯参数模型θ变换为:
[0033] θ={π(α,k),μ(α,k),∑(α,k),α=0,1,k=1...K}  #(5)[0034] 其中,π为高斯混合系数、μ为均值、α为不透明度,∑求和为协方差, k∈{1,…K}为分量数量
[0035] 使用颜色空间中的欧几里德距离来计算边界项:
[0036]
[0037] β=(2<(zm-zn)2>)-1  #(7)
[0038] 其中,C为相邻像素对,γ为常数项(一般为50),dis(·)是相邻像素的欧几里德距离,β由图像的对比度决定。
[0039] 在之前的预处理过程中,利用Kienct原始数据生成了矩形和掩码。为了更有效利用深度数据,接下来将深度信息融合到GrabCut的能量函数公式(1)中。
[0040] 对区域项的改进:
[0041]
[0042]
[0043] 新增加的深度图区域项U中的dn包含了RGB图像每个像素点的深度信息,其余参数含义与之前RGB图像的区域项一致。此时利用RGB图像与Depth图像进行GMMs估计,需要求解的参数有:前/背景第k个高斯模型的权重π、均值μ以及协方差∑。
[0044] 对边界项的改进:
[0045]
[0046] β1=(2<(dm-dn)2>)-1  #(11)
[0047] GrabCut算法中边界项主要由颜色的欧式距离计算得出,基于此,本文新增加的深度图边界项V中由dmn(RGB图像每个像素点的深度信息) 之间的欧式距离来改进,其余参数含义与之前RGB图像的边界项一致。
[0048] 结合公式(8)(9)(10)(11),最终能量公式(1)变为:
[0049] E(α,k,θ,z,d)=U(α,k,θ,z)+U(α,k,θ,d)+V(α,z)+V(α,d)  #(12)[0050] 将新添加的深度图区域项和边界项添加入能量公式中,表示深度信息 depth以彩色帧中RGB三通道相同的方式,作为第四通道加入高斯混合模型中相关参数的计算,使得能量函数融合RGBD的信息,更加准确地分割出人物。
[0051] 改进后的程序流程为:
[0052] (1)制作RGBD图片
[0053] 首先创建一个存放八位无符号整形四通道的图片数据集Mat,再分别将步骤S1得到的彩色图以及灰度图的数据分离出来,然后按B/G/R/D顺序(这是因为openCV是按BGR的顺序存放RGB图片数据,为保持程序逻辑一致性)将数据保存到Mat,融合RGB-D四通道数据,根据图片像素相对位置不变的关系,缩小图片至原来的一半大小来减少计算量。
[0054] (2)初始化GrabCut算法
[0055] 在GrabCut中,GMMs(高斯混合模型)估计对颜色通道具有很好的鲁棒性,且理论上GMMs可以逼近任何概论分布,所以直接将深度数据作为高斯混合模型的第4通道进行计算,在原先RGB三维的基础上添加深度信息,重新调整了单高斯模型参数个数(4个均值、16个协方差、1 个权重系数),初始化前景、背景GMMs。
[0056] (3)学习参数,重构高斯模型
[0057] 利用kmeans聚类将当前未知像素的RGBD四通道数据融入到模型内部权重系数、均值、协方差矩阵的计算,完成像素概率估计,并将该像素添加到所属概率最大的前景或背景混合多高斯模型的单高斯分量kn中。 GMMs迭代收敛完成后,构建网络流图,并计算其边权值。
[0058] (4)生成图割结果
[0059] 先运用最大流/最小割算法分割该网络流图,然后放大图片至原来大小,最后显示图割结果。
[0060] 4、如权利要求1所述的结合RGBD数据的GrabCut自动分割算法,其特征在于,所述步骤S4具体包括以下处理:
[0061] 利用基于二值图像的轮廓算法提取人体轮廓,假设f(i,j)为图像第i行,第j列的像素点的值(只有0,1两种值),其思想如下:
[0062] (1)确定二值图像外边界、孔边界的层次等级关系。运用Canny算子描述图中人物轮廓的完整边界特征,其中外边界代表值为一的连通域,孔边界表示值为零的连通域。
[0063] (2)通过标记不同的边界以代表他们层级、边界性质的值,勾画整幅人物二值图轮廓边界之间的层次等级关系。
[0064] (3)遍历每一行像素,碰到下列情况停止遍历:
[0065] (a)f(i,j-1)=0,f(i,j)=1;这时f(i,j)是外边界起点
[0066] (b)f(i,j)>=1,f(i,j+1)=0;这时f(i,j)是孔边界起点
[0067] (4)再从该起点入手,指定给新边界以唯一的标示符New Border Denote(NBD)并标注该边界的点。起先NBD赋值为1,当碰到一个新边界时,NBD++。倘若过程中碰到f(i,j)=1,f(i,j+1)=0,将f(i,j)赋值为-NBD, 即f(i,j)为右边界终点。
[0068] 最终定位人体轮廓并保存人物轮廓向量集,以多边形拟合人物轮廓,在RGB图片上绘制轮廓线。附图说明
[0069] 图1为本发明技术路线图;
[0070] 图2为深度图修复效果对比图,其中图像(a)为噪点显示为蓝色的深度图,图像(b)为噪点修复后深度图,图像(c)为灰度显示的修复前的深度图,图像(d)为灰度显示的修复后的深度图;
[0071] 图3为初步目标前景示例图,其中图像(a)为场景RGB原图,图像(b) 为初步前景图;
[0072] 图4为初步目标前景二值示例图,其中图像(a)为单人示例图,图像(b) 为多人示例图;
[0073] 图5为形态学处理后的二值示例图,其中图像(a)为单人示例图,图像 (b)为多人示例图;
[0074] 图6为最终分割效果对比示例图,分为图6A、图6B、图6C三组。图6A是模拟多人的场景,图6B是模拟人物背对Kinect相机走动的场景,图6C是模拟人物上下衣物颜色差异大的场景。各组的图像(a)为本发明分割结果示例图,各组的图像(b)为(a)对应的绘制人物轮廓RGB图,各组的图像(c)为openCV版GrabCut算法分割结果示例图,各组的图像(d)为(c)对应的绘制人物轮廓RGB图;
[0075] 图7为人物轮廓拟合绘制结果示例图,其中图像(a)为单人示例图,图像(b)为多人示例图;
[0076] 图8为结合RGBD数据的GrabCut自动分割算法的结果图,其中图像 (a)为RGB原图,图像(b)为其对应的深度图,图像(c)为修复后的深度图,图像(d)为初步前景图,图像(e)为二值图,图像(f)为形态学处理后的二值图,图像(g)为最终GrabCut分割结果图、图像(h)为人物轮廓图。

具体实施方式

[0077] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
[0078] 本发明的结合RGBD数据的GrabCut自动分割算法是根据Kinect采集到的深度、颜色等数据通过彩色图的像素点对应深度图的坐标系来初步分割包含人物的前景,并作为GrabCut的掩码框。然后将深度数据作为高斯混合模型的第四通道中来改进GrabCut算法的能量方程,实现对人物轮廓进行自动分割。本发明的技术具体包括如下步骤:
[0079] S1、基于Kinect相机的场景深度、颜色等数据采集。
[0080] 利用微软提供的开发组件读取kinect传输过来的数据,其中颜色信息以RGB的格式保存为BGR三通道的彩色图,深度信息以8位无符号整型形式保存为灰度图。与此同时,保存对应的由kinect提供的人物索引值 (BodyIndex)数据源。
[0081] 图8的(a)(b)是本发明中Kinect相机采集深度、颜色数据的举例;
[0082] S2、深度图修复以及初步分割人物前景图。
[0083] Kinect在渲染Depth Map时,将没有识别到的领域默认填充为黑色。但“黑洞”将影响后续的运算,因此在进行初步前景分割前先采用像素滤波器修复深度图像。遍历整幅深度图,选定深度值为0的像素点为待修改的滤波像素点,建立一个以该像素点为核心的两层滤波器。然后寻找该滤波器器内深度值不为0的像素点,分别记录两层滤波方框内深度值不为0 的像素点的数量,然后与自定义阈值比较。若内外层中记录的深度值非零的像素数目超过了阈值,则该待修改的滤波像素点的深度值将以该两层滤波器内出现频率最高且不为0的深度值进行赋值,最终完成修复。本发明像素滤波器内外层阈值分别为2,5;内层大小为
3*3,外层大小为5*5。
[0084] 为更好地展示修复效果,将灰度深度图转换为红蓝两色图,其中红色的深浅表示距离远近,蓝色表示深度值为0的噪点。从图2中可以看出噪点被大面积修复,人物内部“黑洞”区域已被合理填充。
[0085] 深度相机与彩色相机之间存在间距、其视野范围以及分辨率不一致,导致RGB图片不能按像素点与深度图直接对应。因此进行坐标空间的映射校准,利用开发组件的接口类能把以深度相机为原点的坐标系与彩色相机的空间坐标系链接起来,寻找映射到深度帧中与彩色帧相对应的像素点。再对比人物索引数据,确定用户的深度像素并保留相应位置的RGB值,从而得到初步前景图。图3是本发明初步提取目标前景的示例图,可以看出仍然存在不属于人物目标的干扰像素集以及人体部分,因此需要进一步处理。
[0086] 为了降低数据量,现将上一步提取到的初步前景图中的每个像素点与合理的阈值进行比较,从而获取与初步前景图相对应的二值图像。图4是本发明初步提取目标前景二值化的示例图。
[0087] 由于初步前景二值图像仍然存在一些边缘干扰项,采取数学形态学处理来去除,提供更好的GrabCut初始掩码(掩码也是最终图割结果)。图5 是本发明初步提取目标前景二值化的示例图。
[0088] S3、初始化GrabCut掩码,结合RGBD四通道数据进行人物的自动分割。
[0089] 遍历步骤S2初步提取到的初步前景二值图找到包含所有人物目标的最小矩形框,并记录其所在位置与大小。二值图经过数据拷贝之后,重新将白色前景像素赋值为3、黑色背景像素分赋值为0,并缩小图像尺寸至一半大小后,以此初始化GrabCut的掩码。
[0090] 提取矩形框与初始化掩码之后,以标记图代替人工框选前景、背景种子集。这样便使得GrabCut算法由用户交互式转换为自动化。
[0091] 将新添加的深度图区域项和边界项添加入能量公式中,表示深度信息 depth以彩色帧中RGB三通道相同的方式,作为第四通道加入高斯混合模型中相关参数的计算,使得能量函数融合RGBD的信息,更加准确地分割出人物。
[0092] 改进后的程序流程为:
[0093] (1)制作RGBD图片
[0094] 首先创建一个存放八位无符号整形四通道的图片数据集Mat,再分别将步骤S1得到的彩色图以及灰度图的数据分离出来,然后按B/G/R/D顺序(这是因为openCV是按BGR的顺序存放RGB图片数据,为保持程序逻辑一致性)将数据保存到Mat,融合RGB-D四通道数据,根据图片像素相对位置不变的关系,缩小图片至原来的一半大小来减少计算量。
[0095] (2)初始化GrabCut算法
[0096] 在GrabCut中,GMMs(高斯混合模型)估计对颜色通道具有很好的鲁棒性,且理论上GMMs可以逼近任何概论分布,所以直接将深度数据作为高斯混合模型的第4通道进行计算,在原先RGB三维的基础上添加深度信息,重新调整了单高斯模型参数个数(4个均值、16个协方差、1 个权重系数),初始化前景、背景GMMs。
[0097] (3)学习参数,重构高斯模型
[0098] 利用kmeans聚类将当前未知像素的RGBD四通道数据融入到模型内部权重系数、均值、协方差矩阵的计算,完成像素概率估计,并将该像素添加到所属概率最大的前景或背景混合多高斯模型的单高斯分量kn中。 GMMs迭代收敛完成后,构建网络流图,并计算其边权值。
[0099] (4)生成图割结果
[0100] 先运用最大流/最小割算法分割该网络流图,然后放大图片至原来大小,最后显示图割结果。
[0101] 图6是三组本发明最终分割结果的示例图。
[0102] S4、矢量化轮廓边缘并绘制人物轮廓线。
[0103] 利用基于二值图像的轮廓算法提取人体轮廓,确定二值图像外边界、孔边界的层次等级关系。运用Canny算子描述图中人物轮廓的完整边界特征,其中外边界代表值为一的连通域,孔边界表示值为零的连通域。通过标记不同的边界以代表他们层级、边界性质的值,勾画整幅人物二值图轮廓边界之间的层次等级关系。最终定位人体轮廓并保存人物轮廓向量集,以多边形拟合人物轮廓,在RGB图片上绘制轮廓线。
[0104] 图7是本发明人物轮廓拟合绘制结果示例图示例图;图8是本发明结合RGBD数据的GrabCut自动分割算法的流程结果图。
[0105] 本发明的技术可以通过计算机软件来实现,例如使用C++编写,开发环境例如是Windows 10系统、QtCreator5.10.0、openCV3.2.0。装配Kinect v2相机并安装相应开发组件包。
[0106] 实验证明,本发明所改进的GrabCut算法分割所用时间比openCV实现的GrabCut减少5倍左右,处理一帧的速度基本上在0.09s左右,相当于1秒可以处理11帧,满足实时要求,并且精准度较高。在人物未超出 Kinect检测范围以及光照变化不剧烈的情况下,依然能在人物服饰颜色相差较大时能有较好的分割效果,获取细节明显、较为完整的人物轮廓。
[0107] 以上所述的具体实施例,对本技术的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈