首页> 中国专利> 区域增长方法以及具有标记功能的区域增长方法

区域增长方法以及具有标记功能的区域增长方法

摘要

本发明提供一种区域增长方法以及具有标记功能的区域增长方法。其中,所述的区域增长方法包括:选择当前帧中的种子节点作为当前帧中的区域的初始增长节点;确定种子节点周围的相邻像素的背景置信值;根据至少该背景置信值,使用处理单元以用于检查是否在该区域中允许包括该相邻像素。本发明提出的区域增长方法可有效地避免/减轻区域链或过溢的问题。

著录项

  • 公开/公告号CN103366361A

    专利类型发明专利

  • 公开/公告日2013-10-23

    原文格式PDF

  • 申请/专利权人 联发科技(新加坡)私人有限公司;

    申请/专利号CN201310116457.4

  • 发明设计人 张涛;蔡玉宝;

    申请日2013-04-03

  • 分类号G06T7/00;

  • 代理机构北京万慧达知识产权代理有限公司;

  • 代理人于淼

  • 地址 新加坡启汇城大道一号索拉斯大厦三楼之一

  • 入库时间 2024-02-19 21:14:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-07

    授权

    授权

  • 2013-11-20

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

    实质审查的生效

  • 2013-10-23

    公开

    公开

说明书

技术领域

本发明有关于一种区域增长方法,更具体地,有关于一种区域增长方法以 及具有标记功能的区域增长方法。

背景技术

近几年深度相机(depth camera)在游戏中变得流行起来。在计算机视觉系 统(computer vision system)中执行任何进一步的图像处理之前常常要检测对象 (object)(例如深度相机前的玩家)并对对象进行标记。在大多数情况中相机 通常为固定的,利用背景相减算法(background subtraction algorithm)可轻易地 将对象从背景中分离出来。然而,背景相减算法并不能给出部分帧(frame)的 完好分离对象。例如,由于背景相减算法可能的限制,从深度图像(depth image) 检测到的人像可能缺少身体的某些部分,例如头部、手或腿。如果直接将上述 不完整的结果反馈至处理阶段(processing stage),将会对性能产生不良影响。 因此在将这些可能不完整的对象传输至处理阶段之前,可执行传统的区域增长 算法(region growing algorithm)来恢复(recover)丢失的部分。

区域增长是常用的技术手段,用于将无序像素(unordered pixel)分割为多 个分块区域(segmented region)。传统的区域增长方法已广泛运用于强度图像 (intensity images)和范围图像(range image)(即深度图像)中。大致上,区 域增长的使用可分为两种情况。一种是将整体图像分割为不同区域;另一种是 从整体图像中分割出一些对象而保持剩余图像完整。然而,传统的图像增长方 法可能会遇到区域链(region chaining)或过溢(overspill)的问题。其中,当两 个区域增长为一个区域而实际上这两个区域为彼此分离时即发生区域链问题。

区域增长也广泛用于范围图像分割中。然而,范围图像分割的主要目标是 将多个像素标记为不同的表面。对于大多数情况,一些表面为平面(planar), 而另一些表面可能为曲面(curved surface)。如果考量中的对象不能以预定义表 面来表示,则分割结果常常并不令人满意。此外,范围图像分割中使用的区域 增长方法为计算密集型(computationally intensive)的,该区域增长方法并不能 在边界处将同一层面(plane)上的两个表面区分离开。

随着价格相对低廉的深度相机的引入,深度图像中的图像分析正变得十分 必要。对于许多应用来说,对象分割(segmentation of object)已成为一个重要 的步骤且通过由种子区域(seeded region)开始的区域增长可有效实现对象分割。 因此,需要提出一种新颖的区域增长算法,以有效地由种子开始区域增长且不 产生区域链。

发明内容

有鉴于此,本发明提供一种区域增长方法以及具有标记功能的区域增长方 法。

本发明提供一种区域增长方法,包括:选择当前帧中的种子节点作为当前 帧中的区域的初始增长节点;确定该种子节点周围的相邻像素的背景置信值; 根据至少该背景置信值,使用处理单元以用于检查是否在该区域中允许包括该 相邻像素。

本发明另提供一种区域增长方法,包括:选择当前帧中的种子节点作为当 前帧中的区域的初始增长节点;确定该种子节点的特性值与当前帧中该种子节 点周围的相邻像素的特性值之间的第一差值;根据至少该第一差值,使用处理 单元以用于检查是否允许在该区域中包括该相邻像素。

本发明又提供一种区域增长方法,包括:选择当前帧中的种子节点作为当 前帧中的区域的初始增长节点;确定该种子节点周围的相邻像素的特性值与该 种子节点的原始种子节点的背景模型值之间的第一差值;以及根据至少该第一 差值,使用处理单元以用于检查是否允许在该区域中包括该相邻像素。

