利用FPGA和嵌入式软核处理器实现高性能的罪犯抓捕系统
扫描二维码
随时随地手机看文章
由于高科技工具成为抓捕罪犯的武器中越来越关键的部分,因此执法机构和安全专业人员不断寻求更快更方便的数据收集和解读方式就不足为奇了。针对这一领域的应用越来越复杂,必须适应不断演变的要求,并把成本控制在机构的有限预算范围之内。鉴于此,具有高性能、灵活性和高成本效益等优势的可编程逻辑(PLD)解决方案无疑是一种理想的解决方案。
两个大学生团队利用FPGA和嵌入式软核处理器开发了两个抓捕罪犯系统的原型,一个是带无线自动追踪摄像机的警车支持系统,一个是防止安全系统被突破的指纹识别系统。盯住可疑对象不放-即使是高速情况下 当追踪行动启动时,警官只有很短的时间用来激活警笛、向控制中心作汇报并与其他巡逻队通信。由于这些事情的发生几乎是同时的,因此警官还依赖于车辆追踪系统把逃跑的犯罪分子锁定在视距内。然而,当疑犯在拥挤的交通中急速穿越时,采用固定位置摄像机的传统追踪系统很容易失去他们的踪迹。因此将需要这样一种车载系统:它能时刻盯住可疑车辆,同时让警官与现场及总部的同事共享和接收信息。图1:设计理念 韩国仁荷/弘益航空航天大学的学生开发出的板载警用车辆支持系统原型,该集成解决方案包含以下几个组件:• 无线自动追踪系统:可持续追踪可疑车辆,将车辆的图像显示在显示器中心。一部全方向移动的摄像机使用FPGA控制的步进电机实现上下左右的移动,可以通过快速反应捕获快速行进的车辆。• 自动语音告警系统:使用嵌入式处理器来实现MPEG音频解码,用于向逃跑疑犯发出警告。• HSDPA功能:提供实时数据和图像共享。• 基于FPGA的连接板载诊断系统(OBD-II)的接口:用于监视警用车辆的发动机性能参数。FPGA和嵌入式处理器的有机结合使该系统很容易实现图像、语音、图像和数据处理。在单系统中实现语音、视频和数据在技术平台方面,设计团队使用了Altera的DE2开发和教学板,这种板包含了Cyclone II FPGA、Quartus II设计软件和Nios II嵌入式处理器。单个Cyclone II FPGA支持整个系统的运行,可以完成图像处理、压缩、数据传送、MPEG音频解码、电机控制和OBD通信等功能。所有必要的组件都利用SOPC Builder系统设计工具装配在一起,从而允许设计团队设计一个模块,并可以经过修改用于或直接复用于其他应用。图2:自动追踪系统的架构自动追踪摄像机摄像机的图像处理模块将全方位移动命令传送给FPGA上的系统步进电机控制器。根据这样的命令,步进电机控制器可以产生操作信号脉冲,然后将这些信号发送给每个电机。摄像机的图像捕捉模块将模拟图像信息转换成DE2板上的ITU656标准数字流,并使用该数据流:控制自动追踪摄像机的左、右、上、下操作;支持视像共享系统和JPEG压缩的无线传送;提供车载显示。当警官需要启动摄像机的追踪模式时,只需将摄像机对准目标车辆,并按下DE2板上的一个按键。接着由同样在FPGA上运行的图像处理模块从目标车辆中提取平均颜色,并估计其位置。一旦车辆开始移动,全方位移动摄像机就开始对它进行追踪。该系统每隔30分之一秒就向电机控制器传送一次控制命令,速度是它的关键优势之一。捕获到的图像被存储在USB存储设备中,同时传送给警局命令中心。当然,追踪模式只适用于白天。实时JPEG压缩通常要求高性能DSP芯片或ASSP。在这个情况下,设计团队使用Nios II C到硬件的加速编译器(C2H)执行libjpeg前向离散余弦变换(DCT)函数来满足性能目标要求,而不需要外部处理器或DSP芯片。C2H编译器可以将时间关键的ANSI C函数转换成FPGA中的硬件加速器,从而提升它们的性能。图3:实现自动追踪系统的原理框图自动语音警告当车辆的自动追踪摄像机开始工作在追踪模式时,会触发自动语音警告功能打开,并向逃跑疑犯发出警告。在DE2板上100MHz的嵌入式处理器用于播放MPEG音频数据的定制指令集。最初回放性能是个问题,但通过在Nios II软核处理器中增加6?位乘法定制指令,设计团队将性能提高了2.5倍。定制的OBD-II接口连接OBD-II的接口不仅贯通了汽车电子设备之间的通信,而且也将诊断工具连接到发动机控制单元(ECU),实现汽车维护和监视。SOPC Builder UART组件连接到OBD-II接口,用于收集车辆行驶速度、燃油状态和车辆故障状态等信息。因此,设计团队能够利用Nios II定制指令的性能优势和C到硬件的加速功能创建一个高性能系统,为现场??提供帮助。由于使用了FPGA,团队可以灵活地根据需要提升性能,不需要增加时钟频率和降低功耗,也无需采用高速设计。当团队遇到要求修改硬件设计的性能问题时,他们只需重新编程FPGA就能应对这些变化。
将指纹转换成供认证据指纹识别技术具有很高的性价比和安全性,支持用于保护敏感数据和防止未授权进入系统的各种应用。传统的指纹识别系统基于PC或DSP芯片。然而,在PC上处理图像很慢,DSP芯片缺少支持全部所需功能的灵活性。FPGA则有效填补了高性能处理和系统灵活性之间的空白。来自中国华中科技大学的一个学生团队使用包含有Cyclone II FPGA和Nios II处理器的DE2板创建出了原型化的指纹识别系统,该系统充分利用了FPGA技术的高性能和灵活性优势。
快速而灵活的系统增强功能采用系统级可编程芯片(SOPC)方法,该团队成功开发出具有认证和集中管理功能的网络指纹识别系统。作为主机的PC运行着提供各种管理功能的软件。嵌入在Cyclone II FPGA上的50MHz Nios II/f内核运行相关算法以实现包含系统初始化、指纹收集、图像处理、主从通信和用户接口在内的各种功能。在SOPC Builder的支持下,该团队不仅能以高效的方式将各个组件集成到单个系统中,还能根据需要对各个部件进行配置。图4:指纹处理的次序以下是指纹识别系统的工作原理:当指纹收集器检测到手指存在时,它将从睡眠模式中苏醒过来采集图像,并提交最高质量的图像。DE2板上的12.5MHz SPI内核将图像数据传送给嵌入式处理器,由该处理器执行相应图像处理算法以完成对指纹的以下一些处理:• 模式发现:系统首先根据目标点周围的点的灰度等级值计算单点的方向,然后使用统计方法得到5x5的块模式,并在没有关于背景的明确条件下对块进行标记。• 图像滤波:系统将沿着脊线增强图像连续性,同时提高与脊线垂直的图像对比度,以分割相邻脊线。• 二进制化:图像脊线在滤波后将十分清晰,因此一个固定门限的二进制化功能可以将固定灰度值作为标准而将图像分割成黑白版本。• 脊线细化:在这个阶段,图像将经过并行的细化过程,这个过程会逐渐调整脊线,直到脊线薄成单个像素的宽度,从而为图像进行细节定位做好准备。• 定位细节:在这最后一步,系统对图案进行扫描以定位指纹的中心点。从细化的脊线图像开始,系统将定位指尖点,并分割这些点来评估指纹的唯一性。通过定制指令和定制外设,该团队极大地提高了图像处理算法的性能。由于要求52次乘法累加操作,设计团队设计了一条定制指令,该指令可在三个时钟周期内完成单次乘法累加操作,从而将没有定制指令时的36.4s时间缩短到用定制指令时的4.77s,使图像滤波性能提高了7倍;脊线细化要求对目标像素进行16次比较,该团队设计了两个定制外设,可在6个时钟周期内完成16次比较,从而将没有定制外设时的13.5s缩短到有定制外设时的2.67s,使其性能提高了5倍。当有人在终端提供他们的指纹和其他识别信息时,该系统会先在数据库中寻找匹配信息,以判断是否允许访问。系统的错误接受率(将不一致的指纹错误判断为一致的可能性)小于5%。它的错误拒绝率(将一致的指纹判断为不一致的可能性)小于20%。利用PLD深度挖掘罪犯就像警车支持应用一样,DSP器件或ASSP也可以用于指纹识别系统。然而设计团队发现,通过简单地实现Nios II定制指令和定制外设可以极大地提高处理速度。在优质的FPGA基础上,设计团队还集成了多个组件,从而减少了解决方案的复杂性、成本和功耗。大多数应用都需要一定程度的灵活性来满足性能和成本要求。这些团队展示了如何利用硬件来加速算法,从而允许以较低时钟频率运行,因此有效降低功耗和简化了总体设计。同时,他们还利用系统生成工具来帮助自己方便地复用和修改组件以用于其他应用。作者: David Auyeung高级嵌入式产品营销工程师Altera公司