0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于EP1C6芯片和DSP Builder工具实现行车道边缘检测系统的设计

电子设计 来源:郭婷 作者:电子设计 2019-10-15 07:49 次阅读

通过对摄像头读入的道路白线图像进行灰度变换,再检测出白线的边缘,这是实现智能车自动导航和辅助导航的基础。行车道检测系统可以应用于智能车的防撞预警和控制。该系统设计重点是边缘检测电路的设计。边缘检测电路包括图像输入缓冲电路、垂直方向的边缘检测电路、水平方向的边缘检测电路及对两部分检测的组合,最终通过阈值选择形成二值边缘图像。传统的方案大多采用单片机电路实现,设计流程和系统调试都比较繁琐,开发周期长。在实时图像处理中,由于处理速度要求较高,因此用以前的方法很难达到要求。实时图像处理常常需要对图像进行求和、卷积、边缘提取、图像分割及特征提取等不同种类、不同层次的处理。对于一些运算结构简单,但要处理大量数据的算法一般采用FPGA芯片来实现。通过FPGA实现信号处理可以取得出色的系统稳定性,提高控制精度,还可以大大减少开发周期,使设计人员的设计自由度加大。本文采用Altera公司的Cyclone EP1C6作为主控芯片,利用Altera公司推出的数字信号处理开发工具DSP Builder作为设计平台,通过DSP Builder SignalCompiler模块读取由DSP Builder和MegaCore模块构建的Simulink建模文件(.mdl),生成VHDL文件和工具命令语言(Tcl)脚本,进行综合、硬件实施和仿真,从而完成对整个道路边缘检测系统的设计。

1、系统构成及边缘检测原理

本系统中的主要模块是进行二维卷积操作的sobel边缘检测模块,它相当于硬件的协处理器。该系统从CF卡读入数据到边缘检测模块,使用Nios II控制数据流,采用DMA控制器在外部存储器(SDRAM和SRAM)之间传递数据,这些外部存储器相当于中间图像数据缓冲器。系统结构如图1所示。

基于EP1C6芯片和DSP Builder工具实现行车道边缘检测系统的设计

边缘是指图像中像素灰度有阶跃变化或屋顶状变化的那些像素的集合。它对图像识别和分析十分有用,边缘能勾划出目标物体轮廓,使观察者一目了然。边缘包含了丰富的信息(如方向、阶跃性质 、形状等),是图像识别中抽取的重要属性。微分运算有加强高频分量的作用,从而使图像轮廓更清晰。对于数字图像,微分可用差分近似代替,沿x和y方向的一阶差分可分别表示如下:

基于EP1C6芯片和DSP Builder工具实现行车道边缘检测系统的设计

一阶差分增强是有方向性的。为了增强图像中间任何方向伸展的边缘和轮廓,希望对图像的某种导数运算是各向同性的,而梯度运算恰具有各向同性特性。对于图像f(x,y)点上的梯度可定义为矢量:

基于EP1C6芯片和DSP Builder工具实现行车道边缘检测系统的设计

梯度幅度具有各向同性或旋转不变性,而且给出了该像素点灰度的最大变化率。采用微分锐化图像,会使噪声、条纹等得到增强,这在图像处理中会造成伪边缘和伪轮廓,为此对锐化算子进行了各种改进。Sobel算子就是其中一例,它在一定程度上克服了上述问题。Sobel算子的基本思想是:以待增强图像的任意像素(i,j)为中心,截取一个3×3的像素窗口。分别计算窗口中心像素在x和y方向上的梯度。Sobel算子的表达式如下:

Sx=

基于EP1C6芯片和DSP Builder工具实现行车道边缘检测系统的设计

增强后图像在(i,j)处的灰度值为:

基于EP1C6芯片和DSP Builder工具实现行车道边缘检测系统的设计

2、基于FPGA的DSP Builder设计流程

Altera DSP Builder将The MathWorks MATLABSimulink系统级设计工具的算法开发、仿真和验证功能与VHDL综合、仿真和Altera开发工具整合在一起,实现了这些工具的集成。设计人员可以使用DSP Builder模块迅速生成Simulink系统建模硬件,通过DSP Builder SignalCompiler模块读取由DSP Builder和MegaCore模块构建的Simulink建模文件(.mdl),生成VHDL文件和工具命令语言(Tcl)脚本,进行综合、硬件实施和仿真。