本发明再提供一种区域增长方法,包括:选择当前帧中的种子节点作为区 域的初始增长节点;当在先前帧中将特定像素归类为前景像素时,确定该当前 帧中的该相邻像素的特性值与该先前帧中的该特定像素的特性值之间的差值, 其中,该相邻像素与该特定像素为同位像素;根据至少该差值,使用处理单元 以用于检查是否允许在该区域中包括该相邻像素。

本发明另提供一种区域增长方法,包括:选择当前帧中的种子节点作为区 域的初始增长节点;检查是否允许在该区域中包括当前帧中的该种子节点周围 的相邻像素;当响应该检查的步骤将该当前帧中的该相邻像素归类为背景像素 且将先前帧中的特定像素归类为前景像素时,确定该相邻像素的特性值与该特 定像素的特性值之间的差值,其中,该相邻像素与该特定像素为同位像素;以 及根据该差值选择性地将该相邻像素重新归类为前景像素。

本发明又提供一种区域增长方法,包括:选择当前帧中的种子节点作为区 域的初始增长节点;使用处理单元以用于参考平表面检测结果检查是否该当前 帧中的该种子节点周围的相邻像素属于所检测的平表面,且相应地产生检查结 果;当该检查结果指示该相邻像素属于该所检测的平表面时,将该相邻像素排 除在该区域之外。

本发明还提供一种具有标记功能的区域增长方法,包括:选择当前帧中的 种子节点作为区域的初始增长节点;使用处理单元以用于确定该当前帧中的该 种子节点的特性值与先前帧中的特定节点的特性值之间的差值;以及根据该差 值确定分配给该种子节点的标记,其中,该种子节点和该特定节点为同位节点; 检查是否允许在该区域中包括该当前帧中的该种子节点周围的相邻像素;以及 响应该检查步骤当允许在该区域中包括该相邻像素时,由分配给该种子节点的 该标记设定该相邻像素的标记。

本发明提出的区域增长方法可有效地避免/减轻区域链或过溢的问题。

附图说明

图1为在背景建模阶段获取的背景置信值的分布示意图;

图2为应用增长范围限制的区域增长阶段产生的区域增长结果的示意图;

图3为种子节点S与相邻像素A之间的关系示意图;

图4为种子节点S与相邻像素A之间的另一个关系示意图;

图5为根据本发明一个实施例的区域增长方法流程图;

图6为根据本发明一个实施例一种修改的区域增长方法与图5所示的区域 增长方法之间的差别部分示意图;

图7为根据本发明一个实施例另一种修改的区域增长方法与图5所示的区 域增长方法之间的差别部分示意图;

图8为根据本发明一个实施例地面检测方法的流程图;

图9为根据本发明一个实施例另一种修改的区域增长方法与图5所示的区 域增长方法之间的差别部分示意图;

图10为根据本发明一个实施例另一种修改的区域增长方法与图5所示的区 域增长方法之间的差别部分流程图;

图11为根据本发明一个实施例的具有标记功能的区域增长方法流程图;

图12为图11的接续流程示意图;

图13为根据本发明一个实施例图像处理装置的方块图。

具体实施方式

在说明书及后续的权利要求当中使用了某些词汇来指称特定的元件。所属 领域技术人员应可理解,制造商可能会用不同的名词来称呼同样的元件。本说 明书及后续的权利要求并不以名称的差异来作为区别元件的方式,而是以元件 在功能上的差异来作为区别的基准。在通篇说明书及后续的权利要求当中所提 及的「包括」为开放式的用语,故应解释成「包括但不限定于」。此外,「耦 接」一词在此包括任何直接及间接的电气连接手段。因此,若文中描述第一装 置耦接于第二装置,则代表该第一装置可直接连接于该第二装置,或透过其他 装置或连接手段间接地连接至该第二装置。

通常,场景中需要被识别的对象在四周移动而背景保持固定。因此,可使 用背景建模(background modeling)和背景相减法来识别移动对象。然而,在一 些情形中,识别到的对象可能并不是完整的对象。例如,识别过程中检测到了 移动中的人的头部,但并未检测到身体的大部分。将这样不完整的对象传输至 后续的处理阶段可能会导致许多种错误,例如不能进行识别(failed recognition) 和追踪(tracking)。可对所检测到的人体的一部分执行区域增长步骤以恢复对 象未检测到的部分。然而,如果不经过仔细的考量,可能非常容易在区域增长 步骤中同时将不需要的区域包括进来。例如,当人站在地板上且仅检测到人的 上半身部分时,如果对该检测到的人体的上半身部分直接运用传统种子区域增 长方法,则最大可能性地是最终的恢复对象将既包括人体又包括地板的一部分, 即产生区域链问题。因此,本发明提出一种改进的区域增长方法,该方法可减 轻/避免区域链问题。具体地,本发明提出的区域增长方法使用具有新的/修改的 步骤的种子区域增长方法框架来解决区域链问题。其中,种子区域增长方法框 架将一些对象从整体图像中分割出来而保留剩余的图像完整。下面将讨论会产 生本发明提出的区域增长方法并使该方法可克服区域链问题的一些发现。

