最新新闻
我要投稿
联系电话:027-87592219/20/21转188
投稿邮箱:tb@e-works.net.cn
您所在的位置:首页 > 智库 > 智能装备

基于FPGA的铁轨检测算法设计与研究

发布时间:2011-10-09 来源:EDN
本文实现基于FPGA的铁轨检测算法,首先完成OpenCV程序仿真,然后移植到FPGA构建的硬件系统中,可以成功检测出铁轨所在区域,并在一定条件下进行铁轨智能延长。研究结果表明,检测一幅分辨率为640×480图像,大约需要30 s,如果应用于实时视频流系统中,则硬件平台设计需要进行精简,以提高速度。也可考虑基于硬核、多核技术,来提高处理速度,以满足实时视频流处理。

1 基于FPGA的嵌入式系统开发流程

    设计一个嵌入式系统,主要包括硬件平台搭建和应用软件编写。基于FPGA技术,硬件平台搭建和软件编写都可在相应的软件平台上完成。EDK(Embedded Development Kit)是Xilinx公司开发嵌入式系统的套件工具。EDK套件工具主要包括硬件平台产生器、软件平台产生器、仿真模型生成器和软件编译调试等工具,利用其集成开发环境XPS(platform studio)可以方便地完成嵌入式系统的开发设计[1],设计流程如图1所示。

 嵌入式系统设计流图

图1 嵌入式系统设计流图

2 硬件平台搭建过程

    分析系统需求中,铁轨检测主要是进行图像的分析处理,包括三个主要部分:图像输入、图像处理和结果显示。本项目使用依元素公司生产的Xilinx Spartan-3a系列xc3s700a的FPGA开发板,软件版本为Xilinx10.1。图像输入有下列途径:USB接口、RS232串口、100 M以太网接口、EDK套件XMD调试平台直接下载等。本文将图像数据转换为.ELF文件格式,直接烧写入Flash中。本文不追求实现视频流处理,并且图像要多次使用,源图像存储在Flash中最合理。图像处理由Microblaze软核系统和检测程序共同完成;图像显示由TFT控制器通过VGA输出信号在液晶显示屏显示。具体硬件平台搭建过程如下:

    (1)按照XPS应用向导,建立最小系统,配置Microblaze软核系统参数和添加UART外设。

    (2)添加IP核,并连接到相应总线,主要为内存控制器、通信控制和GPIO等。

    (3)添加自定义的IP。尽管Xilinx提供了许多免费IP,但是免费的IP不能满足用户的所有设计。本项目需要自定义的IP有用于控制液晶显示的TFT_Controller和用于内存地址总线及数据总线复用的Mux_logic IP。PLB_TFT_Controller主要产生RGB信号、行场扫描、同步信号等,Mux_logic IP用于对SDRAM和Flash总线复用进行控制,输入为SDRAM和Flash的控制IP产生的地址总线信号和数据总线信号及使能信号,输出为复用地址总线、数据总线信号。

    (4)配置相应IP,并进行信号互联,将需要控制硬件的port连接到外部。分配地址空间,添加UCF配置文件。

    (5)生成硬件比特流文件和硬件驱动文件。硬件结构原理图如图2所示。

 硬件构架原理图

图2 硬件构架原理图

3 软件设计过程

    3.1 铁轨检测原理

    本项目中铁轨检测主要考虑两种方案[2]:基于边缘特征和基于区域特征。(1)基于边缘特征检测方法先在全局范围检测出边缘线,再通过模型或特征限制条件,从边缘图中获得目标边缘。(2)基于区域特征的铁轨检测,利用区域统计特性,即铁轨区域区别于周围环境独特统计特性来判断铁轨区域。两种方法中,前者检测到的铁轨线较为准确,但是其对二值化阈值严重依赖;后者抗噪性较好,但检测的铁轨线不够准确,本文主要讨论基于区域特征的铁轨检测。

    基于区域特征铁轨检测流程如图3所示,分为四个步骤:

    (1)降低分辨率。在滤波之前,先降低图像分辨率,以消除图像细节,也可减轻后续处理的计算负担。

铁轨检测算法流程

图3 铁轨检测算法流程

 

3