登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

秒译-基于OCR技术的悬窗式翻译App的开发毕业论文

 2020-02-19 06:02  

摘 要

随着移动互联网日新月异的快速发展以及全球化趋势加快,在校大学生每天都会接触到大量的英文信息,例如阅读英文文献,观看英文电影、演讲,浏览英文社交网站等等。如何方便快捷地获得不认识的单词信息成为学生最关注的问题。词典作为强大的语言学习工具,是解决上述问题的最佳办法。纸质词典虽然更具权威,但其体积庞大,在使用过程中使用者需要大量地翻阅和查找,不够便捷,于是手机翻译工具应运而生。但市面上的翻译工具注重单词学习,翻译功能的场景多样性不足,那么设计出一款多场景的翻译软件就具有很强的竞争力。

本论文主要进行了基于OCR技术的悬窗式翻译APP的研究,实现了具有多种使用场景的翻译应用程序。采用了基于Android平台的Java语言进行开发,并使用Google的开源OCR技术——Tesseract进行光学字符识别,结合Android的Window Manager机制进行悬浮窗开发。本论文工作重点有如下:

第一,图片文字识别。根据用户选择的语言和图片通过基于Tesseract开发的Tess-two光学字符识别模块进行文字识别。

第二,悬浮窗截屏。用户打开悬浮窗,在任意界面上都可以截取屏幕,选择识别范围即可进行文字识别,并给出译文。

本论文的特色:多语言的光学字符识别,专业的翻译词库,易于使用。

关键词:光学字符识别,Android应用程序,翻译软件

Abstract

With the rapid development of mobile Internet and the acceleration of globalization, college students are exposed to a large amount of English information every day, such as reading English literature, watching English movies and speeches, browsing English social networking sites and so on. How to get the word information quickly and conveniently becomes the most concerned problem for students. As a powerful language learning tool, dictionary is the best way to solve the above problems. Although the paper dictionary is more authoritative, its volume is huge, and users need to browse and search in large quantities in the use process, which is not convenient enough. Therefore, mobile translation tools emerge at the historic moment. However, the translation tools on the market focus on word learning, and the scene diversity of the translation function is insufficient, so the design of a multi-scene translation software has strong competitiveness.

In this paper, the research is mainly carried out on the hanging window translation APP based on OCR technology, and the translation application program with a variety of usage scenarios is realized. It USES Java language based on Android platform for development, and Tesseract, an open source OCR technology of Google, is used for optical character recognition, and the suspension Window is developed in combination with Android's Window Manager mechanism. The main points of this paper are as follows:

First, image text recognition. According to the language and picture selected by the user, the tesseract-based Tess-two optical character recognition module is used for character recognition.

Second, the suspension window screenshot. When the user opens the suspension window, he can capture the screen at any interface, select the recognition range, and then the text can be recognized and translated.

This paper features multilingual optical character recognition, a professional translation thesaurus, and easy to use.

Key Words:Optical character recognition, Android applications, translation software

目录

摘要 I

Abstract II

第1章 绪论 1

1.1 研究背景 1

1.2 论文研究的主要内容 2

1.3 论文的结构安排 2

第2章 主要技术介绍 4

2.1 Android 4

2.2 Android Studio IDE 4

2.3 开发环境 5

2.4 OCR光学字符识别技术 5

2.4.1 图像预处理过程 5

2.4.2 文字识别过程 6

第3章 翻译APP的需求分析和总体设计 8

3.1需求分析 8

3.1.1 业务需求 8

3.1.2 用户需求 8

3.1.3 功能需求 8

3.1.4 非功能需求 9

3.1.5 用例建模 9

3.2 系统结构及其层次 10

第4章 Android APP功能详细设计 12

4.1 运行时权限申请 12

4.2 翻译功能实现 13

4.3 图片文字识别功能实现 14

4.3.1 训练数据初始化 14

4.3.2 识别图片中的文字 14

4.4 悬浮窗截屏翻译 15

4.4.1 悬浮窗开启与关闭 15

4.4.2 截屏 15

4.5 多线程优化 16

第5章 系统测试 18

5.1 系统测试环境与测试方法 18

5.1.1 系统测试环境 18

5.1.2 系统测试方法 18

5.2 系统功能测试 19

5.2.1 翻译功能测试 19

5.2.2 图片文字识别功能 19

5.2.3 悬浮窗截屏翻译功能 20

第6章 总结与展望 21

参考文献 22

致谢 24

第1章 绪论

近几年来,国际间的交流日益加强,我国大学生们除了学校安排的英语课程学习及英语等级考试外,日常浏览和学习英文的情景也增多了,例如浏览国外社交网络、看英文电影、听英文演讲、旅游等,而且出国留学的热情逐渐高涨,使得语言翻译工具成为了应用市场的大热门。

如今,随着移动信息通信技术发展的迅猛趋势,人们日常使用手机的时间越来越多,大学生更是活跃非常。在智能手机平台中,Android系统具有开放性强,功能繁多的优点,深受手机厂商和应用程序开发者的喜爱,基于Android系统开发的智能手机在2017年的市场占有率高达85%,因此,在Android手机上开发一款好用的、高效的、使用场景丰富的翻译APP(Application,应用程序),能够很大程度地解决大学生们日常英语的学习和其他使用情况的问题。

1.1 研究背景

随着移动互联网的不断发展和大学生对英语的重视程度的逐步提高,市场上涌现出大批的提供翻译功能的APP。这些翻译工具都不是非常灵活和全面,大多数都需要通过手机输入法输入文字,但是手机屏幕的尺寸最高也只有6.4寸,手动输入长文本不太方便;也只能在应用内进行查词和翻译,不能在其他应用的环境下使用,很难满足现实使用过程中的翻译场景多样性,带来了很大的不便利性。

国内比较知名的提供翻译服务的有百度翻译、有道词典等多家公司。

百度翻译是百度公司发布的翻译服务,对二十多种热门语言提供翻译支持[1]。2013年推出手机客户端,支持联网、离线两种翻译模式,百度公司开发的OCR技术为百度翻译提供支持,提供拍照翻译功能,并且拥有通知栏查词、划词翻译、对话翻译等多种特色功能。

有道词典也提供类似百度翻译的功能,但APP中占比更大的是学习功能,有英语学习文章,精品外语课,商城等功能,付费功能较多,更具商业化。

国内的这些主流翻译APP都有定制的专业语料库和翻译特色,用户可以从它们的服务器上获取离线的语料库资源,也可以通过公开的API(Application Programming Interface,应用程序编程接口)传递相关的参数来进行翻译操作[2]。百度翻译和有道词典虽然在翻译工具上占领了大部分的中国市场,但是这两个产品的翻译功能在使用场景上不够丰富,产品的定位更加侧重于纯翻译之外的功能及外语学习等方面。

在国外的APP市场上,也有许多的翻译应用程序,支持多数语言种类之间的文字互译,基本包含了目前国际上使用频率较高的主流语言。

Google公司利用其在计算机应用开发过程中积累的深厚技术底蕴和大量的语料数据库,为用户提供出色的语言翻译服务,支持一百多种语言之间的相互翻译,它不是直接翻译语言,而是首先将文本翻译成英语,然后翻译成目标语言。在翻译过程中,会在数百万个文档中查找模式,以帮助确定最佳翻译。2016年11月,Google公司宣布Google翻译将转向神经机器翻译引擎——Google神经机器翻译(GNMT),这个引擎会一次翻译整个句子,而不是一部分一部分地翻译,使用更宽广的语言背景来匹配最相关的翻译,然后重新排列和调整,使其更像是一个具有正确语法的人类说话[3]

Microsoft提供的Bing翻译支持60多种语言的互译,并且由于微软在计算机领域的显著成就,很多计算机专业词汇都是微软提出的,使得Bing翻译在计算机方面的单词、缩写等的识别上更为准确。

在部分国家及地区的APP市场中,一些翻译应用专注于本地用户,只支持了当地语言和英语之间的翻译,但是由于其本地化程度较高,其翻译质量普遍比平常的应用高。

1.2 论文研究的主要内容

纵观各大手机应用程序市场,里面的翻译类APP仍然存在不少的问题,比如译文的精确程度不高、较为生硬,界面的美观程度及流畅度较低,导致一些不好的使用体验,而且它们所能提供的翻译场景比较单一。本论文开发的翻译应用注重于翻译APP自身之外的多场景的翻译功能实现,除了常规的手动输入文字外,还能识别图片中的文字信息,悬浮窗功能使得用户在其他应用界面下也能进行翻译操作,更加贴合移动端APP的使用习惯。这个功能拓展了翻译APP传统的使用场景,进一步提升了翻译APP的用户体验。

本设计在翻译APP中增加光学字符识别功能OCR(Optical Character Recognition),可以识别一张图片中包含的主流语言的文本,完成了从图像到文本的信息识别转换功能。同时,加入悬浮窗的设计,当用户开启悬浮窗后,可以在其他应用界面进行截屏,将获取到的图片进行文字识别并翻译。

1.3 论文的结构安排

论文的章节内容安排如下:

第一章:绪论。阐述了翻译APP的开发背景和研究意义,以及设计的主要内容的安排。

第二章:主要技术介绍。对本设计的APP开发过程中所使用的相关技术进行了说明介绍,为APP的实现部分打下了坚实基础。

第三章:翻译APP的需求分析和总体设计。对本设计中的翻译APP的需求分析和模型建立的设计方案进行了全面的分析和讲解,包含APP的功能性需求及非功能性需求,以及采用UML建模的方式来建立系统需求模型,这样能够很好地描述系统的功能性需求。并且对程序各个部分结构和功能的模块关系进行分析,以及基于这些模块划分来设计的界面。

