用于检测场景中的感兴趣的对象的系统的制作方法_4

文档序号:9602560阅读:来源:国知局
SIFT 创建方法时,它创建三个线程700、702和704,每个线程针对一个尺度。给予每个线程到输 入图像的链接706和一组运行参数。然后启动每个线程,并且父线程708将等待所有三个 线程(700、702和704)完成。一旦最后线程完成,父线程就将来自线程的结果聚集到DSIFT 描述符710的全集中。该方法具有以最慢线程的速度运行和不同时支持多于三个作业的限 制。然而,这种方法在程序上是简单的,并且将计算所需时间有效地缩减了一半。
[0089] (3. 3. 2)多线程化的量化描述符
[0090] DSIFT特征到PH0W特征的量化404几乎完全可以被线程化为平行组件。这是因为 存在每个都必须被单独处理的DSIFT特征的大列表。因此,将所有DSIFT特征的列表简单 地细分成N个相等尺寸的子集是有效的,其中,N为内核或虚拟内核的数量。这通过将开始 和停止地址索引的kd-树查询的每个实例分配给所有DSIFT特征的列表来进行。然后,每 个线程处理索引范围内的那些特征。然后,每个线程以针对每个线程保留的索引,将PH0W 结果放入相同结果存储器中。
[0091] 换句话说,如图8所示,线程化通过给每个线程分配DSIFT描述符800的相等尺寸 的连续块来工作。如图6和图8两者所示,由于DSIFT描述符800被布置存储器中与输入 场景图像对齐,这将每个图像帧的连续区域(即,作业参数801)有效地分配给每个线程,创 建N个线程803 (描述为图6中的4个线程)。然后,线程805开始在所分配的块上工作。 父线程将等待所有线程完成。然后,每个线程805将使用KD-树804量化802其列表中的 每个DSIFT特征800。这返回量化后的特征806的列表,量化后的特征806本质上是通过先 前学习的特征词典分类的每个DSIFT特征。
[0092] 因为每个DSIFT描述符800都独立于所有其它描述符被量化,描述符量化404被 更理想地并行化。作为示例,如果存在4个内核,则系统将创建4个线程,并且将DSIFT描 述符800的四分之一发送到将每个线程以被量化。每个DSIFT描述符的量化都花费可变时 间,但是存在数千个描述符,并且处理时间变化基本是随机的。因此,这以与CPU内核的数 量线性的方式有效缩减了处理时间。因此,希望将线程的数量限制为与CPU内核的数量相 同。
[0093] (3. 3. 3)多线程化的滑动窗口
[0094] 如图9所示,通过将每个窗口处理分配给不同线程,多线程化滑动窗口 408组件。 因此,目标是将所有独立窗口处理的集合划分为每个线程的集合。然而,由于使用关注机制 来确定哪些窗口运行,导致并行化不是直截了当的。如图6所示,为了解决该难题,系统将 图像600分成若干条带602。条带602的数量比内核的数量大得多。在每个条带内均是能 够在该位置处运行的窗口。所以,线程被分配为运行在其条带内的所有滑动窗口。在一些 情况下,由于关注机制,导致在条带内可能不存在窗口运行。这也是为什么存在比CPU内核 多很多的条带线程的原因。
[0095] 提供以下示例用于进一步理解。一种处理滑动窗口的理想方式是将图像帧划分成 相等部分,并且使每个线程处理其自己的部分。应当明确地理解,以下实例仅用于说明目 的,并且本发明不旨在也不应被解释为或以其他方式解释为限于此。因此例如,如果存在具 有1024X 768个像素的尺寸和4个CPU内核的输入帧,则行1至256将被分配给线程1,行 257至512将被分配给线程2,行513到768将被分配给线程3,并且行769至1024将被分 配给线程4。然而,图像的大部分被关注比特掩码遮挡(如下面关于显著性比特掩码进一步 详细描述的)。所以,行1至800可能不是感兴趣的并且基本上被关闭。在该示例中,线程 1至3将不做任何事,并且由于仅一个线程完成所有工作,所以将不存在处理速度增加。
[0096] 如上所述,一种解决方案是创建大量条带。因此,不是如该示例中创建四个条带, 而是可能希望创建32个更小的条带。这降低了仅一个条带将包含所有可处理窗口的可 能性。然而,不希望所有32个线程都同时运行,因为这可能影响上下文切换效率。同样 地,系统将限制同时运行的线程的数量,得到一些运行的线程和一些等待的线程。信号量 (semaphore)被用于每次仅运行Μ个线程900。理想地,Μ是CPU内核的数量。因此,在条带 上运行每个线程902。当每个条带线程完成时,它用信号通知904已完成,并且允许执行新 线程。如果条带中没有区域要处理,则线程终止并且允许新线程启动。这具有保持CPU内 核忙碌的效果。以这种方式进行的工作划分仍然不是线性的,并且在四核机器上提供例如 两次至三次计算加速。
[0097] (3. 4)滑动窗口的"任何关注"关注优化
[0098] 通过使用关注机制以使得系统避免处理场景中的特定位置,获得处理时间和检测 精度的显著性能。根据所使用的关注机制的类型,滑动窗口组件可以忽略75%至94%之间 的场景。所忽略的场景的量直接对应于通过不处理那些部分所节省的时间。再次参照图4, 示出关注组件416被标记为"显著? "。
[0099] 关注组件416使用显著性比特掩码414来操作。显著性比特掩码414是例如 16X 16比特掩码(或任何其它希望尺寸的掩码)。然后,该显著性比特掩码414被映射到 当前场景图像,在输入场景帧中创建例如256个关注区域。
[0100] 换言之,如果在图像中(在该区域中)存在显著特征,则显著性将趋于更高并且在 特定关注区域中超过阈值。所以,例如,如果在绿色森林中存在红色停止标记,则对于人类 观察者来说很容易立即认出该停止标记。系统仿真该现象。具有唯一或鲜明颜色、形状或 者运动的一些事物是显著的。所以在该示例中,红色停止标记将突出表示为显著的并且超 过阈值。单调背景将趋向于被忽略并被设置为0。当人们移动时,他们将变得显著。因此, 人的运动使得它们显著并且趋向于超过阈值。一些不重要的事物可以是显著的。然而,这 是可以的。显著性仅用于使需要应用对象识别的范围变窄。
[0101] 如果显著性比特掩码被设置为1,则场景的该部分是显著的并且将由滑动窗口处 理。如果显著性比特掩码被设置为0,则场景的该部分被忽略并且滑动窗口处理将行进到下 一个位置。进行该处理的一种可能方式是通过阈值化显著性图,并且如果显著性超过特定 阈值,则将位置标记为1,并且否则标记为0。
[0102] 注意,窗口被确定为在窗口的中心位置处叠加显著性比特掩码414。因此,系统主 要对滑动窗口的中心处的显著性比特掩码414的值感兴趣。
[0103] 例如,图10示出了如何应用显著性比特掩码的示例。关注组件416操作被用于基 于显著特征(诸如颜色、线方向和运动)确定对场景1000的哪些部分感兴趣的关注模型。 场景1000的不感兴趣的部分被16X 16显著性比特掩码1002遮挡。只有不被遮挡的部分 (在图10中的框区域内示出)将由检测系统进一步处理。因此,如图4所示,检测系统将 继续处理场景的感兴趣部分,直到它提供针对场景中的任何特定的感兴趣的对象的置信度 分数434为止。置信度(或对象)分数434表示场景中的特定对象是感兴趣的对象的可能 性。
【主权项】
1. 一种用于检测场景中的感兴趣的对象的系统,所述系统包括: 存储器和一个或更多个处理器,在所述存储器上编码有可执行指令,使得当执行所述 指令时,所述一个或更多个处理器执行以下操作: 接收场景的图像帧; 从所述图像帧提取特征,所述特征是描述符; 量化所述描述符,以生成视觉词(PHOW)特征的金字塔直方图; 实现滑动窗口协议,以使窗口在所述图像上滑动并且分析落入所述窗口内的PHOW特 征;以及 确定所述PHOW特征是否表示所述感兴趣的对象,并且如果是的话,则将所述窗口指定 为检测到的感兴趣的对象在所述图像中的位置。2. 根据权利要求1所述的系统,其中,确定所述PHOW特征是否表示所述感兴趣的对象 还包括以下操作: 将所述窗口细分为一组网格; 在每个网格中编译所述PHOW特征的直方图,所述直方图表示在每个网格中发现的PHOW特征的计数; 通过卡方同质内核变换来变换所述直方图; 将变换后的直方图馈送到支持向量机(SVM)分类器,以针对每个特征生成SVM分数,所 述SVM分数表示所述图像中的对象与目标对象的相似度; 用正切S型曲线压缩所述SVM分数,使得所述SVM分数的范围在-1. 0至1. 0 ; 将所述SMV分数收集到分数列表中; 使用非极大值抑制缩减所述分数列表,以生成缩减的分数列表;以及 将阈值应用至所述缩减的分数列表,以消除低于预定阈值的任何分数并且生成对象分 数,所述对象分数表示所述场景中的特定对象是所述感兴趣的对象的可能性。3. 根据权利要求2所述的系统,其中,被提取的特征是密集尺度不变特征变换(SIFT) 描述符(DS
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1