OpenCV下嵌入式轨道检测小车图像采集处理系统研究与设计

2019-07-25 09:21张雯柏1柴晓冬斌1彭乐乐
计算机测量与控制 2019年7期
关键词:嵌入式处理器轨道

张雯柏1,柴晓冬,叶 斌1,彭乐乐

(1.上海铁大电信科技股份有限公司 研究与发展中心,上海 200070;2.上海工程技术大学 城市轨道交通学院,上海 201620)

0 引言

安全是中国铁路高速发展的基础,轨道线路是否处于稳定的状态是列车平稳运行的关键,因此精准高效的轨道检测技术是保障线路安全的重要技术手段。普遍应用的轨道状态人工检测方式效率低、工作量大,若将图像检测技术引入到轨道检测中,由MCU处理采集到的图像,识别出轨道各功能部件的工作状态,将具有一定的意义,本文从处理器与传感器选择、电路与系统设计、信号采集与传输等方面着手研究,设计并搭建一套适用在轨道线路上推行的轨道检测小车图像采集与处理系统。目前的图像采集方式可以分为两类:采用通用计算机的图像采集和采用嵌入式设备的采集。随着视觉信号的研究与应用,一般在PC上的图像信息处理与计算不能满足一些需要微型图像处理设备的领域。嵌入式硬件的迅速发展为图像采集微型化提供了条件,嵌入式的各种特点在结合图像采集技术之后,能在各个领域实现非常大的突破。嵌入式Linux系统发展迅速,图像设备驱动逐步完善,开发环境友好,源代码公开,受到众多开发者喜爱,基于嵌入式的图像采集处理方案在各个邻域广泛应用[1-2]。

1 嵌入式图像处理平台选型

搭建嵌入式平台,最重要的是处理器选择,处理器直接决定设备性能,以及是否能够支持当前应用,其次才是配置大小合适的存储空间,以发挥处理器的最大性能[3-6]。当前市场处理器有以下选择。

1.1 嵌入式ARM微处理器

ARM(Advanced RISC Machines)处理器已经成为当今嵌入式应用的主要处理器。ARM系列处理器是一种有着非常高性能、适用于电池或其他电源供电的的微处理器,现在已有32位和64位系列。ARM系列CPU稳定性好、性能高、价格低廉,支持16位和32位指令集,指令运行周期短,效率高,在各个领域受到青睐。

1.2 嵌入式MIPS处理器

MIPS是美国芯片设计公司,其设计的芯片采用精简指令系统,它在处理器市场仅次于ARM公司。它是设计高端的32位和64位嵌入式芯片厂家。MIPS处理器的内部结构都经过精心改进,指令执行速度快。其指令系统非常完善,支持MIPS16、MIPS32及MIPS64。

1.3 嵌入式ARM微处理器

PowerPC处理器不多见,其结构设计由八十年代多家科技企业联合设计,并最早生产了基于PowerPC处理器的通用计算机,至今,PowerPC在市场上的比例比较小。

1.4 嵌入式X86处理器

X86平台的处理器是大家最早接触的处理器,通用计算机基本采用X86平台处理器,主流生产厂家是Intel和AMD,X86因其功耗过高,无法支撑电池供电,发热严重,因此应用受限。

1.5 嵌入式DSP

DSP有着与ARM处理器不分上下的优势,甚至很多ARM处理器内置DSP协处理器,DSP处理速度远远胜过一般结构的处理器,计算性能极佳。DSP采用流水线指令系统,可以让指令并行运行。

在本文嵌入式图像采集系统需要性价比高,代码执行效率高,方便安装且能够长期稳定工作的嵌入式芯片。综上论述,嵌入式ARM处理器最适合本课题设计要求。

2 嵌入式图像采集硬件分析

系统的硬件结构如图1所示,主要由测量传感部分、采集部分和上位机处理部分构成的。采集系统对摄像机采集到的图像直接传送至嵌入式操作平台,其他测量单元的信号在进行获取和预处理之后,通过TCP/IP总线发送给嵌入式处理平台。其中,测量单元主要包括摄像机、光电编码器、陀螺仪、倾角仪、加速度计和2D激光传感器,在同步触发电路的控制下,实现对轨道状态参数的等距同步测量[7-10]。因采集对象包含数字和模拟信号,为了减小信号间的相互干扰,采集系统采用基于M3内核的两片ARM处理器协同工作来实现对测量单元的同步控制。

图1 嵌入式轨检小车系统采集结构图

2.1 主控处理板电路

2.1.1 S3C2240电路

S3C2440的突出性能是其内核CPU设计,是一个精心设计的16/32位ARM920T的RISC处理器。ARM920T实现了MMU、AMBA、BUS和Harvard高速缓冲体系结构。这一结构具有独立的Cache和16 KB数据Cache。每个都是由8字长的行组成。S3C2440配备ARM920t核心,工作主频高达400 MHz[4]。工作功耗极低,长时间运行稳定。采用了新的总线架构Advanced Micro controller Bus Architecture (AMBA)。

