采用Blackfin处理器的可视化交通标志识别
如果在高速公路上以142 km/h车速驾驶,首先导航系统指示1小时的车程到目的地还有80 km,然后公路的右手边出现了交通标志,取消了全速率限制。司机没注意到80 km/h的速度限制,而且也没有存储在导航系统中。在这种情况下,你就会由此受到到275€欧元的罚款,扣4分并且吊销驾驶执照两个月。
各种适用的速度限制可以通过导航系统或者可视化系统(基于视频的系统)确定。在最新一代的导航系统中,速度限制已经存储下来,但是,对于临时的变化(例如,建筑物或者由交通密度控制的标志)和最新版地图升级以后竖立的标志,还没有存储的。采用基于视频的系统,它并不是总能够明确无误地将标志对应车道,它还需要精密定位相对于车道的标志。将导航系统和基于视频的系统相结合就可以得到最佳结果。
被动驾驶辅助系统的优点是总有目前道路上允许的速度限制的最新信息。采用主动驾驶辅助系统,如果远远超过允许速度,还有可能主动地刹车;通过扩展标志的识别,在停车、让道、禁止超车和红灯等标志出现时可能采取某种动作。
Blackfin处理器系列中的交通标志识别
作为驾驶辅助系统工程的一部分,交通标志识别系统是采用Blackfin系列中的ADSP-BF561处理器开发的。这种处理器提供很强的计算能力,因为它具有两颗对称的内核(双核处理器)。但是,只有一颗内核用于交通标志识别。第二颗内核产生覆盖图,在一个监视器上显示它。监视器仅仅用于开发环境。汽车中安装的一系列控制单元无需监视器,因此一个内核就足够了。通过CAN总线实现与汽车网络的通信。
基于照相机系统的硬件概念 < Translation of graphics > CMOS Image Sensor = CMOS图像传感器 Sync = 同步 Data = 数据 CLK=时钟 I2C=I2C串口 CL=清零 CAN= CAN总线 FBAS/CVB= CAN Trans = CAN总线传送
支持汽车安全和驾驶辅助系统 Blackfin对称多处理器用于驾驶辅助和视觉系统 现实世界检测和数据转换 后视系统 自适应巡航控制系统(ACC)和防碰撞系统 车道偏离警告系统 ….检测
 图1: 基于Blackfin处理器的图像处理开发系统框图 |
用于图像处理的基于Blackfin处理器系统的结构本质上都是一样的,唯一的区别就是采用的软件不同。如上面框图(图1)所示,系统包括一个Mircon(MT9V022),的CMOS VGA显示分辨率传感器(MT9V022),提供黑白图像。因为Blackfin处理器有两个视频兼容接口(PPI,ITU-BT656标准兼容),所以它无需附加元件就能够与这些传感器通信。PPI接口可以按照16 bit的最大数据总线宽度进行编程。另外,它还有一个数据同步时钟(PPI_CLK)和三条同步线,分别用作HSYNC水平同步、 VSYNC垂直同步和FIELD SYNC场同步。Blackfin处理器系列的传感器配置通过I2C总线兼容接口(TWI)实现。这样就保证图像传感器和Blackfin处理器之间的完整连接。在许多情况下,图像处理系统需要的存储空间要大于如今的处理器内部可用空间。鉴于这个原因,Blackfin系列的每种处理器都有一个SDRAM接口。这样就可以快速地访问最大尺寸达512 MB的数据和指令。下述系统为了支持监视器,需要3 MB的外部存储器。监视器通过一个ADI公司提供的NTSC/PAL视频编码器(ADV7197)连接到第二个PPI接口。这样就意味着不仅可以显示来自传感器的图像,也可以显示信息,例如在输出图像中可以显示(覆盖)的结果数据或覆盖标志(覆盖图)。在SDRAM中进行图像形成,并且采用提供的DMA通道将该图像传送到监视器,目的是不影响处理器的计算能力。如果没有监视器支持,就无需外部SDRAM存储器进行交通标志识别。与汽车的通信通过一个外部的CAN控制器进行,CAN控制器经一个SPI 接口连接到Blackfin处理器。报警消息转发给汽车,然后提供信息(速度)。好几款Blackfin处理器都带有内置的CAN总线接口。
TSR算法模块
成功的目标识别需要几个算法模块(见图2)。
Sobel=Sobel滤波器 Hough Transform = 霍夫变换 Kategorisierung=分类算法 Kreissuche=圆圈搜索 Zahierkennung=数字识别 Verfolgung=跟踪模块 Ausgabe=输出 (Sobel滤波器,霍夫变换,分类算法,圆圈搜索,数字识别,跟踪模块,输出)
 图2:TSR算法模块 |
