基于现场可编程门阵列的边缘检测系统

2020-05-09 03:53张阵委颜晨航
轻工机械 2020年2期
关键词:图像处理边缘摄像头

张阵委, 章 伟, 颜晨航

(1.上海工程技术大学 机器人智能控制实验室, 上海 201620;2.上海工程技术大学 机械与汽车工程学院, 上海 201620)

边缘检测是众多图像处理研究的基础[1],也是观察图像基本信息的依据。计算机进行图像处理分析时[2],边缘检测保留图像中主要的物体边缘信息,减少了图像处理的信息。不同的边缘检测处理方法获取的边缘信息和效果会有差异,因此在不同的场景要选用不同的卷积处理方式来达到最佳的效果。

实时图像处理中,在算法优化的前提下,图像处理对硬件的要求越来越高[3],不仅要求算法处理数据量小、精度高,同时也对硬件处理数据的构架和方式有了更高的要求[4]。树莓派或者单片机往往无法满足快速处理的要求[5]。即使是一幅(256×256) dpi的图像也有大约7万多个像素点组成[6],况且这么低的分辨率完全达不到实际应用的要求[7]。一幅分辨率(1 920×1 080) dpi的图像就有两百多万个像素点组成,对大量像素数据的处理可采用现场可编程门阵列FPGA芯片进行运算处理[8]。课题组基于优化的Sobel和Robert边缘检测算法[9],利用FPGA硬件结构实现图像的实时边缘提取,保证图像处理的实时性[10];采用CMOS调焦距工业相机进行原始图像采集,保障了采集图像的质量;通过搭建软件和硬件结合的实验平台进行室内物体边缘检测[11],然后通过比较分析实验结果得出结论。

1 检测系统

根据FPGA的逻辑数字原理来进行检测系统的设计,以及功能模块的分配[12],通过合理的分配模块的功能来达到最佳的数字图像处理速度。

1.1 检测系统构架设计

基于FPGA构架的快速实时视觉边缘检测系统设计如图1所示。

通过可变焦工业相机进行RGB格式的图像信息获取,接着进行图像的灰度图处理,联合VHDL和Verilog语言进行联合编程[13],通过边缘检测Sobel卷积核和ROG卷积核对图像信息进行卷积处理[14],然后进行检测结果对比,获得最佳的无人机障碍物检测方案。

1.2 FPGA芯片的优势

FPGA具有高速并行处理图像像素信息的能力,且具有大量的算法计算逻辑资源[15],大量的块存储器和DSP资源用于图像处理、信号传输等[16]。采集的像素信息数据采用并行处理,比串行处理的速度快很多倍。逻辑系统中有4种值[17],也即4种状态:逻辑0,表示低电平,对应电路GND;逻辑1,表示高电平,对应电路的VCC;逻辑X,表示未知,可能是高电平,也可能是低电平;逻辑Z,表示高阻态,当外部没有激励信号时,它表示悬空状态。丰富的逻辑资源,使得像素数据处理更加稳定和快速。

2 边缘检测算法设计

实现边缘检测有很多不同的方法,一直以来都是图像处理的研究热点。人们期望能够有一种抗噪强,定位准,不误检的检测算法[18-19],因此出现了很多卷积核用来进行卷积图像处理,比如Sobel卷积核、Robert卷积核和LOG卷积核等,它们各有特长[20-21]。

2.1 Sobel卷积核

Sobel卷积核是滤波算子的形式,用于提取图像边缘。图像中的每个像素点都用图2所示的2个模板进行卷积运算处理。Gx代表第1个卷积核模板,主要针对垂直边缘的像素影响最大[22];Gy代表第2个卷积核模板对水平边缘的像素卷积影响最大。具体计算如下:

(1)

|G|=|Gx|+|Gy|;

(2)

(3)

公式(1)表示灰度图的梯度计算公式,属于核心计算,|G|的大小反映灰度图的灰度变化。公式(2)为公式(1)的简化计算。公式(3)是表示2个像素相对角度的大小[23]。如果角度θ等于零,即代表图像该处拥有纵向边缘[24],左方较右方暗,计算结果的大值作为该点的输出,即图像的边缘像素值。运算结果是一幅边缘幅度图像。Sobel算子对噪声具有平滑作用[25],可以提供较为精确的边缘信息,是一种较为常用的边缘检测方法。

2.2 Robert卷积核

Roberts边缘算子是一个2×2的模板,如图3所示。

采用的是对角方向相邻的2个像素之差。从图像处理的卷积核结构来看,用卷积核的边缘定位较准,对噪声也比较敏感[26]。Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子。计算公式为:

Gx=(Z4-Z1);

(4)

Gy=(Z3-Z2)。

(5)

公式(4)和(5)都是进行灰度图像素点的计算,得到Gx与Gy的数值后再进行像素的梯度和角度计算。

2.3 联合卷积算法设计

Sobel算法的卷积核要比Robert卷积核大,所以Sobel每次能处理的像素信息比Robert要多。卷积核的大小对卷积的效果有很大的影响。相同的卷积核,卷积核的大小不一样,实验的结果会差别很大,因此要针对像素的大小,物体特点去设定卷积核的大小。本次实验在室内进行,室内光源比较稳定,障碍物特征比较明显,针对这些特点实验采用6×6的Sobel卷积核对图像进行卷积处理。Sobel卷积核比较大,能够快速的进行图像卷积,获得卷积图像的边缘信息。然后再使用2×2的Robert卷积核对图形进行卷积处理,能够优化卷积处理的结果。

3 硬件实验

3.1 Sobel与Robert边缘检测的模块设计

实验采用ALTERA—7系列的芯片作为核心处理芯片,基本处理流程如图4所示。

3.2 系统简介

实验采用Verilog语言和VHDL语言进行联合编程。采用VHDL语言对CMOS摄像头OV5640进行底层驱动描述语言设计。通过DMA模块进行灰度图像素信息的传递,它是一种并行传输的信息模式,可以同时处理多条信息,加快信息处理速度。FPGA的DMA通道把灰度图像素信息从OV5640相机通过PCI总线、PCI桥和局部总线传输到SDRAM模块存储起来,最后把采集的信息放入逻辑算法模块进行计算。完成后把像素数据存储到SDRAM中,用DMA通道把灰度像素处理结果传送到VGA显示器进行结果显示。

边缘检测系统架构主要分为2个模块:第1个模块是输入数据的累积,用于输入的累积数据先进入寄存器的存储器模块;第2个模块是边缘检测操作模块,用于执行卷积、加法和阈值比较等操作。2个模块都是同步的输入时钟到系统。

3.3 系统设计

把摄像头采集的图像的输入设置为cmos信号,并用cmos_d表示采集像素信息,输入的信号通过像素信息筛选模块cmos_select_inst进行原始像素信息的筛选,同时使用FPGA内部的锁相环video_pull_mo模块配置像素筛选模块的时钟,锁相环配置的模块时钟为300 MHz,原始像素信息的采集的速度决定了整个系统实时性的基本要求,因此要保障图像采集的速度,模块的设计图如图5所示。

系统把外界的图像信息采集到系统中后需要把采集的像素储存起来,然后调用FPGA内部的逻辑资源进行像素信息的卷积处理,加入采用Sobel卷积核进行卷积处理的情况,Sobel模块的信号输入为灰度图的像素信息的输入,经过FPGA内部逻辑资源处理后输出,它的模块输入输出如图6所示。

卷积像素转换模块用于执行卷积、加法和阈值比较等操作,本实验采用的卷积核是根据摄像头像素大小进行设计的。实验中将摄像头分辨率设置为1 280×720,帧率为60帧/s,图像输出格式是RGB565。由于室内环境的物体边缘特征比较复杂,因此将采集像素的梯度强度与沿正负梯度方向上的两个像素进行比较,通过比较后,如果获得的像素图梯度强度与另外2个像素相比为最大值,就保留该像素点作为边缘像素点,否则该像素点将被抑制,采用这种方案进行边缘像素点的优化。卷积核像素值的逻辑运算处理采用Verilog语言进行编写。

其中算法的实现是依靠FPGA内部的逻辑电路运算完成。采用的FPGA开发板和摄像头如图7所示。

实验器材的摆放位置如图8所示,FPGA开发板上扩展了一个OV5640摄像头,摄像头的前方摆放的是边缘处理实物。

仿真测试成功后就可以进行程序的烧写了,首先使用Sobel卷积核进行图像处理,根据室内环境的特点调节Sobel的阀值,最终得出如图9所示的测试结果。然后再使用Robert卷积核进行卷积处理图像,调节设定阀值后进行Robert卷积核的实时图像处理,实时图像处理结果如图10所示。

通过对比图9和图10后发现,在200 MHz的超频下使用OV5640摄像头采集图像信息在FPGA上进行实时室内物体边缘检测时,Sobel与Robert联合检测的结果比Sobel算法检测的结果更清晰,且产生的黑点更少,即二次卷积算法在FPGA上进行室内物体边缘检测时具有更清晰的边缘信息和更少的黑点。

4 结语

课题组利用FPGA的高速并行处理数据的特点进行设计图像的采集与处理系统,设计一种新型的联合卷积算法进行图像处理。该处理方法相比单一的卷积算法的处理结果更清晰,比传统的穿行处理器实时性更好。由于本实验只使用了1个摄像头进行图形采集处理,无法像双目视觉摄像头获取物体的三维图像信息,所以本系统只适合处理平面的图像信息。进一步的研究可以将双目摄像头应用到本系统,就可以获取图形的三维像素信息,然后通过双目摄像头的视差可以计算出物体的距离和位置信息,进而可以模拟人的双目视觉进行物体的检测。

猜你喜欢
图像处理边缘摄像头
浙江首试公路非现场执法新型摄像头
海战场侦察图像处理技术图谱及应用展望
人工智能辅助冠状动脉CTA图像处理和诊断的研究进展
摄像头连接器可提供360°视角图像
基于ARM嵌入式的关于图像处理的交通信号灯识别
基于图像处理的废有色金属自动分选算法研究
一张图看懂边缘计算
无法开启摄像头的解决方案
找出摄像头花屏的“罪魁祸首”
在边缘寻找自我