2.1.2 SDRAM

S3C2440内置4 KB的SRAM,对于运行操作系统的程序来说是远远不够的,但S3C2240支持SDRAM接口,并且会自动刷新,采用外部SDRAM来扩展程序运行内存对于本文设计非常适合。本系统采用两片K4S561632N,32MB的SDRAM,总共64 MB运行空间,对于摄像头采集程序足够使用。

2.1.3 NAND Flash存储器

NAND Flash存储芯片,掉电数据不丢失,可以存储操作系统软件或者应用数据。该类型存储芯片采用并行通讯。读取和擦除速度有限,并且单片机上电后需要初始化读取接口才能使用。NOR Flash和NAND Flash都为并行通讯接口。NOR Flash为分离的地址线和数据线,而NAND Flash为复用的。查看Samsung的K9F1208芯片后,本系统采用这款NAND芯片。

图2 NAND闪存电路

K9F1208是Samsung公司生产的512 Mb(64 M×8位)NAND Flash存储器。存储器采用8位地址总线也是数据总线,先给地址总线发送地址,然后从地址总线读或写数据,有所降低速度,但节省硬件接口资源。这款芯片读写时序如下。对该芯片的操作分为写命令、写地址、读写数据。首先执行写入命令,然后写入4字节要操作的地址,最后读写数据。

图3 NAND读写时序

2.1.4 串口通信电路

串行接口是最简单可靠的芯片之间通讯方式,TTL电平全双工通讯,但是通讯距离短。采用PL2303串口转USB芯片。PL2303是一款高效的USB转TTL串口的通信芯片,该芯片价格便宜,性能优异,支持各种操作系统驱动。外围电路简单,接上几个电容和晶振就能稳定工作。内部将TTL收到的数据发送给USB,同时将USB数据发回TTL串口,实现全双工通讯,工作全部由器件自动完成,适合在本系统中使用。

2.2 触发采集板电路

按照里程位置触发摄像机采集轨道图像是系统设计要考虑的一个重要问题,因此需要设计相应的同步触发与采集电路板系统,保证光电编码器输出脉冲按照设置的周期转为触发信号供CCD拍照采集。触发采集电路需要对采集到的光电编码脉冲计算,除对相机触发外,还需对陀螺仪、倾角仪和加速度计惯导系统触发采集,保证轨道图像与空间线形位置对应,是多传感融合计算的前提。考虑到触发信号计算量少,反馈采集的信息包只需要简单的转发,因此选择MCU作为采集板的主控芯片,最后确定使用STM32系列芯片。实现脉冲采集需要设计光电编码器对应的正交编码电路;根据陀螺仪是422通信输出接口、倾角仪和加速度计是模拟电压输出接口,需要设计对应的422接口电路、桥式整流变压采集电路。

正交编码电路主要用到高速光耦光电转换电路。将编码器的三路脉冲先通过NPN二极管提升电平后,再输入到光耦隔离芯片,实现光电转化,当输入端高电平时,光耦芯片内部二极管发光,输出端输出高电平;当输入端低电平时,二极管不发光,输出端输出低电平,因此通过该电路可以把信号较弱的输入脉冲变为稳定的高脉冲信号。

422通信电路使用ADM2582EBRWZ 芯片数据手册提供的外部电路设计,整流电路使用MB4S-E3/80芯片作为整流桥电路,外部匹配相应的电阻,滤波电容装化电压到ADC的采集范围内。芯片的供电方案采用多级降压,由锂电池DC-DC降压到12 V,12 V再降压到5 V,5 V再降压到3.3 V,供板上各部分使用,使用Cadence软件绘制PCB电路板,实现上述功能。

2.3 摄像头采集电路

满足小车运动过程中精确取像,分辨率1 624×1 234,200万像素,采样帧率可调最高至30 fps,ROI调小获得高帧率,全分辨率取像时最大帧率14 fps,光电隔离的输出接口,有内部同步触发和外部采集两种触发方式,外部采集处理包括高低电平和上下边沿跳变,以及延时触发等,本系统使用外部边沿跳变的同步触发方式,共同触发相机和其他采样设备,FIFO空间为在摄像头选型上,选择MantaG-201C型PoE工业数字相机,采用Sony ICX274线性CCD逐行扫描成像,32 M,满足设备高速采集中转图像需求。

相机的同步触发电路采用图5所示电路结构,输入信号

图4 串口通信电路

图5 Manta G-201C外触发电路

为处理器经过光电编码器编码后的等距离触发信号P_BT,经过TLP250功率放大之后,将信号转换为12V触发信号P_BT_G,触发相机采集。

2.4 LCD显示电路

