执行对象检测的制作方法

文档序号:9922255阅读:272来源:国知局
执行对象检测的制作方法
【技术领域】
[0001]本发明涉及一种SBffi处理单元和用于执行对象检测的方法。
【背景技术】
[0002]用于执行自动人脸检测的很多现代方法都基于V1la-Jones对象检测框架,该V1la-Jones对象检测框架在 P.V1la 和 M.Jones 的论文 “Robust realtime facedetect1n,,(Internat1nal Journal of Computer Vis1n,第57卷,第2章,第137-154页,2004年)中描述。V1la-Jones框架对针对图像定义的图像区域或者“子窗口”的集合操作,每个窗口在图像内都具有不同位置、尺度或者旋转角度,以允许检测在不同位置处或者具有不同尺寸和旋转角度的人脸。二元分类器(binary classifier)的级联集合对每个子窗口操作,以检测在图像中子窗口是否有可能包围人脸。每个二元分类器都对子窗口执行测试,以确定子窗口是否满足一个或更多个简单视觉特征(通常称为“Haar-like特征”)。如果子窗口满足一个或更多个简单视觉特征,则二元分类器接受(pass)该子窗口,并且移动到级联中的下一个二元分类器。当级联的所有二元分类器都接受子窗口时,该子窗口变为用于正被搜索的图像中的人脸的候选。如果级联中的任何二元分类器都拒绝子窗口,则不对该子窗口执行进一步处理,级联终止并且级联处理再次开始于下一个子窗口。
[0003]图2中示出在V1la-Jones框架中通常使用的四个视觉特征201-204。图2中所示的特征201至204中的每个特征在视觉上表示如何处理子窗口的像素值以测试子窗口。例如,特征201可以表示级联的分类器中的第一二元分类器的组成,并且通过从位于特征的无阴影区域(子窗口的左手侧)中的子窗口的像素值的总和减去位于特征的阴影区域中的子窗口的像素值的总和(子窗口的右手侧)来计算。如果该特征评估为超过预定义阈值(通常通过在测试图像上训练人脸检测器来建立)的值,则认为该子窗口满足视觉特征并且二元分类器接受该子窗口。通常,二元分类器对已被处理以仅表示亮度或者灰度信息的图像(例如,像素值可以是亮度值)的子窗口进行操作。以此方式,级联的二元分类器起作用,以识别指示人脸特征的图像中的对比度的特定图案。
[0004]为了改进人脸检测系统的性能,可以通过将多组线程分配给GPU,在图形处理单元(GPU)处并行地执行根据V1la-Jones对象检测框架执行的二元分类器操作。然而,该方法可能导致GPU的并行处理元件在很大比例的时间内为空闲的。这是因为一组线程的并行处理通常未完成,直到一组线程的每一个线程的处理完成为止,并且如果子窗口不接受(fail)级联的第一二元分类器,则对该子窗口操作的任何给定线程可以几乎立即终止,或者如果其可以完成级联的所有二元分类器的处理,则该子窗口表示人脸候选。处理资源的该未充分使用对使用V1la-Jones框架特别是对移动和低功率平台实时地执行人脸检测呈现困难。
[0005]解决该问题的先前努力试图将二元分类器的性能分解到多级,诸如,在2011年Elsevier公司的Wen-mei W.Hwu作出的 “GPU Computing Gems” 的第534-541 页描述的Nvidia CUDA实现。然而,这仅部分地解决该问题,引入了用于在多级之间压缩数据的附加开销,并且具有在较早处理阶段期间效率低的缺点。

【发明内容】

