ARM的嵌入式图像匹配处理系统设计与实现

2021-09-18 02:57王庭良
电子测试 2021年16期
关键词:图像匹配应用程序嵌入式

王庭良

(西安明德理工学院,陕西西安,710124)

0 引言

随着图像传感器的发展其分辨率、高帧率不断提高,这就为图像采集系统提出了更高的要求,图像获取和存储的质量和效率有待提高,现有图像采集大多通过计算机图像采集卡实现,集成电子与无线通信技术为芯片集成度的提升提供了支撑,嵌入式处理器在无线通信领域应用广泛,推动了图像匹配处理技术的发展,传统嵌入式系统显示和处理图像匹配的速度较慢且效率较低,已经无法满足对图像匹配进行全面实时处理的需求。对智能化的视频图像采集系统进行设计和完善成为重要的研究内容,为此本文主要完成了基于ARM的嵌入式图像匹配处理系统的设计。

1 硬件平台的构建

本文以采集、显示、存储、匹配处理图像时的功能需求为依据,在确保同PC 机有效通信的基础上,硬件核心选用 ARM 微处理,完成了图像匹配处理系统的设计,为满足系统功能需求,以最小硬件平台为标准完成了平台构建,系统硬件平台架构如图1 所示,主要由图像采集、显示、存储、通信及电源管理几个主要模块构成,图像通过USB 摄像头的使用完成采集过程,系统存储器采用了 NandFlash(系统存储器),内存系采用了DDR2(512M),图像的采集及匹配处理结果由LCD 显示屏完成实时显示过程,用户同系统间的交互通过 LCD 触摸显示屏(最大分辨率为800x480)即可完成,U 盘、SD 卡及NandFlash 存储器皆可作为图像匹配处理结果的存储路径,平台和上位 PC 机通过串口、USB 及网线接口连接,使系统同PC 机间的通信过程得以有效实现。

图1 硬件平台总体架构

本系统选用s5pv210 作为处理器(三星公司),其内部总线结构为64/32 位,可达到1GHz 的最大运行频率,分为一级缓存和二级缓存(分别为32/32KB、512KB)。内嵌于s5pv210中的SGX540(图形加速引擎)在图像匹配处理上具备较大的优势,通过提供硬件加速支持显著提升了处理速率。采用彩色液晶电容屏作为LCD 显示屏实现了图像采集和匹配处理结果的实时显示。串口、USB 和网线接口除负责同上位 PC 机建立通信过程外还为后续系统的升级和维护带来了极大的便利。COMS 作为USB 摄像头的传感器其最大帧数为每秒30 帧,通过USB 接口(ARM 外扩)同系统平台建立连接。

2 系统软件架构的设计与实现

本文的嵌入式软件架构以搭建系统操作环境及图形应用程序作为主要设计目标,统软件架构如图2 所示,嵌入式操作系统的预先移植需在图形用户应用程序运行前完成,先完成了嵌入式操作系统环境( Linux)的搭建,主要通过在PC 机上完成交叉编译环境的建立(使用ARM/Linux/gcc),在此基础上对Bootloader、Linux 内核进行编译并完成根文件系统的制作,再完成到目标板上的移植过程,从而完成Linux 嵌入式系统在ARM 上的搭建。接下来通过使用Qt 完成ARM 的图形应用程序的编写(在 PC 上),编写人机交互界面用于设置摄像头参数及显示、保存和匹配处理图像等操作,以便于用户操作。

图2 系统软件架构

2.1 嵌入式操作系统环境的搭建