S3C2440配备LCD控制器模块,该模块可以独立完成LCD通讯协议,初始化代码中,根据采用的4.3寸屏幕数据手册中要求,配置LCD控制模块的通讯时序参数。LCD模块才能正确和LCD通讯。内存中设定一块显存区域,LCD控制模块将自动把显存中数据刷新至屏幕,LCD原理是控制液晶光线透过率来实现彩色调节,呈现出各种色彩。这样就要求屏幕必须有背部的光源。目前采用的都是LED灯光,安装在屏幕侧边,照亮整个屏幕,在屏幕中的LED有采用串联和并联两种方式。并联不需要升压驱动,但是驱动电流大,串联需要驱动电压高。本系统采用串联LED背光的屏幕,需要升压驱动背光。本系统采用MP1518升压器件来驱动LED背光,驱动电流在10 mA到20 mA的负载。由S3C2440芯片输出PWM给MP1518的EN引脚,根据占空比,调节背光LED。

图6 液晶屏接口电路和屏幕

3 嵌入式图像采集软件分析

3.1 图像嵌入式采集流程

采用模块化编程思想,即每个功能由相应的子模块独立完成,摄像机传感器采集图像的过程,使用GetFrame方法获取图像信息,本系统将摄像机采图模块常用函数封装到Cameras类中,通过下图实现对摄像机采集功能的控制[11-12]。

图7 嵌入式采集处理流程

3.2 图像采集程序初始化流程

相机初始化流程:首先创建对象,获取相机数目和序列号,根据序列号读取对应配置文件,设置相机格式、传输速度、数据包大小以及时间基,再设置触发方式,开辟内存空间读取图像,启动相机开始捕获。

3.3 嵌入式平台下图像采集处理程序整体流程

软件处理流程如下,调用Video4Linux(V4L)接收采集到的图像,之后传送至FrameBuffer帧缓冲空间,应用程序从缓冲区域读取图片进行处理,处理过程中调用OpenCV库函数与QT库,定位分割之后的轨道图像调用VBF图像显示程序,将图像显示在屏幕上。

图8 嵌入式平台图像采集处理流程

Video4Linux(V4L)是嵌入式Linux系统中外部图像采集设备的驱动,能够为外部采集设备提供所有最基本的程序功能,加载V4L程序可对外部设备的功能进行实现,在此基础上通过其他接口可以收集采集到的图像数据。

FrameBuffer是帧缓冲,缩写为VFB。FrameBuffer是标准的字符设备,是一种图形设备驱动接口,原理是把其内部的显存抽象成字符设备,同时准许上层的应用程序获取存储的数据进行读写。作为显示缓冲区,当在FrameBuffer里写入一定格式的数据时,采集到的图像就再次进行输出显示,此外,FrameBuffer与屏幕中的点之间有映射,每点都有与之一一对应的地址。同Video4Linux一样,在Linux操作系统内核中存在着FrameBuffer的驱动程序,所以进行图像显示程序开发时也只需加载相应的驱动程序,当有新数据写入时,屏幕图片便会自动进行更新,系统再另外从FrameBuffer中读取数据并将其进行存储即可。

4 实验结果与分析

选取三组不同类型扣件的线路进行采集试验,扣件中心对称、远近距离不同的两组,扣件水平对称线路一组,针对不同线路的扣件检测实验结果如下。

图9 不同线路状态下扣件的软件处理结果

通过多次现场实地线路试验,设计的采集系统能够稳定的同步采集现场的轨道图像,变换设置相机的高度与采集角度,小车能够经过OpenCV处理函数快速的定位出扣件特征区域。

5 结论

本文描述了搭建与设计嵌入式图像采集处理轨检小车的过程,主要包括整体系统结构设计、硬件选型与电路设计、软件运行结果测试等,设计了嵌入式的图像采集处理轨检小车,解决了硬件电路的选型与设计问题,测试了算法运行与嵌入式平台的稳定性。硬件设计上分为嵌入式主控板电路设计与同步采集触发控制板电路设计两大部分,嵌入式主控板电路设计为集成的Linux平台,采集触发控制板是使用Cadence软件自主设计的嵌入式STM32单片机电路,着重分析了主控板上的关键电路,概述采集触发控制板电路。软件部分主要分析了主板运行程序流程与同步触发板的μC/OS-II系统控制过程。最后测试了基于OpenCV函数库与QT平台编写的轨道图像分割软件,得到轨道图像的分割效果,测试嵌入式平台的工作稳定性与验证算法的实用性。

猜你喜欢
嵌入式处理器轨道
小天体环的轨道动力学
基于IMX6ULL的嵌入式根文件系统构建
推荐书目《中国轨道号》
“新谢泼德”亚轨道运载器载人首飞成功
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
朝美重回“相互羞辱轨道”?
基于ARM嵌入式的关于图像处理的交通信号灯识别
TS系列红外传感器在嵌入式控制系统中的应用
ADI推出新一代SigmaDSP处理器
火线热讯