Sobel滤波器提供一个输出图像,其中只提供边缘和边缘相应的方向数据。
霍夫变换搜索圆圈,因为在德国限速标志及其取消标志都是圆圈。变换结果是相应的极坐标。
在分类算法中,结果会出现多个圆心,这是由于观测失真引起的。
圆圈搜索模块产生一个由圆圈半径和坐标组成的表格。
在数字识别模块中识别交通标志中的数字。这样就必须利用圆圈搜索模块中确定的坐标把标志恢复原样。借助于交通标志数据库比较交通标志时,必须按照数据库的容量容对所有的标志做内插。为了比较,首先对数字进行预滤波,然后采用一种相关技术与数据库中的数字进行比较,最后确定数字。 跟踪模块提高了精度,因为一个交通标志可以被重复检测。
交通标志被成功识别后,其结果输出到监视器和(或)通过CAN总线。
框架的概念
除了并行计算单元,背后的软件框架也决定了算法可能最快的处理速度。它保证了在恰当的时间执行单个算法模块,而且能以最短的访问时间准时提供计算所需要的数据。这两个任务具有不同的特点。算法的时间控制是一种典型的控制器任务,它涉及到有条件的代码执行,具有不同长度的数据类型的装入和存储操作,以及对同步和异步结果的快速响应。独立于处理器以及因此在时间上并行的数据传送(DMA通道)是数字信号处理器(DSP)的典型功能。Blackfin处理器系列的体系结构结合了这两种功能。四向联合高速缓存逻辑支持对外部存储器的高效访问。这就意味着数据和指令都不必重新加载就能重复使用。如果对数据和指令的访问是可预知的,它们也可以从DMA通道进行传送。
概念的比较
高速缓存的概念:
- 像在PC上一样可编程 - 算法可用于完整的图像 - 可以加速对数据和指令的一次性访问(高速缓存线触发的填充操作) - 大幅度加速重复访问数据和指令 - 可以采用特殊指令使得数据和指令在使用之前被转移到高速缓存中(预取) - 可以在任何时候把代码复制回PC,而且是可执行的。
DMA概念:
- 数据以小分组形式转移并处理 - 数据分组转移不影响计算内核 - 中断通知计算内核新的数据已经可用 - 可以同时加载多个数据分组 - 可以自动加载图像细节和帧(2D-DMA) - 切断高速缓存逻辑,可以用作内部存储器,并且还可以使用。
基于高速缓存逻辑的概念提供非常高效的数据吞吐,所以算法的格式在从PC转移到嵌入式系统时一定不能改变。因此,代码可以随时转移回到PC。基于DMA传送的概念可以为此应用提供更优的结果,因为什么时候需要多少数据是可能预知的。DMA通道与计算同时开始,保证按时为将来的计算提供数据。另外,在一次闭合序列中提取较大量数据的效率要高于由高速缓存逻辑触发的多条高速缓存线填充的操作。
当然,混合形式也是可能的。能够将自发地收集或存储的数据放置到由高速缓存逻辑监视的内存区域中。对于需要可预测的数据,使用DMA通道是最高效的解决方案。
软件解决方案的优势
独立的数据转移、并行计算单元和高时钟频率处理器都可以通过软件执行(C,C+ 或者汇编语言)高度复杂度的图像处理算法。运算结果达到的灵活性可以节省成本, 加速实现可升级软件,其功能可以通过软件进行扩展。依赖于具体情况的应用实 现也是可以预想的,例如,在车辆前行和停车辅助以及倒车时摄像机换向,可以 执行交通标志识别和车道变化辅助功能。
并行指令执行
从下面的例子可以看到,乘法器和累加器单元并行工作,可以在一个时钟周期内执行多达8条指令。
C Implementation = C语言编程 Assembly Implementation (main portion) = 汇编语言编程(主要部分) No cycle overhead for loop Single Cycle Instruction: (Dual 16bit MAC Operation and four 16bit loads) = 没有用于循环单周期指令的开销:(两次16 bit MAC操作和四次16 bit的数据加载) 1st Addition = 第一次加法 2nd Addition = 第二次加法 load = 加载 1st Multiplication = 第一次乘法 2nd Multiplication = 第二次乘法 This 64 bit instruction word results in eight instruction to be executed on Blackfin in a single cycle =此64 bit指令字的结果是在单时钟周期内Blackfin处理器可以执行8条指令 Quad ADD/SUB = 四次加减法 No cycle overhead for loop Single Cycle Instruction: (Quad 16bit ADD/SUB Operation and four 16bit loads) =没有用于循环单周期指令的开销:(四次16 bit 加减操作和四次16 bit的数据加载) Dual 16bit Addition = 两次16 bit加法 Dual 16bit Subtraction = 两次16 bit减法 2*16bit loads = 两次16bit加载
Blackfin处理器的专用矢量和视频操作
大量专用的向量和视频指令可以更快地执行经典的图像处理算法。这些指令可以在一个周期内执行。下面给出了这一系列指令中的若干命令。 两次16 bit加法,结果调整到0~255的取值范围内 四次8 bit加法 四对独立字节求平均值 四对字节的绝对差值求和 求最大最小值(矢量搜索,VIT_MAX) 限制到最大或最小值(矢量最大值,矢量最小值)
适合汽车应用的Blackfin处理器系列
ADI公司和英特尔公司合作开发的Blackfin处理器内核是一种用于处理音频、视频和数据信息的嵌入式多媒体处理器。自2001年起投放市场以来,它结合了微控制器(MCU)的功能和高性能DSP的特性和功能。创新的汽车工业系统需要功能强大的处理器。Blackfin处理器系列的性能从时钟频率为400 MHz的"单内核"多种处理器到时钟频率为500 MHz的"双内核"处理器。Blackfin系列处理器是软件代码兼容的处理器,所以从低端到高端性能的可升级驾驶辅助系统使用它可能都非常划算。
Performance Integration = 性能集成 Time = 时间 Symetric Dual-core = 对称双核 Single-core = 单核 Under consideration = 正在考虑中 In development = 正在开发中 Note = 注 PPI: Video-Interface = PPI: 视频接口
 图3: Blackfin处理器系列 |
应用
Blackfin处理器系列可以用于许多的汽车电子设备。在特殊的系统中,例如驾驶辅助系统、导航系统、汽车射频系统、免提系统、音频放大器和娱乐系统等,它们都要求低功耗和高计算能力以及涉及到的控制功能。
在驾驶辅助系统中,Blackfin处理器适用于交通标志识别、智能灯光控制(汽车主灯和近光灯控制)、车道变化辅助、盲点识别、后视照相机和停车辅助、距离控制系统(ACC)、夜视仪辅助和智能安全气囊(人体识别和分类)等应用,还有适合于激光雷达、雷达和视频传感器的接口。
结论
展望未来,驾驶辅助系统会像现在已经采用的ABS和ESP系统一样普遍,因此使驾驶非常轻松,非常安全。 目前虽然还是一种设想,但并不是难以相信的--在高速公路上以130 km/h的车速驾驶,非常轻松地读书,同时,雷达、激光雷达和视频传感器记录车辆的环境,所以系统不仅控制发动机而且控制整个汽车。当到达指定的高速公路出口时,切换到独立驾驶,享受通往最终目的地的弯弯曲曲的乡间小路的乐趣。
|