当前位置:首页 > 单片机 > 单片机
[导读]边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。

边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点。边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域。
本文采用局部熵边缘检测算法,将图像采集,边缘检测和图像显示三个部分封装设计为IP(Intellectual Property)核,通过AMBA APB总线嵌入到LEON3的经典SoC架构中。实现了多路数据并行处理和DSP模块加速处理,配合CPU软核的协调参数配置功能,可以充分发挥硬件设计的高速性和灵活性。此外,由于动态图像边缘检测是图像处理应用中必不可少的一部分,因此文中设计的动态图像边缘检测SoC可以方便的移植到其他图像处理应用中,具有广泛的应用前景。
1 SoC和LEON3开源软核处理器
SoC是系统级芯片的简称,系统不仅包含了处理器内核、存储器等硬件系统,同时还含有相应的嵌入式软件,是一个真正的软、硬件均具备的完整体系。利用SoC设计方法,可以将一个复杂的系统集成到单一芯片中,并具有低功耗,低成本及高速性的特点。与利用ASIC实现的SoC相比,利用FPGA实现的SoC具有可配置性的特点,因此具有更好的可扩展性和可移植性。
LEON3开源软核处理器是Gaisler Research公司提出的一款32位、符合SPARC V8结构的开源软核处理器。它具有高性能,低复杂性和低功耗的优点。另外,所有属于GRLIB的IP核及LEON3处理器的源代码在GNU GPL(GNU General Public License,GNU通用公共许可证)授权协议下,可以免费地应用于研究和教学目的,因此,LEON3开源软核处理器特别适合于SoC的开发设计。
2 SoC系统架构设计
通过分析系统的功能与要求,结合LEON3自身架构的特点,设计基于APB总线的动态图像边缘检测Soc系统架构如图1所示。自定义IP核为本设计的重点。在LEON3的SoC架构中,APB外围低速总线为一些低速模块提供了接口。若想要在APB总线实现动态图像的实时采集、处理和显示,就要想办法使采集到的数据不参与到总线传输中去。
在本设计中,通过采用片上存储资源做FIFO的办法,使得摄像头采集到的数据得以缓存,最终在显示器上显示。在数据输出显示之前,可以选择是否经过图像边缘检测算法模块处理。若经过模块,则显示图像经过边缘检测后的结果;若不经过,则显示原始图像。
通过这种方法,避免大量图像数据参与AHB与APB总线之间的数据传输,以减少不必要的中间过程,提高数据的实时性。这样就避免了APB总线低速、低带宽与动态图像边缘检测系统高速、高带宽的矛盾。使得整个图像的数据流都在白定义IP核内部得到处理,这样既满足了APB总线的约束也实现了系统的功能需求。
3 动态图像边缘检测SoC的实现
本设计提出了一种集图像采集、存储、处理和显示于一个IP核的设计方法,也是动态图像边缘检测SoC设计的核心部分。
3.1 局部熵算法的硬件实现
局部熵边缘检测算法的基本思想是:选择待处理像素点的8邻域,即以待处理像素点为中心的3×3窗口;再由局部熵的定义式(公式1)计算出图像3×3窗口的局部熵;

然后通过与给定的阈值进行比较,得到二值化图像,即可得出图像的边缘。硬件实现的处理过程为流水线方式,处理的对象为3×3大小的图像窗口。具体步骤如下:
①3×3窗口的产生。3×3窗口主要通过片上缓存和延时单元实现。图2是以经过3个时钟为例说明了同步产生3×3窗口中一行数据的过程。

②熵值的计算。将步骤1中得到的3×3窗口的9个并行数据途经两路进行处理。对于3×3窗口,式(1)化简为式(2):

3窗口的9路并行数据,一边送去做并行相加求和,再求平方,作为除法运算的分母;同时把9个数据分别求平方,再求合,作为除法运算的分子。在做除法运算前,为确保其计算精度,要先将分子与分母转换成IEEE-745浮点数后再进行浮点除法运算。最后还要把除法运算的结算转换成整数,考虑到除法运算的结果可能小于1,于是在转换整数前放大1000倍,即保留3位有小数有效位,最后将转换后的整数输出,至此实现了局部熵值的计算过程。

③阈值比较及二值化处理。②中已经得到了放大1000倍后的熵值,在这里只需通过一个比较电路,当熵值大于阈值时,输出0;当熵值小于阈值时,输出1。这样就得到一幅二值化后的边缘图像。至此,完成了整个局部熵边缘检测算法的硬件实现。
3.2 自定义IP接口设计
自定义IP核包含以下几个主要部分:图像采集(D5M摄像头接口);图像制式转换;图像存储;图像显示(LTM显示接口);图像边缘检测模块;自定义寄存器。
此IP核的接口信号可分为:

