一种基于ARM的嵌入式图像处理系统研究

2016-07-09 08:04陆旭梁光明陈韵迪
数字技术与应用 2016年6期
关键词:图像处理内存嵌入式

陆旭 梁光明 陈韵迪

摘要:随着嵌入式技术的发展,嵌入式图像处理得到了越来越广泛的应用。该研究主要设计出一种通用图像处理系统,能对采集的图像做各种处理,满足大部分图像处理要求。以ARM Cortex—A8处理器(S5PV210)为核心搭建硬件平台,以嵌入式Linux系统构建软件开发环境[1],设计基于V4L2接口的视频图像采集程序,然后对图像进行保存和处理。该系统能实时、高速处理图像数据,可用于各领域的嵌入式图像处理。

关键词:Linux硬件平台软件平台V4L2图像采集图像处理

中图分类号:TP394.41 文献标识码:A文章编号:1007-9416(2016)06-0000-00

1 引言

嵌入式图像处理在军事领域、自动化生产、航天航空、通信领域、电子医疗、工农业生产 、公共安全等领域得到了越来越广泛的应用。嵌入式图像处理技术与传统的PC机图像处理技术相比,其最为显著的优点是嵌入式系统具有体积小、功耗低、成本低、性能高、速度快等。 基于ARM的嵌入式图像处理系统的实现,体现出了其稳定性好、 易于开发维护、通用性强、成本低等特点。嵌入式系统的强大的兼容性,模块化设计,使其开发的时间短,易于维护,嵌入式图像处理系统的小巧性,使其配置拆装灵活,设计出实时的,能够高速处理图像数据的嵌入式通用图像处理系统是十分有研究意义的[2]。本研究设计的通用图像处理系统能实现图像采集、显示、保存、关闭,并能对图像预处理,如,图像灰度化、二值化、腐蚀、膨胀、锐化、直方图均衡化、平滑、边缘检测等。

2 系统硬件平台的搭建

如图1所示,本系统通过摄像头进行图像采集,并将采集数据送至ARM处理器进行图像处理,配载512M的DDR2作为系统内存和512M的Nand Flash为系统存储器以挂载嵌入式Linux操作系统和运行图形用户应用程序,期间通过LCD显示屏将采集图像及处理过程实时显示给用户,并可以通过触摸屏进行人机交互,处理结果既可以保存于掉电数据不丢失的Flash存储器中,也可以利用USB接口或SD卡接口将图像存储于U盘和SD卡中,以备后续查询和操作。为了调试程序、烧写系统以及与PC机的通信,保留了USB接口、USB转串口和网线接口以连接到上位PC机,最后加入电源管理,组成了整个硬件开发平台[3]。

本系统选用三星公司生产的S5PV210微处理器,运行最大频率可达 1GHz,处理器内部为64/32位总线结构,32/32KB一级缓存,512KB二级缓存。它在图像处理方面有独特的优势:S5PV210的视频编码支持MPEG-4/H.263/H.264等格式,解码支持MPEG2/VC1/Xvid等格式,支持高清 HDMI TV 输出;内嵌了图形加速引擎(SGX540),对图像处理提供强大的硬件加速支持。本系统选用的摄像头是最高分辨率为640×480的彩色USB摄像头,其传感器为CMOS,最大帧数为30帧/S.系统选用的显示器是最大分辨率为800×480的彩色液晶电容屏。摄像头通过ARM外扩的USB接口与系统连接,液晶屏通过薄膜线与ARM外扩的薄膜线卡槽相连进行数据传送[1]。

3 系统软件平台的设计

嵌入式软件设计包括嵌入式操作系统和图形用户应用程序,在设计视频图像采集程序之前,应预先移植嵌入式操作系统。本研究搭建的是Linux嵌入式操作系统环境。通过使用arm-linux-gcc建立交叉编译环境、移植Bootloader、移植Linux内核、制作根文件系统等步骤,完成ARM平台上嵌入式Linux系统的搭建[1]。然后在PC上基于Qt编写ARM平台下的图形用户应用程序,实现的主要内容包括:人机交互界面的编写,提供友好的人机交互平台,方便用户操作;图像的采集、显示、保存和关闭功能;编写图像处理算法对采集的图像进行去噪、灰度化、二值化、锐化、边缘检测等处理。图2是软件平台结构:

3.1 视频图像采集程序的设计

本视频图像采集程序是基于Video 4 Linux 2(V4L2)接口进行设计的。V4L2是V4L的改进版。V4L2是 Linux系统中关于视频设备的内核驱动,其主要用来图片、视频、音频等信息的采集。目前 V4L2被广泛应用于远程会议、可视电话、视频监控以及其他多种嵌入式多媒体终端。在 Linux 系统下,所有的外设都被当作一种文件,即“设备文件”,USB 摄像头也一样。V4L2 提供了一系列的接口函数,用于TV卡、视频捕捉卡和USB摄像头等视频设备的应用编程[4]。V4L2为USB摄像头提供了基本的I/O操作函数open、read、write、close,并把这些函数定义在 file_operations 结构体中。本系统采集视频图像程序的流程如图3。

通常来说,应用程序和设备有3种交换数据的方法,直接read/write、用户指针和内存映射三种。很多设备带有自己的数据缓冲区,或者驱动本身在内核空间中维护一片内存区域,为了让用户空间程序安全的访问,内核往往要从设备内存或者内核空间内存复制数据到用户空间,从而便多了复制内存数据这一环节,增加了系统处理时间。本设计采用内存映射的方法,用mmap函数把在内存空间中获取的视频帧映射到用户空间。应用程序在调用缓存数据时,缓存符合先进先出的模式。采集图像时,利用两帧图像的缓存,一帧图像缓存存完后发送出去,将第二帧图像覆盖前一帧,交替使用,从而实现了视频图像的实时采集。

3.2 图像预处理

图像预处理是指对原始图像进行修复、增强、二值化、色彩空间转换等操作,以便于执行后续的处理。当前预处理相关的主要方法有:图像去噪、图像锐化和边缘检测等。

3.2.1 图像灰度化

考虑到彩色的图像的数据量较大,而灰度图像的数据量较小但图像的边缘、形状等特征依然存在,为了在不影响后续的图像处理的要求下,减小系统的数据处理量、增加系统的

处理速度,本设计中,把ARM平台采集的彩色的视频图像通过灰度化处理将其变成灰度图像[5]。

3.2.3图像去噪

本系统图像噪声的来源有三个方面 :1)光电、电磁转换过程中引入的噪声;2)CMOS图像传感器单像素模数转换的误差和采集图像的不稳定性;3)由物理量的不连续性引起的自然起伏性噪声。本系统的图像平滑采用邻域平均法对原始图像中的噪声进行消除。

邻域平均法是一种简单的空域平滑滤波技术 ,可以看作是平滑线性滤波器即均值滤波,设有一幅 的原始图像 , 经过邻域平均法处理后的图像为 ,如公式(3)所示。

使用邻域平均法对图像去噪后会使图像略微模糊,但图像变得更加平滑。去噪后的图像如上图5(b)所示。

3.2.4图像锐化

图像锐化就是补偿图像的轮廓,直接图像的边缘及灰度跳变的部分,使图像变得清晰,图像平滑往往使图像中的边界、轮廓变得模糊,经过图像锐化处理,图像的边缘、轮廓线以及图像的细节会变得清晰[6]。本设计设置一个阀值 ,像素的RGB分量梯度大于 ,则像素的RGB分量加上某一个值a,若加上a后像素的RGB分量大于255,则RGB分量取为255。

3.2.5边缘提取

图像边缘信息是图像识别中提取图像特征的一个重要属性,通过对目标边缘的检测来实现将目标图像与背景的分割。边缘的两侧分属于不同的区域,边缘的像素的灰度,与周围的像素都有一个阶跃变化。边缘检测的方法有很多,比如 Sobel 算子,Robert 算子,Canny 算子,都能够检测到图像的边缘。一般对图像进行边缘检测之前要将图像灰度化,本设计采用Sobel算子直接对原始彩色图像进行边缘提取。设有一幅 的原始图像 , 与Sobel算子进行卷积处理后的图像为 ,公式如下。

4 结语

本研究设计了以S5PV210为核心的嵌入式图像处理系统,首先搭建系统的硬件平台与软件平台,然后在Qt上编写基于Video 4 Linux 2(V4L2) 视频图像采集与处理程序,对采集到的图像做各种处理,并对一些图像处理算法做了改进。实现结果验证了该系统的可靠性,该系统能实时、高速处理图像数据。本研究设计的基于ARM的嵌入式图像处理系统可用于各领域的图像处理,并对研究手持式、便携式的图像处理具有很大的参考价值。

参考文献

[1]邱文胜,牛丽,苏秉华,王源圆.基于ARM的嵌入式超分辨率复原系统设计[J].深圳大学学报(理工版),2015(3):311-316.

[2]王学宾.于ARM的嵌入式图像处理技术的研究[D].河北工业大学,2012.

[3]吴健.基于ARM的嵌入式USB图像采集与处理系统[D].合肥工业大学,2012.

[4]张欢欢.基于嵌入式图像处理的仪表智能识别技术研究[D].浙江理工大学,2015.

[5]谢浪平.基于ARM的视频图像采集与处理系统的设计与实现[D].湖南大学,2014.

[6]张滨.昆虫翅膀图像分类算法的设计与实现[D].北京邮电大学,2010.

猜你喜欢
图像处理内存嵌入式
外部高速缓存与非易失内存结合的混合内存体系结构特性评测
“春夏秋冬”的内存
基于图像处理的机器人精确抓取的设计与实现
机器学习在图像处理中的应用
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
基于图像处理的定位器坡度计算
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器
Photo Shop通道在图像处理中的应用