PDF下载
基于神经网络的频谱图像识别与图像数据提取软件研究

刘欧1 王楠2 刘钢2

1、海装重大专项装备项目管理中心,北京,100741;2、武汉第二船舶设计研究所,湖北武汉,430064

摘要: 为掌握船舶整体电磁环境和设备电磁特性而开展和形成的大量设备、系统、总体相关的电磁兼容测试报告,针对其因测试时间较为久远没有电子数据只留存了纸质测试报告问题,开展了测试报告(PDF格式)中频谱曲线识别相关研究,且对频谱曲线倾斜、清晰度不够、曲线断点等现象,构建基于神经网络的频谱图像识别与图像数据提取软件设计,完成频谱曲线识别与数据提取并形成电子数据文,对后期船舶电磁环境大数据的分析和处理有很好的支撑作用。
关键词: 神经网络,频谱图像识别,数据提取
DOI:10.12721/ccn.2021.157075
基金资助:
文章地址:

1概述

船舶是在一个有限的船舶空间上布置了电力系统、通信系统、导航系统、空调系统、控制系统等数量众多的系统设备,其中有很多电磁发射特性显著的发电、变电设备,其电磁传导发射和电磁辐射发射都会显著影响船舶总体的电磁兼容性,使人员、设备面临较为复杂的电磁兼容问题。为掌握船舶整体电磁环境和设备电磁特性,通常会开展大量的设备、系统或总体相关的电磁兼容测试。

针对上述大量电磁兼容测试报告中的频谱曲线,很多电磁兼容测试项目因测试时间较为久远没有电子数据留存只留存了纸质测试报告,因此需要对这些测试报告中的频谱曲线进行图像识别和数据提取。纸质报告因存放年代久远在扫描成PDF文件时出现很多问题,比如频谱曲线倾斜、清晰度不够、断点等现象。因此本文提出基于神经网络的频谱图像识别与图像数据提取软件研究,用于对电子版电磁兼容测试报告(pdf文件)中包含频谱图的页面自动识别,对频谱图片进行提取和处理,将频谱图中频谱曲线上各点所代表的(频率,电平)数据进行还原,保存为数据文件,对后期船舶电磁环境大数据的分析和处理有很好的支撑作用。

2软件功能需求分析

(1)  识别频谱图并按格式保存

软件需在导入一个或多个文件后开始识别文件内特定的频谱图,并在识别结束后生成一个或多个与文件名同名的文件夹,将每个文件内频谱曲线的识别结果存入该文件夹中,识别后频谱文件的命名格

(2) 频谱曲线主要信息获取

频谱曲线识别后应保留原频谱图像的主要信息,包括横纵坐标轴、频谱曲线、频谱曲线的坐标位置、横纵坐标轴的刻度值、单位及其他与用户读取频谱数据相关的信息;

(3) 频谱曲线频率步长

频谱曲线识别提取出的频率-幅度数据组,频率步长应不大于GJB152-86/GJB152A-97中规定的频率步长。不同测试项目对应的特征频点数据提取暂留后续协商。

(4) 识别频谱曲线测试项目和纵轴单位

通过频谱曲线横轴的识别可以判断出该曲线的测试项目和纵轴单位,如横坐标为25Hz-10kHz则该曲线对应项目为CE101,纵坐标单位为dBμA,测试项目对应横坐标频段参考GJB151/GJB151A;

(5) 频谱数据文件格式

频谱图识别后生成的频谱数据文件为txt格式,其中包括频率、幅度,频率、幅度之间以“逗号”分隔,行末“回车”,其存储格式示例如下:

频率(Hz或kHz、MHz),幅度(dBμA或dBμV、dBμV/m、dBpT)

 (6) 频谱曲线图片矫正

受原纸质检测报告扫描质量的影响,甲方所提供的电子文件中频谱曲线可能存在如下问题:坐标可能不是水平和垂直方向、部分曲线或坐标轴存在断点、部分曲线与坐标轴刻度重合等问题;频谱识别软件应能够以甲方所提供的电子文件为蓝本,解决纸质报告扫描质量不高的问题。式为“文件名_页码_测试项目_流水号.txt”

3软件研究设计

基于神经网络的频谱图像识别与图像数据提取软件研究设计如下图所示,对电子版pdf文件进行格式转换、图片处理、图像分类、图像分割、数据提取等操作。1.png图1软件研究设计框图

4功能模块描述

4.1  PDF转PNG图片

4.1.1功能

将测试报告文件夹下的所有文件转为PNG图片。

4.1.2输入项目

测试报告文件夹地址,需要输出图片的地址。

4.1.3输出项目

将转换后的图片输出的指定位置。

4.1.4程序逻辑

1)遍历每一份PDF文件,若文件不符合pdf格式要求,则报错

2)利用fitz中的open模块遍历pdf文件中的每一页

3)设置x与y方向的缩放系数,以保证图片的清晰度

4)判断存放图片的文件夹是否存在,若不存在就创建

5)将转化后的png格式的图片以“文件名_页码”的命名方式写入指定的文件夹中

4.2图片预处理

4.2.1功能

清除图片上下左右的外侧边框,尤其是左右,从而使频谱图片在页面中占据独立的空间,而非被外部表格包裹。

图片按照中间横向黑条分割成上下半页,返回是否可分的布尔值列表。

读取所有拆分后的所有样本图片的文件路径。

4.2.2输入项目

二值化的PNG格式的页面图片。

4.2.3输出项目

图片是否可分的布尔值列表,分割的坐标,所有拆分后的图片列表。

4.2.4程序逻辑

1)按照合适的边界范围清除图片上下左右的边界

2)按照中间横向黑条分割成上下半页,返回是否可分的布尔值列表以及分割的位置

3)读取所有拆分后的样本图片,返回图片列表

4.3拆分页面图片

4.3.1功能

判断图片是否中间可分,若不可分则为长页表格或纵向长图

4.3.2输入项目

二值化的PNG格式的页面图片列表

4.3.3输出项目

图片是否可分的布尔值列表,分割图片的坐标点

4.3.4程序逻辑

1)取一块横向的高为特定像素的矩阵块

2)若矩阵块内的像素的灰度值低于阈值则增加矩阵块的宽度,否则判定为不可拆分

3)不超过阈值则按照矩阵块的位置来对页面进行拆分

4)否则按照中线来拆分图片

5)最后返还是否可拆分的布尔值列表以及拆分后的图片列表

4.4图片分类

4.4.1功能

使用提前训练好的神经网络模型对含频谱图的报告页面进行识别,并进行标记。

4.4.2输入项目

二值化的页面图片

4.4.3输出项目

文件是否可分的布尔值列表

分割线的坐标位置

拆分后的所有样本图片列表

4.4.4程序逻辑

1)逐一使用三种神经网络模型对拆分后的图片进行综合判断,得到分类结果

2)为避免神经网络出现低级失误,同时使用图片特征分类矫正方法对神经网络模型自动分类结果进行修正

4.5修正分类结果

4.5.1功能

如果有不可分的长图被分成2个半页后,分类成0和1,则将两者均改为0,即非频谱图

4.5.2输入项目

是否可分列表,半页图分类结果

4.5.3输出项目

半页图分类修正结果

4.5.4程序逻辑

1)遍历所有拆分后的图片结果

2)如果存在不可分的长图拆分的两个半页分类结果不同的情况,则将两张图的分类结果均改为0

3)返回修正后的分类结果

4.5.5详细流程图2.png4.6倾斜角度矫正

4.6.1功能

使用Canny算子对图片进行边缘检测,并进行Hough变换,取顶部区域中斜率绝对值小于0.2的直线,判定图片倾斜角度,返回该图片旋转的角度,根据获取的角度对图片进行反向旋转,使图片回正。

4.6.2输入项目

可能存在倾斜的图片列表,需要输出倾斜校正后图片保存的路径,初始倾斜的角度

4.6.3输出项目

将倾斜矫正后的图片存入路径中,返回倾斜角度列表

4.6.4程序逻辑

1)先根据传入的角度作初始旋转,避免图片页面裁开后,下半个页面首个脉冲峰相比最大脉冲过低的情况。

2)取图片顶部150个像素高度进行水平投影,取第1个峰值看下脉冲宽度,分两种情况

3)根据倾斜角度对图片进行旋转,然后重新二值化

4)根据检测倾斜角度,对图片进行反向旋转,并返回倾斜角度

4.7搜索频谱图边界

4.7.1功能

中心外扩法搜索边界,找到频谱图对应的上下左右边框,返回边框的位置。

4.7.2输入项目

已分类为含频谱图的半页图片或整页图片。

4.7.3输出项目

上下左右边框的位置。

4.7.4程序逻辑

1)确定垂直方位上的中心位置,即搜索频谱图中相对较靠中心的一个位置,避免下面的搜索框超出频谱图外框

2)若图片为长图,则搜索滑动窗长度,纵向频谱长图半页纸

3)若为半页图,则通过矩形框搜索找到上下左右的空白边界。

4)返回空白边界的值

4.8频谱图X轴极坐标提取

4.8.1功能

对频谱图中X轴的首坐标和尾坐标进行定位并且通过字符识别获得其具体数值。

如图中红色框框出的部分,对X周首位坐标进行定位、裁剪、分割字符,并基于提前训练好的字符识别模型识别首位坐标对应的具体字符。3.png4.8.2输入项目

带margin的频谱图片,频谱图上下左右边界位置数据列表。

4.8.3输出项目

x轴坐标的首坐标和尾坐标。

4.8.4程序逻辑

1)搜索频谱下方文字,截取数值标签

2)与图片同款的直线向下搜索,当横向映射大于5个点时即找到文字上边沿

3)分离获取首标签和尾标签

4)分离标签中的每个字符

5)增强字符图片

6)使用神经网络模型进行字符识别

7)选取最大概率分类项,返回首标签和尾标签数值

4.9频谱图Y轴极坐标提取

4.9.1功能

对频谱图中Y轴的首坐标和尾坐标进行定位并且通过字符识别获得其具体数值。

如图中红色框框出的部分,应能够做到定位且识别出“160”和“0”两个坐标值。4.png4.9.2输入项目

带margin的频谱图片,频谱图上下左右边界数据列表。

4.9.3输出项目

y轴坐标的首坐标和尾坐标。

4.9.4程序逻辑

1)搜索频谱下方文字,截取数值标签

2)与图片同款的直线向下搜索,当横向映射大于5个点时即找到文字上边沿

3)分离获取首标签和尾标签

4)分离标签中的每个字符

5)增强字符图片

6)使用神经网络模型进行字符识别

7)选取最大概率分类项,返回首标签和尾标签数值

4.10频谱图极限值曲线提取

4.10.1功能

对已进行频谱图网格消除的频谱图上的极限值折线进行提取,得到频谱极限值折线在图中分布的像素位置数据列表。如图中半透明红色框中框出的部分。5.png4.10.2输入项目

已进行网格消除的频谱图图片矩阵。

有两种情况:

1)图中包含频谱极限值折线和频谱迹线

2)图中不包含频谱极限值折线,只包含频谱迹线

4.10.3输出项目

提取的频谱极限值折线数据列表。

4.10.4程序逻辑

1) 获取频谱图中顶层曲线

2) 将曲线分割20段,对每一段计算斜率,计算方法为:

a) 若该区间小于等于1个点, 则跳过;

b) 若仅有2个点,则用该2点计算斜率

c) 若有大于等于3个点,则取首尾点计算斜率,再去中间点与起始点计算斜率,若两个斜率偏差小于容限,则认为是直线段,否则判定为曲线段,不记录斜率;

3) 保存所有线段的斜率和起止位置;

4) 对相同斜率段进行分析,看是否在一条直线上,若是则认为存在极限值折线;

5) 对所有斜率值进行搜索比较,判断极限值折线是多段折线还是单段折线;

6) 计算每一段折线的交点,构建完整的极限值折线数据列表;

4.11频谱迹线数据提取与矫正

4.11.1功能

对消除频谱极限值后的频谱图提取顶部像素数列,构成频谱迹线的数据数列。但因为频谱图的网格消除和极限值曲线消除,基本上难以达到完全清楚的效果,而且图片不可避免地会存在噪点,破坏频谱迹线的提取。因此,在提取频谱迹线数据列表后,还需要对迹线数列进行搜索和异常点侦测,识别异常点位置,并将异常数据点清零,然后对频谱迹线数据进行线性插值处理,消除数据中心的零点,最后根据频谱图的x轴和y周起止坐标进行像素点到“频率-幅度”数据对的映射,将计算得到的“频率-幅度”数据存储到制定的txt文件,并重新绘制频谱图保存为png图片。

4.11.2输入项目

清除了频谱极限值线的频谱图。

4.11.3输出项目

“频率-幅度”数据文件和重绘的频谱图png文件。

4.11.4程序逻辑

1) 求频谱迹线数据列表的差分数列

2) 设定异常跨度阈值为60,超过该阈值的认定为异常跨度

3) 获取差分数列中的所有正向异常和负向异常出现位置

4) 搜索首个正常跳变点,即从0到非最大值点的跳变,从该点往后搜索

5) 若当前点为跳变点,且跳变后数值非最大值也非零值,则从原图上该点位置往下取一段线段

5结论

基于神经网络的频谱图像识别与图像数据提取软件从软件功能需求分析、软件概要设计、算法设计与实施、业务功能模块开发等方面开展研究与设计,能够实现大多数测试项目的识别与数据提取,为船舶电磁环境大数据处理提供了很好的数据支撑。

【参考文献】

[1] GJB152-86军用设备和分系统电磁发射和敏感度测量

[2] GJB152A-1997军用设备和分系统电磁发射和敏感度测量

[3] GJB151A 军用设备和分系统电磁发射和敏感度要求