CN107851197A - 自适应增强(AdaBoost)分类器中的高效决策树遍历 - Google Patents

自适应增强(AdaBoost)分类器中的高效决策树遍历 Download PDF

Info

Publication number
CN107851197A
CN107851197A CN201680039290.8A CN201680039290A CN107851197A CN 107851197 A CN107851197 A CN 107851197A CN 201680039290 A CN201680039290 A CN 201680039290A CN 107851197 A CN107851197 A CN 107851197A
Authority
CN
China
Prior art keywords
vector
window
leaf
decision tree
continuous
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680039290.8A
Other languages
English (en)
Other versions
CN107851197B (zh
Inventor
S·加干纳坦
P·K·斯瓦米
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN107851197A publication Critical patent/CN107851197A/zh
Application granted granted Critical
Publication of CN107851197B publication Critical patent/CN107851197B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2148Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the process organisation or structure, e.g. boosting cascade
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06V10/7747Organisation of the process, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding

Abstract

在用于对象分类的方法的所描述的示例中,该方法在单指令多数据(SIMD)处理器上实现的基于决策树的自适应增强(AdaBoost)分类器中执行,该方法包括:接收(700)特征向量,该特征向量从耦合到该SIMD处理器的存储器中的图像中的N个连续窗口位置中提取;以及通过该AdaBoost分类器使用特征向量和该SIMD处理器的向量指令同时评估(708)该N个连续窗口位置,其中该AdaBoost分类器同时遍历(714)该N个连续窗口位置的决策树,直至该N个连续窗口位置分类完成(712)。

Description

自适应增强(AdaBoost)分类器中的高效决策树遍历
技术领域
本发明一般涉及自适应增强(AdaBoost)分类,并且更特别地涉及AdaBoost分类器中的高效决策树遍历。
背景技术
AdaBoost是“自适应增强(adaptive boosting)”的简称,是用于将强分类器构造为弱分类器(诸如决策树)的线性组合的算法。在AdaBoost分类器中,弱分类器的输出被组合成加权和,它代表了增强分类器的最终输出。AdaBoost通过微调后续的弱学习器来适应以有利于先前分类器错误分类的情况。AdaBoost(其中决策树被用作弱学习器)通常被称为最佳的现成分类器,并且是视觉和数据分析的流行分类器。例如,AdaBoost的详细描述位于Y.Fruend和R.Schapire,“在线学习的决策理论概括和增强的应用(ADecision-TheoreticGeneralization of On-line Learning and an Application to Boosting)”,计算机与系统科学杂志(Journal of Computer and System Sciences),1997年8月,第55卷,第1期,第119-139页。
发明内容
在一种用于对象分类的方法的所描述的示例中,该方法在单指令多数据(SIMD)处理器上实现的基于决策树的自适应增强(AdaBoost)分类器中执行,该方法包括:接收特征向量,该特征向量从耦合到该SIMD处理器的存储器中的图像中的N个连续窗口位置中提取,其中N是该SIMD处理器的向量宽度除以特征的位尺寸,并且其中特征向量包括N个特征值,一个特征值用于该N个连续窗口位置中的每个窗口位置;以及通过该AdaBoost分类器使用特征向量和该SIMD处理器的向量指令同时评估该N个连续窗口位置,其中该AdaBoost分类器同时遍历该N个连续窗口位置的决策树,直至该N个连续窗口位置分类完成,其中决策树包括节点、每个节点的阈值和叶,每个叶包括部分分数(partial score)。
在其他所描述的示例中,一种数字系统包括:单指令多数据(SIMD)处理器;耦合到SIMD处理器的存储器组件,该存储器组件被配置成存储从图像中提取的特征;存储在存储器组件中的决策树,其中每个决策树包括节点、每个节点的阈值和叶,每个叶包括部分分数;以及基于决策树的自适应增强(AdaBoost)分类器,该分类器被训练用于存储在存储器组件中的对象分类,该AdaBoost分类器在该SIMD处理器上可执行,其中该AdaBoost分类器使用决策树用于对象分类,该AdaBoost分类器被配置成使用特征和SIMD处理器的向量指令同时评估N个连续窗口位置,其中该AdaBoost分类器同时遍历N个连续窗口位置的决策树,直至N个连续窗口位置分类完成,并且其中N是该SIMD处理器的向量宽度除以特征的位尺寸。
在进一步描述的示例中,一种非临时性计算机可读介质存储软件指令。该软件指令在单指令多数据(SIMD)处理器上执行时,使得用于基于决策树的自适应增强(AdaBoost)分类器中对象分类的方法被执行。该方法包括:接收特征向量,该特征向量从耦合到该SIMD处理器的存储器中的图像中的N个连续窗口位置中提取,其中N是该SIMD处理器的向量宽度除以特征的位尺寸,并且其中特征向量包括N个特征值,一个特征值用于该N个连续窗口位置中的每个窗口位置;以及通过该AdaBoost分类器使用特征向量和该SIMD处理器的向量指令同时评估该N个连续窗口位置,其中该AdaBoost分类器同时遍历该N个连续窗口位置的决策树,直至该N个连续窗口位置分类完成,其中决策树包括:节点、每个节点的阈值和叶,每个叶包括部分分数。
附图说明
图1是示出用于在图像场景中行人检测的滑动窗口方法的示例。
图2是示出对图像的特征提取以及将结果特征布置在存储器中以用于对象检测的示例。
图3是AdaBoost分类器的示例二元决策树。
图4是示出AdaBoost分类器中特征元组的一般概念的示例。
图5是示出AdaBoost分类器的每个决策树的叶中部分分数的一般概念的示例。
图6是示出特征向量的示例。
图7是用于在单指令多数据(SIMD)处理器上执行AdaBoost分类器的方法的流程图。
图8至图18是示例。
图19是被配置成执行图7的方法的实施例的示例数字系统的简化框图。
图20是示例SIMD数字信号处理器的框图。
具体实施方式
为了一致性,各个图中的相似要素由相似的参考数字表示。
如上所述,AdaBoost分类器可被构造为弱分类器诸如决策树的线性组合。本公开的实施例针对基于决策树的AdaBoost分类器。例如,实施例针对在宽单指令多数据(SIMD)处理器(也称为向量处理器)上实现基于决策树的AdaBoost分类。向量处理器实现同时处理多个数据点(即数据点的向量)的指令。更具体地说,多个数据点可被打包成一个数据字,并且向量指令可同时对每个数据点执行操作。例如,在128位向量处理器中,图像的八个16位像素可被打包成一个128位字,并且该八个像素可被同时处理。
为了便于解释,这里使用经训练以检测图像中对象(诸如行人)的示例AdaBoost分类器描述本发明的实施例。滑动窗口方法用于检测图像中的行人。图1是示出用于在图像场景中行人检测的滑动窗口方法的示例。通常,在传统的方法中,在重叠的水平和垂直位置处移动窗口(也被称为盒或对象模型或对象片(patch))通过图像,并且通过分类器分析特征(基于每个位置处的窗口中的像素值进行计算)。窗口的尺寸基于行人的预期尺寸并假定为36×68。每四个像素垂直和水平检查窗口。为了识别不同尺寸的行人,即场景中不同距离处的行人,该行人检测在图像的多个不同比例(scale)上执行。
该分类是基于为在多个不同比例的图像计算特征而执行的。对于对象检测,示例特征可包括梯度幅度、梯度方向、区块和、强度和颜色信息。可使用传统的分类器。进一步地,可以以传统方式执行在多比例的图像的特征的计算。该示例假定使用8×8的单元尺寸计算的十个特征的使用:颜色空间的分量,即Y(亮度分量)、Cb(蓝色差分色度分量)和Cr(红色差分色度分量)、梯度幅度,以及在0-180度之间的六个二元值(bin)的梯度直方图(HOG)。因此,假定窗口尺寸为36×38,每个窗口存在8*16*10=1280个特征。此外,在图像的每个比例中每个4×4区块存在一个窗口。
图2是示出对图像的特征提取以及将结果特征布置在存储器中以用于对象检测的示例。如上所述,针对原始图像(基本分辨率)并针对图像的多个比例计算特征用于行人检测。使用滑动窗口方法(如上所述)计算特征,从而针对每个比例为每个窗口产生一组十个特征通道。特征通道包含用于窗口的特定类型特征的计算值。对于这个示例,特征通道0-5是HOG的二元值,通道6是梯度幅度,以及通道7-9是相应的颜色分量。
一行图像中两个相继窗口的特征通道在除了一个位置的所有位置重叠。例如,考虑位置x,y处的窗口A和位置x+4,y处的后续窗口B。窗口B的每个特征通道从窗口A的对应特征通道偏移1。例如,如果窗口A的特征通道0包含8个值v1,v2,...,v8,则窗口B的特征通道0包含8个值v2,...,v8,v9。类似地,窗口C在位置x+8,y处的特征通道0包含8个值v3,...,v8,v9,v10。
如图2所示,图像中每个比例的特征数据被布置在存储器中。对于从0行开始的图像的每第四行,对应于十个特征通道的十行特征数据被“堆叠”在存储器中,使得与一个比例的行对应的特征数据的行中的连续值可由向量加载指令加载。因此,存储一个比例的0行的10行特征数据,接下来是4行的10行特征数据,接着是8行的10行特征数据等。
该分类器由1280个二元二级决策树组成,每个树评估每个节点处的特征。如图3的示例所示,二元决策树包括节点和在每个节点处具有二元分割的叶。该节点是树中的决策点,并且该叶持有部分分数。集体决策是基于从窗口中多个决策树的遍历产生的部分分数形成的。在每个节点处,将特征值与阈值进行比较。比较结果确定是选择节点的左分支还是右分支。在每个节点输入到决策树的特征值将引起选择四个叶中的一个。
图4是示出特征元组的一般概念的示例。特征元组是在分类器中映射到决策树的一组特征。这个映射在训练AdaBoost分类器的过程中形成。更具体地说,建立元组中每个特征的窗口中的位置。不同的决策树可有不同的元组作为输入。元组中的特征数等于决策树中的节点数。
图5是示出每个决策树的叶中部分分数的一般概念的示例。当特征元组遍历通过其相应的决策树时,选择叶中的一个,其包含特定特征元组的部分分数。将部分分数求和并与阈值(也称为最小值、退出阈值或软级联阈值)比较。如果观测到最小值,那么分类过程可在该点终止(退出),或者其余树的遍历可继续以观察额外的局部最小值(如果有的话)。关于在任意最小值退出的决策可特定于应用程序。在示例分类器中,当评估窗口期间越过阈值时,给定窗口中的树遍历被终止。
如上所述,在AdaBoost分类器的训练期间,确定包括在每个特征元组中的特定特征以及元组到决策树的映射。对于每个树中的每个节点,在训练期间确定在该节点处考虑的特征的窗口中的位置。而且,如上所述,两个相继的对象片之间对应特征的存储器存储偏移为1。因此,每个特征元组的特征向量在存储器中可用。这些特征向量可以在向量处理器中被利用以同时对多个对象片执行分类。如参考图7的方法所解释的,可以同时评估N个候选对象片,其中N是向量宽度除以特征尺寸。例如,如果向量宽度是512以及特征尺寸是16位,那么N=32。
图6是示出假定32个相继候选对象片的特征向量的示例。在这个示例中,前十行(标记为0-9)分别对应于上述十个特征通道。对于决策树600和决策树602两者,每个对象片的每个节点的特征值在存储器中是连续的,这实现每个节点的32个值的向量加载。
图7是用于在SIMD处理器上执行基于决策树的AdaBoost分类器的方法的流程图。例如,该方法同时评估N个连续窗口(对象片),其中N是SIMD处理器向量宽度除以特征尺寸。出于解释的目的,该特征尺寸被假定为16位,并且N被假定为32。进一步地,假定该分类器被训练用于行人分类。为了解释清楚,参照图8至图18中的示例描述该方法。
假定AdaBoost分类器被构造为二级二元决策树的线性组合。如参考图3所描述的,以及如图8的示例所示,二级二元决策树具有三个节点和四个叶。如图9的示例所示,每个节点在逻辑上包括阈值T、偏移值O和特征F。特征F的值从存储器中以偏移O获取,用来与阈值T进行比较。每个树中每个节点的阈值、偏移和特定特征在分类器被训练时被识别,如同每个树的叶值L。在一些实施例中,如图10所示,AdaBoost分类器的每个树的树参数(即阈值、偏移和叶值)被线性地存储在存储器中。上文中描述了AdaBoost分类器为评估行人的存在的图像特征的提取以及如何将这些特征存储在存储器中。
参考图11的示例,使用滑动窗口方法搜索行人的图像,其中窗口尺寸基于行人的预期尺寸。搜索到的窗口位置在垂直和水平上均偏移1。进一步地,以光栅扫描顺序搜索窗口位置。
再次参考图7的方法,为搜索32个连续窗口位置,为分类器的第一决策树的每个节点加载600特征向量。相应地,加载三个特征向量,一个特征向量用于树的每个节点。每个特征的向量的存储器地址由树中特征的偏移O确定。由于特征在存储器中的分条(strip)方式、窗口位置之间的1的偏移以及SIMD处理器的向量加载能力,所以32个连续窗口位置的特征被自动加载。图12是示出这个步骤的示例。
然后为树的每个节点生成702阈值向量,即生成三个阈值向量。通过复制节点的阈值32次生成节点的阈值向量。SIMD处理器中的复制是从存储器读取一个标量值并用这个标量值填充向量的所有元素的操作。
然后在加载的特征向量中的每个与相应的对应阈值向量之间执行704向量比较,以产生三个掩码向量,每个掩码向量指示相应比较的结果。每个掩码向量包含对于每个特征值的比较是否为真的指示。图13是示出该阈值向量和该比较的示例。在此图和其他图中使用的命名约定是:F<节点><位置>,其中节点是树的节点编号,以及位置是相关的窗口位置,例如,F23是在窗口位置3的树的节点2处评估的特征。图14是示出由向量比较操作产生的掩码向量的示例。在此示例中,如果比较结果为假,则与每个特征和对应阈值的比较结果对应的掩码值为0x0000,并且如果比较结果为真,则该掩码值为0xFFFF。另外,其他掩码值可用于指示比较操作的结果。
然后使用这三个掩码向量选择部分分数值,即叶值,用于32个对象片中的每个片的树遍历,并且生成706部分分数的向量,其中每个项是来自对应对象片的树遍历的所得到的部分分数(叶值)。在一些实施例中,如图15至图17的示例所示,执行部分分数值的向量的生成。如图15所示,使用三个掩码向量M1,M2和M3生成四个叶选择掩码向量K1、K2、K3、K4,一个叶选择掩码向量用于树的四个叶值中的每个叶值。然后使用这些叶选择掩码向量从四个叶向量LVI、LV2、LV3、LV4中选择叶值。树的叶的叶向量,其如图16所示,通过在对应的向量中复制每个叶值L1、L2、L3和L4 32次而生成。
如图15所示,掩码向量M1、M2、M3在逻辑上被组合以生成叶选择掩码向量K1、K2、K3、K4。该逻辑如下:l)当M1和M2中对应位置为真时,则在叶选择掩码向量K1中设置对应位置,以选择叶向量LV1中的对应位置;2)当M1中的位置为真并且M2中的对应位置为假时,则在叶选择掩码向量K2中设置对应位置,以选择叶向量LV2中的对应位置;3)当M1中的位置为假并且M3中的对应位置为假时,则在叶选择掩码向量K3中设置对应位置,以选择叶向量LV3中的对应位置;以及4)当M1和M3中的对应位置为假时,则在叶选择掩码向量K4中设置对应位置,以选择叶向量LV4中的对应位置。通过逻辑掩码组合设置为不选择叶值,叶选择掩码向量的任何位置设置为不选择叶值。对于这个示例,如果对应叶向量中的对应叶值不被选择,则叶选择掩码向量中的选择值是Ox0000,如果对应的叶值被选择,则选择值为OxFFFF。另外,其他掩码值是有用的。叶选择掩码向量是到达对应叶的决策树的遍历路径中节点的掩码向量的逻辑组合。
所得到的叶选择掩码向量K1、K2、K3、K4在图16中示出。在每个叶向量和对应的叶选择掩码向量之间执行逻辑与运算,以从每个叶向量中选择叶值(部分分数)。如图17所示,这四个逻辑与运算的结果是叶值的四个向量。这四个向量利用逻辑或运算相组合以生成部分分数向量,其中每个项是为32个窗口位置中对应的位置评估决策树的结果。
再次参考图7,部分分数向量被累积708到具有32个窗口中的每个窗口的一个项的累积分数向量中。例如,部分分数向量可被添加到累积分数向量,其存储来自先前树遍历的任何先前部分分数的总和。如以下更详细解释,在一些实施例中,可在累积部分分数之前将退出掩码向量应用于部分分数向量,以掩盖满足终止分类标准的窗口位置的部分分数。
比较710累积分数向量与退出阈值向量,并将低于退出阈值的任意累积部分分数值保存为最终分数。如果给定窗口位置的累积部分分数值低于退出阈值,则对于该窗口的树评估(即分类)完成。如果所有32个窗口的分类过程完成712,即所有累积分数低于退出阈值,或所有树已被遍历714,则终止32个窗口的分类过程,并返回716最终累积分数向量。否则,分类器中的下一个树继续分类700。在训练过程期间确定遍历树的顺序。
在一些实施例中,因为对于所有32个窗口位置可能没有完成分类,所以维持退出掩码向量,该退出掩码向量指示窗口位置中的哪个已完成分类过程,以及哪些没有完成分类过程。图18的示例示出退出掩码向量的生成和使用。累积分数向量与退出阈值向量的向量比较操作产生退出掩码向量,其指示累积分数中哪个满足退出标准,以及哪些没有满足退出标准。对于下一次分类迭代,退出掩码向量的逆(inverse)(“~”是位反转)和部分分数向量的逻辑与运算被执行以掩盖先前退出的任何窗口位置的部分分数。所得到的部分分数向量然后被添加到累积分数向量,执行与退出阈值向量的比较,并且生成更新的退出掩码。
图19是被配置成执行图7的方法的实施例的示例数字系统1900的简化框图。在一些实施例中,数字系统可以是集成电路,即片上系统。为了便于解释,假定在其他图的描述中使用的行人分类。数字系统1900包括主处理器1902、相机1904、图像信号处理器(ISP)1906、特征提取组件1908、SIMD指令集数字信号处理器(DSP)1910以及共享存储器1912。主处理器1902控制其他组件的操作,以执行在通过相机1904捕获的场景中行人分类所需的操作。主处理器1902可以是任意合适的处理器,诸如可从ARM有限公司(ARM Ltd.)获得的中央处理单元
相机1904捕获场景的图像并将那些图像提供到ISP 1906。ISP 1906对每个图像执行图像处理以准备用于特征提取的图像。例如,ISP 1906可以对图像执行操作,诸如白平衡、黑电平调整、噪声过滤、从RGB到YCbCr的转换以及边缘增强。
特征提取组件1908对来自ISP 1906的图像执行特征提取。上文中描述了特征提取。所提取的特征被存储在共享存储器1912中以供在该方法中使用。
共享存储器组件1912可以是片上存储器、外部存储器或其组合。任何合适的存储器设计都可以使用。例如,存储器组件1912可包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、只读存储器(ROM)、闪速存储器或其组合。
进一步地,存储器组件1912存储用于AdaBoost分类器1916的软件指令,其包括用于执行图6的方法的实施例的软件指令。存储器组件还存储通过特征提取组件1908计算的特征1914,以及由分类器1916使用的决策树1918。软件指令和决策树中的一些或全部可被初始存储在计算机可读介质(诸如紧凑光盘(CD)、磁盘、磁带、文件、存储器或任何其他计算机可读存储装置)中,并加载和存储在数字系统1900上。在一些情况下,软件指令也可以在计算机程序产品中出售,该计算机程序产品包括计算机可读介质和用于计算机可读介质的封装材料。在一些情况下,软件指令可经由可移除的计算机可读介质(诸如,软盘、光碟、闪速存储器、USB密钥),经由来自另一计算机系统(例如服务器)上的计算机可读介质的传输路径被分配到数字系统1900。
DSP 1910执行分类器1916的软件指令以使用所提取的特征1914执行行人分类。DSP实现了提供至少向量加载操作、向量比较操作、向量加法和减法操作、向量逻辑操作和复制操作的SIMD指令集。可以使用具有适当的SIMD指令集的任何合适的DSP。参考图20描述一个此类DSP。该分类的结果被传送到主处理器1902作进一步处理,诸如基于分类结果的行人检测和基于行人检测结果决策制定。
图20是适合于执行图7的方法的一个或更多个实施例的示例SIMD数字信号处理器(DSP)2000的高级框图。图示的DSP是可从德州仪器有限公司(Texas Instruments)购得的TMS32C66x DSP。C66x DSP 2000包括八个功能单元、两个寄存器堆(file)和两个数据路径。两个通用寄存器堆的每个都包含三十二个32位寄存器,共有64个寄存器。通用寄存器对数据有用或可以是数据地址指针。支持的数据类型包括打包的8位数据、打包的16位数据、32位数据、40位数据和64位数据。C66x DSP 2000支持16位数据的多达4路SIMD操作和8位数据的多达8路SIMD操作。因此,每个数据路径的SIMD宽度是64位,而不是用于一些可以处理多达128位打包数据的乘法操作。C66x和指令集的详细描述位于2010年11月的“TMS320C66xDSP CPU和指令集参考指南(TMS320C66x DSP CPU and Instruction Set ReferenceGuide)”SPRUGH7中,该文件通过引用并入本文。
如上所述,图7的方法同时评估N个窗口(对象片),其中N是SIMD宽度除以特征尺寸。因此,对于DSP 2000,如果方法实施例中的特征尺寸是8位,则N=8,并且如果方法实施例中的特征尺寸是16位,则N=4。
其他实施例
例如,描述实施例,其中假定决策树是二级二元决策树。另外,决策树可包括多于二级和/或不需要是二元的。
在另一示例中,描述实施例,其中当对象片的累积部分分数下降到退出阈值以下时,对象片的树遍历被终止。另外,不是终止此类对象片的树遍历,而是可以继续遍历剩余的树以观察额外的局部最小值(如果有的话)。
在另一示例中,描述实施例,假定分类器在执行行人分类。对于图像中其他类型的对象分类,诸如交通标志、交通工具、骑行者和动物,其他实施例是可能的。
附图中所示和本文所描述的步骤中的一个或更多个可以同时执行、可以组合,和/或可以以与附图中所示和/或本文所描述的顺序不同的顺序执行。相应地,实施例不限于附图中所示和/或本文所描述的步骤的特定排序。
在不背离所描述的功能的情况下,组件可以以不同的名称引用和/或可以以本文未示出的方式组合。另外,例如,如果第一装置耦合到第二装置,则该连接可以通过直接电连接、通过经由其他装置和连接的间接电连接,通过光电连接和/或通过无线电连接。
在权利要求的范围内,所描述的实施例中的修改是可能的,并且其他实施例是可能的。

