用于物体检测的基于AdaBoost算法的可重构装置的制作方法

文档序号:6402140阅读:255来源:国知局
专利名称:用于物体检测的基于AdaBoost算法的可重构装置的制作方法
技术领域
本发明涉及计算机图像处理技术,特别涉及一种用于物体检测的基于AdaBoost算法的可重构装置。
背景技术
基于AdaBoost算法的物体检测已经有了广泛的应用,比如自动驾驶,无人监护和人机交互娱乐等。AdaBoost算法(参见Y.Freund, R.e.Schapire, 〃A shortintroduction to boosting,^Journal of Japanese Society for ArtificialIntelligence, pp.771-780, 1999.)主要分为图像预处理,积分图像生成和级联分类等逻辑阶段。这些算法逻辑包含了许多的不同并行度的并行逻辑和流处理逻辑,传统ASIC的方式由于其内部固定的电路结构,不能很好地利用这些特点去提升处理速度;而内部逻辑电路灵活可配置的FPGA实现方式又因为其属于静态配置体系,会产生大量的配置信息和冗余运算逻辑,增加了功耗和延长了配置时间。由于基于AdaBoost算法的物体检测过程需要处理大量的数据,尤其是实时物体检测,它的运算量非常巨大,要达到实时检测非常的困难,这也对实现AdaBoost算法的硬件系统得运算能力提出了严格的要求。此外,在不同的应用场景下,检测率和检测时间是一组非常对立的指标参数。当提高检测率,就会相应的增加检测时间,而降低检测率,就会减少检测时间,提高检测速度。在基于AdaBoost算法的物体检测中,这两个指标参数是由输入图像的尺寸,尺度因子,以及分类器的级数等参数决定的。这些参数又直接影响着硬件资源配置和功耗。因此,在不同的应用场合下,AdaBoost算法的硬件实现系统应该具有足够的灵活性去配置参数,从而平衡检测率和检测时间,以节省运算资源和降低能耗。在现有技术中的AdaBoost算法的硬件实现系统,虽然考虑了物体检测的灵活性,但是没有很好的将计算灵活性和参数配置灵活性统一到硬件架构上来,因此效果不是很好。

发明内容
本发明旨在至少在一定程度上解决上述技术问题之一或至少提供一种有用的商业选择。为此,本发明提供一种用于物体检测的基于AdaBoost算法的可重构装置,该装置可以以最少的硬件资源完成多样的运算需求,提高执行效率;还可以实现在线参数配置,平衡冗余的计算资源,降低能耗。为达到上述目的,本发明的实施例提出了一种用于物体检测的基于AdaBoost算法的可重构装置,包括:图像输入输出模块,用于接收输入的第一图像,并输出作为处理结果的第二图像;多个处理阵列模块,用于根据设置的计算配置参数和虚拟扩展参数对所述第一图像进行处理计算;乘加阵列模块,用于在所述多个处理阵列模块对所述第一图像的处理计算过程的乘加运算 进行处理;以及解析控制模块,用于根据控制信号控制向所述多个处理阵列模块的所述计算配置参数、所述虚拟扩展参数的输入和所述多个处理阵列模块的处理数据的输出。根据本发明实施例的用于物体检测的基于AdaBoost算法的可重构装置,充分利用了 AdaBoost算法与可重构运算的相互适应的特点,实现物体检测时硬件架构的计算灵活性和参数配置灵活性,可以以最少的硬件资源完成多样的运算需求,进而提高处理能力,降低能耗,增强物体检测的灵活性。另外,根据本发明上述实施例的用于物体检测的基于AdaBoost算法的可重构装置还可以具有如下的附加技术特征:在本发明的实施例中,所述装置还包括:存储模块,用于对所述多个处理阵列模块提供数据存储;以及传输模块,用于在所述图像输入输出模块、所述多个处理阵列模块、所述乘加阵列模块、所述存储模块和所述解析控制模块之间传输所述数据和所述控制信号。在本发明的实施例中,所述处理阵列模块进一步包括:多个可重构的处理单元(PU),用于对所述第一图像中的像素进行积分计算;配置接口(Cl),用于根据所述计算配置参数和所述虚拟扩展参数对所述多个可重构的处理单元进行计算配置;数据接口(DI),用于传输所述多个可重构处理单元的数据;以及配置存储器(CME),分别与所述配置接口和所述传输模块相连,用于将所述计算配置信息快速发送到所述配置接口。在本发明的实施例中,所述多个可重构的处理单元之间以块的方式进行组合。在本发明的实施例中,所述配置存储器具有异步传输的能力。在本发明的实施例中,所述多个处理阵列模块之间还存在共享内存,所述共享内存用于存储所述多个处理阵列模块在所述处理计算中产生的临时数据。