此系统设计首先用MATLAB建立DSP电路模型。电路模型设计完成后,就开始进行系统功能的仿真,这是属于系统级并且基于算法的仿真,与目标器件无关。然后利用置于Simulink电路模型界面的DSP Builder中的Signal Complier将电路模型文件即Simulink模型文件(.mdl)转化为RTL级的VHDL代码表述和Tcl脚本。一旦获得了VHDL描述,就可以在Simulink中调用Quartus II中的综合器生成网表文件。下一步就是调用Quartus II中的编译器,根据网表文件及设置的优化条件进行布线布局和优化设计的适配操作,同时生成用于Moldelsim的时序仿真文件。将最后生成的Programmer Object File(.pof)对目标器件进行编程配置,即可在硬件上形成DSP系统。

3 、边缘检测系统的Simulink模型设计

Sobel边缘检测模块包括独立且并行的水平检测和垂直检测两部分。输入缓冲通过一组延时线路转换输入的像素值。线路缓冲器的缓冲级数由图像的宽度决定。本设计采用的图像宽度是640。缓冲器的个数取决于卷积核的大小,本设计采用3×3的Sobel卷积核。垂直和水平方向的边缘检测几乎是相同的,两者之间的区别只在于从输入缓冲器流过的数据流。最后将两部分组合并通过阈值选择形成一幅经过边缘检测的二值图像。Sobel边缘检测是流水线操作,在每一个时钟周期都计算得到一个像素值,如图2所示。图中,Z-640是指本设计输入的图像像素宽度是640,右上角的加法模块实现的是垂直方向的边缘检测,右下角的加法模块实现的是水平方向的边缘检测。对于一般的灰度图像, 其像素的灰度值一般用8位表示,考虑到计算过程中可能出现负数和溢出问题。因此,数据在开始计算前先在最高位补零,使数据宽度变为10 位,计算完成后可再裁剪为8 位。

基于EP1C6芯片和DSP Builder工具实现行车道边缘检测系统的设计

基于EP1C6芯片和DSP Builder工具实现行车道边缘检测系统的设计

在DSP Builder中设计的Sobel边缘检测系统如图3所示。

4 、仿真结果

建立了.mdl文件之后,在Simulink中对其进行系统算法级仿真。设置Matlab各项参数和Simulink仿真参数,因为本设计采用图片的像素是640×480,所以设置仿真时间为307 201s(所有的像素数量加1)。

基于EP1C6芯片和DSP Builder工具实现行车道边缘检测系统的设计

测试表明,仿真结果符合要求,整个系统算法级设计是正确的。图4为原始的彩色图像,图5为经过水平边缘检测和垂直边缘检测后没有经过阈值选取的图像,图6为经过阈值选取后的二值图像。Sobel算子不像普通梯度算子那样用两个像素的差值,而是采用两列或两行像素灰度加权和的差值来表示,因此有以下两个优点。

(1)由于引入了平均因素,因而对图像中的随机噪声有一定的平滑作用。

(2)由于它是相隔两行或两列之差分,故边缘两侧的元素得到了增强,边缘显得粗而亮。

使用Modelsim进行功能仿真,主要是调用.tcl 文件对RTL 级的VHDL 代码仿真。由于Simulink 的仿真是算法级的,而此仿真是针对硬件结构的,两者之间可能存在软件理解上的差异,所以对RTL 级VHDL 代码的仿真是必要的。仿真结果和系统级仿真一致。编译生成.pof 文件,下载到目标芯片中,从而完成整个边缘检测模块的设计。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7681

    浏览量

    344346
  • FPGA
    +关注

    关注

    1602

    文章

    21317

    浏览量

    593134
  • 芯片
    +关注

    关注

    447

    文章

    47775

    浏览量

    409076