Claims (20)

1.一种用于对象分类的方法,所述方法在单指令多数据处理器即SIMD处理器上实现的基于决策树的自适应增强分类器即AdaBoost分类器中执行,所述方法包括:
接收特征向量,所述特征向量从耦合到所述SIMD处理器的存储器中的图像中的N个连续窗口位置中提取,其中N是所述SIMD处理器的向量宽度除以特征的位尺寸,并且其中特征向量包括N个特征值,一个特征值用于所述N个连续窗口位置中的每个窗口位置;以及
通过所述AdaBoost分类器使用所述特征向量和所述SIMD处理器的向量指令同时评估所述N个连续窗口位置,其中所述AdaBoost分类器同时遍历所述N个连续窗口位置的决策树,直至所述N个连续窗口位置分类完成,其中决策树包括多个节点、每个节点的阈值和多个叶,每个叶包括部分分数。
2.根据权利要求1所述的方法,其中评估所述N个连续窗口位置包括:
使用所述SIMD处理器的向量加载指令加载多个所述特征向量,其中一个特征向量被加载用于所述AdaBoost分类器的单个决策树的每个节点;
使用所述SIMD处理器的向量比较指令比较每个特征向量与对应的阈值向量,以生成每个节点的掩码向量,其中所述对应的阈值向量包括与所述特征向量对应的所述节点的所述阈值的N个副本,并且其中所述掩码向量包括N个比较结果,一个比较结果用于所述特征向量的N个特征中的每个特征;
基于所述掩码向量和所述决策树的所述叶的部分分数值生成部分分数向量,所述部分分数向量包括N个部分分数值,一个部分分数值用于所述N个连续窗口位置中的每个窗口位置;
将所述部分分数累积到累积分数向量中,所述累积分数向量包括N个累积分数值,一个累积分数值用于所述N个连续窗口位置中的每个窗口位置;以及
使用所述SIMD处理器的向量比较指令比较所述累积分数向量与退出阈值向量,以确定对于所述N个连续窗口位置中的一个或更多个窗口位置是否可以终止对象分类。
3.根据权利要求2所述的方法,其中生成部分分数向量包括:
基于所述掩码向量为所述决策树的所述叶中的每个生成叶选择掩码向量,其中叶选择掩码向量是到达与所述叶选择掩码向量对应的所述叶的所述单个决策树的遍历路径中节点的掩码向量的逻辑组合;以及
执行每个叶选择掩码向量与对应的叶向量的逻辑与运算,以从所述叶向量中为N个窗口位置中的每个窗口位置选择部分分数,其中对应的叶向量包括所述叶的部分分数的N个副本。
4.根据权利要求1所述的方法,其中所述决策树是二级二元决策树。
5.根据权利要求1所述的方法,其中所述AdaBoost分类器被训练用于行人分类。
6.根据权利要求1所述的方法,其中所述SIMD处理器是数字信号处理器。
7.一种数字系统,包括:
单指令多数据处理器即SIMD处理器;
存储器组件,所述存储器组件耦合到所述SIMD处理器,所述存储器组件被配置成存储从图像中提取的特征;
多个决策树,所述多个决策树存储在所述存储器组件中,其中每个决策树包括:多个节点、每个节点的阈值和多个叶,每个叶包括部分分数;以及
基于决策树的自适应增强分类器即基于决策树的AdaBoost分类器,所述AdaBoost分类器被训练用于存储在所述存储器组件中的对象分类,所述AdaBoost分类器在所述SIMD处理器上可执行,其中所述AdaBoost分类器使用所述多个决策树用于对象分类,所述AdaBoost分类器被配置成使用所述特征和所述SIMD处理器的向量指令同时评估N个连续窗口位置,其中所述AdaBoost分类器同时遍历所述N个连续窗口位置的决策树,直至所述N个连续窗口位置分类完成,并且其中N是所述SIMD处理器的向量宽度除以特征的位尺寸。
8.根据权利要求7所述的数字系统,包括特征提取组件,所述特征提取组件耦合到所述存储器组件并被配置成从图像中的所述N个连续窗口位置中提取所述特征。
9.根据权利要求8所述的数字系统,包括相机,所述相机耦合到所述特征提取组件以提供所述图像。
10.根据权利要求7所述的数字系统,其中所述AdaBoost分类器被配置成通过以下方式评估所述N个连续窗口位置:
使用所述SIMD处理器的向量加载指令从所述存储器组件加载多个特征向量,其中一个特征向量被加载用于所述多个决策树的单个决策树的每个节点,并且其中特征向量包括N个特征值,一个特征值用于所述N个连续窗口位置中的每个窗口位置;
使用所述SIMD处理器的向量比较指令比较每个特征向量与对应的阈值向量,以生成每个节点的掩码向量,其中所述对应的阈值向量包括与所述特征向量对应的所述节点的所述阈值的N个副本,并且其中所述掩码向量包括N个比较结果,一个比较结果用于所述特征向量的所述N个特征中的每个特征;
基于所述掩码向量和所述决策树的所述叶的部分分数值生成部分分数向量,所述部分分数向量包括N个部分分数值,一个部分分数值用于所述N个连续窗口位置中的每个窗口位置;
将所述部分分数累积到累积分数向量中,所述累积分数向量包括N个累积分数值,一个累积分数值用于所述N个连续窗口位置中的每个窗口位置;以及
使用所述SIMD处理器的向量比较指令比较所述累积分数向量与退出阈值向量,以确定对于所述N个连续窗口位置中的一个或更多个窗口位置是否可以终止对象分类。
11.根据权利要求10所述的数字系统,其中生成部分分数向量包括:
基于所述掩码向量为所述决策树的所述叶中的每个生成叶选择掩码向量,其中叶选择掩码向量是到达与所述叶选择掩码向量对应的所述叶的所述单个决策树的遍历路径中节点的掩码向量的逻辑组合;以及
执行每个叶选择掩码向量与对应的叶向量的逻辑与运算,以从所述叶向量中为N个窗口位置中的每个窗口位置选择部分分数,其中对应的叶向量包括所述叶的部分分数的N个副本。
12.根据权利要求7所述的数字系统,其中所述决策树是二级二元决策树。
13.根据权利要求7所述的数字系统,其中所述AdaBoost分类器被训练用于行人分类。
14.根据权利要求7所述的数字系统,其中所述SIMD处理器是数字信号处理器。
15.一种存储软件指令的非临时性计算机可读介质,所述软件指令在单指令多数据处理器即SIMD处理器上执行时,使得用于基于决策树的自适应增强分类器即基于决策树的AdaBoost分类器中对象分类的方法被执行,所述方法包括:
接收特征向量,所述特征向量从耦合到所述SIMD处理器的存储器中的图像中的N个连续窗口位置中提取,其中N是所述SIMD处理器的向量宽度除以特征的位尺寸,并且其中特征向量包括N个特征值,一个特征值用于所述N个连续窗口位置中的每个窗口位置;以及
通过所述AdaBoost分类器使用所述特征向量和所述SIMD处理器的向量指令同时评估所述N个连续窗口位置,其中所述AdaBoost分类器同时遍历所述N个连续窗口位置的决策树,直至所述N个连续窗口位置分类完成,其中决策树包括多个节点、每个节点的阈值和多个叶,每个叶包括部分分数。
16.根据权利要求15所述的计算机可读,其中评估所述N个连续窗口位置包括:
使用所述SIMD处理器的向量加载指令加载多个所述特征向量,其中一个特征向量被加载用于所述AdaBoost分类器的单个决策树的每个节点;
使用所述SIMD处理器的向量比较指令比较每个特征向量与对应的阈值向量,以生成每个节点的掩码向量,其中所述对应的阈值向量包括与所述特征向量对应的所述节点的所述阈值的N个副本,并且其中所述掩码向量包括N个比较结果,一个比较结果用于所述特征向量的N个特征中的每个特征;
基于所述掩码向量和所述决策树的所述叶的部分分数值生成部分分数向量,所述部分分数向量包括N个部分分数值,一个部分分数值用于所述N个连续窗口位置中的每个窗口位置;
将所述部分分数累积到累积分数向量中,所述累积分数向量包括N个累积分数值,一个累积分数值用于所述N个连续窗口位置中的每个窗口位置;以及
使用所述SIMD处理器的向量比较指令比较所述累积分数向量与退出阈值向量,以确定对于所述N个连续窗口位置中的一个或更多个窗口位置是否可以终止对象分类。
17.根据权利要求16所述的计算机可读介质,其中生成部分分数向量包括:
基于所述掩码向量为所述决策树的所述叶中的每个生成叶选择掩码向量,其中叶选择掩码向量是到达与所述叶选择掩码向量对应的所述叶的所述单个决策树的遍历路径中节点的掩码向量的逻辑组合;以及
执行每个叶选择掩码向量与对应的叶向量的逻辑与运算,以从所述叶向量中为N个窗口位置中的每个窗口位置选择部分分数,其中对应的叶向量包括所述叶的部分分数的N个副本。
18.根据权利要求15所述的计算机可读介质,其中所述决策树是二级二元决策树。
19.根据权利要求15所述的计算机可读介质,其中所述AdaBoost分类器被训练用于行人分类。
20.根据权利要求15所述的计算机可读介质,其中所述SIMD处理器是数字信号处理器。
CN201680039290.8A 2015-07-06 2016-07-06 自适应增强(AdaBoost)分类器中的高效决策树遍历 Active CN107851197B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/792,596 2015-07-06
US14/792,596 US10325204B2 (en) 2015-07-06 2015-07-06 Efficient decision tree traversal in an adaptive boosting (AdaBoost) classifier
PCT/US2016/041159 WO2017007831A1 (en) 2015-07-06 2016-07-06 Efficient decision tree traversals in an adaptive boosting (adaboost) classifier

