当前位置:首页 > 思想汇报 > 基于Android图片文字朗读软件的盲人电子眼 盲人电子眼
 

基于Android图片文字朗读软件的盲人电子眼 盲人电子眼

发布时间:2019-07-06 03:53:46 影响了:

  摘要:针对盲人阅读困难的问题,开发了一款基于Android的应用软件,主要采用了OCR和TTS技术。OCR技术用于识别图片中的文字,并转化为文本,TTS技术用于朗读文本中的文字。软件安装在Android手机系统中,通过手机摄像头拍摄文字图片,OCR识别图片中的文字,并将图片文字转成文本文字, TTS将文本文字朗读出来。实际应用显示,软件对图片文字有很好的识别率。
  关键词:OCR技术;TTS技术;Android;二值化聚类的图像文字提取算法
  中图分类号:TP317.4文献标识码:A文章编号:16727800(2012)008009603
  基金项目:中南民族大学大学生科研创新基金项目(KYCX110405Z);中南民族大学中央高校基本科研业务费专项资金项目资助(CZY11007)
  作者简介:余佳(1990-),男,中南民族大学计算机科学学院本科生,研究方向为计算机技术;黄智超(1990-),男,中南民族大学计算机科学学院本科生,研究方向为计算机技术;蒋端保(1989-),男,中南民族大学计算机科学学院本科生,研究方向为计算机技术;梁治峰(1989-),男,中南民族大学计算机科学学院本科生,研究方向为计算机技术;杨兵(1990-),男,中南民族大学计算机科学学院本科生,研究方向为图像处理;帖军(1976-),男,中南民族大学计算机科学学院副教授,硕士研究生导师,研究方向为移动计算、分布式系统。(本文通讯作者为帖军副教授)
  0引言
  图片文字朗读技术是一种通过语音展示图形文字的技术。全世界共有几千万盲人,这些人因为先天或后天原因不能正常进行阅读。本技术就是为了解决盲人眼睛上的障碍,经过识别文字,提取文字,朗读文字,最终解决盲人在生活和学习中的问题。
  本文探讨了在Android系统中将图片文字通过OCR技术转换成文本文字,再通过TTS朗读技术朗读文本文字。下面是对涉及技术的诠释:
  (1)OCR(Optical Character Recognition,光学字符识别)技术。采用光学方式将文档资料转换成原始黑白点阵的图像文件,通过图片预处理、图片灰度化、图片的二值化、长直线剔除、背景剔除和文字提取模块,就可以实现从图像中抽取文字功能。
  (2) TTS——文字转语音技术。分为文本分析模块、韵律控制模块、语音合成。文本模块包含分析文本中词与短语的边界,分析文本结构等。韵律控制模块基本采用数据驱动方法来确定文字的朗读韵律和节奏,语音合成现在基本采用波形拼接(PSOLA)技术来完成语音合成。软件模块如图1所示。
  图1软件模块
  1算法研究
  主要探讨OCR技术,在研究中采用二值化聚类的图像文字提取算法。二值化聚类的图像文字提取算法分为图片预处理、文字聚类等步骤。
  1.1图片预处理
  设输入的图片的数据为F(x,y),其中x,y为正整数,其中x,y为图片的宽度和长度的量。设F(i,j)为图片中的某一个点,其中i,j满足下面两个条件:①0<=i  下面就是对图片进行预处理,预处理的作用是对图片进行的加工和修正,便于后续工作的开展。
  1.1.1图片灰度化
  可以通过下面的式子计算出各点灰度的值:
  g=0.229*R+0.587*G+0.114*B
  (1)但是上面的式子中出现了浮点数的运行,图片处理是一项运算比较大的处理过程,因此我们对上面的式子进行转化,如下式:g=(77*R+151*G+28*B+128)/256
  (2)通过对比可知,转化后的公式更简单,去掉了复杂的浮点运算,因此在运行的过程中,在图片与处理的工程中,转化后的公式运行速度更快,降低了对手机的运算能力要求。
  1.1.2图片的二值化
  经过图片的预处理后,图片中所有的点的灰度值只具有一个值,并且这个值的取值范围在0~255。图片的二值化是使用一个阈值,大于阈值的置为1,小于阈值的置为0。阈值的确定,现在有两种方法,动态确定和静态确定,动态确定是根据每个图片的灰度直方图来确定该图片的阈值,每个图片的阈值不尽相同,而静态确定是由程序员来确定一个阈值,不同的图片,使用统一的阈值。两种阈值的确定方法产生的效果也不一样,在本研究中,采用了静态确定的方法,经过多次实验,采用190作为阈值,大于190的置为1,小于190的置为0,阈值化后,图片二值化了。
  1.1.3长直线剔除
  因为聚类算法是将距离较近和颜色相同的点归为一类,所以长线会影响本算法的正确率。需要长线剔除的原因有两个:①两个字之间会因为长线的存在导致在后面聚类算法在文本聚类的过程中分辨不出是两个文字还是一个文字,所以要进行长线剔除;②长直线的存在会影响聚类扫描算法作出判断,所以必须将长线剔除。
  有关长直线的剔除有很多的方法,其中比较成熟的有位运算的方法,但是位运算对比较短的直线也进行了剔除,因此采用位运算的算法会降低文字识别的正确率。所以采用以下算法:
  输入二值图像I(m,n),正整数a0,输出时I0(m,n),其中a0是阈值,大于a0的横线将会被剔除,小于a0的横线将会被保留。
  对图片中的每一行做如下处理:
  (1)定义i,j,count它们分别为横坐标、纵坐标和计算值,分别初始化为0,0,1。
  (2)若当前点为1,测试下个点是否为1,如果为1,则count加1,如果当前点不为1则判断count与a0的大小,同时置count为1,如果大于或者等于,则将I\[i\]\[j-count….j-1\]置为0,否则不处理,其中纵坐标变化时还需判断j是否小于n,如果大于,则判断count与a0的大小,进行同样的处理,同时i加1。
  (3)判断i与m的大小,如果大于m则退出此算法,否则跳到第二步循环。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3