在本发明的实施例中,所述多个处理阵列模块和所述乘加阵列模块之间还存在第一通道,所述多个处理阵列模块和所述乘加阵列模块通过第一通道进行交互运算。在本发明的实施例中,当所述图像输入输出模块检测到输入图像大小变化时,所述解析控制模块通过控制所述控制信号调整所述多个处理阵列模块的虚拟扩展参数。在本发明的实施例中,所述虚拟扩展参数包括水平扩展参数和垂直扩展参数。在本发明的实施例中,所述解析控制模块通过控制算法的级联级数缩放因子调整所述计算配置参数和所述虚拟扩展参数。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。


本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:图1为根据本发明一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的结构框图;图2为根据本发明另一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的结构框3为根据本发明一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的处理阵列模块的结构框图;图4为根据本发明另一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的总体结构原理图;图5为根据本发明一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的数据传输示意图;图6为根据本发明一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的控制原理示意图;和图7为根据本发明一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的计算模式可重构和参数配置可重构的原理示意图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。进一步地,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。以下结合附图描述根据本发明实施例的用于物体检测的基于AdaBoost算法的可重构装置。图1为根据本发明一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的结构框图。 如图1所示,根据本发明一个实施例的用于物体检测的基于AdaBoost算法的可重构装置100,包括:图像输入输出模块110、多个处理阵列模块120、乘加阵列模块130和解析控制模块140。具体地,图像输入输出模块110用于接收输入的第一图像,并输出作为处理结果的第二图像。其中,输出的第二图像为经过物体区域标注后的灰度图像,且输出图像的目标地址包括两个部分:一是通过VGA接口输出的显示装置上,二是通过总线输出的外部的SDRAM存储器中。多个处理阵列模块120用于根据设置的计算配置参数和虚拟扩展参数对第一图像进行处理计算。乘加阵列模块130用于对第一图像的处理计算过程中的乘加运算进行处理。其中,多个处理阵列模块120和乘加阵列模块之间130存在第一通道,且多个处理阵列模块120和乘加阵列模块130通过第一通道进行交互运算。解析控制模块140用于根据控制信号控制向多个处理阵列模块120的计算配置参数、虚拟扩展参数和数据的输入和多个处理阵列模块120的处理数据的输出。具体地,解析控制模块140通过控制算法的级联级数缩放因子调整计算配置参数和虚拟扩展参数。当图像输入输出模块110检测到输入图像大小变化时,解析控制模块140通过控制控制信号调整多个处理阵列模块120的虚拟扩展参数。其中,虚拟扩展参数包括水平扩展参数和垂直扩展参数。具体而言,当外界物体的图像尺寸发生变化时,为了维持较高的检测精度和检测速度,解析控制模块1 40会控制算法的级联级数和缩放因子。首先,依据需要增加的分类器级联级数和尺度因子的数值,解析控制模块140会对预存的配置信息进行重新打包,经过重新打包的配置信息,将会完成包括调入预存分类器,提高或降低窗口缩放因子的操作。其中,分类器数目越多,窗口缩放因子越小,检测精度会上升,但是运算量会增大,运算速度会下降,反之运算速度会上升。因此,对参数的调节,可以很好的平衡检测精度和检测速度。此夕卜,分类的运算时在阵列上完成的,解析控制模块140重新打包配置信息,可以对目前没有充分利用的阵列进行运算配置,从而均衡了整个计算分布。进一步地,如图2所示,根据本发明另一个实施例的用于物体检测的基于AdaBoost算法的可重构装置100还包括:存储模块150和传输模块160。存储模块150用于存储多个处理阵列模块120的数据。其中,存储数据的类型主要包含输入的RGB图像数据以及输出的经过处理的灰度图像数据,且这些数据类型均为16bit的 整形数据。传输模块160用于在图像输入输出模块110、多个处理阵列模块120、乘加阵列模块130、解析控制模块140、和存储模块150之间传输数据和控制信号。在本发明的一个优选实施例中,多个处理阵列模块120进一步包括4个处理阵列模块120。如图3所示,每个处理阵列模块120包括:多个可重构的处理单元310、配置接口320、数据接口 330和配置存储器340。多个可重构的处理单元310用于对第一图像中的像素进行积分计算。其中,多个可重构的处理单元310之间以块的方式进行组合。配置接口 320用于根据计算配置参数和虚拟扩展参数对多个可重构的处理单元310进行计算配置。数据接口 330用于传输多个可重构处理单元310的数据。配置存储器340分别于配置接口 320和传输模块260相连,用于将计算配置信息快速发送到配置接口 320中。其中,配置存储器340具有异步传输的能力。另外,在本发明一个实施例中,多个处理阵列模块120之间还存在共享内存(图中未示出),该共享内存用于存储多个处理阵列模块120在处理计算中产生的临时数据。图4为根据本发明另一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的总体结构原理图。作为一个具体的示例,如图4所示,用于物体检测的基于AdaBoost算法的可重构装置包括:四个可重构的处理阵列(Reconfigurable Processing Array, RPA)>一个ARM9核、一个乘加阵列(MUA)以及其他的辅助模块。其中,辅助模块主要包括DMA控制器、解析控制器(Parser Controller, PC)以及图像输入输出单元等。且上述所有的模块的都具有与AHB接口(即传输模块)兼容的能力。每个可重构的处理阵列是一个包含10x10可重构处理单元(Processing Unit, TO)、配置接口(Cl)、数据接口(DI)和配置存储器(CME)的可重构阵列,且该四个可重构的处理阵列可以被来自配置存储器(RAM:4k*32bit)的配置信息通过配置接口进行计算配置,同时它们也通过数据接口向共享内存(Share memory, sram,1024k*64bit,多端口)存取数据。而乘加阵列(MUA)则是通过专用通道(即第一通道)与四个可重构的处理阵列进行交互运算。图5为根据本发明一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的数据传输示意图。如图5所示,四个可重构的处理阵列从共享内存中加载或存储数据,由于在AdaBoost的算法中,基于级联分类器构建的流水线的运算是非常规整的,因此采用共享内存可以实现四个可重构的处理阵列快速交换数据。此外,四个可重构的处理阵列的临时数据存储在数据接口的内部存储器中,数据接口中的这块存储器给所有可重构的处理单元提供了共享和交换数据的空间。数据接口的设计是充分考虑了 AdaBoost算法中的积分图生成具有数据局部性特点,并且可以很好的支持灵活多样的块运算形式。此外,还有一条专用通道在四个可重构的处理阵列和乘加阵列之间,且乘加阵列(5x5矩阵)作为一个乘加加速单元来完成算法中大量可以同步进行的乘加运算。图6为根据本发明一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的控制流原理示意图。如图6所示,控制流开始于ARM9核和解析控制器,ARM9核主要负责从on-chipmemoryO加载程序,并且确保架构中的所有部件能够协调地工作。而解析控制器主要是加载预存储的配置信息,包括计算配置信息和参数配置信息,并完成配置信息的在线打包,打包好以后,将会发送到配置存储器中。其中,这些配置信息主要是完成对四个可重构的处理阵列的控制。配置存储器支持多个接口,具有异步传输的能力,它可以确保配置信息被快速的发送到配置接口中去,且配置接口中的多发射能力极大地确保了配置信息被发送到四个可重构的处理阵列的速度。由于配置存储器、配置接口和四个可重构的处理阵列之间的配置传输都有缓存隔开,这使得配置传输可以流水进行,这在一定程度上隐藏了配置时间。