Publications (2)

Publication Number Publication Date
CN107851197A true CN107851197A (zh) 2018-03-27
CN107851197B CN107851197B (zh) 2022-06-07

Family

ID=57686191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680039290.8A Active CN107851197B (zh) 2015-07-06 2016-07-06 自适应增强(AdaBoost)分类器中的高效决策树遍历

Country Status (5)

Country Link
US (2) US10325204B2 (zh)
EP (1) EP3320488A4 (zh)
JP (2) JP7242975B2 (zh)
CN (1) CN107851197B (zh)
WO (1) WO2017007831A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113344020A (zh) * 2020-03-02 2021-09-03 美光科技公司 从存储器单元检索的数据的错误率的分类

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10268923B2 (en) * 2015-12-29 2019-04-23 Bar-Ilan University Method and system for dynamic updating of classifier parameters based on dynamic buffers
US11449789B2 (en) * 2016-02-16 2022-09-20 Micro Focus Llc System and method for hierarchical classification
US10579493B2 (en) * 2016-08-22 2020-03-03 Oath Inc. Systems and methods for determining user engagement with electronic devices
CN106650806B (zh) * 2016-12-16 2019-07-26 北京大学深圳研究生院 一种用于行人检测的协同式深度网络模型方法
CN107403424B (zh) * 2017-04-11 2020-09-18 阿里巴巴集团控股有限公司 一种基于图像的车辆定损方法、装置及电子设备
JP7069898B2 (ja) * 2018-03-16 2022-05-18 株式会社リコー 学習識別装置および学習識別方法
US11144637B1 (en) * 2018-08-24 2021-10-12 Ca, Inc. Systems and methods for executing decision trees
CN111046926B (zh) * 2019-11-26 2023-09-19 山东浪潮科学研究院有限公司 一种计算机视觉图像分类集成学习方法
US20230237097A1 (en) * 2020-06-25 2023-07-27 Nec Corporation Information processing device, information processing method, and recording medium
US11971953B2 (en) 2021-02-02 2024-04-30 Inait Sa Machine annotation of photographic images
US11544914B2 (en) 2021-02-18 2023-01-03 Inait Sa Annotation of 3D models with signs of use visible in 2D images

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805915A (en) * 1992-05-22 1998-09-08 International Business Machines Corporation SIMIMD array processing system
US20040258314A1 (en) * 2003-06-23 2004-12-23 Shoestring Research, Llc Region segmentation and characterization systems and methods for augmented reality
CN101099675A (zh) * 2007-07-26 2008-01-09 上海交通大学 带有弱分类器的组合系数的人脸检测方法
CN101236608A (zh) * 2008-01-25 2008-08-06 清华大学 基于图片几何结构的人脸检测方法
US20130044924A1 (en) * 2011-08-17 2013-02-21 Volcano Corporation Classification Trees on GPGPU Compute Engines
US8533129B2 (en) * 2008-09-16 2013-09-10 Yahoo! Inc. Efficient data layout techniques for fast machine learning-based document ranking
US20130243329A1 (en) * 2012-03-15 2013-09-19 Herta Security, S.L. Parallel object detection method for heterogeneous multithreaded microarchitectures
CN103902591A (zh) * 2012-12-27 2014-07-02 中国科学院深圳先进技术研究院 构建决策树分类器的方法及装置
US8923585B1 (en) * 2012-01-31 2014-12-30 Given Imaging Ltd. Method and system for image-based ulcer detection
US20150036942A1 (en) * 2013-07-31 2015-02-05 Lsi Corporation Object recognition and tracking using a classifier comprising cascaded stages of multiple decision trees
US20150058579A1 (en) * 2013-08-26 2015-02-26 Qualcomm Incorporated Systems and methods for memory utilization for object detection

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9971959B2 (en) 2013-03-15 2018-05-15 Nvidia Corporation Performing object detection operations via a graphics processing unit

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805915A (en) * 1992-05-22 1998-09-08 International Business Machines Corporation SIMIMD array processing system
US20040258314A1 (en) * 2003-06-23 2004-12-23 Shoestring Research, Llc Region segmentation and characterization systems and methods for augmented reality
CN101099675A (zh) * 2007-07-26 2008-01-09 上海交通大学 带有弱分类器的组合系数的人脸检测方法
CN101236608A (zh) * 2008-01-25 2008-08-06 清华大学 基于图片几何结构的人脸检测方法
US8533129B2 (en) * 2008-09-16 2013-09-10 Yahoo! Inc. Efficient data layout techniques for fast machine learning-based document ranking
US20130044924A1 (en) * 2011-08-17 2013-02-21 Volcano Corporation Classification Trees on GPGPU Compute Engines
US8923585B1 (en) * 2012-01-31 2014-12-30 Given Imaging Ltd. Method and system for image-based ulcer detection
US20130243329A1 (en) * 2012-03-15 2013-09-19 Herta Security, S.L. Parallel object detection method for heterogeneous multithreaded microarchitectures
CN103902591A (zh) * 2012-12-27 2014-07-02 中国科学院深圳先进技术研究院 构建决策树分类器的方法及装置
US20150036942A1 (en) * 2013-07-31 2015-02-05 Lsi Corporation Object recognition and tracking using a classifier comprising cascaded stages of multiple decision trees
US20150058579A1 (en) * 2013-08-26 2015-02-26 Qualcomm Incorporated Systems and methods for memory utilization for object detection

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
INDRANIL PALIT ET AL: "Parallelized Boosting with Map-Reduce", 《2010 IEEE INTERNATIONAL CONFERENCE ON DATA MINING WORKSHOPS》 *
PAUL VIOLA ET AL: "Robust Real-Time Face Detection", 《INTERNATIONAL JOURNAL OF COMPUTER VISION》 *
TOM WILSON ET AL: "Pedestrian detection implemented on a fixed-point parallel architecture", 《2009 IEEE 13TH INTERNATIONAL SYMPOSIUM ON CONSUMER ELECTRONICS》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113344020A (zh) * 2020-03-02 2021-09-03 美光科技公司 从存储器单元检索的数据的错误率的分类