第一发现是对于许多帧而言背景是固定的。因此,背景大多数并不会发生 改变,且背景还可能暂时被移动的对象所阻挡。背景建模阶段用于构建背景模 型,同时也可根据所建立的背景模型的背景模型值来估计所有像素的背景置信 值(background confidence value)。具体地,属于背景的每个像素将具有高背景 置信值,因此显示出高的背景置信度。图1为在背景建模阶段获取的背景置信 值的分布示意图。由图1可见,黑暗区域中的像素具有较低的背景置信值,而 明亮区域中的像素具有较高的背景置信值。因此,该背景置信值分布表示明亮 区域具有较高的置信度,是背景的一部分。在区域增长阶段,如果一个像素具 有高的背景置信值,说明该像素更可能是背景像素且应该停止将区域增长至该 像素。换言之,如果确定一个像素为背景像素,可在区域增长步骤中忽略该像 素而不将该像素合并入种子区域。

第二发现是在很多情况下,尤其在深度图像中,一个对象可能不会增长为 距离一个种子节点(seed point)较远的非常大的区域,且一个对象更不会增长 为距离多个种子节点较远的非常大的区域。对于一个深度图像,参照种子节点 的深度,被检测对象在深度上可能仅在相对较小的范围扩展。如果应用一些限 制来定义在深度上一个区域可距离种子节点多远,则可减轻/避免不希望出现的 区域链。图2为应用增长范围限制的区域增长阶段产生的区域增长结果的示意 图。尽管应用一些限制来定义在深度上一个区域可增长为距离种子节点多远, 区域增长阶段仍然可进行丢失部分的恢复而同时避免/减轻不希望出现的区域 链。具体而言,上述操作的性能依赖于所选择的种子节点数目。

第三发现假设背景模型用于检测对象。图3为种子节点S与相邻像素A之 间的关系示意图。类似于前述的第二发现,如果节点A距离前景(foreground) 种子节点S不远,则在节点A的背景模型值很有可能接近种子节点S处的背景 模型值。在使用区域增长方法处理深度图像的情况下,由于节点S为前景种子 节点,节点S的深度值depth(S)与背景模型值(即深度背景值)B(S)之间的差值 (即深度距离)D1较大。在使用区域增长方法处理色彩图像(color image)(即 RGB图像)的情况下,由于节点S为前景种子节点,节点S的色彩值color(S) 与背景模型值(即色彩背景值)B’(S)之间的差值(即色彩距离)D1’较大。根据 第二发现,如果节点A为前景像素且节点A与种子节点S距离不远,即A与S 之间的距离小,则节点A的深度值depth(A)与节点S的背景模型值B(S)之间的 差值D2也较大,或者节点A的色彩值color(A)与节点S处的背景模型值B’(S) 之间的差值D2’也较大。因此,如果差值D2/D2’反而较小,则很有可能节点A 是背景像素而并非前景像素。因此,可使用像素A的深度/色彩值与种子节点S 的背景模型值之间的差值D2/D2’作为指示元(indicator)以停止区域链。即,当 差值D2/D2’指示像素A很可能为背景像素时,则停止将区域增长至该像素。实 际上,该第三发现非常有助于防止将身体的部分(例如脚)过溢至地板。

请注意上述的第二发现和第三发现并非在所有情况下都适用。然而,这两 个发现实际上确实可很好地抑制区域链问题。前述三个发现主要用于处理区域 链问题,且上述方法都通过一些阈值(threshold)进行控制。如果阈值过于宽松, 则可能将一些不需要的区域包括进区域;而如果阈值过于严格,则可能将一些 需要的区域排除在外。实际上,严格的阈值通常比宽松的阈值好,这是因为恢 复丢失的区域相比移除不需要的区域来说更容易。

而第四发现是在场景中通常存在平面表面(例如墙和地板),且平面表面 通常为背景。区域链问题通常在区域增长结果中包括这些表面时发生。如果可 以预先检测到这些平面表面,则有助于防止将区域增长至这些平面表面。图4 为种子节点S与相邻像素A之间的另一个关系示意图。由图4可以看出,节点 A位于作为一部分背景的平面上。尽管节点A和种子节点S彼此非常接近,但 应该将背景节点A从由种子节点S开始增长的区域中排除。

根据上述发现,本发明提出一些区域增长算法,如下所述。

请参考图5,图5为根据本发明一个实施例的区域增长方法流程图。在实现 大致相同结果的前提下,本发明所述区域增长方法的步骤并不需严格按照图5 所示的顺序。可将该示例区域增长方法概括如下。