收藏 人收藏

    评论

    相关推荐

    2011全国大学生电子设计竞赛C题智能小车讨论

    期待坛子里热心的电子发烧友给大家提供帮助!智能小车(C 题)【本科题】一、任务甲车车头紧靠起点标志线,乙车车尾紧靠边界,甲、乙两辆小车同时起动,先后通过起点标志线,在行车道同向而行,实现两车交替超车
    发表于 09-01 12:02

    请问,如何进行DSP编程(C语言)实现图像滤波处理,及边缘检测??

    请问,如何进行DSP编程(C语言)实现图像滤波处理,及边缘检测??
    发表于 09-28 22:38

    基于FPGA的视频实时边缘检测系统该怎么设计?

    。基于DSP方式在运算速度、数据吞吐量等方面有限制。本设计基于FPGA实现边缘检测采用流水线结构。实验结果表明,该系统十分适合视频数据的处
    发表于 09-24 06:55

    转辙机缺口检测怎么实现上传功能?

    转辙机缺口监测问题一直是铁路信号系统特别是信号维修部门关注的热点。随着铁路高速、高密度行车区段的不断增加,为了确保行车安全,对行车道岔运行质量与状态稳定性监测无为重要。
    发表于 03-30 07:48

    基于DSP Builder的小波变换设计实现

    单片机实现,存在实时性差等缺点。随之,基于FPGA的小波变换在脑电信号数字处理中应运而生,其实时性好。 DSP Builder将Matlab/Simulink设计仿真工具的算法开发、模
    发表于 05-13 07:00

    基于DSP Builder的小波变换设计实现

    单片机实现,存在实时性差等缺点。随之,基于FPGA的小波变换在脑电信号数字处理中应运而生,其实时性好。 DSP Builder将Matlab/Simulink设计仿真工具的算法开发、模
    发表于 06-04 07:00

    如何去实现一种基于51单片机交通信号灯的自动指挥系统设计

    十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。设计功能描述:1、采用51单片机作为主控单元;2、采用74HC
    发表于 12-06 06:42

    基于DSP Builder的Chirp信号源设计

    基于DSP Builder的Chirp信号源设计 DSP Builder是Ahera公司提供的一个系统级(或算法级)设计
    发表于 10-04 09:47 1133次阅读

    DSP Builder设计深入

    应用MATLAB/DSP Builder可以对多种类型的电子线路模块或系统进行建模、分析和硬件实现,且更擅长于一些较复杂的功能系统,及偏向于
    发表于 02-28 10:18 54次下载

    基于DSP Builder的混沌保密通信研究

    本文采用DSP Builder 开发工具实现利用混沌信号对通信数字信号的加密与解密。首先在Simulink里面利用DSP
    发表于 09-01 14:35 29次下载
    基于<b class='flag-5'>DSP</b> <b class='flag-5'>Builder</b>的混沌保密通信研究

    基于Altera的DSP Builder工具箱的伪随机序列产生器设计方法

    ,说明这种方法在简化设计难度、提高设计速度和灵活性等方面的优点和应用价值。并提出了其仿真和FPGA实现的基本方法。 关键词: DSP Builder;m序列;Gold序列;平衡Gold码 在扩展频谱通信
    发表于 10-30 10:37 0次下载
    基于Altera的<b class='flag-5'>DSP</b> <b class='flag-5'>Builder</b><b class='flag-5'>工具</b>箱的伪随机序列产生器设计方法

    基于DSP Builder行车道检测设计实现

    通过对摄像头读入的道路白线图像进行灰度变换,再检测出白线的边缘,这是实现智能车自动导航和辅助导航的基础。行车道检测
    发表于 11-03 16:19 0次下载
    基于<b class='flag-5'>DSP</b> <b class='flag-5'>Builder</b>的<b class='flag-5'>行车道</b><b class='flag-5'>检测</b>设计<b class='flag-5'>实现</b>

    如何使用动态曲线进行车道检测算法的资料概述.

    针对无人驾驶技术中关于复杂车道线的检测问题,本文提出了一种基于车道线的颜色梯度变化和视频每帧图像的关联性的复杂车道线检测算法。该算法通过梯度
    发表于 12-18 18:33 3次下载
    如何使用动态曲线进<b class='flag-5'>行车道</b><b class='flag-5'>检测</b>算法的资料概述.

    空中自行车道三维建模钢结构测量

    空中自行车道三维建模钢结构测量 厦门空中自行车道示范段(BRT洪文站BRT县后站)2016年09月14日开工建设。2017年01月20日工程完成竣工。起点BRT洪文站,终点BRT县后站,全长约7.6
    发表于 04-21 09:51 899次阅读

    基于Dsp Builder的DDS实现及其应用总结

    基于Dsp Builder的DDS实现及其应用总结说明。
    发表于 04-27 09:40 0次下载