基于数据流自动加速器车牌识别片上系统的FPGA实现.docx
《基于数据流自动加速器车牌识别片上系统的FPGA实现.docx》由会员分享,可在线阅读,更多相关《基于数据流自动加速器车牌识别片上系统的FPGA实现.docx(12页珍藏版)》请在冰豆网上搜索。
基于数据流自动加速器车牌识别片上系统的FPGA实现
基于数据流自动加速器车牌识别片上系统的FPGA实现
FPGAimplementationofalicenseplaterecognitionSoCusingautomaticallygeneratedstreamingccelerators
基于数据流自动加速器车牌识别片上系统的FPGA实现
摘要
现代的FPGA平台提供了硬件和软件设备用于构建芯片(SoC),以满足应用程序的需求。
设计师可以通过从一个预先定义的外围设备和一大批固定IP功能由硬件选择和一个基于总线系统的硬件和软件基础设施提供新的硬件,通常表示使用的RTL。
硬件加速器,提供应用特定扩展到一个系统的计算能力是一种有效的机制,以提高性能和降低功耗。
现在缺少的是一个综合的方式来确定应用程序的计算的关键部分,并创建一个带有加速器从最小的设计投入高级别代表。
在本文中,我们提出了一个自动化的方法和工具,产生的加速器。
我们采用了基于FPGA的车牌识别在执法使用(LPR)的系统方法。
加速器过程流数据,并支持一个编程模型,可以自然地表达了高效的硬件实现嵌入式导致大量应用。
我们表明,我们可以实现一个总体车牌识别应用程序的速度从1.2倍到2.6倍,从而使场景下的现实道路实时功能。
1.
引言
嵌入式系统要求设计承受紧张的工作时间将产品推向市场,功耗,面积,性能和成本的限制。
不断增长的NRE与掩码设置为规模较小的晶体管几何费用使ASIC的标准单元设计,只适用于有明确的功能,预计不会改变在产品寿命相当高容量的产品。
使用FPGA可重构计算已经合并在过去几年里在许多情况下作为一个潜在的替代技术。
与此同时,出现了在工具进行硬件设计过程中对算法的抽象,以进一步减少对市场的时间深入研究和商业活动。
一个建筑自动化工具应该能够结合互动架构开发,硬件软件自动分区和一个高效率的映射一个或多个内核的可重构织物。
通常情况下,如在Virtex系列FPGA的,或者在AlteraFPGA合成的Nios处理器的PPC405合理标量处理器在处理非经常执行或以指令和数据级并行度低有条件的代码效率,更有效比映射盖茨将相同的代码[14]。
不过,标量处理器非常适用于高通量,并行代码由于并行的有限支持(指令,数据和任务),因为从内存层次结构的有限的内存带宽,主要核心的狭窄管道效率低下。
我们已经开发了一个自动化的过程,流数据流图图(sDFG)到主标量核心加速器。
一个sDFG表示计算内核的进程数据流与相对有限的生命和确定的内存访问模式。
的存取模式,可以说从sDFG独立的计算。
流模型解耦的内存访问序列从计算的描述,从而使得上述两个项目更容易,更可重复使用的每一个定制。
以某sDFG示例图给出后,当我们讨论语文能力要求的应用。
要显示的流模型在嵌入式系统的适用性,我们描述这个过程是如何在一个自动车牌识别(LPR)的系统设计中。
这是一个独立的“智能摄像机“实施运行使用的Virtex-IIPro的FPGA的[19]一个SoC设计方法学的实时操作系统。
虽然在手的申请是lpr,“智能摄像机“可以在一个像汽车,安全,家庭监护和控制用于各种应用,等等,目的是要卸载从可对应的标量计算内核PPC处理器进入大门。
我们的方法生成从设计,遵循一个预定义模板空间大的硬件加速器。
加快应用程序,所需的带宽和加速器所产生的大小可根据应用要求调整,区域约束和用户参考。
该研究的贡献如下:
我们提出了一个可重构结构中产生的协处理器的流模式的使用情况和我们大纲的框架为基础的方法,用于评估潜在的一整套解决方案,我们详细介绍如何在这种方法是一个自主的车牌识别系统
本文的其余部分组织如下:
第2节给出了流编程范例简要背景资料,并解释如何利用技术发展趋势有利于在通讯计算。
第3节介绍我们的工具方法,以及第4节讨论车牌识别中的应用和平台。
第5节介绍了该方法的实验评估,第6节给出了一个相对以前的工作领域总结,第7节礼物的结论。
2.流规划模型
我们的方法产生的过程和产生的协处理器的数据流[1]。
流编程模型利用了“算术强度“的执行单元进行聚类在一起,揭露数据移动和分期向程序员[6]的超大规模集成电路技术。
根据流模型,数据获取和储存单位脱钩计算单位,使每个人可以单独进行优化和更有效。
程序员在内存中描述的形状和位置的数据流描述符使用,并计算使用sDFG。
这种分离允许流接口单位采取可用带宽的优势,预取,然后才需要的数据。
内存访问不计算使用之前,这对于积极的预取数据是由数据路径请求允许sDFG操作。
该架构成为对少峰潜伏期敏感性,访问一个数据元素的内存子系统的平均带宽而定。
虽然传输数据流编程接口单元是利用流描述符(图1)。
甲流是由元组描述符(类型,Start_Address,步幅,跨度跳过,大小)1表示,其中:
•类型表示多少字节的每个元素都(类型为字节0,对于16位半字,等1)
•Start_Address代表的内存地址第一个流元素。
•步幅是元素的个数间隔间内,连续两次流元素。
•跨度是元素的聚集数申请前跳过抵消。
•跳过是偏移量为群体间的应用span元素后,步幅已被应用。
图1.为逐行描述矩形流访问模式
•尺寸是流中的元素数。
另外从流描述,内核计算是表示使用流式数据流图(sDFG)语言。
一个sDFG由节点,代表基本算术和逻辑运算和有向边代表一个操作上的前一个操作的输出依赖[3]。
每个图节点描述了中流作业类型,从父节点的大小和输出结果的符号传入的投入。
输入操作数被指定为相对引用,而不是以前的节点命名寄存器。
此功能可帮助消除了不必要的争论命名寄存器以及与寄存器重命名相关的开销。
该图的边表示节点之间的流或外部流之间或源/汇和sDFG数据。
3.基于模板的硬件代
3.1.方法论
我们已经制定了一个框架,自动生成可综合的流加速器。
我们的做法是选择而不是产生一个由高级语言通用表示,从一个给定的硬件设计精良的框架设计。
我们生成高度优化,在性价比上给定的空间的各种应用,用户的要求,以及系统的其余部分计分的功能设计。
该工具流的要点如下:
•一个共同的模板一个简单的数据流体系结构,数据流处理的基础上,
•迭代引擎实例对系统参数的设计,达到系统和用户的限制,开始搜索下的空间迭代法,
•一个调度程序,调度和执行sDFG硬件配置的基础上由迭代器设置参数,
•一个RTL构造引擎,优化的数据路径和流接口模块的Verilog代码,
•评估阶段,综合了FPGA的设计和生产质量指标,如面积,和时钟速度。
数据路径和流接口各有各的加速生成过程。
本节的每一个细节,这些发动机及其接口中的一个休息。
为了简便起见,我们只纲要加速器的要点模板,但没有详细的硬件生成算法。
图2.加速器模板由数据路径和流接口单元的模板。
采用不同的优化准则,在每一种情况
3.2.建立模板
建筑模板由两部分组成:
流接口单元和数据路径(图2)。
流接口单元由一个或多个输入和输出流模块,可以生成相匹配的流描述特征,以及基于总线的系统的特点和数据流的路径。
流接口单元用于从系统内存或外设的数据,通过系统总线和展示,责令其数据路径,以及把处理后的数据返回到内存。
该流队列和存储单元的对齐传入流数据,并提交到数据路径顺序。
该存储元件,其规模数量,取决于他们的互连流描述符和数据路径请求带宽,这样的元素数目至少等于流高峰带宽要求的数据路径。
公交线路缓冲区用来暂存从系统总线访问的数据,并过滤他们到流队列时,有足够的空间。
该地址产生单元(AGU的)是硬生成流描述内存访问模式。
数据路径可以生成执行一个给定的sDFG以匹配用户和系统规范的空间限制。
数据路径模板是一个可重构的互连生产和消费数据流的功能单元,通过可重构的联系和沟通。
的联系是在一个功能单元片输出链,并有一个输入和潜在的多个输出。
他们没有实现的一个明确寻址寄存器文件的需要变延迟线。
该模板还允许将一个名为可使用的sDFG从一个sDFG传递到下一个迭代值和实施交叉迭代的依赖,同时也将参数传递给程序寄存器组使用。
此外,规划模型减少了蓄电池的使用使操作[3]
数据路径的控制逻辑和空间分布接近相应的功能单元,多路复用器或行队列。
我们避免使用中央控制单元,如一个VLIW控制字,以减少互连延迟。
各职单位类型(ALU的,乘法器,移位器等),具体操作在类型(例如一个ALU只有加法和减法)执行,该功能单元的大小和数量的存储单元的宽度一个FIFO,职能部门之间的互连(通过FIFO的),从和实现流接口带宽的单位,是数据路径的可重构的某些参数。
请求数据的数据路径从输入流采购接口单元和数据输出流接口单元下沉。
一个简单的,需求驱动两个模块之间的协议是用于实现通信。
从流接口单元失速信号的数据路径允许一个较完善的存储系统少。
从任何一个流接口失速信号会导致引擎失速的加速器。
4.车牌识别
4.1.应用
车牌识别(LPR)的是智能交通技术,不仅承认车辆的形式,但每个唯一的区别。
一个车牌识别系统用于电子收费或超速罚单收集,安全访问控制,执法车辆鉴定等每个应用程序都有不同的性能和精度要求。
例如,在安全访问控制,任何字符预测错误是不能接受的,因为这可能会允许擅自进入(假阳性)或拒绝接纳认可人士(假阴性)。
另一方面,在库存控制中的应用,假识别可能在某些情况下可以接受的,如果错误可以更正。
影响的因素的车牌识别系统设计包括:
•车辆速度
•体积流量
•相机牌照的距离
•环境光照
•板式和品种
•天气等
一个车牌识别算法三个处理阶段:
车牌定位,字符分割和光学字符识别[8]。
车牌检测是在整个系统中潜在的错误,因为该系统将引导远离任何解决最具挑战性,最关键的阶段。
在这个阶段的目的是检测许可的坐标在典型的假设,他们的形状是矩形包围盒板。
一旦取得这样的成绩,字符分割检测盒中的字母数字字符的位置,和光学字符识别(OCR)验证对一个预装的符号表中的字符。
在车牌识别系统在这个文件中使用的是[8]中使用的算法的扩展。
该算法是基于许可证的地方的结构特点,而不是根据颜色变化[10]和不同光照条件下更稳定。
它是基于观察到的车牌是几个字符组成的图案
具有高对比度对于它们周围的环境。
语文能力要求的应用程序,类似于计算机视觉和模式识别很多应用,包括一个低和中间(或高)级处理的一系列步骤。
低层次的处理是应用在作为一个像素的影像,消除不必要的视觉信息,增强的重要线索,以便进行进一步的语义分析过滤器系列。
中级和高级
分析提取物和更高层次的对象,如过程车牌,并试图分析现场进一步检测,以特定类型的对象的存在,明白它的意思或内容,对象,研究对象的相互作用,等等。
语文能力要求遵循类似的处理模式,如图3所示。
在我们的系统中使用的语文能力要求算法的处理步骤详见图5以及一个一个的车辆处理后的图像的例子。
特别灰度图像传感器通常用于汽车应用提供增强的红外(IR)的弱光照条件下,全球同步总像素曝光快门和高动态范围灵敏度。
打开操作是指对整个图像侵蚀运算膨胀运算,其次是整体形象onthe使用相同的面具,而关闭操作是公开[7]逆。
的侵蚀与扩张与像素坐标(r,c)在图像我的定义如下:
其中D1和D2定义的面具appliedon窗口的像素。
打开和关闭的定义如下:
在操作员的侵蚀一个二进制图像的基本作用是削弱前景像素接近大面积的背景像素。
通常,这些像素噪声前应消除任何后续处理。
另一个运营商的作用是过滤掉前景像素具有不同形状的面具比集群。
增强的膨胀运算前景的地区,接近背景的地区。
打开和关闭过滤器是一种侵蚀及扩张破坏性较小的版本,分别为。
例如,开放式的影响,使用垂直3x9过滤口罩,如图4,其中的目的是要消除所有非水平前景像素显示。
一个开放水平和具有Nx1面具水平闭幕(7例在我们的例子)和随后的图像差分检测图像的垂直包括车牌边缘的垂直边缘,并在同一时间,去强调了(图5)水平线。
在牌照板的垂直边缘彼此相邻,使带有垂直1xN面具随后关闭了连接操作支撑相邻的垂直线之间的水平线他们。
所有的垂直线附近形成一个连通区域,其中包括车牌,从像汽车周边地区的噪音highvisual相反,树木,房屋,道路纹理等作为我们将在后面讨论,这种噪声的图片存在创造在执行应用程序的时间差别很大。
一个阈值函数转换成黑白图像。
连接组件标签扫描图像和分类成元件像素像素的连通性和强度值,即所有相邻属于同一个组件的强连通白色像素。
这些组件对应地区的是的车牌位置的候选区域。
这一步在结论中产生的包围盒的地区(BBS)的协调的LPR基于图像的低层次处理。
该阶段的下一步车牌定位,消除地区的降低有一个小的总信心值车牌的潜在地区。
图4.一个开放效过滤器使用一个垂直3x9面具。
与至少9
高度和宽度只有在至少3个垂直线将被保留。
我们运用几何的标准来计算的作为对车牌的性质为基础的加权和地区的信心组件总的信心:
•该地区的车牌必须在最低和最高值。
•在宽/高宽比必须在一定范围内。
例如,欧洲板宽比约为5:
1,而美国板为2:
1。
•像素的前景在该地区区域密度着称,数必须大于因为该地区主要是填补了阈值较大。
•该地区必须接近画面中心
在图5中的车牌区域具有最高的总的信心,是一个红色框标示。
申请筛选的最后阶段转变为每个不同的区域特征提取和验证。
该程序试图通过计算,以尽量减少在该地区的每个列的水平投影和背景中的所有列,其预测比阈值的像素设置与字符之间的字符板边缘和杂散噪声。
然后,连接组件的标签
如下创建字符区域和消除背景噪音。
经过特征提取,每个分区域进行比较,字母数字符号预装数据,最终的匹配基地。
匹配的是两个符号之间的像素明智的比较,以及每列的水平投影和各行的符号垂直投影的比较。
如果在一个阈值的差异,系统匹配,并宣布下一个字符的行动。
一个过滤的步骤中还包括了该算法的最后几个阶段,但没有解释清楚,因为这里的空间有限。
其作用是消除噪音,使车牌字符识别和分离更加容易,以调整字符为基础的数据符号表的大小相同。
4.2。
实现使用流加速器
形态滤波器具有指令和数据级并行,高度低的控制开销和操作在每个调用的整体框架。
我们手动分配上加速器并行代码执行,以及限制指令级并行顺序代码的嵌入式处理器。
表1显示了三个主要的LPR在一个ARM9处理器的输入图像的处理步骤的计算复杂性。
执行时间上的变化是由于连接的部件,因为在噪音环境的视觉形象的大数目。
例如,图像类似于图5所示的会导致应用程序花费大量的时间试图融入越来越大的连接组件通过在图像的多个通过了所有的前景像素。
在外面200的VGA(640×480)像素的图像中心半径实验中,我们所有的,连接组件都分配了一个价值较低的信心,而且往往是从与其他地区的进一步合并淘汰。
我们用我们的工具方法,以加快以及二值化图像的差分和开幕式和闭幕式形态滤波器。
通过合并中的所有单sDFG过滤器(如图6所示),我们消除浪费带宽来从主存储器处理帧来回。
表1.三张输入图像的周期分布
周期数
(10^6)
初始连接的部件数量
形态滤波器
连接组件标签和信心评价
特征提取和匹配
图片A
540
1029
21.20%
60.00%
18.70%
图片B
211
401
54.10%
23.10%
19.30%
图片C
147
219
77.30%
8.40%
10.20%
5.结论
我们提出了一个原型方法和工具来自动化这个过程中的硬件加速器的数据流的建设。
相对于其他建筑综合工具,我们利用基础工作框架的做法,是基于对实现良好的工程基础,并允许设置快速收敛到一个地区,高速高效加速器。
这种方法的重点,可并行而离开顺序代码是由标量处理器上执行的内核。
流编程模型允许对数据的访问和执行脱钩,并能独立这两个模块的优化,以符合应用程序和系统的要求。
我们发现这种方法是如何在一个车牌识别系统芯片使用。
这种方法便于现场升级的这样一个新的算法和无需昂贵的重新设计的新系统加速器系统。
除了车牌识别系统,我们的方法可用于多种应用,可以被视为自然,如通信,数字信号处理,多媒体,图像处理,流式过滤器等系列表达。
参考文献
[1]AmarasingheS.,ThiesB.Architectures,LanguagesandCompilersfortheStreamingDomain.Tutorialatthe12thAnnualInternationalConferenceonParallelArchitecturesandCompilationTechniques,NewOrleans,LA
[2]BanerjeeP.et.al.AMATLABcompilerfordistributed,heterogeneous,reconfigurablecomputingsystems.ProceedingsoftheIEEESymposiumonFieldCustomComputingMachines(FCCM),April17-19,2000,pp.39-48,NapaValley,CA.
[3]ChirisescuS.,et.al.TheReconfigurableStreamingVectorProcessor,RSVP™.Proceedingsofthe36thInternationalConferenceonMicroarchitecture,December
2003,pp.141-150,SanDiego,CA.
[4]ChirisescuS.,et.al.RSVPII:
ANextGenerationAutomotiveVectorProcessor.IEEEInternationalVehicleSymposium,June2005
[5]ComptonK.,HauckS..ReconfigurableComputing:
ASurveyofSystemsandSoftware.ACMComputingSurveys,vol.34,No.2,June2002,pp.171-210
[6]DallyW.J.,HanrahanP.,ErezM.,KnightT.J.,LabontéF.,AhnJ.H.,JayasenaN.,KapasiU.J.,DasA.,GummarajuJ.BuckI.Merrimac:
SupercomputingwithStreams.Proceedingsofthe2003SupercomputingConference,November2003,pp-35-42,Phoenix,AZ
[7]LeeJ.,HaralickR.,ShapiroL.MorphologicalEdgeDetection.IEEEJournalofRoboticsandAutomation,vol.3,issue2,April1987
[8]Jun-WeiHsieh,Shih-HaoYu,Yung-ShengChen.Morphology-basedLicensePlateDetectionfromComplexScenes.16thInternationalConferenceonPatternRecognition(ICPR),vol.3,pp176-179,August2002
[9]KathailV.,AdityaS.,SchreiberR.,RauB.R.,CronquistD.,SivaramanM.PICO:
AutomaticallyDesigningCustomComputers.IEEEComputerMagazine,vol.35,no.9,September2002,pp.39-47
[10]K.K.Kimet.al.LearningbasedapproachforLicensePlateRecognition.IEEESignalProcessingSocietyWorkshoponNeuralNetworksforSignalProcessing.Vol.2,pp.614-623,2000
[11]MencerO.,PierceD.J.,HowesL.W.,LukW.DesignSpaceExplorationwithaStreamCompiler.ProceedingsoftheIEEEInternationalConferenceonFieldProgrammableTechnology(FPT),December2003,Tokyo,Japan.
[12]PellerinD.,ThibaultS.PracticalFPGAProgramminginC.PrenticeHall,2005
[13]SchaumontP.,VernaldeS.,RijndersL.,EngelsM.,BolsenI.AprogrammingenvironmentforthedesignofcomplexhighspeedASICs.Proceedingsofthe35thDesignAutomationConference(DAC),June1998,pp.315-320,SanFrancisco,CA
[14]VidiuM.,Venkataramani,ChelceaT.,GoldsteinS.C.SpatialComputation.Proceedingsofthe11thInternationalConferenceonArchitecturalSupportforProgrammingLanguagesandOperatingSystems(ASPLOS),October9-13,2004,pp.14-26,Boston,MA
[15]H.ZieglerH.,HallM.EvaluatingHeuristicsinAutomaticallyMappingMulti-LoopApplicationstoFPGAProceedingsofthe13thInternationalSymposiumonFPGAs,February2005,pp.184-195,Monterey,CA
[16]AtomImagingTechnologies,
[17]CeloxicaCorporation,Handel-Clanguagereferencemanual,
[18]Citysync,http:
//www.citysync.co.uk/
[19]Virtex-2FPGAhandbook,