首页> 中国专利> 一种深度图像中基于多叉树的局部凸出对象提取方法

一种深度图像中基于多叉树的局部凸出对象提取方法

摘要

本发明涉及一种深度图像中基于多叉树的局部凸出对象提取方法,包括以下步骤:对输入深度图像进行逐像素邻域差分,建立基于多叉树数据结构的深度树模型以及深度树节点与图像像素的映射图;对深度树的叶子节点进行局部优化,去除噪声;遍历深度树的叶子节点得到深度图像的局部极值区域,利用判决函数确定叶子节点的子树根节点位置,从而提取出局部凸出对象区域。本发明能够快速、准确的提取出多个凸出对象区域,提升深度图像中凸出物体检测的准确度。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-05-26

    未缴年费专利权终止 IPC(主分类):G06T 7/12 专利号:ZL201510249956X 申请日:20150515 授权公告日:20180427

    专利权的终止

  • 2018-04-27

    授权

    授权

  • 2015-10-14

    实质审查的生效 IPC(主分类):G06T7/00 申请日:20150515

    实质审查的生效

  • 2015-09-16

    公开

    公开

说明书

技术领域

本发明涉及计算机视觉技术领域中的的物体检测技术,特别是涉及一种深度图像中基 于多叉树的局部凸出对象提取方法。

背景技术

随着深度传感器(比如微软的Kinect等)的普及以及双目立体视觉(比如英特尔的 RealSense3D摄像头等)的发展,立体视觉在最近十年逐渐成为热门领域,相比传统二维 平面图像,深度图像增加了三维深度信息。深度信息的潜在应用前景是巨大的,而其中一 个重要的应用场景就是物体检测。

物体检测是计算机视觉领域的一个重要问题,同时也是一个难点问题,获得尽可能少 且与物体类别无关的对象区域是物体检测的重中之重。传统的方法多基于矩形框,也就是 用一系列矩形框尽可能紧致的框出图像中的对象(比如Pascal Visual Object Classes  Challenge等),这类方法在传统二维图像领域被广泛应用,在兼顾速度的同时取得了较好 的检测精度,但是这种方法亦然存在着生成备选框较多,备选框紧致度低,框内存在大量 无用信息等问题。另一种方法是基于区域分割,也就是分割出图像中具有特定现实意义的 对象区域,即语义对象,这类方法的精度一般较高,但是算法复杂度高,速度一般较慢。 传统的物体检测多采用灰度信息,而很少涉及深度信息,针对现实中的应用需求,亟需一 种兼顾速度和精度的深度图像中局部凸出对象提取方法。

发明内容

本发明所要解决的技术问题是提供一种深度图像中基于多叉树的局部凸出对象提取 方法,能够快速、准确的提取出多个凸出对象区域,提升深度图像中凸出物体检测的准确 度,使得检测结果既能满足人眼视觉要求又能够较好满足现实应用中对速度与精度的需 求。

本发明解决其技术问题所采用的技术方案是:提供一种深度图像中基于多叉树的局部 凸出对象提取方法,包括以下步骤:

(1)对输入深度图像进行逐像素邻域差分,建立基于多叉树数据结构的深度树模型 以及深度树节点与图像像素的映射图;

(2)对深度树的叶子节点进行局部优化,去除噪声;

(3)遍历深度树的叶子节点得到深度图像的局部极值区域,利用判决函数确定叶子 节点的子树根节点位置,从而提取出局部凸出对象区域。

所述步骤(1)具体包括以下子步骤:

(11)创建并初始化深度树根节点和映射图,根节点的深度值设为最小值,将该节点 位置保存到映射图中;

(12)对输入深度图像进行逐像素邻域差分,判断当前像素深度值是否是邻域内极值 点;

(13)如果当前像素是极值点,则创建新的节点;

(14)如果当前像素不是极值点,则插入邻域内某一像素的节点中;

(15)将该节点位置保存在映射图中,并重复步骤(12)。

所述步骤(12)中对输入深度图像进行逐像素邻域差分时,若该像素是深度图像原点 且深度值为最小值,则直接存储入根节点,并执行步骤(15),否则判断为邻域内极值点; 若该像素是深度图像的上边缘点,则与左像素点差分,判断是否是邻域内极值点;若该像 素是深度图像的左边缘点,则与上像素点差分,判断是否是邻域内极值点;若该像素是深 度图像的其他点,则分别与上像素点和左像素点差分,判断是否是邻域内极值点。

所述步骤(13)包括以下子步骤:对邻域内其他两像素点所在子树进行合并;将邻域 内深度值较大的像素所在节点确认为待插入节点的父节点,创建新叶子节点,调整父节点、 兄弟节点和孩子节点,并保存像素位置值,返回该节点位置。

所述步骤(14)包括以下子步骤:

对邻域内其他两像素点所在子树进行合并;

若该像素深度值与邻域内某一像素深度值相同,则将该像素的节点确认为待插入节 点,保存像素位置值,返回该节点位置;

若该像素深度值与邻域内某一像素的父辈节点深度值相等,则将该父节点确认为待插 入节点,保存像素位置值,返回该节点位置;

若该像素深度值介于邻域内某一像素的父辈节点及其子节点之间,则将该父节点确认 为待插入节点的父节点,创建新子节点,调整父节点、兄弟节点和孩子节点,并保存像素 位置值,返回该节点位置。

所述对邻域内其他两像素点所在子树进行合并的步骤具体包括:

若两像素点所在节点是同一节点,则合并完成;

若两像素点所在节点不是同一节点但两像素深度值相同,则合并两像素所在节点的点 集,调整两像素所在节点的父节点、兄弟节点和子节点,调整映射图,删除废弃节点,则 合并完成;

若两像素点所在节点不是同一节点且两像素深度值不同,且深度值较大节点的父节点 的深度值仍大于或等于另一深度值较小节点,则对深度值较大节点的父辈节点及较小节点 执行合并步骤;

若两像素点所在节点不是同一节点且两像素深度值不同,且深度值较大节点的父节点 的深度值小于另一深度值较小节点,则调整两节点的父节点、兄弟节点和孩子节点,则合 并完成。

所述步骤(2)具体包括以下子步骤:

(21)遍历深度树;

(22)若当前节点不是叶子节点,则继续遍历;

(23)若当前节点是叶子节点,则计算点集数,求得该节点面积,判断是否小于阈值;

(24)若当前节点面积大于等于阈值,则继续遍历;

(25)若当前节点面积小于阈值,则将该叶子节点的点集合并入父节点中,并调整父 节点、兄弟节点,调整映射图,删除该节点,继续遍历,从而完成对深度树的叶子节点的 局部优化去除噪声。

所述步骤(3)具体包括以下子步骤:

(31)遍历深度树;

(32)若当前节点不是叶子节点,则继续遍历;

(33)若当前节点是叶子节点,则求解判决函数的最优解,求得的解即为子树根节点 位置,而子树内所有节点点集的并集,即为局部凸出对象的区域;其中,解判决函数为: lN0=argmax[Σi=-M2+1M/2(αiF(Σj=0l-iNj)F(Σj=0l-i-1Nj)+βi(DNl-iDNl-i-1))];式中,M是松弛因子,Ni是子树根节 点,N0是叶子节点,F(Ni)是对节点Ni的点集区域提取特征,是节点Ni的深度值,αi和βi为权重参数,判决函数的最大值即为节点N0的根节点位置。

有益效果

由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果: 本发明将多叉树模型运用到深度图像中局部凸出对象提取,提出了一种全新的基于区域的 图像分割方法,为深度图像中快速物体检测提供了新的解决方案;方法对深度图像的质量 要求较低,从而降低了双目立体视觉中对立体匹配的精度要求,适应性与应用前景更广; 方法中的树型结构完好的利用和保存了场景中凸出对象的结构信息,每棵子树就代表一个 独立的对象,通过先定位局部极值区域再提取出凸出对象完整区域,能够高效快速的提取 出多个凸出对象区域,提升了深度图像中局部凸出对象提取效果,使其既能满足人眼视觉 要求又能够较好满足现实应用中对速度与精度的需求。

附图说明

图1是本发明的流程图;

图2是本发明中建立基于多叉树数据结构的深度树模型以及深度树节点与图像像素的映射 图的流程图;

图3是本发明的建立基于多叉树数据结构的深度树模型以及深度树节点与图像像素的映射 图中创建节点的流程图;

图4是本发明的建立基于多叉树数据结构的深度树模型以及深度树节点与图像像素的映射 图中插入节点流程图;

图5是本发明的对邻域内其他两像素点所在子树进行合并的流程图;

图6是本发明的遍历深度树的叶子节点进行局部优化的流程图;

图7是本发明的遍历深度树的叶子节点,利用判决函数确定叶子节点的子树根节点位置, 从而提取出局部凸出对象区域的流程图;

图8和图9均为本发明的实验结果示意图,其中,(a)是原始图像,(b)是凸出对象,(c) 是提取的对象区域轮廓。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而 不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人 员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定 的范围。

本发明的实施方式涉及一种深度图像中基于多叉树的局部凸出对象提取方法,如图1 所示,包括以下步骤:

(1)对输入深度图像进行逐像素邻域差分,建立基于多叉树数据结构的深度树模型 以及深度树节点与图像像素的映射图。

(2)遍历深度树的叶子节点进行局部优化,去除噪声。

(3)遍历深度树的叶子节点得到深度图像的局部极值区域,利用判决函数确定叶子 节点的子树根节点位置,从而提取出局部凸出对象区域。

如图2所示,所述步骤(1)还包括以下子步骤:

(21)创建并初始化深度树根节点和映射图,根节点的深度值设为最小值,将该节点 位置保存到映射图中;

(22)对输入深度图像进行逐像素邻域差分,判断当前像素深度值是否是邻域内极值 点;

(23)若当前像素是极值点,则创建新的节点

(24)若当前像素不是极值点,则插入邻域内某一像素的节点中;

(25)将该节点位置保存在映射图中,并重复步骤(22)。

其中,所述步骤(22)还包括以下子步骤:

(31)对输入深度图像进行逐像素邻域差分,若该像素是深度图像原点且深度值为最 小值,则直接存储入根节点,并执行步骤(25),否则判断为邻域内极值点;

(32)若该像素是深度图像的上边缘点,则与左像素点差分,判断是否是邻域内极值 点;

(33)若该像素是深度图像的左边缘点,则与上像素点差分,判断是否是邻域内极值 点;

(34)若该像素是深度图像的其他点,则分别与上像素点、左像素点差分,判断是否 是邻域内极值点。

如图3所示,所述步骤(23)还包括以下子步骤:

(41)对邻域内其他两像素点所在子树进行合并;

(42)将邻域内深度值较大的像素所在节点确认为待插入节点的父节点,创建新叶子 节点,调整父节点、兄弟节点、孩子节点,保存像素位置值;

(43)返回该节点位置。

如图4所示,所述步骤(24)还包括以下子步骤:

(51)对邻域内其他两像素点所在子树进行合并;

(52)若该像素深度值与邻域内某一像素深度值相同,则将该像素的节点确认为待插 入节点,保存像素位置值,返回该节点位置;

(53)若该像素深度值与邻域内某一像素的父辈节点深度值相等,则将该父节点确认 为待插入节点,保存像素位置值,返回该节点位置;

(54)若该像素深度值介于邻域内某一像素的父辈节点及其子节点之间,则将该父节 点确认为待插入节点的父节点,创建新子节点,调整父节点、兄弟节点、孩子节点,保存 像素位置值,返回该节点位置。

如图5所示,所述步骤(41)和(51)还包括以下子步骤:

(61)若两像素点所在节点是同一节点,则合并完成;

(62)若两像素点所在节点不是同一节点但两像素深度值相同,则合并两像素所在节 点的点集,调整两像素所在节点的父节点、兄弟节点、子节点,调整映射图,删除废弃节 点,则合并完成;

(63)若两像素点所在节点不是同一节点且两像素深度值不同,且深度值较大节点的 父节点的深度值仍大于等于另一深度值较小节点,则对深度值较大节点的父辈节点及较小 节点执行合并步骤(41);

(64)若两像素点所在节点不是同一节点且两像素深度值不同,且深度值较大节点的 父节点的深度值小于另一深度值较小节点,则调整两节点父节点、兄弟节点、孩子节点, 则合并完成。

如图6所示,所述步骤(2)还包括以下子步骤:

(71)遍历深度树;

(72)若当前节点不是叶子节点,则继续遍历;

(73)若当前节点是叶子节点,则计算点集数,求得该节点面积,判断是否小于阈值 MIN_AREA=30;

(74)若当前节点面积大于等于30,则继续遍历;

(75)若当前节点面积小于30,则将该叶子节点的点集合并入父节点中,并调整父节 点、兄弟节点,调整映射图,删除该节点,继续遍历。

如图7所示,所述步骤(3)还包括以下子步骤:

(81)遍历深度树;

(82)若当前节点不是叶子节点,则继续遍历;

(83)若当前节点是叶子节点,则求解判决函数公式(1)的最优解,求得的解即为子 树根节点位置,而子树内所有节点点集的并集,即为局部凸出对象的区域;

lN0=argmax[Σi=-M2+1M/2(αiF(Σj=0l-iNj)F(Σj=0l-i-1Nj)+βi(DNl-iDNl-i-1))]---(1)

式中,设定M=2,F(Ni)为节点Ni的点集区域的长宽比和面积,α0、α1和β0、β1分别为0.40、 0.24,公式(1)的最大值lmax即为节点N0的根节点位置。

本实验进行仿真实验,实验结果如图8和图9所示,用以说明本发明的实用性和算法 的准确性。该仿真实验是在InterlXeonCPUX5690@3.47GHz3.46GHz(2处理器)、内存 24GB的PC测试平台上C/C++编程实现,在不使用任何多线程技术的前提下,处理速度可 以达到200fps。其中图8(a)和图9(a)是原始图像,图8(b)和图9(b)是凸出对象, 图8(c)和图9(c)是提取的对象区域轮廓。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号