一种深度图像中物体检测方法与流程

文档序号:13742397阅读:234来源:国知局
技术领域本发明涉及计算机视觉领域中的物体检测技术,特别是涉及一种深度图像中物体检测方法。

背景技术:
物体检测一直是计算机视觉领域的一个基本问题,同时也是一个难点问题,获得尽可能少且与物体类别无关的对象区域是物体检测的核心。传统的方法多基于矩形框,也就是用一系列矩形框尽可能紧致的框出图像中的对象。这类方法在传统二维图像领域被广泛应用,在兼顾速度的同时取得了较好的检测精度,但是这种方法亦然存在着生成备选框较多,备选框紧致度低等问题。另一种方法是基于区域分割,也就是分割出图像中具有特定现实意义的对象区域,这类方法的精度一般较高,但是算法复杂度高,速度一般较慢。随着深度传感器以及双目立体视觉技术的发展,利用深度图像提升物体检测速度与精度成为研究热点,针对现实中的应用需求,亟需一种兼顾速度和精度的深度图像中物体检测方法。

技术实现要素:
本发明所要解决的技术问题是提供一种深度图像中物体检测方法,能够快速、准确的获得物体矩形区域,提升深度图像中物体检测的准确度,使得检测结果既能满足人眼视觉要求又能够较好满足现实应用中对速度与精度的需求。本发明解决其技术问题所采用的技术方案是:提供一种深度图像中物体检测方法,包括以下步骤:(1)对输入深度图像建立基于多叉树数据结构的深度树模型以及深度树节点与深度图像像素的映射图;(2)遍历深度树模型各节点,统计和分析节点数据,判决节点属性,从而获得物体所在矩形区域。所述步骤(1)具体包括以下子步骤:(11)创建并初始化深度树根节点和映射图,将根节点位置保存到映射图中;(12)对输入深度图像进行逐像素比较,判断当前像素深度值是否是半邻域内极大值点;(13)如果当前像素是极大值点,则创建新的节点,否则插入半邻域内某一像素的节点中;(14)将节点位置保存在映射图中,并重复步骤(12)。所述步骤(12)中对输入深度图像自左向右、自底向上进行逐像素比较;比较时,若该像素是深度图像左下角点且深度值为最小值,则直接存储入根节点,并将该节点位置存入映射图中,否则判断为半邻域内极大值点;若该像素是深度图像的下边缘点,则与左像素点比较,判断是否是半邻域内极大值点;若该像素是深度图像的左边缘点,则与下像素点和右下像素点比较,判断是否是半邻域内极大值点;若该像素是深度图像的其他点,则分别与左像素点、左下像素点、下像素点和右下像素点比较,判断是否是半邻域内极大值点。所述步骤(13)中创建新的节点包括以下子步骤:对半邻域内其他像素点所在子树进行两两合并;将半邻域内深度值较大的像素所在节点确认为待插入节点的父节点,创建新叶子节点,调整父节点、兄弟节点和孩子节点,并保存像素位置值,初始化用于统计分析的数据,返回该深度值较大的像素所在节点的位置。所述步骤(13)中插入半邻域内某一像素的节点中包括以下子步骤:对半邻域内其他像素点所在子树进行两两合并;若该像素深度值与半邻域内某一像素深度值相同,则将该像素的节点确认为待插入节点,保存像素位置值,更新用于统计分析的数据,返回该像素的节点位置;若该像素深度值与半邻域内某一像素的父辈节点深度值相等,则将该父节点确认为待插入节点,保存像素位置值,更新用于统计分析的数据,返回该像素的节点位置;若该像素深度值介于半邻域内某一像素的父辈节点及其子节点之间,则将该父节点确认为待插入节点的父节点,创建新子节点,调整父节点、兄弟节点和孩子节点,并保存像素位置值,初始化用于统计分析的数据,返回该像素的节点位置。所述对半邻域内其他像素点所在子树进行两两合并具体为:若两像素点所在节点是同一节点,则合并完成;若两像素点所在节点不是同一节点但两像素深度值相同,则合并两像素所在节点的点集,调整两像素所在节点的父节点、兄弟节点和子节点,调整用于统计分析的数据,调整映射图,删除废弃节点,则合并完成;若两像素点所在节点不是同一节点且两像素深度值不同,且深度值较大节点的父节点的深度值仍大于或等于另一深度值较小节点,则对深度值较大节点的父辈节点及较小节点执行合并步骤;若两像素点所在节点不是同一节点且两像素深度值不同,且深度值较大节点的父节点的深度值小于另一深度值较小节点,则调整两节点的父节点、兄弟节点和孩子节点,则合并完成。所述步骤(2)具体包括以下子步骤:(21)若当前节点是叶子节点,则更新当前节点数据,当前节点判定为非物体,返回当前节点数据;(22)若当前节点不是叶子节点,则遍历子节点,获得子节点数据,更新当前节点数据,对当前节点数据进行统计分析;(23)若当前节点数据中分支数小于等于阈值或孩子数与分支数的比值大于阈值,则当前节点判定为非物体,返回当前节点数据;(24)若当前节点数据中分支数大于阈值且孩子数与分支数的比值小于等于阈值且当前节点数据中矩形框长宽比大于阈值,则当前节点判定为物体,该节点为子树根节点位置,数据中矩形框为物体所在矩形区域,返回当前节点数据;(25)若当前节点数据中分支数大于阈值且孩子数与分支数的比值小于等于阈值且当前节点数据中矩形框长宽比小于等于阈值,则搜索其子节点是否有判定为物体或包含物体的节点;(26)若子节点无判定为物体或包含物体的节点,则当前节点判定为非物体,返回当前节点数据;(27)若子节点无判定为物体的节点而有判定为包含物体的节点,则当前节点判定为包含物体,返回当前节点数据;(28)若子节点有判定为物体的节点且判定为物体的节点数据中矩形框的区域相互重叠,则当前节点判定为包含物体,创建新子节点,将当前节点确定为待插入节点的父节点,判定为物体的节点且节点数据中矩形框区域相互重叠的节点确定为待插入节点的子节点,调整父节点、兄弟节点和孩子节点,调整用于统计分析的节点数据,该新子节点判定为物体,该节点为子树根节点位置,数据中矩形框为物体所在矩形区域,返回其父节点数据;(29)若子节点有判定为物体的节点且判定为物体的节点数据中矩形框的区域不重叠,则当前节点判定为包含物体,返回当前节点数据。有益效果由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明将多叉树模型运用到深度图像中物体检测,将深度图像中物体检测转换为深度树中节点分析,提出了一种全新的综合运用基于矩形框与区域分割技术的方法,为深度图像中快速物体检测提供了新的解决方案;其中的树型结构完好的利用和保存了场景中物体的位置与结构信息,将深度图像场景转换成计算机能够理解的统计数据,每个节点都完好的统计和保存了其子节点的相关信息,从而可以综合利用全局和局部信息进行逻辑判定;本发明对深度图像的质量要求较低,从而降低了双目立体视觉中对立体匹配的精度要求,适应性与应用前景更广;通过一次深度树数据的遍历分析,能够高效快速准确的检测出多个物体,提升了深度图像中物体检测速度和精度,使其既能满足人眼视觉要求又能够较好满足现实应用中对速度与精度的需求。附图说明图1是本发明的流程图;图2是本发明中建立基于多叉树数据结构的深度树模型以及深度树节点与图像像素的映射图的流程图;图3是本发明的建立基于多叉树数据结构的深度树模型以及深度树节点与图像像素的映射图中创建节点的流程图;图4是本发明的建立基于多叉树数据结构的深度树模型以及深度树节点与图像像素的映射图中插入节点流程图;图5是本发明的对半邻域内其他像素点所在子树进行两两合并的流程图;图6是本发明的遍历深度树各节点,统计和分析节点数据,判决节点属性,从而获得物体所在矩形区域;图7、图8和图9均为本发明的实验结果示意图,其中,(a)是原始图像,(b)是检测结果。具体实施方式下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。本发明的实施方式涉及一种深度图像中物体检测方法,如图1所示,包括以下步骤:(1)对输入深度图像建立基于多叉树数据结构的深度树模型以及深度树节点与深度图像像素的映射图;(2)遍历深度树各节点,统计和分析节点数据,判决节点属性,从而获得物体所在矩形区域。如图2所示,所述步骤(1)还包括以下子步骤:(21)创建并初始化深度树根节点和映射图,将该节点位置保存到映射图中;(22)对输入深度图像自左向右、自底向上进行逐像素比较,判断当前像素深度值是否是半邻域内极大值点;(23)如果当前像素是极大值点,则创建新的节点;(24)如果当前像素不是极大值点,则插入半邻域内某一像素的节点中;(25)将该节点位置保存在映射图中,并重复步骤(22)。其中,所述步骤(22)还包括以下子步骤:(31)若该像素是深度图像左下角点且深度值为最小值,则直接存储入根节点,并执行步骤(25),否则判断为半邻域内极大值点;(32)若该像素是深度图像的下边缘点,则与左像素点比较,判断是否是半邻域内极大值点;(33)若该像素是深度图像的左边缘点,则与下像素点、右下像素点比较,判断是否是半邻域内极大值点;(34)若该像素是深度图像的其他点,则分别与左像素点、左下像素点、下像素点、右下像素点比较,判断是否是半邻域内极大值点。如图3所示,所述步骤(23)还包括以下子步骤:(41)对半邻域内其他像素点所在子树进行两两合并;(42)将半邻域内深度值较大的像素所在节点确认为待插入节点的父节点,创建新叶子节点,调整父节点、兄弟节点和孩子节点,并保存像素位置值,初始化用于统计分析的数据,返回该节点位置。如图4所示,所述步骤(24)还包括以下子步骤:(51)对半邻域内其他像素点所在子树进行两两合并;(52)若该像素深度值与半邻域内某一像素深度值相同,则将该像素的节点确认为待插入节点,保存像素位置值,更新用于统计分析的数据,返回该节点位置;(53)若该像素深度值与半邻域内某一像素的父辈节点深度值相等,则将该父节点确认为待插入节点,保存像素位置值,更新用于统计分析的数据,返回该节点位置;(54)若该像素深度值介于半邻域内某一像素的父辈节点及其子节点之间,则将该父节点确认为待插入节点的父节点,创建新子节点,调整父节点、兄弟节点和孩子节点,并保存像素位置值,初始化用于统计分析的数据,返回该节点位置。如图5所示,所述步骤(41)和(51)还包括以下子步骤:(61)若两像素点所在节点是同一节点,则合并完成;(62)若两像素点所在节点不是同一节点但两像素深度值相同,则合并两像素所在节点的点集,调整两像素所在节点的父节点、兄弟节点和子节点,调整用于统计分析的数据,调整映射图,删除废弃节点,则合并完成;(63)若两像素点所在节点不是同一节点且两像素深度值不同,且深度值较大节点的父节点的深度值仍大于或等于另一深度值较小节点,则对深度值较大节点的父辈节点及较小节点执行合并步骤(41);(64)若两像素点所在节点不是同一节点且两像素深度值不同,且深度值较大节点的父节点的深度值小于另一深度值较小节点,则调整两节点的父节点、兄弟节点和孩子节点,则合并完成。如图6所示,所述步骤(2)还包括以下子步骤:(71)若当前节点是叶子节点,则更新当前节点数据,当前节点判定为非物体,返回当前节点数据;(72)若当前节点不是叶子节点,则遍历子节点,获得子节点数据,更新当前节点数据,对当前节点数据进行统计分析;(73)若当前节点数据中分支数小于等于100或孩子数与分支数的比值大于3,则当前节点判定为非物体,返回当前节点数据;(74)若当前节点数据中分支数大于100且孩子数与分支数的比值小于等于3且当前节点数据中矩形框长宽比大于1,则当前节点判定为物体,该节点为子树根节点位置,数据中矩形框为物体所在矩形区域,返回当前节点数据;(75)若当前节点数据中分支数大于100且孩子数与分支数的比值小于等于3且当前节点数据中矩形框长宽比小于等于1,则搜索其子节点是否有判定为物体或包含物体的节点。(76)若子节点无判定为物体或包含物体的节点,则当前节点判定为非物体,返回当前节点数据;(77)若子节点无判定为物体的节点而有判定为包含物体的节点,则当前节点判定为包含物体,返回当前节点数据;(78)若子节点有判定为物体的节点且判定为物体的节点数据中矩形框的区域相互重叠,则当前节点判定为包含物体,创建新子节点,将当前节点确定为待插入节点的父节点,判定为物体的节点且节点数据中矩形框区域相互重叠的节点确定为待插入节点的子节点,调整父节点、兄弟节点和孩子节点,调整用于统计分析的节点数据,该新子节点判定为物体,该节点为子树根节点位置,数据中矩形框为物体所在矩形区域,返回其父节点数据;(79)若子节点有判定为物体的节点且判定为物体的节点数据中矩形框的区域不重叠,则当前节点判定为包含物体,返回当前节点数据本实验进行仿真实验,实验结果如图7、图8和图9所示,用以说明本发明的实用性和算法的准确性。该仿真实验是在IntelCore(TM)2DuoCPUE75002.93GHz、内存4GB的PC测试平台上C/C++编程实现,在不使用任何多线程技术的前提下,处理速度可以达到150fps。其中图7(a)、图8(a)和图9(a)是原始图像,图7(b)、8(b)和图9(b)是检测结果。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1