步骤500:开始。

步骤502:从队列Q获取种子节点S。

步骤504:选择所获取种子节点S周围的相邻像素N,其中,相邻像素N 和种子节点S都位于相同的帧内。

步骤506:检查是否相邻像素N需要进行后面的区域增长过程,如果是, 流程进行至步骤508;否则,流程进行至步骤520。

步骤508:确定/计算相邻像素N的背景置信值C(N)。

步骤510:确定/计算相邻像素N的特征值与种子节点S的特征值之间的差 值d1,其中,当将区域增长方法应用于深度地图时,所述每个特征值为深度值; 而当将区域增长方法应用于色彩图像(例如RGB图像)时,所述每个特征值为 色彩值。因此,d1=|depth(N)-depth(S)|,或者d1=|color(N)-color(S)|。

步骤512:确定/计算相邻像素N的特征值与种子节点S的原始种子节点 (original seed point)O(S)的背景模型值之间的差值d2。即,当将区域增长方法 运用于深度地图时,d2=|depth(N)-B(O(S))|;而当将区域增长方法运用于色彩图 像时,d2=|color(N)-B’(O(S))|。

步骤514:根据函数f()来确定/计算组合值f。即,f=f(C(N),d1,d2),其中, d1and d2分别作为函数f()的参数。

步骤516:通过将组合值f与预定义阈值TH2进行比较,检查是否组合值f 小于预定义的阈值TH2。如果是,则流程进行至步骤518;如果否,则流程进行 至步骤520。

步骤518:确定相邻像素N应该包括在由种子节点S开始增长的区域,然 后将相邻像素N加入至区域中,并将相邻像素N放入队列Q中以作为新的种子 节点,其中,新加入的种子节点(即相邻像素N)的原始种子节点仍为O(S)。

步骤520:检查是否已处理所选择种子节点S的所有相邻像素。如果是,流 程进行至步骤522;否则,流程进行至步骤504以选择种子节点S周围的另一个 相邻像素。

步骤522:检测是否队列Q为空。如果是,流程进行至步骤524;否则,流 程进行至步骤502以从队列Q中获取下一个种子节点。

步骤524:结束。

在开始将区域增长方法应用于当前帧时,将当前帧的多个原始种子节点放 入队列Q,其中,每次执行步骤502时,是从队列Q中逐个的选择各个原始种 子节点。在步骤502中,从队列Q中获取一个种子节点S。需注意的是,在队 列Q中的所有原始种子节点已经顺序地被选择并从队列Q移除之前,在步骤502 中所获取的种子节点S将作为原始的种子节点。换言之,在队列Q中不再包括 原始种子节点之后,步骤5002中获取的任何种子节点S将成为前景像素并被识 别且合并至由其中一个原始种子节点开始增长的区域中,然后将该种子节点S 加入至队列Q作为新的种子节点。

在步骤504中,选择种子节点周围的一个相邻像素N。例如,可将靠近种 子节点S且未被处理的像素选为相邻像素N。然后,根据流程将要检查是否相 邻像素N应进行后续的区域增长过程。在一个示例设计中,可对相邻像素N与 种子节点S之间运用简单比较。例如,可将深度/色彩差值d1(即, d1=|depth(N)-depth(S)|或d1=|color(N)-color(S)|)与预设阈值TH1进行比较。或 者,根据实际设计的考虑,可在步骤506中运用其他更复杂的比较。

假设步骤506运用了上述的简单比较。当比较结果发现深度/色彩差值d1大 于预定义阈值TH1,这说明相邻像素N并不是与种子节点S相似的前景像素, 且不可将相邻像素N包括在由种子节点S开始增长的区域中。因此,将丢弃相 邻像素N,跳过后面的区域增长过程,且将该区域增长方法的流程直接进行至 步骤520。

然而,当深度/色彩差值d1并不大于预设阈值TH1时,这说明相邻像素N 可能是与种子节点S类似的前景像素,且需要将相邻像素N包括在由种子节点 S开始增长的区域中。然而,为避免/减轻区域链问题,还需要执行包括步骤 508-516在内的后面的区域增长程序,以用于检查相邻像素N是否允许被包括在 由种子节点S开始增长的区域中。

根据前述的第一发现,在步骤508中获取相邻像素N的背景置信值C(N)。 如上所述,可在背景建模阶段构建背景置信值。存在多种可能方法来建立背景 置信值。在当前像素构建背景置信值的其中一种可行方法是通过如下方式计算 一个值:

背景置信值=(作为背景的当前深度的#-无意义的#)/作为背景的当前像度 的#

而背景置信度估计的另一种方式是建立一个场景,例如首先侦测场景中的 所有表面,然后给这些表面上的像素分配高的背景置信值。

此外,根据前述的第二发现,在步骤510中计算差值d1。而且,根据前述 的第三发现,在步骤512中计算差值d2。差值d2和d2提供有利于防止区域链 的额外信息。

在获取C(N)、d1和d2之后,相应地计算组合值f。举例而言,函数f()可 以为加权平均函数(weighted average function),该加权平均函数通过将加权因 子W1、W2、W3用于输入参数(即C(N)、d1及d2)而产生组合值f。换句话 说,f=W1*C(N)+W2*d1+W3*d2。请注意,可将前述发现的一或多个应用于区 域链/过溢检查。即,根据实际设计考虑,可将每个加权因子W1、W2、W3设 定为零值或非零值。例如,当将所有的加权因子W1、W2、W3设定为0时,则 为不进行区域链/过溢检查。当将加权因子W1设定为0时,则在进行区域链/过 溢检查时不考量第一发现。当将加权因子W2设定为0时,则在进行区域链/过 溢检查时不考量第二发现。当将加权因子W3设定为0时,则在进行区域链/过 溢检查时不考量第三发现。

然后,在步骤516中,通过将组合值f和预设阈值TH2进行比较来完成区 域链/过溢的检查。当组合值f小于预设阈值TH2时,这说明相邻像素N通过了 区域链/过溢检查,且应该将相邻像素N合并入由种子节点S开始增长的区域。 因此,在步骤518中,将相邻像素N加入该区域并放入队列N以作为新的种子 节点。需注意,新加入种子节点(即相邻像素N)和种子节点S的原始种子节 点相同。即,由于相邻节点N和种子节点S都合并入相同区域,因此相邻像素 N的原始种子节点是从节点S的原始种子节点继承而来。请注意,如果种子节 点S为原始种子节点,则原始种子节点O(S)将等于种子节点S。

在执行步骤520时,步骤520用于检查是否完成了当前所选种子节点S的 区域增长。具体地,如果已处理所选种子节点S的所有相邻像素,则完成了自 种子节点S的区域增长。然而,如果还存在所选择种子节点S的至少一个相邻 像素未被处理,则流程返回至步骤504以继续处理所选择种子节点S的下一个 相邻像素。

在执行步骤522时,步骤522用于检查是否完成了当前帧的区域增长。具 体地,如果已处理队列Q中的所有种子节点从而使队列Q为空,则完成了当前 帧的区域增长(步骤524)。然而,如果队列Q中还存在至少一个种子节点, 则流程将返回至步骤502以继续处理从队列Q中获取的下一个种子节点。

图5中所示的区域增长方法可有效地克服区域链问题。由于准确的阈值难 以确定,实际中更倾向于使用更严格的阈值来抑制区域链问题,然而通过识别 区域而确定的最终对象中可能会具有孔洞(即缺失的部分)。可以通过使用从 先前帧(previous frame)中提取的信息来消除这些孔洞。因此,本发明的第五 发现为如果像素A属于先前帧中的前景对象,且先前帧与当前帧之间的同一像 素A的特征差(例如深度差或色彩差)很小,则在当前帧中像素A很可能属于 前景对象。根据从先前帧中得到的附加信息,本发明提出根据如图5所示区域 增长方法的一些修改的区域增长方法。

请参考图6,图6为根据本发明一个实施例一种修改的区域增长方法与图 5所示的区域增长方法之间的差别部分示意图。修改的区域增长方法与图5所示 区域增长方法的主要区别在于修改的区域增长方法在具有附加步骤613和替代 步骤614。其中,附加步骤613跟随在图5所示的步骤512之后,而替代步骤 614替代图5中所示的步骤514。应注意的是,修改的区域增长方法也具有图5 中所示的相同步骤500-512及516-524,为简洁,图6中并未显示。而步骤613 和步骤614描述如下。

步骤613:当将先前帧中的特定像素LF(N)被归类为前景像素时,确定当前 帧中相邻像素N的特性值与先前帧中该特定像素LF(N)的特性值之间的差值d3。 其中,相邻像素N和特定像素LF(N)为同位(co-located)像素。例如, d3=|depth(N)-depth(LF(N))|,或d3=|color(N)-color(LF(N))|。

步骤614:根据函数f’()确定/计算组合值f。即,f=f’(C(N),d1,d2,d3),其中 C(N)、d1、d2及d3为函数f’()的参数。

举例而言,函数f’()可以为加权平均函数,该加权平均函数通过将加权因子 W1、W2、W3、W4用于输入参数(即C(N)、d1、d2及d3)而产生组合值f。 换句话说,f=W1*C(N)+W2*d1+W3*d2+W4*d3。请注意,可将前述发现的一或 多个应用于区域链/过溢检查。即,根据实际设计考虑,可将每个加权因子W1、 W2、W3、W4设定为零值或非零值。例如,当将所有的加权因子W1、W2、 W3、W4设定为0时,则为不进行区域链/过溢检查。当将加权因子W1设定为 0时,则在进行区域链/过溢检查时不考量第一发现。当将加权因子W2设定为0 时,则在进行区域链/过溢检查时不考量第二发现。当将加权因子W3设定为0 时,则在进行区域链/过溢检查时不考量第三发现。当将加权因子W4设定为0 时,则在进行区域链/过溢检查时不考量第五发现

请参考图7,图7为根据本发明一个实施例另一种修改的区域增长方法与图 5所示的区域增长方法之间的差别部分示意图。修改的区域增长方法与图5所示 区域增长方法的主要区别在于修改的区域增长方法在具有附加步骤723-725,附 加步骤723-725将插入在图5中的步骤522与步骤524之间。应注意的是,修改 的区域增长方法也具有图5中所示的相同步骤500-520,为简洁,图7中并未显 示。而步骤723-725描述如下。

步骤723:对于当前帧中被归类为背景像素的每个像素A,当先前帧中像素 A的同位像素LF(A)被归类为前景对象时,确定当前帧中像素A的特性值与同 位像素LF(A)的特性值之间的差值d3。例如,d3=|depth(A)-depth(LF(N))|,或 d3=|color(A)-color(LF(N))|。

步骤724:通过将差值d3与预定义的阈值TH3检查是否差值d3小于预定 义的阈值TH3。如果是,则流程进行至步骤725;如果否,则流程进行至步骤 524。

步骤725:将当前帧中的像素A重新归类为前景像素。

在步骤522中完成当前帧的区域增长之后,再执行图7中的附加步骤 723-725以通过参考先前帧中被归类的前景像素来恢复可能缺失的部分。即,根 据第五发现,当连续帧中的同位像素A和LF(A)的特征差(例如深度差或色彩 差)较小时,可将当前帧中被归类为背景像素的任何像素重新归类(reclassify) 为前景像素。然而,对于包括步骤723-725在内的修改的区域增长方法,由于这 需要对先前帧的信息进行保留并对先前帧的前景对象中所有像素进行检查,存 储器消耗和计算消耗将会增加很多。因此,对比图7所示的修改的区域增长方 法,图6所示的修改的区域增长方法将更具性价比(cost-efficient),这是图6 所示的修改的区域增长方法只在当前帧的每个像素的区域增长过程中使用先前 帧的每个像素的信息。更具体地说,图6所示的修改的区域增长方法不需要保 持先前帧的信息。

除了前述的第一、第二、第三及第五发现之外,还可考量其他的发现(例 如第四发现)来克服区域链问题。如前所述,第四发现是场景中通常存在平表 面,这些平表面通常为背景。如果预先检测到这些平表面(例如地面),可使 用平表面检测结果来快速区分帧中的前景像素和背景像素。请参考图8,图8为 根据本发明一个实施例地面检测方法的流程图。在对帧进行其他处理之前对每 个帧执行该地面检测方法。且该地面检测方法包括下列步骤。

步骤800:开始。

步骤802:随机选择包括m(m>=3)个像素的像素集合,然后计算该像素 集合的模(norm)n。

步骤804:通过将差值d4与预设阈值TH4(例如5度)进行比较,检查是 否地面的法向量(normal vector)与模n之间的夹角接近90度。如果差值d4小 于预设阈值TH4,接近垂直地面,则该像素集合为地面的候选项。因此,流程 进行至步骤806。然而,如果差值d4不小于预设阈值TH4,则像素集合为并不 是地面的候选项且直接丢弃该像素集合。然后地板检测程序进行至步骤802以 选择另一个像素集合。

步骤806:对于候选地面,检测相邻像素并且如果相邻像素属于候选地面则 将这些相邻像素加入候选地面。将像素加入至候选地面之后再计算地面的模。

步骤808:检查是否候选地面中像素的总体数目大于预定义阈值TH5。如果 是,流程进行至步骤810;如果否,流程进行至步骤802以选择另一个像素集合。

步骤810:在已得到识别的地板平面上识别所有剩余像素且对剩余像素进行 标记(label)以供之后使用。然后,地板检测程序进行至步骤802以选择另一 个像素集合。

需注意的是,图8中所示的地面检测方法仅用于说明的目的,任何传统的 地面检测算法都可用于提供每个帧的平表面信息以供之后的本发明提出的区域 增长阶段使用。

请参考图9,图9为根据本发明一个实施例另一种修改的区域增长方法与图 5所示的区域增长方法之间的差别部分示意图。修改的区域增长方法与图5所示 区域增长方法的主要区别在于修改的区域增长方法在具有附加步骤907,附加步 骤907将插入在图5中的步骤506与步骤508之间。应注意的是,修改的区域 增长方法也具有图5中所示的相同步骤500-524,为简洁,图9中并未显示。而 步骤907描述如下。

步骤907:参考当前帧的平表面检测结果(例如地面检测结果)检查是否相 邻像素N属于检测到的平表面(例如,检测到的地面)。如果是,流程进行至 步骤520;否则,流程进行至步骤508。

简单地说,根据第四发现,当步骤907的检查结果指示相邻像素N属于背 景平表面时,将相邻像素N排除在由种子节点S开始增长的区域之外。这样, 可防止区域增长至平表面区域。例如,通过引入的步骤907,可防止人身体部分 (例如脚)的区域增长至地面。因而,区域增长结果的准确度相应得到改进。

经过背景建模阶段,可能初步将当前帧的像素A归类为背景像素,然而之 后的区域增长阶段又将像素A辨别为前景像素。这说明像素A的背景模型并不 可靠。根据这个发现,本发明进一步提出对背景建模阶段进行反馈以用于指示 像素A的背景模型并不可靠。由此,可将后续帧(next frame)的同位像素正确 地归类为前景像素,这样区域增长阶段则不必再恢复该同位像素。通过此方式, 区域增长阶段可获得更好的结果而无需进行更多计算。请参考图10,图10为根 据本发明一个实施例另一种修改的区域增长方法与图5所示的区域增长方法之 间的差别部分流程图。修改的区域增长方法与图5所示区域增长方法的主要区 别在于修改的区域增长方法具有附加步骤1018和1019,附加步骤1018和1019 将插入在图5中的步骤518与步骤520之间。应注意的是,修改的区域增长方 法也具有图5中所示的相同步骤500-524,为简洁,图10中并未显示。而步骤 1018和1019描述如下。

步骤1018:检查是否从背景像素中将相邻像素N归类为前景像素。如果是, 该修改的区域增长方法进行至步骤1019;如果否,该修改的区域增长方法进行 至步骤1020。

步骤1019:发送具有第一逻辑值(例如1)的正反馈至背景建模阶段以指 示相邻像素N的背景模型值为不可靠。

步骤1020:发送具有第一逻辑值(例如0)的负反馈至背景建模阶段以指 示相邻像素N的背景模型值为可靠的。

因此,根据从区域增长阶段得到的反馈信息,背景建模阶段将知晓区域增 长阶段当前处理的相邻像素N的背景模型为不可靠的。这样,可对背景建模阶 段和背景相减阶段进行配置以执行正确操作来从后续帧中得到正确的区域增长 结果。即,为了从后续帧中获取正确的区域增长结果,需要不同图像处理阶段 的协作,包括区域增长阶段、背景建模阶段和背景相减阶段。更进一步的详细 描述如下。

在区域增长阶段,如果将像素A错误归类为背景像素,但是区域增长算法 将其恢复为前景像素,则区域增长阶段发送一个正反馈以指示背景建模阶段将 背景A的对应背景模型标记为不可靠的。

在背景建模阶段,如果从区域增长阶段产生的正反馈表示像素A的背景模 型不可靠,则背景建模阶段将检查是否可将像素A的背景模型值更新为更大值。 需注意的是,如果背景模型值较大,则对应的像素更可能为背景像素。因此, 如果允许将像素A的背景模型值更新为较大的值,则背景建模阶段将照常执行 背景模型值更新,且将标记为不可靠的像素A的背景模型值重设为一个可靠值。 否则,不进行变化,这表示像素A的背景模型值仍然被标记为不可靠。

在背景建模阶段之后的背景相减阶段,如果像素A的背景模型值并不可靠, 背景相减阶段将像素A归类为前景像素。

还有一个共同任务是对帧中分割的不同对象进行标记。通过一些修改,也 可在区域增长阶段完成该任务。为了对当前帧中已识别的对象进行标记。应保 持由先前帧产生的对象标记结果。请参考图11和图12。图11为根据本发明一 个实施例的具有标记功能(labeling)的区域增长方法流程图。图12为图11的 接续流程示意图。在结果大致相同的前提下,所述具有标记的区域增长方法的 步骤并不需要严格按照图11和图12所示的顺序。图11和图12所示的示例性 区域增长方法基于图5所示的区域增长方法,且包括如下的附加步骤。

步骤1102:确定当前帧中种子节点S的特性值与先前帧中特定节点LF(S) 的特性值之间的差值d5,其中,种子节点S和特定节点LF(S)为同位像素。例 如,当将该区域增长方法运用于深度地图,特性值可为深度值;或者当将该区 域增长方法运用于色彩图像(例如RGB图像),特性值可为色彩值。因此, d5=|depth(S)-depth(LF(S))|,或d5=|color(S)-color(LF(S))|

步骤1104:通过将差值d5与预定义的阈值TH5进行比较,检查是否差值 d5小于预定义的阈值TH5。如果是,则流程进行至步骤1106;如果否,则流程 进行至步骤1110。

步骤1106:检测是否对先前帧中的特定节点LF(S)分配了一个定义的标记 (defined label)。如果是,流程进行至步骤1108;否则,流程进行至步骤1110。

步骤1108:由特定节点LF(S)的定义的标记设定种子节点S的标记。然后 流程进行至步骤504。

步骤1110:将种子节点的标记设定为未定义。

步骤1119:由种子节点S的标记设定新加入的种子节点(即相邻像素N) 的标记。

步骤1123:为具有未定义的标记的像素组成的每个未定义的区域分配至少 一个定义的标记。

在此实施例中,可将具有相同标记的区域(可以是定义的标记或未定义的 标记)进行合并,或者将具有定义的标记的区域与具有未定义的标记的区域合 并;但是具有不同定义的标记的区域之间不能进行合并。根据上述合并规则, 步骤1123的操作可总结如下。

当未定义的区域不连接任何区域时,对该未定义的区域分配一个新的未定 义的标记;当该未定义的区域连接仅一个定义的区域时,对该未定义的区域分 配该定义的区域的定义的标记;且当该未定义的区域仅连接多于一个的定义的 区域时,将该未定义的区域分割为不同的子区域,且对每个子区域分配最接近 该子区域的定义的区域的定义的标记。由此,出现在不同帧中的相同对象将具 有相同的标记以实现对象识别目的。

简而言之,上述算法同时处理了标记和区域增长。在步骤1102中,可由先 前帧的对象位置定义多个区域以用于比较当前帧和先前帧之间的深度值,且可 收缩(shrank)该多个区域以减少由运动而产生的可能的错误。

需注意的是,将步骤1102-1110、1119及1123加入图5所示的区域增长方 法仅为本发明的一种可能的实现。在一种替代设计中,可将步骤1102-1110、1119 及1123加入图6中所示的具有步骤613及614的修改的区域增长方法。在另一 种替代设计中,还可将步骤1102-1110、1119及1123加入图7中所示的具有步 骤723、724及725的修改的区域增长方法。在又一种替代设计中,还可将步骤 1102-1110、1119及1123加入图9中所示的具有步骤907的修改的区域增长方 法。通过上述设计,可同时实现处理对象标记和对象增长的相同目标。

本发明所提出的算法使用了若干个阈值。可预先通过特定感应器(sensor) 的实验来确定这些阈值。例如,深度感应器(depth sensor)在不同的深度范围 具有不同的准确度。可在不同的深度/色彩范围进行实验以获取阈值。在一种替 代设计中,可通过考虑例如小区域周围的统计值(例如,深度/色彩值的均值或 方差)等因数来适应性确定这些阈值。

总体而言,本发明所提出的区域增长算法可具有以下特征,即依赖于阈值 的设定。在采用图5/图6/图7/图9/图10中的区域增长方法时,当由深度相机捕 捉人物和地面且人物保持在小区域内移动时,有时人物对象中会包括地面中的 小部分不需要区域。此种情况发生的机会比较小。在采用图5中的区域增长方 法时,被检测的人物可能具有一些孔洞。这主要是由于过于严格的阈值,且此 情况发生的频率相对较高。在另一种情况中,采用的是图6/图7/图9/图10中的 区域增长方法,如果一些帧中存在一些错误,例如前述的包括不需要的区域, 则一段时间内在后续帧中都将会出现这些错误。在又一种情况中,采用图10中 的区域增长方法,当背景建模算法接收到来自区域增长算法的反馈时,即使这 些像素的深度/色彩值不变,靠近前景像素的一些背景像素可在后续帧中逐渐变 为前景像素。

由图像处理装置可执行所提出的每种区域增长方法。请参考图13,图13为 根据本发明一个实施例图像处理装置的方块图。举例而言,图像处理装置1300 包括处理单元1302和计算机可读介质(computer readable medium)1304。其中, 处理单元1302可为处理器,例如中央处理单元(central processing unit,CPU) 或微处理单元(micro control unit,MCU),而计算机可读介质可为存储装置, 例如易失性存储器(volatile memory)或非易失性存储器(non-volatile memory)。 程序代码PROG存储在计算机可读介质1304中,且当处理单元1302执行该程 序代码PROG时,该程序代码PROG致能处理单元1302执行本发明所提出的区 域增长方法。所属领域的技术人员在阅读关于本发明提出的区域增长方法的上 述段落之后,应能理解读取图像处理装置1300的操作,为简洁,在此省略进一 步的描述。可使用基于软件的架构来实现图像处理装置1300。然而,此仅为说 明的目的,本发明并不限于此。即,也可利用使用纯硬件实现的图像处理装置 用于执行所述的区域增长算法。

任何所述领域的技术人员,在不脱离本发明的精神和范围内,当可做些许 的改动与修饰。因此,本发明的保护范围以权利要求为准。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号