在图5和图6中,FIFO(先入先出)是一个存储列队,具有缓冲数据的作用,特别是当FIFO的两端工作频率不一致的情况下,可以实现异步工作。在本发明的一个具体实施例中,FIFO主要用于缓冲数据,解决FIFO存取频率不一致的情况,提高数据传输效率。图5和图6中的64bit、32bit、512bit、255bit等是表明本发明的装置传输通道的位宽,且采用上述的位宽值,可以实现高效的处理。图7为根据本发明一个实施例的用于物体检测的基于AdaBoost算法的可重构装置的计算模式可重构和参数配置可重构的原理示意图如图7的左半图(a)所示,可重构架构实现计算可重构主要分为三个方面:第一个方面:在四个可重构的处理阵列中,四个可重构的处理阵列可以灵活的组合在一起去执行全并行逻辑、流水线逻辑和多流水逻辑,从而提供了阵列大规模数据处理的能力,可以对算法中相应的大规模并行或流水逻辑进行加速。例如算法中的级联分类器的分类,就是一个单流水和多流水混合的过程。其中,四个可重构的处理阵列的交互通讯是通过共享内存实现,这种通讯机制非常适合AdaBoost算法中数据具有局部性强和数据运算前后规整的特点。第二个方面:四个可重构的处理阵列支持水平扩展和垂直扩展,从而可以实现虚拟的尺寸扩张。这意味着可重构阵列可以很好的支持算法中由于窗口伸缩变化导致的数据流图尺寸的变化,以及由于输入图像尺寸的变化导致的数据流图变化。可重构的处理阵列具有虚拟的水平扩展和垂直扩展能力,非常适合于长数据流图和宽数据流图,可以极大地提高阵列内部的数据处理能力。第三个方面:内部的多个可重构处理单元可以以块的方式组合起来,构建不同尺寸和形状的计算块,完成算法内部多样的数据需求。例如在分类器的每一级,内部有大量的特征值的求解操作,需要内部PU之间灵活地组合在一起,构成并发的特征值求解过程。此外,内部多个可重构处理单元之间灵活的块运算方式还可以很好地满足图像预处理,积分图像生成。在图7的左半图(a)中,以RPAO为例进行阐述,其他的阵列和RPAO相似。RPAO完成了上述计算可重构的三个方面。其中,上述计算可重构是受图7的右半图(b)所示的配置机制控制的。解析控制器会分发出两类配置信息(A type context和B type context)到配置接口和数据接口。其中A类配置信息是负责计算的可重构配置。如图7的右半图(b)所示,为参数在线配置可重构的原理图,其中,参数主要是指输入图像的尺寸、分类器级数以及窗口扩大时的尺度因子。这些参数影响着检测率和检测时间。在不同的应用场合下,对检测率和检测时间的要求是不同的。因此,架构有参数在线配置可重构的能力,可以避免冗余计算,在满足需求的情况下,降低能耗。本架构具有可重构的能力主要是归结于解析控制器具有计算配置和参数配置的能力。如图7的右半图(b)所示,当图像输入尺寸变化时,配置机制可以调节阵列的虚拟扩展能力去满足图像的处理。此外,如果改变分类器的级数或者尺度因子,那么映射分类器和特征值计算逻辑到流失线上的硬件资源也会改变,从而实现资源的平衡调整,避免多余或者不足的运算情况发生。根据本发明实施例的用于物体检测的基于AdaBoost算法的可重构装置,基于阵列化的可重构架构设计,充分利用了 AdaBoost算法与可重构运算的相互适应的特点,可以灵活地满足多样的计算需求,同时内部灵活的块组织方式和阵列扩展方式,使得可以以最少的硬件资源完成多样的运算需求,提高执行效率。另外,具有灵活的控制流和数据流,可以依据参数的要求,通过解析控制器的配置重打包处理,反应到计算资源的调节上,从而实现在线参数配置,平衡冗余的计算资源,降低能耗。应当理解,本发 明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范 围由所附权利要求及其等同限定。
权利要求
1.一种用于物体检测的基于AdaBoost算法的可重构装置,其特征在于,包括: 图像输入输出模块,用于接收输入的第一图像,并输出作为处理结果的第二图像; 多个处理阵列模块,用于根据设置的计算配置参数和虚拟扩展参数对所述第一图像进行处理计算; 乘加阵列模块,用于在所述多个处理阵列模块对所述第一图像的处理计算过程的乘加运算进行处理;以及 解析控制模块,用于根据控制信号控制向所述多个处理阵列模块的所述计算配置参数、所述虚拟扩展参数的输入和所述多个处理阵列模块的处理数据的输出。
2.根据权利要求1所述的用于物体检测的基于AdaBoost算法的可重构装置,其特征在于,还包括: 存储模块,用于对所述多个处理阵列模块提供数据存储;以及 传输模块,用于在所述图像输入输出模块、所述多个处理阵列模块、所述乘加阵列模块、所述存储模块和所述解析控制模块之间传输所述数据和所述控制信号。
3.如权利 要求1所述的用于物体检测的基于AdaBoost算法的可重构装置,其特征在于,所述处理阵列模块,进一步包括: 多个可重构的处理单元(PU),用于对所述第一图像中的像素进行积分计算; 配置接口( Cl),用于根据所述计算配置参数和所述虚拟扩展参数对所述多个可重构的处理单元进行计算配置; 数据接口(DI ),用于传输所述多个可重构处理单元的数据;以及 配置存储器(CME),所述配置存储器分别与所述配置模块和所述传输模块相连,用于将所述计算配置信息发送至所述配置接口。
4.如权利要求3所述的用于物体检测的基于AdaBoost算法的可重构装置,其特征在于,所述多个可重构的处理单元之间以块的方式进行组合。
5.如权利要求3所述的用于物体检测的基于AdaBoost算法的可重构装置,其特征在于,所述配置存储器具有异步传输的功能。
6.如权利要求1所述的用于物体检测的基于AdaBoost算法的可重构装置,其特征在于,所述多个处理阵列模块之间具有共享内存,所述共享内存用于存储所述多个处理阵列模块在所述处理计算中产生的临时数据。
7.如权利要求1所述的用于物体检测的基于AdaBoost算法的可重构装置,其特征在于,所述多个处理阵列模块和所述乘加阵列模块通过第一通道进行交互运算。
8.如权利要求1所述的用于物体检测的基于AdaBoost算法的可重构装置,其特征在于,当所述图像输入输出模块检测到输入图像大小变化时,所述解析控制模块还用于通过控制所述控制信号调整所述多个处理阵列模块的虚拟扩展参数。
9.如权利要求1-8中任一项所述的用于物体检测的基于AdaBoost算法的可重构装置,其特征在于,所述虚拟扩展参数包括水平扩展参数和垂直扩展参数。
10.如权利要求1所述的用于物体检测的基于AdaBoost算法的可重构装置,其特征在于,所述解析控制模块通过控制算法的级联级数缩放因子调整所述计算配置参数和所述虚拟扩展参数。
全文摘要
本发明提出一种用于物体检测的基于AdaBoost算法的可重构装置,包括图像输入输出模块,用于接收输入的第一图像,并输出作为处理结果的第二图像;多个处理阵列模块,用于根据设置的计算配置参数和虚拟扩展参数对第一图像进行处理计算;乘加阵列模块,用于在多个处理阵列模块对第一图像的处理计算过程的乘加运算进行处理;解析控制模块,用于根据控制信号控制向多个处理阵列模块的计算配置参数、虚拟扩展参数的输入和多个处理阵列模块的处理数据的输出。本发明的实施例可以以最少的硬件资源完成多样的运算需求,提高执行效率;还可以实现在线参数配置,平衡冗余的计算资源,降低能耗。
文档编号G06T1/20GK103247019SQ20131013417
公开日2013年8月14日 申请日期2013年4月17日 优先权日2013年4月17日
发明者尹首一, 欧阳鹏, 刘雷波, 魏少军 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1