基于OCR技术的莫尔斯格式报自动识别算法应用
2022-08-26沈博
沈博
(深圳电器公司,广东 深圳 518000)
0 引 言
莫尔斯码电报作为最古老的无线数字化通信方式,具有占用频带窄,不易被干扰,设备简单,通信距离远等特点。随着通信技术的发展,莫尔斯码电报在大部分应用领域已被其他无线通信方式取代,但在军事和海运等行业中作为应急的通信手段仍然是必不可少,可在无传统通信方式的情况下,提供安全可靠的远距离通信。
莫尔斯码电报虽具有很多其他报文通信所不具备的优点,但其报文格式不灵活、符号规则复杂、对通信员要求高、信息不直观易出错、抄报发报速率慢等缺点,使用起来诸多弊端。主要体现在:
(1)通信员上机时需要精神高度集中,发报时漏发、错发报概率较大;
(2)发报速率慢,紧急情况下无法满足及时通信的需求;
(3)报文可视化程度差,传阅、保存不方便;
(4)实时性和便捷性差,快速录报和抄报实现困难。
本文重点介绍一款智能莫尔斯格式报抄发设备(以下简称“抄发设备”)的实现,及运行于该设备的一种基于OCR技术的莫尔斯报文自动识别算法,以实现格式报文自动录入和纠错,有效提高发报速率和发报正确率,解决莫尔斯码电报的使用弊端。
1 智能莫尔斯格式报抄发设备实现
1.1 抄发设备体系架构
报抄发设备是配合短波电台使用的设备,将莫尔斯格式报处理为标准的“点划”音频格式,通过短波电台进行发送和接收,完成通信功能。其体系架构如图1所示。
图1 收发设备体系架构图
抄发设备整机体系架构由硬件平台、嵌入式移动智能操作系统及应用程序三部分组成。硬件平台包括莫尔斯码格式报采集单元、RK3399处理器单元、电源模块、人机交互模块和接口控制模块。嵌入式智能移动操作系统包括安全加固内核、底层库和操作系统框架。应用程序是基于嵌入式智能移动操作系统运行环境下,开发相应的业务软件,综合运用图像识别、音频编解码、主动降噪、抗干扰等技术,实现莫尔斯格式报快速录入、自动发送和接收等功能。
1.2 抄发设备硬件设计
抄发设备是基于微处理器RK3399的嵌入式智能平台,主要由RK3399处理器单元、莫尔斯格式报采集单元、人机交互模块、电源模块和对外接口组成,硬件组成框图如图2所示。
图2 抄发设备硬件组成框图
莫尔斯格式报采集单元和RK3399处理器单元为抄发设备的核心组成部分,主要负责对莫尔斯格式报的运算处理,包括音频采集、A/D转换、D/A转换、降噪、音频编解码、信号识别、收发控制等部分组成。其中摄像头可快速采集格式报报文内容,通过相关算法实现报文快速录入。
1.3 抄发设备软件设计
抄发设备业务软件是基于嵌入式智能移动操作系统开发的,主要功能包括沟通联络、报文录入、报文发送、报文接收和参数设置五大模块。沟通联络是设备间按照约定的协议格式进行的数据交互。报文录入使用OCR(光学字符识别)技术自动识别莫尔斯格式报报文,可以快速的将纸质格式报文转化为可编辑的电子格式报文,从而实现报文的快速录入。报文发送主要利用了莫尔斯编码算法对电报文进行数据处理,然后将处理后的数据以音频数据流的方式发送给电台。报文接收采用了莫尔斯报文信号自动检测算法,检测音频中“点划”相应频率的莫尔斯编码并解码为相应字符。
2 莫尔斯报文自动识别算法应用
2.1 自动识别算法应用描述
传统电报纸的录入都是依靠人工,效率低、易出错。而抄发设备使用的OCR(光学字符识别)技术可以将拍照后的格式报图片快速、准确地转换为可编辑的文本文件,用户能实时对转换后的报文内容进行编辑、修改、确认和发送。
莫尔斯报文主要有数码电报和信号报,这些报文格式都是表格形式,格式固定,故称格式报。当前包含表格图片的文字识别仍是技术难点,需要对表格图片进行相关处理后,再采用OCR技术进行文字自动识别。
格式报的自动识别流程有以下几个步骤:首先,对电报图片进行倾斜矫正、灰度化和二值化等图像处理算法,准确有效的将电报图片按照单元格进行分割,并对分割后的每一个单元格图片进行样本采集、字库训练等处理,生成以电报数字为主的专用字库;然后,判断单元格总数初步区分报文类型,结合专用字库通过文字识别算法识别出每一个单元格的内容;最后,将所有单元格内容有序的填充到报文界面中。
2.2 自动识别算法原理机制
格式报的识别难点在于格式报图片的预处理和图片的文本识别。对格式报图片的预处理和图片的文本识别包含如下步骤:首先,对电报纸图片进行灰度化二值化处理,利用OpenCV形态学函数腐蚀和膨胀,得到图片表格横纵线的交点集;然后,通过这些交点集对电报图片进行分割得到每一个单元格;最后,采用OCR技术逐一对每个单元格文字进行识别。
格式报自动识别算法的原理主要包括以下几个方面:
(1)连通区域分析。对格式报图片进行灰度化和二值化处理,并进行连通区域分析,检测出字符区域的区域轮廓以及子轮廓,将其集成为文本区域块。
(2)文本行和字符的查找。连通区域分析后,可大致确定文本区域块和文本尺寸,采用百分位高度过滤器过滤掉跨行大写字母及纵向粘连一起的字符,利用字符的高度信息,选取所有字符的中值高度,通过调节字符高度的比例滤除一些无关的字符块(比如标点符号),实现文本行的查找。
对块区域的横坐标排序,利用坐标拟合直线拟合方法—中位数最小方差拟合文本行的形状。采用最小二乘法检测出等距文本,对非等距字体(如百分号,斜体等),利用中线、基准线之间的空白大小来分割字符,实现字符的查找。
(3)字符识别。首先,分割查找出的文本行中的字符,将凹进去的轮廓点作为候选分割点,分割后,使用静态字符分类器对分割后的字符进行识别;然后,将识别结果提供给字符库进行检索,结合分类器的选择为文本行中的字符找出最匹配的字符。若候选分割点全部使用后,识别结果仍然不佳,此时需进一步对字符进行拼接,利用最佳优先算法(Best-fisrt search strategy)检索最优的字符组合。最后,采用自适应字符分类器对先分割后拼接的字符进行识别,并将识别的结果输入字符库进行查找匹配,若查找成功,则将查找匹配结果转化为字符,否则,判定字符破损不全,进行字符修补。字符识别框架图如图3所示。
图3 字符识别框架示意图
2.3 自动识别算法实现
格式报自动识别主要包括格式报图片预处理、字库训练、文字识别三个步骤。
2.3.1 格式报图片的预处理
格式报图片的预处理主要目的是为了准确有效的分割出每个单元格,包括图片倾斜矫正、灰度化、二值化等图像处理步骤,如图4所示。
图4 电报纸的图片预处理步骤
利用收发设备的摄像头对纸质格式报进行拍照,拍摄的格式报图片如图5所示,在拍摄过程中,可能存在图像倾斜、字迹不连续等现象,导致OCR识别的拒识率和误识率增大。因此,需要对图片进行倾斜矫正、灰度化处理、二值化处理、图片腐蚀、图片膨胀和图片分割等处理。
图5 纸质格式报拍摄图片
2.3.1.1 格式报图片倾斜校正
报文拍摄时,不可避免地会出现图像倾斜,增大图片分割和识别处理的难度,需对图片进行校正。使用自动校正法,自动分析电报文图像的版面特征,计算图像的倾斜角度,并根据倾斜角度对图片进行校正。图6为倾斜校正后格式报图片。
图6 校正后格式报图片
2.3.1.2 格式报图片灰度化
一般摄像头采集的格式报图片为彩色图片,因光线原因,在彩色图片中包含部分干扰像素,影响文字识别准确率。为滤除这些干扰像素,需对图片进行灰度化处理。灰度化处理后格式报图片如图7所示。
图7 灰度化处理后格式报图片
2.3.1.3 格式报图片二值化
二值化处理,就是将灰度值图像信号转化成只有黑和白的二值图像信号。灰度处理后的图片需进行二值化处理,将报文内容与背景进一步分离开。二值化效果的好坏,直接影响灰度电报文图像的识别率,二值化处理后格式报图片如图8所示。
图8 二值化处理后格式报图片
2.3.1.4 格式报图片腐蚀
图片腐蚀处理是用于处理二值化处理后的报文表格边缘模糊部分。它将二值化格式报图片与模板矩阵进行卷积,删除格式报表格边缘的某些像数点,滤掉格式报表格不清晰的边界,腐蚀过程中可以根据需求自行生成模板矩阵。
2.3.1.5 格式报图片膨胀
图片膨胀用于补全格式报字符中不连续部分,将格式报图片的一部分区域与卷积核进行卷积计算,计算出卷积核覆盖区域像数点的最大值,并将这个最大值赋给参考点指定的像数,格式报图片中字符的区域参考指定像素值逐渐增长,从而修补字符中像素不连续部分。
2.3.1.6 格格式报图片分割
图片分割是将报文表格内容分割成独立的单元格,便于进行字符自动识别。使用OpenCV算法库检测膨胀和腐蚀处理后的格式报图片的轮廓,获取轮廓集。该轮廓集中包含轮廓拐点的坐标信息,设置相应的阈值,过滤除未框选的报文内容的轮廓,对过滤后的轮廓集进行矩形边框拟合,获取表格纵横线交点集,如图9所示。该表格纵横线交点集包含每个矩形边框的左上角和右下角的坐标信息,基于这些坐标信息,对格式报图片进行分割,得到每个独立单元格,如图10所示。
图9 表格纵横线的交点集
图10 格式报图片分割图
2.3.2 字库训练
由于格式报的报文内容主要是由数字和字母组成,因此以英文语言库为基础,通过对电报文样本的特征提取,生成主要以数字和英文字符组成的字库,用于报文自动识别。以下为字库训练的主要步骤:
(1)配置训练环境;
(2)预处理训练样本。准备多张训练样本图片,将所有的训练样本图片预处理后进行合并;
(3)生成训练字符位置信息文件,并记录文字识别引擎识别出来的字符及其位置坐标;
(4)修正识别结果。对训练字符位置信息文件中识别错误的字符进行人工修正,并保存结果;
(5)产生训练字符集。使用步骤(4)产生的训练字符位置信息文件作为输入,产生训练字符集文件,该文件包含所有可被文字识别引擎识别的字符的集合;
(6)提取训练字符特征。新建训练字体属性文件,该文件中每一行表示一种字体信息,对步骤(5)产生的训练字符集文件使用相关指令生成字符的各种特征属性文件,以及每个字符所对应的字符特征数量文件;
(7)合并上述步骤所产生的训练文件,生成数字文本字库。
2.3.3 字符自动识别
字符自动识别分为两个阶段:字符检测和字符识别。
2.3.3.1 字符检测
字符检测表示对格式报图片中存在字符的区域进行定位,找到字符或者文本行的边界框。字符检测常用的方法为滑动窗口算法,首先从每个滑动窗口中提取字符特征,输入已训练的分类器中,判断当前滑动窗口是否包含字符,然后通过二值化来精确定位字符的位置。
通过滑动窗口算法,遍历整个图片,对标记的训练样本特征进行判断,找到图片中目标字符,进行矩形化提取。
2.3.3.2 字符识别
首先,对提取的矩形化字符区域进行分割,拆分成不同的字符;然后,根据训练获取的字库对字符进行预测;最后,合并每个字符的预测结果,获取矩形化字符区域整体的预测结果。
综合上述算法原理,进一步提高抄发设备文字识别率和识别速度,主要采取了以下几个措施:
(1)提高摄像头像素,拍摄清晰的格式报图片,降低拒识率和误识率;
(2)优化图片轮廓识别函数,加快表格图片轮廓的识别,增加识别图片表格位置的准确度;
(3)优化图片裁剪函数,加快图片裁剪的速度;
(4)增加样本采集数据,进行字库训练,进一步完善训练字库,从而提高文字识别率和识别速度;
(5)利用多线程技术,同时进行图片裁剪和图片文字识别。
3 结 论
莫尔斯报文自动识别算法对莫尔斯格式报样本的识别具有较高精确度,可有效降低报文错识率和漏识率。运行在抄发设备上,能够快速的识别莫尔斯电报文,避免了人工录入速度慢和易出错的问题,解决莫尔斯电报的使用弊端。