[0006]根据本发明的第一方面,提供了一种用于通过在多个图像区域中对多个对象特征进行测试在图像中执行对象检测的单指令多数据处理单元,所述单指令多数据处理单元包括:
[0007]—组计算单元,所述一组计算单元能够操作以并行地执行多个分类器序列,每个分类器序列都包括多个分类器程序,并且每个分类器程序都包括与所述多个分类器序列中的每个分类器序列中的其它分类器程序相同的指令;
[0008]其中,每个计算单元被配置成在所述计算单元上独立地保持识别正在测试的图像区域和特征的数据,并且每个分类器程序被布置成存取所述数据,针对所识别的图像区域测试所识别的特征,并且更新所述数据,使得所述计算单元能够操作以针对不同的图像区域同时测试不同的特征。
[0009]每个分类器序列可以都被配置成针对图像区域中的对象特征执行一序列的测试,所述分类器序列的每个分类器程序被配置成执行所述序列的测试。
[0010]每个分类器程序都可以被配置成接受或者不接受图像区域,并且包括被配置为进行如下操作的指令:
[0011]当接受图像区域时,更新针对正执行所述分类器程序的所述计算单元所保持的数据,以使得所述分类器序列中的下一分类器程序针对相同的图像区域测试下一特征;
[0012]当不接受图像区域时,更新针对正执行所述分类器程序的所述计算单元所保持的数据,以使得所述分类器序列中的下一分类器程序针对下一图像区域测试第一特征。
[0013]所述单指令多数据处理单元还可以包括所述一组计算单元能够存取的存储器,所述存储器被布置成存储表示经过所述多个图像区域的搜索范围的索引,并且每个分类器程序包括被配置为进行如下操作的指令:当不接受图像区域时,通过使所述索引原子地递增,更新针对正执行所述分类器程序的所述计算单元所保持的数据,以更新所述搜索范围,并且使得所述下一图像区域的标识符被返回到所述分类器程序。
[0014]每个分类器程序都被配置成使用它的识别图像区域的数据在正执行对象检测的图像中的所识别的区域中查找数据。
[0015]分类器序列的每个分类器程序是单个程序,所述单个程序被布置成在其计算单元处迭代地执行,以针对所识别的区域测试所识别的特征并且更新所述数据。
[0016]所述单指令多数据处理单元还可以包括:另一组计算单元,所述另一组计算单元能够操作以执行所述多个分类器序列,其中,所述一组计算单元形成第一计算组,并且所述另一组计算单元形成第二计算组,并且其中,所述多个图像区域被划分为图像区域的多个子集,并且所述第一计算组和所述第二计算组中的每个被分配图像区域的所述多个子集中的不同的一个子集用于测试。
[0017]所述单指令多数据处理单元还可以包括:全局存储器,所述全局存储器存储全局索引,所述全局索引表示由所述第一计算组和所述第二计算组经过图像区域的所述多个子集进行的搜索范围;其中,每个分类器程序包括被配置为进行如下操作的指令:当针对其相关的计算组耗尽图像区域的所述子集时,根据所述全局索引使得图像区域的新子集被分配给所述相关的计算组。
[0018]每个分类器程序都包括被配置为进行如下操作的指令:通过原子地更新所述全局索引,使得所述全局索引将图像区域的新子集分配给所述相关计算组,以更新经过图像区域的所述多个子集的搜索范围,并且使得将图像区域的下一子集的标识符被返回到所述分类器程序。
[0019]当将图像区域的新子集分配给第一计算组时,可以更新所述索引。
[0020]第一计算组的存储器能够被该计算组存取而不能被其它计算组存取。
[0021]每个图像区域在它在帧中的位置、尺寸和方位中的一个或更多个方面都不同于其它图像。
[0022]每个对象特征是Haar-1ike特征,并且每个分类器程序都被配置成确定所述特征是否满足预定义的阈值。
[0023]可以提供定义单指令多数据处理单元的机器可读代码。可以提供定义单指令多数据处理单元的、在其上编码有非瞬时机器可读代码的机器可读存储介质。
[0024]根据本发明的第二方面,提供一种用于在单指令多数据处理器处在图像中执行对象检测的方法,所述单指令多数据处理器具有一组计算单元,所述一组计算单元被布置成并行地执行多个分类器序列,每个分类器序列包括多个分类器程序,所述多个分类器程序与所述多个分类器序列中的每个分类器序列中的其它分类器程序具有相同的指令,并且所述方法包括以下步骤:
[0025]在所述一组计算单元的每个计算单元处并行地执行每个序列的分类器程序,以在多个图像区域中针对多个对象特征进行测试;
[0026]每个分类器程序:
[0027]独立地保持识别通过所述分类器程序测试的图像区域和特征的数据;
[0028]存取所述数据;
[0029]针对所识别的图像区域测试所识别的特征;以及
[0030]更新所述数据,使得所述计算单元能够操作以针对不同图像区域同时测试不同特征。
[0031]当针对所识别的图像区域测试所识别的特征时,每个分类器程序可以:
[0032]接受所述图像区域,并且更新识别正在测试的图像区域和特征的数据,以使所述分类器序列中的下一个分类器程序针对相同的图像区域测试下一个特征;或者
[0033]不接受所述图像区域,并且更新识别正在测试的图像区域和特征的数据,以使所述分类器序列中的所述下一个分类器程序针对下一图像区域测试所述第一特征。
[0034]所述方法还包括以下步骤:保持表示所述一组计算单元经过所述多个图像区域的搜索范围的索引,并且当不接受图像区域时,每个分类器程序通过使所述索引原子地递增来更新识别正在测试的图像区域和特征的数据以更新所述搜索范围,并且使所述下一图像区域的标识符返回到所述分类器程序。
[0035]每个分类器程序可以使用它的识别图像区域的数据,以在正执行对象检测的图像中的所识别的图像区域中查找数据。
[0036]该方法可以包括以下步骤:在其计算单元处迭代地执行每个分类器程序,以针对所识别的区域测试所识别的特征并且更新所述数据。
[0037]每个分类器程序可以在多组计算单元中的一组计算单元的计算单元处执行,并且所述方法还可以包括以下步骤:
[0038]将所述多个图像区域划分为图像区域的多个子集;以及
[0039]分配图像区域的所述多个子集中的一个不同子集用于在每组计算单元处进行测试。
[0040]所述方法还可以包括以下步骤:
[0041]保持表示由所述多组计算单元经过图像区域的所述多个子集的搜索范围的全局索引;以及
[0042]当分类器程序针对其相关计算组耗尽图像区域的所述子集时,使得根据所述全局索引将图像区域的新子集分配给所述相关计算组。
[0043]每个分类器程序可以通过原子地更新所述全局索引,使得图像区域的新子集被分配给所述相关计算组,以更新经过图像
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1