Also Published As

Publication number Publication date
CN107851197B (zh) 2022-06-07
WO2017007831A1 (en) 2017-01-12
JP2023022031A (ja) 2023-02-14
JP7242975B2 (ja) 2023-03-22
US20170011294A1 (en) 2017-01-12
US10325204B2 (en) 2019-06-18
EP3320488A4 (en) 2018-07-18
JP2018520443A (ja) 2018-07-26
US10977560B2 (en) 2021-04-13
US20190251451A1 (en) 2019-08-15
EP3320488A1 (en) 2018-05-16

Similar Documents

Publication Publication Date Title
CN107851197A (zh) 自适应增强(AdaBoost)分类器中的高效决策树遍历
Dalla Mura et al. Morphological attribute profiles for the analysis of very high resolution images
CN102308306B (zh) 用于图像分离的约束生成器
US20220076168A1 (en) Method for recognizing fog concentration of hazy image
CN103679132A (zh) 一种敏感图像识别方法及系统
CN112488229B (zh) 一种基于特征分离和对齐的域自适应无监督目标检测方法
CN109427062A (zh) 道路特征标记方法、装置、计算机设备以及可读存储介质
Liu et al. Soft prototyping camera designs for car detection based on a convolutional neural network
Gonzales et al. Semantic segmentation of clouds in satellite imagery using deep pre-trained U-Nets
CN115661777A (zh) 一种联合语义的雾天道路目标检测算法
CN112270671B (zh) 图像检测方法、装置、电子设备及存储介质
Hagn et al. Optimized data synthesis for DNN training and validation by sensor artifact simulation
Moseva et al. Development of a System for Fixing Road Markings in Real Time
CN116824488A (zh) 一种基于迁移学习的目标检测方法
Retzlaff et al. Combining synthetic image acquisition and machine learning: accelerated design and deployment of sorting systems
CN111402185A (zh) 一种图像检测方法及装置
CN115761667A (zh) 一种基于改进fcos算法的无人车辆搭载摄像头目标检测方法
CN111709951B (zh) 目标检测网络训练方法及系统及网络及装置及介质
US10997467B1 (en) Visual analytics exposure of image object detector weakness
JP7144384B2 (ja) オブジェクト検出装置、方法及びプログラム
CN113420801A (zh) 一种网络模型的生成方法、装置、终端和存储介质
Gonzalez-Moodie et al. Multispectral drone data analysis on coastal dunes
DA SILVA AUTOMATIC COUNTING AND GEOREFERENCING OF FRUITS FROM VIDEO
US11875489B2 (en) Detecting hybdrid-distance adversarial patches
KR102621884B1 (ko) 상품불량 선별을 위한 딥러닝 기반의 이미지 분석 방법 및 이를 위한 시스템

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant