基于ADSP-BF609的指针式仪表识别系统设计

2017-09-20 06:15王珍珍马辉辉
电子科技 2017年9期
关键词:指针圆心仪表

雷 稳,王珍珍,马辉辉,罗 威,郑 宁

(西安电子科技大学 电子工程学院, 陕西 西安 710071)

基于ADSP-BF609的指针式仪表识别系统设计

雷 稳,王珍珍,马辉辉,罗 威,郑 宁

(西安电子科技大学 电子工程学院, 陕西 西安 710071)

指针式仪表数字化是通过图像采集与处理技术来读取与识别,能够提高判读准确性和效率,避免主观原因产生的误差。文中提出了一种基于DSP的指针式仪表识别系统的设计方案,采用中值滤波进行图像去噪,Canny算子进行边缘检测,Hough变换进行圆心定位和直线检测等指针仪表识别算法。借助ADI公司提供的集成开发环境CCES对系统的功能和性能进行测试。结果表明,该平台运行稳定,基于DSP的指针图像识别具有较强的准确性和实时性。

Hough变换;ADSP-BF609;指针式仪表;PIXC;PVP

指针式仪表以其结实耐用、价格便宜、示数形象的优点依然被广泛应用于各种领域。但其不是数字信号需要人工判读,不能适应网络化管理。随着DSP技术的快速发展,利用DSP对大量数据的快速处理能力,设计一种精度高、实时性高的数据采集系统成为可能。根据图1所示,指针式仪表数据识别流程,文量提出了基于ADSP-BF609的指针式仪表识别系统设计方案。

图1 指针式仪表数字化结构图

本文重点研究使用ADSP-BF609的PIXC和PVP模块实现采集图像的格式转换及图像锐化Canny算子,以及核心算法Hough变换检测圆心和直线的实现。该方案包括图像采集、图像处理、图像显示、数据传送、数据存储等方面。以ADSP-BF609评估板为实现平台,在CCES(CrossCore Embedded Studio)[1]和PC开发环境下,完成系统软硬件的设计与实现。

1 系统总体设计方案

系统使用ADSP-BF609处理器[2]和Hough变换检测直线[3-5]的思想,设计出系统的总体架构,系统架构如图2所示。

通过摄像头采集指针式仪表的表盘图像,对图像进行存储,然后分别对图像进行RGB格式转换和灰度图像格式转换[6],转换为RGB的图像用于LCD显示,而灰度图像用于系统的进一步处理。将灰度图像进行二值化,对二值图像进行中值滤波去噪处理[7],运用Canny算子进行边缘检测[8-9],最后用改进的Hough变换对图像进行Hough变换,检测并计算出指针的角度,并以此求出表盘指针的示数。

系统完成了各模块硬件设计和相关软件(包括上位机软件)的编写与实现,实现了图像采集、图像处理、Hough变换检测、数据的储存、传输和上位机数据库的设计等功能。

图2 系统结构图

2 硬件设计

2.1 硬件系统结构

系统选用ADI公司新近推出的Blankfin 60x系列处理器,BF609,作为系统核心处理器,使用OV9653作为图像采集模块。系统完成了处理器模块、图像采集模块、图像处理模块、存储模块、数据传输模块以及人机交互模块的设计。硬件设计结构如图3所示。

图3 系统硬件设计结构图

表盘图像经过OV9653采集后得到YUV格式的图像,经过EPPI1口传送到DMA33,一路传送到PIXC(像素合成器)完成图像格式从YUV到RGB的转换。一路将存放的图像经过Y分量的提取,得到灰度图像。对灰度图像进行中值滤波,再经过PVP(流水线视觉处理器)[10]实现Canny算子边缘检测,具体过程为将数据通过IPF1的PORT0口,传送到CNV2卷积模块完成图像的高斯滤波,再将处理后的图像,分别送给CNV0和CNV1卷积模块,进行Sobel算子的两个方向的梯度计算,然后经过PMA模块(笛卡尔转极坐标)计算梯度幅值和方向并使用PORT2口传送幅值和相位信息,利用PEC模块(像素边缘分类器)完成非极大值抑制,边缘提取等操作并由PORT0口传送幅值信息,最后经OPF3口将处理后的图像传送到DMA42,再对图像进行圆心定位,Hough变换等完成指针数据的智能采集。

2.2 预处理模块

系统采用ADSP-BF609提供的PIXC和PVP实现图像的格式转换,滤波去噪和边缘检测。由于算法的硬件实现与软件实现有着质的不同,系统硬件实现能大幅提高图像的处理速度,图4是系统预处理模块结构图,其中PIXC负责图像YUV格式到RGB格式和灰度图像的转换,PVP负责图像的去噪与边缘检测。

图4 系统预处理框图

3 软件设计

3.1 主程序流程

系统启动后,首先初始化各硬件模块,完成接口配置,包括平台初始化,OV9653模块、EPPI接口模块、DMA模块、TWI模块、IPF接口模块、PVP模块(包括IPF、CNV、PMA、PEC模块和OPF模块)、LCD模块等的初始化,接着进行完成摄像头对表盘图像的采集,图像预处理,Hough变换等,图5是软件主程序流程图。

图5 图像处理算法流程图

3.2 图像预处理

图像预处理包括对图像的格式转换和滤波去噪处理,系统对图像的格式转换一是YUV转RGB由系统硬件PIXC直接完成,YUV转灰度图像[11],由void yuv2gray(void)函数完成,直接提取Y分量即可。对图像的去噪处理系统采用的是中值滤波由软件编程实现,即对模板内的数据进行排序取中值以代替模板的中心像素灰度值。PIXC初始化完成的是图像的格式转换,系统只要完成对该模块各寄存器的初始化即可,PIXC能硬件完成图像YUV到RGB的转换而不需要处理器的干扰。下面是初始化PIXC的各个寄存器模块的程序

void InitVssPixc(void)

{

//UYVY output BGR.

*pREG_PIXC0_CONRY = 0x4002CC80;

*pREG_PIXC0_CONGU = 0x7D4E9480;

*pREG_PIXC0_CONBV = 0x4E200080;

*pREG_PIXC0_CCBIAS = 0x31E21F4D;

*pREG_PIXC0_PPL = 480;

*pREG_PIXC0_LPF = 272;

}

3.3 边缘检测

系统采用Canny算子实现对图像的边缘检测,它可以由BF609自带的硬件来实现,BF609处理器内部集成了高性能的专用视觉加速器PVP(流水线视觉处理器)。PVP包含12个数据运算单元用于图像处理,并且各模块可以自由组合。系统利用其强大的图像处理功能,实现Canny边缘检测,其流程如图6所示。

图6 Canny边缘检测实现流程

3.4 识别表盘

3.4.1 表盘读数的计算

系统的检测目标是压力表,而它示数范围为-0.1~0.9 MPa,指针角度变化范围为-45°~225°[12]。以表盘圆心为原点建立直角坐标系,如图7所示。

图7 表盘读数计算示意图

由图7可以得出表盘指针角度与示数的关系式

(1)

由于表盘的起始刻度为-0.1 MPa,而计算时默认起始刻度为0 MPa,所以计算的结果需要进行校正,如式(2)所示

(2)

指针的示数只与指针与x轴正向之间的夹角有关,只要求出指针与x轴正向的夹角就可以计算出指针示数。指针与x轴的夹角可以通过Hough变换的结果中的角度θ值换算得出,所以只要正确求出θ值,并根据正确的关系式就可以求出指针与x轴正向之间的夹角值。所以接下来找出θ与指针和x轴正向之间夹角a的关系。

本系统检测的是压力表,表盘指针旋转角度为-45°~225°,而Hough变换检测角度的范围是0°~180°,超出了检测范围,因此会出现不同示数的指针在同一条直线上的情况。这势必会造成读数错误,为解决这个问题,系统提出了将表盘图像分割成4个区域,每个区域的角度范围最大90°,然后利用角度变换关系来得出各个部分的直线角度,从而得出表盘的指针示数。对表盘图像以表盘圆心为中心进行分区。这样系统首先要确定圆心。系统使用Hough变换检测圆,来确定圆心坐标和半径。

3.4.2 Hough变换检测圆的原理

在X-Y平面,圆的表达式可以表示为

(x-a)2+(y-b)2=r2

(3)

其中,(a,b)为圆心坐标;r为半径。显然对于圆上的点其横坐标和纵坐标可以表示为

(4)

与Hough变换检测直线相同,只不过现在量化的是3个分量a、b、r,增加了计算量,但每次启动只需要计算一次,完成中心的定位即可[13]。圆心与半径的计算同样采用的是投票计数的方法,计数器值最大的点所对应的坐标,就是a、b、r的值,也即圆心和半径。

3.4.3α与θ的关系

将表盘分为4个区域,表盘分区如图8所示。每个区域的角度示意如图9所示。

图8 盘分区示意图

图9 4个区域角度示意图

从图9区域1,可以得出关系

(5)

变换式(3)可以得出θ1=θ3,而

(6)

则可以推出

α=θ

(7)

对于区域2,可以得出

(8)

得出

α=θ

(9)

对于区域3,可以得出如下关系式

(10)

对式(10)进行化简,可得

α=θ2+180°=θ+180°

(11)

对于区域四,可得如下关系

(12)

联立3式,可得

α=180°-θ

(13)

式(6),式(8),式(11)和式(13)为表盘4个区域Hough变换求出的θ与指针夹角θ的关系表达式。据此可以求出指针夹角,并根据指针夹角求出指针读数。

在进行Hough变换之前先确定表盘的圆心和半径,以圆心为起点,半径为长度,将表盘图像分为上下左右4个区域,这样待检测的角度区域就变成了90°以内,能够正常的使用Hough变换进行每个分区的角度检测,以此得出ρ和θ,然后根据上文讨论的每个分区的直线与x轴正向的夹角α与θ的关系,据此求出直线夹角α,最后利用式(3)计算出表盘的示数。

4 系统测试

对系统的总体功能进行测试,测试分为两部分:一是系统性能测试;二是系统功能测试。测试系统使用BF609自带的硬件模块(PIXC)进行图像格式转换与使用软件实现时间优势,以及使用PVP进行边缘检测与软件编程实现Sobel边缘检测的时间优势;功能测试主要测试系统对仪表示数是否能准确读取,能否代替人工进行对仪表数据采集[14]。

4.1 系统性能测试

系统使用PIXC对图像进行YUV到RGB的格式转换,与使用软件实现进行耗时对比,经过软件仿真得表1所示。

表1 系统PIXC与软件格式转换耗时对比

系统使用PVP对图像运用Sobel算子进行边缘检测与使用软件实现进行耗时对比,得到表2。

表2 系统PVP与软件边缘检测耗时对比

由上述两表可以看出,系统用BF609自带的硬件模块在系统运行耗时性能方面的提升。

4.2 系统功能测试

系统使用MFC开发上位机界面[15],连接SQL Server 2000进行数据库数据的存储,完成数据查看、修改、存储、数据导出等操作[16],数据导出到Excel表格,利用Excel操作功能,能实现具体时间日期数据的提取,数据的排序,数据的复制黏贴等。测试表盘人眼读数与机器识别读数比较表格如表3所示。

表3 人眼识别与机器识别对比

由表3可以看出两者之间的误差<0.005,机器识别的结果更加精确,可以代替人眼来完成数据采集。

5 结束语

结合CCES集成开发环境,采用ADSP-BF609为核心处理器设计出了一套仪表数据智能采集系统。系统采用DSP的硬件模块来实现图像的处理,使得图像处理缓慢得到解决,改进的Hough变换使得直线检测更加精确,计算示数也更加准确。BF609的PVP(流水线视觉处理器)硬件使得图像处理工作不再繁杂,系统整体处理速度得到了提升。由于时间有限,系统的设计并不完善,没有考虑到表盘严重污损和表盘旋转的情况。

[1] Analog Devices Inc. CrossCore embedded studio C/C++ compiler and library manual for blackfin processors[EB/OL].(2015-08-09)[2015-12-18]http://www.analog.edu.cn.

[2] Analog Devices Inc. Blackfin processor programming reference[EB/OL].(2013-02-18) [2015-12-18]http://www.analog.edu.cn.

[3] 潘伟,郑海疆.基于脊波变换的直线特征检测及其实现[J].厦门大学学报:自然科学版,2006, 45(6):776-779.

[4] 侯彪,刘芳,焦李成.基于脊波变换的直线特征检测[J].中国科学E辑:技术科学,2003,33(1):66-68.

[5] 陈盖凯.基于Hough变换的直线检测[J].西安航空技术高等专科学校学报,2007,25(3):34-36.

[6] 邵丹,韩家伟.YUV与RGB之间的转换[J].长春大学学报,2004,14(8):51-53.

[7] 赵高长,张磊,武风波.改进的中值滤波算法在图像去噪中的应用[J].应用光学,2011,32(4):678-680.

[8] 王文明,赵荣椿.不同彩色空间的彩色图像边缘检测研究[J].计算机测量与控制,2016,14(12):1607-160.

[9] 唐敏,成礼智.基于自适应脊波变换的边缘检测[J].计算机应用,2006,26(11):2714-2715.

[10] 丛秋波. ADSP-BF60x处理器集成专用视觉加速器[J].EDN China电子设计技术,2012, 19(5):14-14.

[11] 卢允伟,陈友荣.基于拉普拉斯算法的图像锐化算法研究与实现[J].电脑知识与技术,2009,5(6):1513-1515.

[12] 周威.基于计算机视觉的指针式仪表识别系统研究[D].杭州:浙江大学,2006.

[13] Matas J,Galambos C,Kittler J.Robust detection of lines using progressive probabilistic Hough transform [J].Computer Vision and Image Understanding,2000,78(1):119-137.

[14] 石伟,王朝立,陈建帅,等.基于图像处理的变电站指针式仪表读数研究[J].电子科技,2016,29(1):118-120.

[15] 周山.基于MFC和ACCESS数据库的学生信息管理系统[D].长春:吉林大学,2009.

[16] 林乐杰.科研管理信息系统中数据库的设计与实现[D].北京:北京化工大学,2006.

Design of Pointer type Instrument Recognition System Based on ADSP-BF609

LEI Wen,WANG Zhenzhen,MA Huihui,LUO Wei,ZHENG Ning

(School of Electronic Engineering,Xidian University,Xi’an 710071,China)

One way of digital pointer type instrument is to read and recognize the image of the instrument by image acquisition and processing technology,which can improve the accuracy and efficiency of the interpretation,and avoid the error caused by subjective reasons.The paper proposed a design scheme of pointer instrument identification system based on DSP, using the median filter for image denoising, Canny operator for edge detection , Hough transform for central location and line detection , and so on pointer instrument identification algorithm.The function and performance of the system are tested with the integrated development environment CCES provided by ADI. The results show that the platform runs stably, and the pointer image recognition based on DSP has strong accuracy and real-time performance.

Hough transform;ADSP-BF609;pointer type instrument;PIXC;PVP

2016- 11- 13

雷稳(1990-),男,硕士研究生。研究方向:电子设计自动化等。王珍珍(1989-),女,硕士研究生。研究方向:电子设计自动化等。

10.16180/j.cnki.issn1007-7820.2017.09.017

TN911.72

A

1007-7820(2017)09-060-05

猜你喜欢
指针圆心仪表
◆ 仪表
仪表
垂悬指针检测与防御方法*
热工仪表自动化安装探讨的认识
以圆周上一点为圆心作圆的图的性质及应用
为什么表的指针都按照顺时针方向转动
奔驰E260车行驶过程中仪表灯熄灭
浅析C语言指针
参考答案
四种方法确定圆心和半径