本文采用PC 机一台作为开发的宿主机,在PC(上完成了操作系统及应用程序的开发,然后在目标板上完成运行过程,操作系统的编译及程序设计均在已建立的交叉编译环境中完成,在PC 上开发的需在目标板上下载应用程序完成运行验证,完成 Bootloader 引导程序制作后启动Linux 系统,运行根文件系统进而运行整个系统程序。最后在目标板上将引导程序、根文件系统及内核映像进行镜像烧写完成操作系统环境的搭建。

2.2 图形应用程序的设计与实现

ARM 的图形应用程序通过Qt 的使用完成编写过程(在PC 机上),Qt 开发的图形应用程序在Linux 系统里能够很好的运行,通过采用Qt 的多线程技术(表现为多任务、并发的工作方式)使图像数据的实时显示和处理过程得以有效实现。在一个新的线程中通过使用多线程技术安置费时的操作避免了长时间等待的问题,使应用程序响应速度及效率得以显著提升。

2.2.1 图像采集的实现

Linux 系统中图像采集采用V4L2(Video 4 Linux2,关于视频设备的内核驱动)接口实现,是,V4L2 含有丰富的接口函数,用于视频设备的应用编程(TV 卡、USB 摄像头等),能够采集图片、视频、音频等信息,各外设在Linux 均被视为一种设备文件,V4L2 将包括在内open、read、write、close函数在内基本函数(定义在file_operations 中)提供给了USB 摄像头,程序的结构和符号在usr/include/Linux/Video中进行驱动。采用内存映射方法,将获取的缓存帧完成到用户空间的映射(通过mmap()函数)。应用程序调用时遵循先进先出的规则,交替使用两帧图像的缓存实时采集视频图像,缓存完并发送出一帧后,由第二帧覆盖前一帧。摄像头设备初始化:通过文件/dev/Video0 打开视频设备USB 摄像头,通过open 函数的调用打开摄像头及相关应用程序;通过调用ioctl()函数和接口命令完成摄像头信息的查询及参数的获取,包括像素格式及对流操作的支持情况;通过VIDIOC_S_FMT 的使用完成对图像采集方式及参数的设置(像素格式为YUVY);在此基础上通过摄像头采集图像:首先需通过VIDIOC_REQUFS 参数完成 缓 存 区的申请,接下来对各缓存的信息进行提取,在用户空间采用mmap()函数完成数据的映射,在此基础上通过VIDIOC_STREAMON 命令实现对视频图像的采集,从而将视频帧图像采集出来,对其进行解码以供LCD进行显示,调用close()函数关闭相关设备。在嵌入式系统中为使内存泄露及系统崩溃问题得以有效避免,采集图像停止时需回收内存。

2.2.2 图像的显示与保存

通过采用QtCreator 的图形界面设计实现图像显示,以.ui 作为文件格式,使用户图形界面布局更加直观,以便于具体功能的实现,各元件间通过信号与槽的响应机制的使用实现协同工作,先对视频帧图像采用load()函数完成加载后,再将其通过QLabel 部件使用完成图像信息的实时显示,SD 卡指定文件夹中保存符合要求的图像(通过get FileName函数)后经过图像处理子线程进一步处理后再次保存。

为检测本文所设计的基于ARM 的嵌入式图像处理系统的实用性和稳定性,本文通过图像边缘提取实验完成检测过程,在图像识别及提取过程中,图像边缘信息是图像的重要特征属性,目标图像同背景间通过检测目标边缘方法实现二者间的分割,对原始彩色图像采用sobel 算子完成边缘的直接提取,实验结果表明LCD 显示屏在图像匹配处理过程中能够有效实现图像的实时显示,通过PC 机可根据实际需要对显示图像进行相关操作和控制,明显提高了图像处理效率,具有较高的实际应用价值。

3 结束语

本文主要完成了嵌入式图像处理系统的设计,系统以s5pv210 为核心,完成Linux 操作系统环境搭建后,结合使用多线程技术对图形应用程序进行编写。基于V4L2 接口完成图像采集设计,并开辟子线程对图像数据进行处理,确保图像能够实时显示,提高了设计策略质量,具有较高的稳定性和实际应用价值。

猜你喜欢
图像匹配应用程序嵌入式
删除Win10中自带的应用程序
基于图像匹配和小波神经网络的RFID标签三维位置坐标测量法
谷歌禁止加密货币应用程序
搭建基于Qt的嵌入式开发平台
一种用于光照变化图像匹配的改进KAZE算法
嵌入式软PLC在电镀生产流程控制系统中的应用
基于SIFT和LTP的图像匹配方法
基于降落图像匹配的嫦娥三号着陆点位置评估
Altera加入嵌入式视觉联盟
倍福 CX8091嵌入式控制器