Android平台字体识别系统研究与实现
2014-02-01季晨生王经纬王军明
季晨生,徐 明,王经纬,黄 鑫,王军明
扬州大学信息工程学院,江苏扬州 225127
0 引言
如今信息技术飞速发展,中文字库中除了录有中国传统经典的字体外,还有专业厂商制作的字库。近几年,较大规模的西文字体识别与检索已有成效,而识别中文字体的网站却很少。据不完全统计,目前可以下载的中文字体大概有15000多种,而字体网站只提供字体的预览和下载功能,目标性不强[1-2]。
当今智能手机已经相当普及,全球两大类智能手机iphone和Android,其中安卓在中国市场占有率为89.9%,因此开发基于安卓的字体识别软件,将极大地满足市场尤其是广大字体爱好者的应用需求。
1 技术原理
1.1 客户端技术
为了减轻客户端的运行压力,大部分的系统操作都将放在服务器端进行,而客户端只需进行简单提交图片、提交文字等操作。然后通过http方式实现与服务器数据传输。
1.2 服务器端技术
当用户上传图片到达服务器端后,服务器端通过后台程序,将图片存储到某一特定文件夹下,程序自动查找到与之相匹配的文字,并将这些文字生成一个固定大小的图片,形成RGB矩阵,再将这些矩阵进行比较,得到相应的匹配率。按照匹配率,对字体格式进行排序,并将排好的数组,返回给客户端,完成一次数据交互。因此,对于服务器端,我们要用到serverlet技术和javabean技术,将操作写入javabean中,用serverlet将用户页面与后台逻辑操作连接起来。
1.3 相关算法介绍
1.3.1 常用的识别技术
图像处理通常需要将图像划分为若干不相交的区域,图像分割是图像处理的基础。常用的有阈值与图像分割技术、梯度与图像分割技术,通过阈值来对图像进行二值化能让计算机处理的数据量大大减少[3]。
分割后的图像需要对盐粒噪音和毛刺噪音进行消除,通常采用滤波的方法,根据噪音产生机理的不同设计不同的滤波方法,为减少脉冲干扰,可采用中值滤波法[4]。
匹配算法主要有:基于边缘、基于像素点等比较算法[5]。
1.3.2 字体识别技术
1)阈值分割技术
本程序因手机内存限制,不能通过拖动控制条来实时改变阈值,但是如果灰度均值偏小或者灰度均值过大时,仅用单一的阈值算法将很难得到合适的结果,所以通常采用两种阈值:最佳阈值法和大津法,两者相结合自动寻找合适的阈值[6]。
设:最佳阈值法计算的阈值N,大津法计算的阈值M,平均灰度值aver,则:
2)降噪算法
由于不同型号手机摄像头性能各异,加之拍摄手法不同,程序获取的图片源质量不高,二值化后容易出现噪点现象,影响后期匹配算法,因此借助比较常见的降噪算法:中值滤波、均值滤波、对称近邻均值滤波法,在处理细小噪点的算法中,均值滤波算法效率较高但容易降低图片的锐度和细节,综合效果中值滤波法更适合。
2 字体识别软件开发
本手机字体识别系统主要包括如下功能:
截图功能、二值化处理功能、查找文字边界、生成字库图片、统计排序功能、手机端“扫一扫”功能。通过手机摄像头取图并处理,将处理后的图片和相应的文字发送到服务器端进行处理,服务器将查询结果再返回给客户端。
3 结论
经测试,本软件可以实现字体图片获取、上传、识别并返回结果等相关功能。手机Android客户端操作简单明了,产生的结果能满足用户的需求。识别字体的方法位于服务器端,方便日常的维护升级。软件基本达到预期目的。下一步的研究工作将致力于历史记录、字体收藏、下载、替换等后续功能的开发,并对算法做进一步的改进,以提高对于字体的识别能力,加快字体处理速度。
[1] Find-your-font in large font databases, SolliM Lenz R. , Proceedings of the 15th Scandinavian Conference on Image analysis. Aalborg, Denmark,2007: 432–441.
[2] The snippet statistics of font recognition,Lidke J, Thurau C, Bauckhage C. , 20th International Conference on Pattern Recognition.Istanbul, 2010:1868–1871.
[3]金立左,夏良正,杨世周. 图象分割的自适应模糊阈值法,中国图象图形学报,2000(5).
[4]改进的自适应中值滤波算法,黄宝贵 卢振泰 马春梅赵景秀,计算机应用,2011(7).
[5]周瑜,刘俊涛,白翔.形状匹配方法研究与展望,自动化学报,2012(6).
[6]罗三定,谭晓东.图像分割中最佳阈值集的选择与评测,计算机与信息技术,2007(6).