①系统时钟与复位信号:是整个LEON3架构所共用的时钟信号和复位信号,而iCLK_50是由外部直接引入的频率为50MHz的时钟,未经过PLL处理。
②IP核控制信号:主要实现IP核的触发功能和结束功能。
③APB总线的输入信号和输出信号:此信号主要用于APB总线控制、IP核选择、IP核使能等,其中包括对IP核内部寄存器的设置都是通过APB总线信号来完成的。
④D5M摄像头输入信号和输出信号:此信号主要完成对D5M摄像头的配置以及数据采集。
⑤LTM显示器输入信号和输出信号:此信号用于对LTM显示器的配置。由于基于APB总线的IP核集成D5M摄像头、LTM显示器和边缘检测算法于一体,所以外部接口信号相对较多。但就APB总线本身而言,其信号并不多,这也是基于APB总线的设计方法相对简单的原因。
3.3 自定义IP核的结构设计
有关“基于APB外围低速总线图像检测IP核的实现基本思想部分”略——编者注。
4 实验结果
4.1 动态图像边缘检测算法硬件实现仿真与分析
文中首先利用Matlab验证局域熵边缘检测算法设计的正确性,然后采用Verilog HDL硬件描述语言编写图像边缘检测算法,在算法实现过程中,为提高算法的性能,采用了Quartus II中自带的DSP加速宏模块。同时,为验证仿真算法的正确性,编写Testbench系统测试文件,对其进行仿真验证。
3×3窗口产生的过程,L1~L3为采用片上缓存的方法实现的三行数据的同步。X1~X9对应3×3窗口中的9个像素点。图中最终的数据输出是有一定时延的,这是由于算法中存在大量的乘加运算和浮点数运算造成的。
在实现算法的同时,考虑到所选芯片提供了可用于加速算术运算的DSP模块,于是为了加速算法的处理速度,在算法实现过程中,加入了大量的DSP加速处理模块,如乘加器,浮点除法器等。表1给出了用硬件语言实现上述算法所使用的芯片资源情况。表2给出了该算法对DSP加速模块的使用情况。

4.2 动态图像边缘检测SoC系统性能测试
测试采用的硬件开发平台为FPGA CycloneIIEP2C70F896C6N,Quartus II版本为10.0(32位),LEON3开发包版本为grlib-gp1-1.0.22-b4095.zip。D5M摄像头工作在25MHz频率,所采集的图像分辨率为400×240,R、G、B每种色彩以10-bit二进制数据表示,D5M摄像头每秒采集22~25帧图像。LTM显示屏的显示分辨率为400×240,工作在33MHz频率。
表3为测试得到的片上资源使用情况。从其结果可以分析得到,文中设计的动态图像边缘检测SoC占据的片上资源在可以接受的范围内。

且由实际测试可知,在外界环境适中的条件下,系统可以得到很好的图像边缘检测效果。但由于图像的分辨率较大,而边缘检测算法中所采用的窗口为3×3,相对于图像来说较小,所以图像上的一些小的阴影区域也会被检测出来,形成阴影区域干扰,影响图像的边缘检测效果。但总体来说,实现了动态图像边缘提取的最终目的。
结语
本文介绍了基于LEON3开源软核处理器的动态图像边缘检测SoC设计。
实验结果表明该SoC系统工作正常,可以实现每秒22~25帧,最佳分辨率为400×240和640×480的动态图像边缘检测功能,平均数据延时在70~80个系统时钟。系统具有很好的可移植性与可配置性,占用资源少,速度快,具有广泛的应用前景。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

针对航发叶片边缘检测存在的问题 ,提出了一种基于特征造型的叶片边缘测量新方法 。该方法采用基于锥光偏振全息原理的高精度激光测头采集叶型精确坐标数据 ,利用特征造型算法 ,实现叶片边缘的快速精密测量。研究结果表明 ,该方法...

关键字: 航空发动机叶片 边缘检测 特征造型 精密测量

随着嵌入式系统性能的不断提升,将复杂的图像处理任务(如人脸检测)部署到嵌入式设备上已成为可能。OpenCV Lite作为OpenCV的轻量级版本,专为资源受限的嵌入式环境设计,提供了高效的图像处理功能。本文将详细介绍如何...

关键字: 嵌入式系统 图像处理 OpenCV Lite 人脸检测

当前 ,铁精矿粉末火车发货环节存在效率低下、人力成本高、安全隐患多等问题 。鉴于此 , 以无人抓斗行车抓取铁精矿粉末装载火车为例 ,针对无人系统中的多节火车车厢定位、车号与吨位识别、投料点选取等关键技术进行研究与攻关 ,...

关键字: 抓斗行车 无人化 边缘检测 文本识别

在过去10-15年中,人工神经网络领域的发展迅速。典型的应用是图像处理、声音等领域的高维数据.然而,在机器学习中,系统输入的数据量很小的任务很少:例如,异常事件建模、处理人工收集的分析数据、分析低频传感器的信号等。在这种...

关键字: 神经网络 图像处理

在图像处理领域,图像裁剪是一项基础且关键的技术,它允许我们从原始图像中裁剪出感兴趣的区域,同时丢弃不相关的部分。这种技术在人脸识别、目标跟踪、图像分割等多种应用场景中发挥着重要作用。随着FPGA(现场可编程门阵列)技术的...

关键字: FPGA 图像处理 图像裁剪

在图像处理领域,图像平移是一种基本的几何变换操作,它能够将图像中的所有像素在二维平面上按照指定的方向和距离进行移动。这种操作不改变图像的形状或大小,但会显著影响图像在坐标系中的位置。随着FPGA(现场可编程门阵列)技术的...

关键字: FPGA 图像处理

在图像处理领域,边缘检测是识别图像中对象边界的重要技术。Canny边缘检测算法以其高效性和准确性成为应用最广泛的边缘检测算法之一。本文将深入探讨Canny算法在FPGA平台上的实现方法,并附上关键代码片段,展示如何通过F...

关键字: FPGA Canny算法 边缘检测

在数字图像处理领域,图像反转作为一种基础且强大的技术,被广泛应用于各种图像处理系统中。通过FPGA(现场可编程门阵列)实现图像灰度反转与彩色反转,不仅可以加速处理速度,还能实现高效的并行处理。本文将深入探讨FPGA在图像...

关键字: FPGA 图像处理

在图像处理领域,边缘检测是一项基本且重要的任务,它旨在识别图像中对象的边界。边缘检测算法通常基于灰度图像,通过分析像素之间的灰度变化来定位边缘。其中,一阶微分算子因其计算简单且效果显著,在边缘检测中得到了广泛应用。本文将...

关键字: FPGA 边缘检测 一阶微分算子 Sobel算子
关闭