您好, 访客   登录/注册

Zynq SOC嵌入式图像边缘检测系统设计

来源:用户上传      作者:

  摘  要:针对目前市场上嵌入式图像处理平台可扩展性差的缺点,利用Zynq SOC嵌入式处理器ARM和FPGA结合的优势,文章提出基于Zynq SOC的嵌入式图像处理系统设计方案。实验结果表明,该方法不仅提高了图像边缘检测质量,而且具有实时性和可扩展性好的优势。
  关键词:嵌入式系统;Zynq;图像处理;边缘检测
  中图分类号:TP391        文献标志码:A         文章编号:2095-2945(2020)23-0054-03
  Abstract: Aiming at the disadvantage of poor scalability of embedded image processing platform on the market, we propose an embedded image processing system design scheme based on Zynq SOC with the advantages of Zynq SOC embedded processors ARM and FPGA. The experiment results show that the proposed method not only improves the quality of image edge detection, but also has the characteristics of real-time and scalability.
  Keywords: embedded system; Zynq; image processing; edge detection
  1 概述
  图像是人类获取和交换信息的主要来源之一。因此,图像处理的应用已经涉及人类生活的各个方面。目前,图像处理在物联网、机器识别和多媒体信息交换等领域得到了广泛的应用。但是,随着图像处理系统规模和复杂性的不断增加,其硬件系统实现越来越复杂。为了满足图像处理算法的正确性和实时性,现场可编程门阵列(Field Programmable Gate Array,FPGA)已经成为了实时图像处理硬件平台的理想选择[1-2]。
  近年来,随着嵌入式处理器性能的不断提高,嵌入式操作系统的不断完善,以及网络、通信多媒体、图像处理技术的快速发展,基于嵌入式技术的图像处理系统以其低廉的价格和便携性成为图像处理的一个发展方向。目前,市场上主流的嵌入式图像处理系统大多采用ARM9、ARM11等系列微控制器。大部分的ARM微控制器硬件外设出厂时已经固定,不利于用户进行硬件扩展和升级,而ARM和FPGA相结合的多芯片图像处理解决方案又会导致系统成本太高,同时还会造成系统资源的浪费,整体系统功耗较大。为了满足市场的需求,美国Xilinx公司开发了Zynq系列全面可编程芯片,该系列芯片采用高性能Cortex-A9双核处理器和FPGA相结合[3-4]。
  本文采用Xilinx全面可编程芯片Zynq作为开发平台,ARM处理器完成系统运行和数据交换,FPGA部分实现硬件扩展和图像处理算法。采用软硬件协同设计的方法,完成嵌入式图像处理系统的设计。相比于传统的图像边缘检测系统,基于Zynq SOC的嵌入式系统不仅提高了图像的检测质量,而且具有实时性和可扩展性好的优点。
  2 系统整体设计结构
  ZYNQ是赛灵思公司(Xilinx)推出的新一代全可编程片上系统(APSoC),它将处理器的软件可编程性与 FPGA 的硬件可编程性进行完美整合,以提供无与伦比的系统性能、灵活性与可扩展性。与传统SoC解决方案不同的是,高度灵活的可编程逻辑(FPGA)可以实现系统的优化和差异化,允许添加定制外设与加速器,从而适应各种广泛的应用。Zynq-7000系列是Xilinx公司推出的全可编程片上系统,主要包含PS(Processing System)和PL(Programmable Logic)两部分。PL采用28nm工艺;PS以2个Cortex A9的ARM核为核心,还包括片上存储器、片外存储器接口(DDR)和一系列的外设接口。Zynq-7000系列将ARM CPU 和外设集成在一个芯片内,使得 Zynq-7000系列皆具处理器和 FPGA 双重特性,特别适用于软硬件协同设计。
  系统平台由摄像头、显示器和Zynq SOC开发板三部分构成,结构如图1所示。摄像头选用MT9V034,显示器为21英寸戴尔液晶显示器。Zynq SOC开发板选用ZedBoard开发板,该开发板板载512M的DDR3内存。ZedBoard是Digilent公司开发的一款搭载Xilinx Zynq-7000全面可编程系统芯片的低成本开发板。该开发板可以基Linux,Android,Windows或基于其它操作系统进行设计。Zynq-7000器件配备双核ARM Cortex-A9处理器,该处理器与基于28nm Artix-7FPGA集成,具有优异的性能功耗比和最大的设计灵活性,为嵌入式应用实现高度差异化设计提供保证。
   整个图像处理系统的实现由处理系统和可编程逻辑协同完成。PS部分的ARM处理器负责运行操作系统、调用资源实现与PL的数据交换,并且完成应用层QT程序的实现。PL部分主要实现摄像头的图像采集并通过VDMA到DDR3存储器中保存数据,同时将采集到的图像进行图像处理,最后把处理好的图像通过自定义设计的显示模块高清显示。
  3 图像处理算法:边缘检测
  所谓边缘是指其周围像素灰度急剧变化的那些象素的集合,它是图像最基本的特征。边缘存在于目标、背景和区域之间,所以,它是图像分割所依赖的最重要的依据。由于边缘是位置的标志,对灰度的变化不敏感,因此,边缘也是圖像匹配的重要的特征。   边缘检测和区域划分是图像分割的两种不同的方法,二者具有相互补充的特点。在边缘检测中,是提取图像中不连续部分的特征,根据闭合的边缘确定区域。而在区域划分中,是把图像分割成特征相同的区域,区域之间的边界就是边缘。由于边缘检测方法不需要将图像逐个像素地分割,因此更适合大图像的分割。边缘大致可以分为两种,一种是阶跃状边缘,边缘两边像素的灰度值明显不同;另一种为屋顶状边缘,边缘处于灰度值由小到大再到小的变化转折点处。边缘检测的主要工具是边緣检测模板。
  边缘检测的原理是检测图像特性发生变化的位置。不同的灰度图像灰度不同,边界处会有明显的边缘,利用该特征可以分割图像。边缘总是以强度突变的形式出现,这被定义为图像局部特性不连续,如灰度的突变和纹理结构的突变。图像的边缘包含了物体形状的重要信息,它不仅在分析图像时大幅度地减少了要处理的信息量,而且还保护了目标的边界结构。边缘检测是图像分割的经典研究课题之一,直到现在仍然在不断发展和改进,尤其是面向嵌入式系统的图像检测。Sobel算子对图像进行了二维空间梯度测量[5]。通常,它用于在输入图像的每个点找到近似的绝对梯度幅度。
  Sobel算子每个卷积因子是进行图像的九十度旋转。假设一个与Sobel算子维度相同的图像片段,卷积的结果如下:
  4 系统测试与验证
  基于Zynq SOC的嵌入式图像处理系统由摄像头负责图像采集,Zedborad开发板负责系统的运行和边缘检测算法,系统的硬件模块连接如图2所示。从图中可以看出,Zynq SOC是整个系统的核心,基于定制的IP模块VDMA完成图像的帧的缓冲,通过AXI互联与DDR进行数据的高速交互,最后利用HDMI接口输出处理后的图像,如图3所示。
   5 结束语
  本文基于Zynq SOC全面可编程芯片完成了嵌入式图像采集与处理系统,系统利用Sobel算子实现了图像的边缘检测。该系统充分体现了Zynq SOC芯片ARM处理器与FPGA可编程逻辑的优势。与传统图像处理硬件方案相比,基于Zynq SOC嵌入式图像处理方法不仅提高了图像处理的质量,而且具有实时性和可扩展性好的特点。
  参考文献:
  [1]李朗,张索非,杨浩.基于Zynq-7000的视频处理系统框架设计[J].计算机技术与发展,2017,27(05):192-195.
  [2]孟繁星.基于ZYNQ-7000的视频图像处理系统设计[J].信息通信,2015(08):60-62.
  [3]郭丰收.Xilinx FPGA/Zynq设计中使用HLS实现OpenCV的开发流程[J].电子产品世界,2014,21(Z1):50-52.
  [4]聂阳.基于Zynq的嵌入式系统教学研究[J].电子测试,2016(Z1):92-93.
  [5]Lee C C. Elimination of redundant operations for a fast Sobel operator[J]. IEEE Transactions on Systems Man & Cybernetics,1983,SMC-13(2):242-245.
转载注明来源:https://www.xzbu.com/1/view-15293064.htm