第四章:Android客户端功能详细设计。具体介绍了翻译APP的详细设计,包括其划分的基本功能模块,把其中的翻译功能模块、光学字符识别模块、悬浮窗截屏翻译模块的技术原理和实现技术方案进行了较为详细的讲解。

第五章:系统测试。对翻译APP开发完成后的测试工作进行讲解,介绍了翻译APP的工作流程,对系统进行功能测试,分析测试结果。

第六章:总结与展望。对全文的内容进行总结,并且总结设计、实现翻译APP过程中的不足之处及改进方向。

第2章 主要技术介绍

2.1 Android

Android是由Google公司开发的手机操作系统,它基于Linux kernel和其他开源软件开发的[4]。Android软件开发和Google Play扩展了设备功能的应用程序是使用Android软件开发工具包编写的,通常是Java编程语言。Java可以与C/C 结合在一起,允许非默认运行时间的选择,允许更好的C 支持。虽然应用程序编程接口有限,但也支持GO语言来开发[5]。2017年5月,Google宣布支持Kotlin编程语言的Android应用程序开发。Java是一门面向对象的语言,而Android是面向组件的,包括应用组件与视图组件。在开发Android程序时,主要使用其四大组件来构建一个Android程序。

•Activity(活动):Activity主要提供能与用户进行交互操作的界面,它能加载预先设置的布局,为控件设置事件监听,并在监听回调中对事件做出响应[6]

•Service(服务):当用户关闭Activity时,想要在后台运行APP的一些功能,则使用Service来进行。主要是在后台处理不需要用户进行交互并且耗时较长、执行时间跨度比较大的任务。

•Broadcast Receiver(广播接收器):广播机制是Android程序中实现不同应用或进程之间的通信的一种事件机制,主要分为标准广播和有序广播。标准广播是完全异步执行的,发出之后所有广播接收器同时接收这条广播;有序广播发出后,一次只能有一个接收器能够收到。

•Content Provider(内容提供器):内容提供器是Android不同应用间安全地共享数据的手段,它提供了一套完整的机制,允许一个Android应用访问另一个应用中的数据,同时保证数据的安全性。

2.2 Android Studio IDE

Android Studio是一个专门用于开发Android APP的IDE( Integrated Development Environment),是Google公司推出的官方IDE,包括调试器、软件库、基于QEMU的手机模拟器、文档、示例代码和教程。几年之前,Android APP开发大多数用的还是Eclipse IDE加载ADT插件,随着官方编译器Android studio在2013年推出,经过几年的更新已经发布了稳定版,现在有越来越多的Android开发者选择Android Studio来开发Android APP。目前Android Studio有丰富的编译调试、分析的功能并且拥有大量实用的插件,以及智能化预测提示功能,即使关闭了文件依然可以回退历史版本。

2.3 开发环境

本文主要研究的是基于OCR技术的悬窗式翻译App的开发,是在WIN1064bit上使用Android Studio开发的,APP是在HUAWEI P20Pro和HUAWEI畅享7 PLUS上进行调试,它们分别是基于Android 9.0和Android 7.0系统的手机。

2.4 OCR光学字符识别技术

OCR技术主要用来提取图片信息中的文字,通常在获取文字前需要对图片进行一系列的分析和转化,去除非文字信息的影响,将文本进行字符分割,再对处理过的分割好的字符进行特征提取,从而识别字符[7]

2.4.1 图像预处理过程

彩色的图片在计算机中是使用像素点保存的,每个像素代表一个颜色,这个颜色是用RGB三个分量(R:Red,G:Green,B:Blue)存储的,即红色、绿色和蓝色的混合比例来表示真正的色彩,RGB三个分量的取值范围都是0-255。机器视觉分为三个阶段:图像转化、图像分析、图像理解。想要把彩色图片转换为计算机容易理解和分析的格式,其中一个非常关键的步骤就是“图像二值化”,即把图片的彩色转化为黑白二色。一幅图像要想被被计算机高精度地分析理解,很大程度上来说在于二值化效果的好坏。

在二值化彩色图片之前,需要先把彩色转化为灰色,称为灰度化。在RGB模型中,当R、G、B三个值相等时,这个色彩是一种灰颜色,这个值叫作灰度值。此时,灰度图像每个像素存放一个灰度值(又叫亮度值、强度值),只占用一个字节的内存,灰度值的范围是0-255。以下是一种常见的灰度化公式:

(2.1)

将彩色图片里每个像素的RBG分量代入公式(2.1)中可得对应的像素的灰度值。得到灰度图片后,即可对图像进行二值化处理,其原理为:寻找一个合适的阈值,灰度值小于阈值的像素点为黑色(值为0),其余的点为白色(值为255)。

常见的阈值算法有阈值迭代算法。阈值迭代算法的步骤为遍历图像上的所有像素点,计算每个像素点的灰度值。通过迭代法收敛得到一个最佳阈值。其流程为:

以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。

相关图片展示:

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图