摘要:
随着现在移动智能终端的普及,基于移动终端的各种应用应运而生,其中在字符识别方面的研究有着相当大的实际需求.人们可以通过基于移动端的字符识别软件完成录入名片,识别路牌,翻译文字等功能,能极大的方便人们的日常生活.但现在市场上的字符识别方案大都是基于PC平台,或者只能在移动平台实现简单的文本文档的识别,不能很好的满足人们在日常生活中对文字录入的需求.因此,本文设计了一种基于Android的离线字符识别系统.本系统以Android操作系统为平台,由于C/C++对于图像处理和模式识别算法的执行效率比Java更好,所以利用NDK(Native Development Kit)框架实现Java上层框架与C/C++本地代码之间的调用.在对各种预处理和模式识别算法的研究与实验的基础上,结合本系统离线识别以及复杂背景中字符图像的需求,总结了实现该系统所解决的关键技术问题,并给出了相应的解决方案.本文的主要工作归纳如下:(1)实现了复杂背景字符图片在移动端的离线识别.相比之前的两种开发模式,离线识别系统能给用户带来更好的体验,且能节省开发成本,用户也不需要额外的流量开支.(2)对预处理方案进行改良.现有的图像预处理算法都是针对处理能力强大的PC机,考虑到本文所识别的对象背景的复杂性以及Android平台离线识别的特点,做了以下改良:在传统Otsu的基础上对图像灰度拉伸,使得二值化的效果更理想;提出了通过计算黑色像素高度来测量倾斜角度的方法,计算量小且矫正效果良好;对投影分割法进行了改良,在二维投影的基础上对字符宽度进行聚类分析,可以减少由于字符粘连或字符内部的间隙造成的误分割.(3)在识别阶段,本文设计了基于模板匹配的两级分类器.第一级采用抗噪性能较好的统计特征,对所有模板样本粗分类,筛选出50个候选字符.再利用结构特征对这些候选字符集进行细分类,选出最终的字符.相比于直接采用模板匹配法,在提高识别速率的同时也保证了识别正确率.通过与同类产品在功能和性能上进行对比分析,本文设计的基于Android平台场景中的字符识别系统具有较好的实时性,对复杂背景中的字符识别率较高,能满足用户日常生活中基于移动端的字符识别需求.
展开