本发明属于计算机图形学和虚拟现实相结合技术领域,涉及一种虚实物体遮挡检测方法。
背景技术:
虚实物体之间的遮挡检测是虚实融合的关键,而虚实融合是实现ar(augmentedreality,增强现实)的重要手段,也是基于真实环境和虚拟环境下实现虚拟对象与真实场景合并技术的核心难点。随着增强现实诸如在包括娱乐、生活、军事、教育、交通导航、医学和制造业等领域的广泛应用,虚实物体之间的遮挡检测问题已经成为了一个瓶颈问题。
目前的研究方法主要可以划分为基于模型的方法、基于深度的方法和基于图像的方法。基于模型的方法通过对真实对象建模进行虚实对象的遮挡处理;基于深度的方法在获取图像深度信息并通过深度信息来进行虚实对象的遮挡处理;基于图像的虚实遮挡处理是通过分析虚拟对象绘制后的像素情况,通过已知图像的深度在图像层面处理虚实对象的遮挡关系。基于模型的方法适用于真实对象较少其真实对象建模容易的场景中,其优点是对于简单模型的虚实遮挡处理达到很好效果,但是由于真实对象三维重建繁琐复杂,难以适用于实际问题的解决。基于深度的方法往往由于无法获取精确的深度图而难以实现良好的遮挡效果,且相机视角需要相对固定及真实场景变化较少的情况。由于基于模型的方法和基于深度的方法的局限性,而基于图像的方法可以适用于真实对象包含刚体及非刚体,同时可以调整相机视角实现对自然交互情况的观察。但是目前方法只能解决真实对象遮挡虚拟对象问题,其中包括室内、室外以及虚拟对象静态放置时的场景下的虚实遮挡,但是很少有研究者针对自然交互过程中的虚实遮挡问题进行研究,对于图像运动中的前景目标提取方法也相对不是很灵活。
技术实现要素:
本发明的目的是提供一种虚实物体遮挡检测方法,实现了前景图像的自动获取,解决了现有技术中存在的图像移动中前景目标的自适应获取不灵活的问题。
本发明所采用的技术方案是,一种虚实物体遮挡检测方法,具体按照以下步骤实施:
步骤1,对第一帧图像进行建模,为每个像素建立背景样本集,实现背景模型的初始化;
步骤2,对后续帧图像采用自适应方法进行前景目标判断,获取前景图像;
步骤3,对步骤1中的背景模型进行更新;
步骤4,对步骤2获取的前景图像中的噪声点采用中值滤波进行降噪;
步骤5,对步骤4经降噪的前景图像中的孔洞区域使用漫水填充法进行填充;
步骤6,对经步骤1-5处理的图像进行优化,检测阴影区域并剔除。
步骤1具体为:
步骤1.1,建立初始第一帧图像的像素模型
m=f(xi,yi)|(xi,yi)∈ng(x,y)(1)
其中,f(xi,yi)表示当前像素的值,ng(x,y)表示邻域中相邻的像素值;xi和yi是像素f的两个坐标;
步骤1.2,为每个像素建立背景样本集以及初始化背景模型
样本集有p1、p2…pn共n个图像构成,每一副图的大小和原帧大小相同,对于每一副的某一像素点,按平均分布随机抽样n次八邻域中的一个像素值为其采样点,从而得到n个图像,形成初始化后的背景模型:
bx(t)={p1,p2,…,pn}(2)。
步骤2具体为:
步骤2.1,rgb三维空间表示
将像素的rgb颜色空间表示到xyz轴的三维空间,并计算每个样本点里像素与当前帧像素在三维空间上的偏移向量μ
其中vi表示当前帧图像中某点像素值对应的rgb三维空间坐标值,xt表示模型样本中某点像素值对应的rgb三维空间坐标值,n表示样本集的数量;
步骤2.2,计算中心坐标值e
e表示样本集的中心坐标值,xt到e的向量为偏移向量μ,根据步骤2.1计算出偏移向量μ后,通过μ与xt计算中心坐标值e;
步骤2.3,获取模型每个样本集间的平均方差σ
其中,pr、pg和pb分别表示的是第i个样本集中对应位置像素值的三个分量r、g和b,er、eg和eb分别表示的是平均坐标点像素值的三个分量r、g和b;
步骤2.4:计算球体半径ε
将步骤2.3得到的平均方差σ进行线性计算可得到球体半径ε,通过将样本集中的每个值与得到的球体半径ε做比较,得出样本集中的每个值小于平均方差的个数ca;
步骤2.5:前景目标判断
如果ca大于某个阈值nc,则该像素为背景,否则为前景,其中,nc是背景,nc是依据实验确定出来的阈值。
步骤3具体为:
步骤3.1,从背景模型中抽取随机一个像素设为pg(x),pg(1)...pg(8)表示pg(x)在(x,y)位置及其八邻域内的像素;
步骤3.2,在pg(x)八邻域内检测到新的一帧图像pt(x),pt(1)...pt(8)表示pt(x)在(x,y)位置及其八邻域内的像素,如pt(x)在(x,y)处的像素pt(x,y)被判定为背景,则pg(x)需要被更新,即pg(x)=pt(x)。
步骤4具体为:
步骤4.1,统计经步骤2判断为前景的前景二值图像中黑色像素点以及白色像素点的比率;
步骤4.2,若黑色像素点和白色像素点比率不同,则使用比率大的像素点来代替当前像素;若黑色像素点和白色像素点的比率相同,则实施步骤4.3;
步骤4.3,对黑色像素点和白色像素点邻域的四个角区域分布情况进行观察,若黑色像素点和白色像素点邻域的四个角区域那个像素点多,则用多的像素点代替该像素;若四个角区域黑白像素点均匀分布,该像素点颜色不做更改。
步骤5具体为:
步骤5.1,将步骤4降噪后的前景图像a向外延伸一个像素点,将延伸的像素点填充为背景色,得到填充后的图像b;
步骤5.2,设置种子点为任意延伸图像的像素点,通过漫水填充法将图像b的背景填充为前景色,将得到的图像裁剪掉延伸像素点得到图像c;
步骤5.3,将图像c取反后与原图像a进行或运算,得到孔洞填充后的图像,从而实现前景区域孔洞填充。
步骤6具体为:
步骤6.1,对步骤5已经填充孔洞的前景图像利用hsv颜色空间进行阴影检测,如果前景图像中的像素点满足式(5)的三个条件则保留,判断为前景图像;否则判断为背景阴影并进行剔除;
其中,参数0≤α≤β<1,由于阴影区域像素的亮度小于前景区域像素的亮度,故β的取值小于1,α表示当前光线的强度,α越小表示光线越强;it和bt分别表示当前帧和参考帧,(x,y)是坐标值,下标t表示帧数,τs和τh分别表示饱和度分量阈值和色调分量阈值;
步骤6.2,对步骤5已经填充孔洞的前景图像使用meanshift聚类算法进行前景分割,具体为:
(1)图像平滑:在空间域和值域的特征空间对前景图像进行分类,通过模点搜索确定每个数据点的类中心,并且让类中的点都变为这些类中心点的颜色;
(2)相似区域合并:
构建特征空间,求取特征空间的向量并移动特征空间中的球体后再重新计算漂移向量,直至收敛;更新输出图像上对应的初始原点的色彩值为本轮迭代的终点的色彩值,如此完成一个点的色彩均值漂移;
对于前景图像上的其它点依次重复上面的步骤进行遍历,完后通过区域生长来完成图像的合并,从图像上某一点出发,假如其邻域点的颜色值与其相似则合并,同时从新合并点继续合并直到碰到不同类或不相似的像素点;
步骤6.3:求交运算
通过对步骤6.2与步骤6.3进行求交运算,通过不同图像区域内包含通过求交运算得到的区域的范围阈值来对阴影区域的检测进行优化,从而实现阴影检测。
本发明的有益效果是,本发明一种虚实物体遮挡检测方法,针对交互过程中的虚实遮挡问题进行研究,实现了前景图像的自动获取及优化,能较为灵活的自适应获取图像移动中的前景目标。
附图说明
图1是本发明实施例中的初始化背景模型;
图2是本发明实施例中的自适应阈值前景检测模型图;
图3是本发明实施例中的中心坐标e计算模型图;
图4是本发明实施例中背景模型的更新过程图;
图5是本发明实施例中选取背景单一且前景为刚体的场景图;
图6是本发明实施例中选取背景复杂且前景为刚体的场景图;
图7是本发明实施例中选取背景复杂且前景为非刚体的场景图;
图8是本发明实施例中采用中值滤波来对前景的二值图像进行降噪的四个角区域上像素分布图;
图9是本发明实施例中使用漫水填充法对前景区域孔洞进行填充的过程图;
图10是本发明实施例中针对非刚体手进行阴影检测的过程图;
图11简单背景下的笔(刚体)前景检测实验过程图;
图12简单背景下的手(非刚体)前景检测实验过程图;
图13复杂背景下的笔(刚体)前景检测实验过程图;
图14复杂背景下的手(非刚体)前景检测实验过程图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明一种虚实物体遮挡检测方法,具体按照以下步骤实施:
步骤1,对第一帧图像进行建模,为每个像素建立背景样本集,实现背景模型的初始化;具体为:
步骤1.1,建立初始第一帧图像的像素模型
m=f(xi,yi)|(xi,yi)∈ng(x,y)(1)
其中,f(xi,yi)表示当前像素的值,ng(x,y)表示邻域中相邻的像素值;xi和yi是像素f的两个坐标;
步骤1.2,为每个像素建立背景样本集以及初始化背景模型
样本集有p1、p2…pn共n个图像构成,每一副图的大小和原帧大小相同,对于每一副的某一像素点,按平均分布随机抽样n次八邻域中的一个像素值为其采样点,从而得到n个图像,形成初始化后的背景模型:
bx(t)={p1,p2,…,pn}(2);
步骤2,对后续帧图像采用自适应方法进行前景目标判断,获取前景图像,具体为:
步骤2.1,rgb三维空间表示
将像素的rgb颜色空间表示到xyz轴的三维空间,并计算每个样本点里像素与当前帧像素在三维空间上的偏移向量μ
其中vi表示当前帧图像中某点像素值对应的rgb三维空间坐标值,xt表示模型样本中某点像素值对应的rgb三维空间坐标值,n表示样本集的数量;
步骤2.2,计算中心坐标值e
e表示样本集的中心坐标值,xt到e的向量为偏移向量μ,根据步骤2.1计算出偏移向量μ后,通过μ与xt计算中心坐标值e;
步骤2.3,获取模型每个样本集间的平均方差σ
其中,pr、pg和pb分别表示的是第i个样本集中对应位置像素值的三个分量r、g和b,er、eg和eb分别表示的是平均坐标点像素值的三个分量r、g和b;
步骤2.4:计算球体半径ε
将步骤2.3得到的平均方差σ进行线性计算可得到球体半径ε,通过将样本集中的每个值与得到的球体半径ε做比较,得出样本集中的每个值小于平均方差的个数ca;
步骤2.5:前景目标判断
如果ca大于某个阈值nc,则该像素为背景,否则为前景,其中,nc是背景,nc是依据实验确定出来的阈值;
步骤3,对步骤1中的背景模型进行更新,具体为:
步骤3.1,从背景模型中抽取随机一个像素设为pg(x),pg(1)...pg(8)表示pg(x)在(x,y)位置及其八邻域内的像素;
步骤3.2,在pg(x)八邻域内检测到新的一帧图像pt(x),pt(1)...pt(8)表示pt(x)在(x,y)位置及其八邻域内的像素,如pt(x)在(x,y)处的像素pt(x,y)被判定为背景,则pg(x)需要被更新,pg(x)=pt(x)。
步骤4,对步骤2获取的前景图像中的噪声点采用中值滤波进行降噪,具体为:
步骤4.1,统计经步骤2判断为前景的前景二值图像中黑色像素点以及白色像素点的比率;
步骤4.2,若黑色像素点和白色像素点比率不同,则使用比率大的像素点来代替当前像素;若黑色像素点和白色像素点的比率相同,则实施步骤4.3;
步骤4.3,对黑色像素点和白色像素点邻域的四个角区域分布情况进行观察,若黑色像素点和白色像素点邻域的四个角区域那个像素点多,则用多的像素点代替该像素;若四个角区域黑白像素点均匀分布,该像素点颜色不做更改;
步骤5,对步骤4经降噪的前景图像中的孔洞区域使用漫水填充法进行填充,具体为:
步骤5.1,将步骤4降噪后的前景图像a向外延伸一个像素点,将延伸的像素点填充为背景色,得到填充后的图像b;
步骤5.2,设置种子点为任意延伸图像的像素点,通过漫水填充法将图像b的背景填充为前景色,将得到的图像裁剪掉延伸像素点得到图像c;
步骤5.3,将图像c取反后与原图像a进行或运算,得到孔洞填充后的图像,从而实现前景区域孔洞填充。
步骤6,对经步骤1-5处理的图像进行优化,检测阴影区域并剔除,具体为:
步骤6.1,对步骤5已经填充孔洞的前景图像利用hsv颜色空间进行阴影检测,如果前景图像中的像素点满足式(5)的三个条件则保留,判断为前景图像;否则判断为背景阴影并进行剔除;
其中,参数0≤α≤β<1,由于阴影区域像素的亮度小于前景区域像素的亮度,故β的取值小于1,α表示当前光线的强度,α越小表示光线越强;it和bt分别表示当前帧和参考帧,(x,y)是坐标值,下标t表示帧数,τs和τh分别表示饱和度分量阈值和色调分量阈值;
步骤6.2,对步骤5已经填充孔洞的前景图像使用meanshift聚类算法进行前景分割,具体为:
(1)图像平滑:在空间域和值域的特征空间对前景图像进行分类,通过模点搜索确定每个数据点的类中心,并且让类中的点都变为这些类中心点的颜色;
(2)相似区域合并:
构建特征空间,求取特征空间的向量并移动特征空间中的球体后再重新计算漂移向量,直至收敛;更新输出图像上对应的初始原点的色彩值为本轮迭代的终点的色彩值,如此完成一个点的色彩均值漂移;
对于前景图像上的其它点依次重复上面的步骤进行遍历,完后通过区域生长来完成图像的合并,从图像上某一点出发,假如其邻域点的颜色值与其相似则合并,同时从新合并点继续合并直到碰到不同类或不相似的像素点;
步骤6.3:求交运算
通过对步骤6.2与步骤6.3进行求交运算,通过不同图像区域内包含通过求交运算得到的区域的范围阈值来对阴影区域的检测进行优化,从而实现阴影检测。
实施例
步骤1,如图1所示,对第一帧图像进行建模,为每个像素建立背景样本集,实现背景模型的初始化;通过填充像素的样本集来完成初始化,但由于仅一帧图像中无法提供像素点的空间分布信息,利用相近像素点拥有相近的空间分布特性,随机选择处理像素的邻域像素作为其模型样本值;
具体为:
步骤1.1,建立初始第一帧图像的像素模型
m=f(xi,yi)|(xi,yi)∈ng(x,y)(1)
其中,f(xi,yi)表示当前像素的值,ng(x,y)表示邻域中相邻的像素值;xi和yi是像素f的两个坐标;
步骤1.2,为每个像素建立背景样本集以及初始化背景模型
样本集有p1、p2…pn共n个图像构成,每一副图的大小和原帧大小相同,对于每一副的某一像素点,按平均分布随机抽样n次八邻域中的一个像素值为其采样点,从而得到n个图像,形成初始化后的背景模型,形成初始化后的背景模型如图1所示;
bx(t)={p1,p2,…,pn}(2);
步骤2,如图2所示,对后续帧图像采用自适应方法进行前景目标判断;本文采用一种自适应阈值来代替固定阈值,阈值大小与样本集的方差成正比,样本集方差越大,说明背景越复杂,判定阈值应该越大,通过自适应的方式来确定阈值;具体为:
步骤2.1,rgb三维空间表示
将像素的rgb颜色空间表示到xyz轴的三维空间,并计算每个样本点里像素与当前帧像素在三维空间上的偏移向量μ
其中vi表示当前帧图像中某点像素值对应的rgb三维空间坐标值,xt表示模型样本中某点像素值对应的rgb三维空间坐标值,n表示样本集的数量;
步骤2.2,如图3所示,计算中心坐标值e
e表示样本集的中心坐标值,xt到e的向量为偏移向量μ,根据步骤2.1计算出偏移向量μ后,通过μ与xt计算中心坐标值e;
步骤2.3,获取模型每个样本集间的平均方差σ
其中,pr、pg和pb分别表示的是第i个样本集中对应位置像素值的三个分量r、g和b,er、eg和eb分别表示的是平均坐标点像素值的三个分量r、g和b;
步骤2.4:计算球体半径ε
将步骤2.3得到的平均方差σ进行线性计算可得到球体半径ε,通过将样本集中的每个值与得到的球体半径ε做比较,得出样本集中的每个值小于平均方差的个数ca;
步骤2.5:前景目标判断
如果ca大于某个阈值nc,则该像素为背景,否则为前景,其中,nc是背景,nc是依据实验确定出来的阈值;
步骤3,如图4所示,对步骤1中的背景模型进行更新;本发明采取的是保守的更新策略与前景点计数策略相结合的更新策略;具体为:
步骤3.1,从背景模型中抽取随机一个像素设为pg(x),pg(1)...pg(8)表示pg(x)在(x,y)位置及其八邻域内的像素;
步骤3.2,在pg(x)八邻域内检测到新的一帧图像pt(x),pt(1)...pt(8)表示pt(x)在(x,y)位置及其八邻域内的像素,如pt(x)在(x,y)处的像素pt(x,y)被判定为背景,则pg(x)需要被更新,pg(x)=pt(x)。
从步骤1到步骤3对vibe前景检测算法进行改进,实现了运动目标的自适应前景检测,该方法比固定阈值的方法优越,同时可以适应不同背景环境和不同前景对象,图5选取背景单一且前景为刚体的场景,图5(a)为笔在简单背景移动的原图像,图5(b)为笔在简单背景移动的vibe前景检测结果,图5(c)为笔在简单背景移动的本发明检测结果,图6选取背景复杂且前景为刚体的场景,图6(a)为笔在复杂背景移动的原图像,图6(b)为笔在复杂背景移动的vibe前景检测结果,图6(c)为笔在复杂背景移动的本发明检测结果,图7选取背景复杂且前景为非刚体的场景,图7(a)为手在复杂背景移动的原图像,图7(b)为手在复杂背景移动的vibe前景检测结果,图7(c)为手在复杂背景移动的本发明检测结果,分别用本发明方法进行实验,并将检测结果与传统前景检测算法的检测结果对比。
步骤4,如图8所示,对步骤2获取的前景图像中的噪声点采用中值滤波进行降噪;具体为:
步骤4.1,统计经步骤2判断为前景的前景二值图像中黑色像素点以及白色像素点的比率;
步骤4.2,若黑色像素点和白色像素点比率不同,则使用比率大的像素点来代替当前像素;若黑色像素点和白色像素点的比率相同,则实施步骤4.3;
步骤4.3,对黑色像素点和白色像素点邻域的四个角区域分布情况进行观察,若黑色像素点和白色像素点邻域的四个角区域那个像素点多,则用多的像素点代替该像素,如图8(a)所示,中值滤波去噪四个角区域上像素分布不均匀情况;若四个角区域黑白像素点均匀分布,该像素点颜色不做更改,如图8(b)所示,为中值滤波去噪四个角区域上像素分布均匀情况;
步骤5,对步骤4经降噪的前景图像中的孔洞区域使用漫水填充法进行填充;具体为:
步骤5.1,将步骤4降噪后的前景图像a向外延伸一个像素点,将延伸的像素点填充为背景色,得到填充后的图像b;
步骤5.2,设置种子点为任意延伸图像的像素点,通过漫水填充法将图像b的背景填充为前景色,将得到的图像裁剪掉延伸像素点得到图像c;
步骤5.3,将图像c取反后与前景图像a进行或运算,得到孔洞填充后的图像,从而实现前景区域孔洞填充;降噪和空洞修复的效果如图9所示,图9(a)手在复杂背景移动的视频帧原图像,图9(b)前景检测后的二值图,图9(c)通过中值滤波后的图像,图9(d)通过孔洞填充后的图像,图9(e)所保留下来的前景区域。
步骤6,对经步骤1-5处理的图像进行优化,检测阴影区域并剔除;具体为:
步骤6.1,对步骤5已经填充孔洞的前景图像利用hsv颜色空间进行阴影检测,如果前景图像中的像素点满足式(5)的三个条件则保留,判断为前景图像;否则判断为背景阴影并进行剔除;
其中,参数0≤α≤β<1,由于阴影区域像素的亮度小于前景区域像素的亮度,故β的取值小于1,α表示当前光线的强度,α越小表示光线越强;it和bt分别表示当前帧和参考帧,(x,y)是坐标值,下标t表示帧数,τs和τh分别表示饱和度分量阈值和色调分量阈值;
对步骤5已经填充孔洞的前景图像使用meanshift聚类算法进行前景分割,具体为:
(1)图像平滑:在空间域和值域的特征空间对前景图像进行分类,通过模点搜索确定每个数据点的类中心,并且让类中的点都变为这些类中心点的颜色;
(2)相似区域合并:
构建特征空间,求取特征空间的向量并移动特征空间中的球体后再重新计算漂移向量,直至收敛;更新输出图像上对应的初始原点的色彩值为本轮迭代的终点的色彩值,如此完成一个点的色彩均值漂移;
对于前景图像上的其它点依次重复上面的步骤进行遍历,完后通过区域生长来完成图像的合并,从图像上某一点出发,假如其邻域点的颜色值与其相似则合并,同时从新合并点继续合并直到碰到不同类或不相似的像素点;
步骤6.3:求交运算
通过对步骤6.2与步骤6.3进行求交运算,通过不同图像区域内包含通过求交运算得到的区域的范围阈值来对阴影区域的检测进行优化,从而实现阴影检测。
本发明中针对非刚体手进行阴影检测,效果图如图10所示,图10(a)未处理图像,图10(b)hsv阈值阴影,图10(c)hsv阈值处理结果,图10(d)meanshift分类,图10(e)边缘线噪声点去除,图10(f)相交后阴影处理的结果;
步骤4至步骤6实现了自适应前景检测后的优化,该优化方法同样对刚体非刚体以及背景单一或背景复杂情况均适应,图11为简单背景下的笔(刚体)前景检测,图12为简单背景下的手(非刚体)前景检测,图13为复杂背景下的笔(刚体)前景检测,图14为复杂背景下的手(非刚体)前景检测,其中第一行为原始场景图像,第二行为经过前景检测提取出的前景图像。