基于Android移动平台图像处理系统开发

时间:2020-12-23 10:04:36 浏览量:

 

 题目:

  基于Android移动平台图像处理系统开发

 ——文字识别与翻译

 摘要

 在今天的全球化世界里,科技不断的进步与创新更加促进了外语学习途径的多样化,随着人们学习方式的便捷并迅速的发展,特别是以电子词典为主工具的出现,用户对此类产品的便捷、功能的要求越来越高。目前,电子词典的最佳载体是移动设备,例如移动电话或计算机,其既兼顾了传统的纸质词典的功能,同时,移动电子词典APP也有着便携,功能齐全,并且具有随着因特网实时更新的优点。应用在两大手机系统--Android系统中的移动词典APP更使越来越多的普罗大众能够更加便捷自由的学习外语。因此,我们不能忽略Android平台逐渐渗透都日常生活的方面。而词典APP实时翻译也就变成了一大热门话题,然而在用户翻译外语词汇或句子之前,第一步是文字识别,第二步才是翻译文本。

  OCR (Optical Character Recognition),指使用各种电子设备来完成光学字符识别,比如,各种照相机以及手机,第一步先检测目标文件的字符,运用文字的识别的方式将其目标文字形状翻译成计算机文字,第二步就是检测出亮与暗之间不同图案来确定其形状。

  随着智能手机手机的广泛使用,许多Android应用程序随着时代的发展而出现,逐渐改变了人们尤其是年轻人的生活方式。作为这个时代的新产品,手机既高效又便携,可随时随地操作。越来越多的人更加频繁地使用移动电话,他们可以使用手机做越来越多的事情,比如进行实时通信,游戏,网购。智能手机的优势和普及使得基于Android移动平台的文本识别(翻译)系统的开发成为必需。

  本文的开发背景是以实际应用为基础,运用了软件工程的原理以及其开发方法,采用Android、OCR、百度图片翻译SDK构建图像文本识别(翻译)系统。在整个开发过程中,首先分析系统要求并推导出系统主要的功能,然后是系统总体设计以及详细设计。后者主要包括了各个功能模块的具体实现。在本文的最后,对该系统进行了功能性测试,与此同时对测试结果进行分析以及总结,并为以后开发类似系统提供了较大的借鉴和帮助。

  关键字:图像文字识别(翻译); Android ;OCR;百度图片翻译SDK

 Abstract

 In this globalized world,with by the continuous progress and innovation of science and technology, the diversification of foreign language learning approaches and the convenient development of learning methods has been promoted. Users have increasingly higher requirements on the convenience and functions of electronic dictionaries, especially the emergence of electronic dictionaries have appeared. Nowadays, the best carrier of electronic dictionaries is mobile devices, such as mobile phones or computers, which also has the functions of traditional paper dictionaries. At the same time, mobile electronic dictionary APP has some advantages, including portability, complete functions and update with Internet .The mobile electronic dictionary applied in the Android system enables millions of Internet users to learn foreign languages more conveniently and freely.The Android platform is increasingly permeating aspects of everyday life.Dictionary APP real-time translation has become a big hit, but before users translate, they should recognise words.

 OCR (Optical Character Recognition) refers to the process that electronic devices (such as scanners or digital cameras) examine characters printed on paper, determine their shapes by detecting dark and bright patterns, and then translate the shapes into computer characters by Character Recognition method.

  With the widespread use of smart phones, many Android applications emerge with the development of The Times and gradually change individuals’ lifestyle, especially the young generation. As the new product of this era, mobile phone is both efficient and portable, and can be operated anytime and anywhere, this is why the increasing number of individuals use phone more and more frequently. They can use mobile phones for many activities, such as online games, online shopping and face-to-face communicating. The advantages and popularity of smart phones make the development of text recognition (translation) system based on Android mobile platform be necessary.

 This paper is going to talk about the practical application which is based on

 the development background, and uses the software principles and development methods, and applies Android, OCR and Baidu translation API technology to build the image text recognition (translation) system. Firstly, the whole development process is going to analyzes the requirements of this system and derives as well as the main functions of this system, in addition to the overall design and detailed design of this system. Secondly, the design includes the realization of the whole function modules and the vital codes of

  its program. Lastly, the system is functional tested, as well as this resultshave been analyzed and summarized. In addition, the defect parts or the improvement of this system are going to concluded, which provides convenience for the future system maintenance and gives some advice for the other development of similar systems.

 Key words:Image text recognition (translation); Android ; OCR; Baidu Image Translation SDK

 目录

 摘要 I

 ABSTRACT II

 目录 V

 1 绪论 1

 1.1 背景及意义 1

 1.2 国内外的研究情况 2

 1.3 研究内容 2

 1.4 论文组织结构 3

 2 相关技术 4

 2.1 Android技术 4

 2.2 Android的系统架构 4

 2.3 Android内核 5

 2.4 OCR简介 5

 2.5 JAVA(计算机编程语言) 6

 2.6 文字识别技术 7

 2.7 百度图片翻译SDK 7

 3 系统分析 12

 3.1 可行性分析 12

 3.1.1 技术可行性 12

 3.1.2 操作可行性 12

 3.1.3 经济可行性 12

 3.2 需求分析 12

 3.2.1 市场需求 13

 3.2.2 性能需求 13

 3.2.3 界面需求 14

 3.3 系统功能分析 14

 3.3.1 功能概述 14

 3.3.2 系统功能结构 14

 3.4 开发环境分析 15

 4 系统设计 16

 4.1 设计目标及原则 16

 4.2 系统概要设计 16

 4.2.1 系统流程 16

 4.2.2 总体业务流程设计 17

 4.3 详细设计 19

 4.3.1 图像文字识别步骤 19

 4.3.2 代码设计原则 19

 5 系统实现 20

 5.1 配置环境搭建 20

 5.2 程序详细设计 22

 5.2.1 AndroidManifest.xml清单文件配置信息 22

 5.3 初始页面设计 24

 5.3.1 初始页面侧边栏设计 27

 5.4 拍照翻译页面设计 30

 5.5 历史记录页面 40

 6 系统测试 43

 6.1 测试环境与条件 43

 6.2 功能测试 43

 6.2.1 初始页面测试 43

 6.2.2 拍照翻译页面功能测试 44

 6.2.3 翻译历史页面功能测试 51

 6.3 性能测试 52

 6.4 测试结果 53

 7 总结与展望 54

 参考文献 55

 致谢 56

 1 绪论

 1.1 背景及意义

 文本图像信息是人类访问外部信息的主要来源,人们需分析照片以便获取地球的资源,全球天气和污染问题。在医学领域中,主治医生可分析X射线结果判断患者情况。在工业工厂里,技术人员可使用电子图像来管理与控制生产。在生活中,交通管理部门还使用文本图像识别技术来确定非法车辆的车牌,并对其进行监督和管理,由此可见文字图像信息的重要性。

  中国在近几年的各个领域尤其是科技领域发展迅速,随着对外开放的进一步扩大,将需要更多的外国专业人士。然而不同语言成为了一道阻碍在不同国家不同领域的一堵墙。

  不同文化和不同语言之间的沟通变得简单化,为了更好地学习国外先进技术,我们必须了解自己,知道如何建设一个更好,更快,更强大的国家。

  在现代社会的人类生产和以及生活当中,我们需要接触大量的文字以及不同形式的文本。早在20世纪60年代,随着磁性油墨以及特殊字体实用的机器出现。出现了各种各样的字体和以及手写文本的识别机。例如用于印刷体的英文字母与数字和字母分类识别机的手写数字识别机。

  Optical Character Recognition,缩写为OCR,中文意思是光学字符识别,一般简称为文字识别。它通过光学输入到电子设备的方式,例如扫描或者视频记录获取文本图像信息,通过各种各样的模式识别算法来获取文本的特征,确定了中国汉字的标准代码,与此同时将其存储在文本文件中的通用格式,这从根本上变化。人们对计算机汉字手工编码的思考。让人们从繁重的汉字输入汉字中解放出来。只要文本的整个页面由扫描仪输入到计算机中,可以通过OCR软件,这是相同的手动,中国输入自动生成的中国文本文件,但是速度比人工快好几倍。例如,用移动电话拍摄一张名片,,名片上的各类信息比如姓名,联系方式和其他信息会被自动识别并输入到各类APP里。因此, OCR 是一种非常快速且省力的文本输入方式,也是在文字量比较大的今天,很受人们欢迎的一种输入方式。

  随着手机的发展,智能手机不断融合和改变我们的生活,使人们的生活发生了很大的变化。随着手机各类技术的不断飞速发展,人们更换手机的频率也越来越快。

 Android系统凭借其独特的技术优势和特点,占据了手机平台操作系统的很大市场份额,并越来越受到用户的喜爱。目前,大约三分之二的使用手机的人使用Android系统。手机Android功能成熟,使得基于Android移动平台文字识别(翻译)系统应运而生。

  Android是基于Linux平台的开源手机操作系统的名称。它的快速发展与当今流行的苹果ios系统形成了激烈的竞争,但根据调查,Android系统的用户远远超过ios系统。

  根据Android系统市场的广泛使用,该服务是免费的,企业可以免费获取Android平台上的新功能开发的源代码可以节省开发成本,有快的发展速度,广泛的服务范围和获得最大利益。随着开源的功能,Android系统的标准化平台,打破原来的手机,被大多数消费者所选择。与此同时,其开源的特点既结合了传统形态移动通信

 优势,也增强了安卓手机操作系统的整体形态价值。手机厂商如三星,华为等与软件厂商和运营商实现紧密合作共赢,促进行业健康发展。Android为手机终端制造商和客户带来了新的局面。同时,结合即将到来的5G网络时代,它为用户提供了更全面,系统和自助的服务。Android推动了手机行业的发展,并为手机以外的其他领域带来了许多应用扩展。

  1.2 国内外的研究情况

 在国外,随着中国科学技术的高速发展,OCR光学字符识别文字识别技术在国内各领域得到了应用空间。文通,云麦技术,汉王和中国字符识别等龙头企业将更加深入的信息化建设的各个领域。

  在上个世纪欧洲科学家Tausheck第一次提出了光学字符识别的理论后,美国科学家亨德尔还提出利用技术来识别单词的想法。标识上印中国文字最早的研究是由凯西和IBM的纳吉。

  在上个世纪中期,世界各个发达国家就开始了OCR的研究进程。然而在研究的前期,大部分是基于单词的识别方法,识别文本仅有不到10个。以日本也有大写字母为例,研究了OCR的基本识别理论。大约在1960年。

  在上个世纪后期,日本各领域学者开始就开始为研究汉字识别工作不遗余力地付出。然而不得不提到的是,我国的OCR技术研究开始较晚中国对汉字识别的探索道路时间是始于1965年前后,到了70年代后期,才研究开始识别数字以及英文。

  到了八十年代末,我国的的文本识别研究进入了新征程。因此,越来越多的研究机构争先恐后地推出了中国OCR产品。然而由于各方面因素,初始阶段的识别和产品化,OCR软件并不可以满足实际要求。与此同时,由于硬件设备的巨额成本,使用速度较慢,尚且不说达不到实用的水平。所以只有有关部门才可以运用OCR软件。

  如今,OCR识别准确度和识别速度已得到了大部分用户的认可。目前,有许多流行的OCR软件。如英语OCR软件主要包括OnmiPage。OCR技术愈发完善,虽然有着一定数量的汉字。识别速度快,识别准确率接近百分之百。它识别多种字体。如Song,Bold和Carcass。

  21世纪是一个信息时代,因此信息交换和信息流就显得尤为重要。因此,使用手机来进行图像文字识别成为必然。开发合适的基于Android移动平台文字识别(翻译)系统,可以方便用户自主对图像文字进行识别。提高管理效率,让图像文字识别更科学化、系统化、规范化、便捷化。

  1.3 研究内容

 本课题主要是基于Android移动平台系统开发-文字识别与翻译的开发与设计,主要分为硬件部分和软件部分,其中硬件部分是个人移动终端设备。

  首先要对基于Android移动平台文字识别(翻译)系统的业务流程有整体把握,分析预约管理的流程制度。

  总结系统设计以及相关功能,分析了开发系统的可操作性,并且得出了总体集成的结构和具体实现方法。

  最后要研究全系统各个功能模块的详细设计以及掌握所要使用的开发工具,从而完成系统开发。

  1.4 论文组织结构

 此论文共有以下七个章节,具体概括内容如下所示:

  第一章:选题的相关背景和实际意义、国内外研究情况的现状分析、论文的研究内容和论文组织结构介绍。

  第二章:此系统所运用的各种相关技术以及开发平台和环境的概述。描述OCR光学识别的介绍,以及系统开发环境,即Android Studio开发平台以及编程语言JAVA语言介绍,最后是百度图片翻译SDK的技术简介。

  第三章:对此系统进行了整个系统分析。依次描述了系统的业务介绍、需求分析、系统功能分析以及开发环境分析。

  第四章:此系统的系统设计介绍。包括系统设计目标及原则、系统概要设计、具体细节设计。

  第五章:此系统的系统实现。描述了从配置环境的搭建到各页面以及其相应功能的设计。

  第六章:介绍运行条件以及测试环境、功能测试、可用性测试、性能测试和测试环境与条件。并使用了实际的测试对各个页面以及其相应功能进行功能测试和性能测试,最后对相应结果给出了测试结论以及对此系统实际运用的评价。

  第七章:结束语,总结了本文相关成果与收获,并指出工作上不足和如何进一步的改进。

  2 相关技术

 2.1 Android技术

 Android由LinuxJava的。该平台的架构非常简单,可以利用硬件资源性能的全部优点。它的开源优势大幅度大的减少了应用程序的开发成本,使安卓成为最为便携的操作系统之一。与其他移动操作系统的开发平台比较,安卓优势更为明显,与此同时其竞争力也不容小觑。安卓的开源也使安卓移动终端的价格不太高。因此使用者能够更加方便快捷的得到信息。基于此主题,安卓操作系统用于开发的信息管理移动应用系统。安卓平台具有以下主要功能:

  对于移动电话的特性,Dalvik虚拟机所需资源不多,运行速度却更快。

  APP框架:此框架支持APP组件的重新利用和更换。

  支持摄像头,导航系统,罗盘。

  2.2 Android的系统架构

 Android系统架构如图2-1所示。

  图2-1系统架构

 第一层:Linux系统和程序也成为Linux的内核:由编程语言C语言实现。

  第二层:本地框架和Java运行时环境(库和AndroidRUNTIME)

 第三层:安卓APP框架(AndroidFRAMEWORK)

 第四层:Android APP(APPLICATIONS)

 开发的Android应用程序以及核心Android应用程序处于同一级别,它们内置在了Android系统API之中。

  2.3 Android内核

 linux内核如图2-2所示。

  图2-2 linux内核

 从Linux角度来观察在最新版本的Google中,它不具备虚拟内存文件系统。使用模拟器系统和控制台的命令,轻松控制安卓shell,系统中包含的设备,提供一些基本的命令工具,/ system / bin流体主机非常简单而且它是某种秩序。

  安卓系统的当前模式通过Eclipse开发软件自动安装,一般步骤存储在/中data / application数据/ Android隐藏数据和常见核心没有显着差异,可以用作Linux开发和黑客攻击。

  Lib运行时如图2-3所示。

  图2-3 lib运行库

 2.4 OCR简介

 OCR (Optical Character Recognition),指使用各种电子设备来完成光学字符识别,比如,各种照相机以及手机,第一步先检测目标文件的字符,运用文字的识别的方式将其目标文字形状翻译成计算机文字,第二步就是检测出亮与暗之间不同图案来确定其形状。

  由于第一代OCR产品的出现在60年代初,不断发展和完善的半个世纪之后,在各种OCR技术的研究,包括手写取得了显着成效,并为OCR产品的功能需求。这也是最初的担忧。

  在上个世纪欧洲科学家Tausheck第一次提出了光学字符识别的理论后,美国科学家亨德尔还提出利用技术来识别单词的想法。标识上印中国文字最早的研究是由凯西和IBM的纳吉。1966年,他们发表对中国文字识别的第一篇文章,其中使用模板匹配识别一千个中国字符。

  在20世纪后期,日本各领域学者着手了汉字识别的研究。然而我国的OCR技术研究开始较晚,一直到了上个世纪70年代后期,才开始于研究识别数字,英文字母和符号。然而由于各种因素,开始阶段的识别和产品化,OCR软件并不能满足实际要求。同时,由于硬件设备的高成本,使用速度也较慢且达不到实用的水平。所以只有有关部门和新闻行业才运用OCR软件。

  (1)图像处理模块

 文档扫描,图像缩放和图像旋转等为图像处理模块主要具有的功能。目标图像输入扫描机器后,文档将转换为图形文件,放大图像为图片处理模块的首要工作,以便去除干扰。

  (2)版面划分模块

 OCR软件将会把相同的布局分隔表格或者文字等,以便可以单独处理它们以及以什么顺序处理它们。

  (3)文字识别模块

 文本识别模块是核心部分。对于汉字,它通常由一个单词和一个单词识别,即单个单词识别。

  (4)文字编辑模块

 此模块具体修改与编辑OCR识别的文本。

  2.5 JAVA(计算机编程语言)

 Java是一种面向对象的语言。它不仅吸收了其他语言的各种优点,还消除了他们不易理解的多重继承和指针的概念。因此,Java语言功能强大且易于使用。

  (1)简单性

 Java看似设计得很像其他变成语言,但是设计者们把其他语言中许多特征删除以便使语言小和容易熟悉,然而这些特征是程序员很少用的。

  (2)面向对象

 就像上文提到的。Java不仅吸收了C语或者其他编程语言的各类优势,还消除多重继承以及其他难以理解的地方。

  (3)分布性

 Java的设计支持网络上应用程序,所以我们可以清楚的了解到它是一种分布的语言。Java支持网络连接和Socket类,支持流媒体可靠网络连接的两个不同级别,这样使用者就能够生成分布式客户机以及服务器。

  (4)编译和解释性

 我们日常了解的的机器代码并不是Java编译器产生的字节码。

  其的为我们提供的中立目标文件格式就是,用来设计有效程序发送到其他平台体系结构。这也是为什么在Java解释器以及任何系统上都可以运行Java程序可以实现。

  (5)稳健性

 Java的一开始是用来作为编写消费类电子产品的语言,这也是为什么越来越多人用它编写功能复杂的应用程序。

  异常处理使程序更加健壮。异通常是一种类似异常异常发生的信号。

  (6)安全性

 Java的存储分配模型包括如何从Web加载类。例如,加载的类放在单独的命名空间而不是本地类中。

  (7)便携性

 Java环境可以移植到其他平台和操作系统。

  (8)高性能

 Java是先编译和解释的语言,这也是为什么它不如其他的完全编译的语言快。不过不得不说在某些情况下,性能才是首要的。

  (9)多线索性

 多线程语言是Java的特点,编程变得简单是因为其可以同时处理不一样的任务。

  (10)动态性

 Java语言是动态语言是因为其可以在适应不断变化环境。

  2.6 文字识别技术

 (1) 图像的裁剪:,更好的利用移动终端本身硬件资源是为跟有效的进行图像文字识别的速率的关键,不仅可图像文字进行光学字符识别,在识别之前还需要裁剪图像,与此同时最大程度的保留包含文本信息的区域,移除非文本的图像区域。

  (2) 图像的灰度化处理:为了更加快地处理图像,通过文本中的字符图像在灰度和以及二值化处理之后,获得二值化图像,对图像数据进行归一化,使得字符图像数据大小与原始字符模板大小相同,最后得到处理后的字符。图像数据与已经存在所有的字符模板实行匹配找到最相似匹配字符模板后。

  (3) 图像的二值化:在处理中应将原本彩色图像通过灰度化处理变为灰度图像后,灰度图像通过选择好的的阈值将图像二值化处理,使得文本图像成为二值图像。

  (4)图像的文字识别:主要方法通过文本的分割处理,提取处理以及字符识别步骤实现识别。

  2.7 百度图片翻译SDK

 文本编辑模块主要修改以及编辑OCR识别文本。

  百度翻译API是百度云平台为开发者提供的识别与翻译服务的接口。

  百度翻译致力于帮助用户跨越语言空白,更快捷方便地进行沟通,提供数千万的翻译每天都有服务。大型满足各类用户的翻译需求。

  目前在中国,英国,日本,韩国,法国,新加坡和俄罗斯提供语言翻译服务,如日语,日语,英语,泰语,普通话和广东话。

  相关数据类解释:

  (1) 语种类Language:

  表2-1语种类Language

 语种简写

 对应语种

 Language.ZH

 中文

 Language.EN

 英文

 Language.JP

 日语

 Language.KOR

 韩语

 Language.PT

 葡萄牙语

 Language.FRA

 法语

 Language.DE

 德语

 Language.IT

 意大利语

 Language.SPA

 西班牙语

 Language.RU

 俄语

 (2) 识别结果OcrResult类:

  表2-2识别结果OcrResult类

 属性

 对应含义

 error

 错误码

 errorMsg

 错误码对应的错误信息

 from

 源语言方向

 to

 目标语言方向

 contents

 图中识别的每块结果

 sumSrc

 全部的识别原文

 sumDst

 全部的识别翻译结果

 (3) 识别结果OcrContent类:

  表2-3识别结果OcrResult类

 属性

 对应含义

 src

 该块识别的原文结果

 dst

 该块识别对应的译文结果

 rect

 该块在图中对应的区域(依次顺序表示left, top, right, bottom)

 lineCount

 该块中识别的原文行数

 (4)签名生成方法如下:

  将请求参数中的 APPID(appid),翻译query(q,注意为UTF-8编码),随机数(salt),以及平台分配的密钥(可在管理控制台查看)

 按照appid+q+salt+密钥的顺序拼接得到字符串1。

  对字符串1做md5,得到32位小写的sign。

  返回结果是json格式,包含以下字段:

  表2-4签名生成返回值表

 字段名

 类型

 描述

 from

 TEXT

 翻译源语言

 to

 TEXT

 译文语言

 trans_result

 MIXED LIST

 翻译结果

 src

 TEXT

 原文

 dst

 TEXT

 译文

 其中trans_result包含了src和dst字段。

  (5)错误码列表:

  当翻译结果无法正常返回时,请参考下表处理:

  表2-5错误码表

 错误码

 含义

 0

 成功

 52001

 请求超时,请重试

 52002

 服务端系统错误,请重试

 52003

 未授权用户,请检查appid是否正确或者服务是否开通

 52010

 开放设备授权容量不足

 54000

 固定参数有误

 54001

 签名错误

 54003

 访问频率受限

 54004

 账户余额不足

 54005

 长query请求频繁

 58000

 客户端IP非法

 58001

 译文语言方向不支持

 69001

 上传图片数据有误

 69002

 图片识别超时

 69003

 内容识别失败

 69004

 识别内容为空

 69005

 图片大小超限(超过4M)

 69006

 图片尺寸不符合标准(最短边至少30px,最长边最大4096px)

 69007

 图片格式不支持(png/jpg)

 69008

 设备号为空

 -1001

 sdk内部错误

 -1002

 本地图片文件无效

 -1003

 识别的bitmap无效

 -1004

 图片大小超过最大支持50M

 -1005

 保存文件失败

 -1006

 网络请求超时失败

 -1007

 服务器返回为空

 -1008

 返回数据不合法,解析失败

 -1009

 发送请求时遇到异常(errorMsg中会有异常信息)

 -1010

 HTTP请求失败(errorMsg中会有statusCode)

 3 系统分析

 3.1 可行性分析

 此分析将使此系统能够在最低的开发成本下实现了最高的经济效率。可行性分析的目的是阐明研究方向,并根据开发系统的用户需求阐明目标。通过对系统框架设计功能模块的详细分析和分析,找到一种可行的方法。设计和实施Android移动平台文本识别(翻译)系统的技术,经济和操作方面的可行性研究,可以确保信息资源的合理使用,避免设计工作设计程序的过程。由错误引起的系统错误和遗漏有助于我们为设计做出更合理和可惜的选择。

  3.1.1 技术可行性

 (1)硬件可行性分析

 此系统硬件要求方面不会存在特殊要求,只需要在普通硬件配置就可以轻松的实现,但需要确保系统的正常工作即可,以及拥有较高的操作效率。倘若有特别低的硬件,它可以导致系统的低性能以及效率低,从而导致整个系统的运行不顺畅。以目前普遍的个人手机的配置而言,这很容易实现。

  (2)软件可行性分析

 Android提供了类似于借口动态模型的通用机制,并且设计更加集中。除此之外,模块化和存储信息也是Java语言的特点。此外,代码重用可以很好地表示。因此,考虑到系统的实际情况,选择安卓作为系统的开发技术。综上所述,本系统的设计和实现中是可操作性是hen’ga很高的。

  3.1.2 操作可行性

 该系统基于Android客户端,可以使用Android手机安装软件进行访问和操作,界面简单易操作,只要用户使用智能手机,用户就可以访问和操作电话。该系统具有操作简单,易于管理,交互性好的特点,操作简单。因此,可以开发该系统。

  综上所述,基于Android移动平台文字识别(翻译)系统在技术、经济、操作上都具有很高的可行性,开发此程序是很必要的。

  3.1.3 经济可行性

 在考虑经济可行性时,要充分考虑基于Android移动平台文字识别(翻译)系统采开发的成本和效益。具体研究开发此项目是否合理。从以下两方面具体分析研究经济可行性:

  (1)以往人们日常生活中图文本转换(例如文本转换)基于手动方法。传统方法有大量信息。在数据处理方面,存在大量工作且容易出错。其次,有很多数据,数据丢失和数据无法及时更新。而此系统可以有效的解决上述问题。

  (2)基于Android移动平台文字识别(翻译)系统使用的软件是开源的,可以减少大量的能源和资源,降低开发成本,也可以增强设计。因此,该系统完全具有经济可行性。

  3.2 需求分析

 3.2.1 市场需求

 当代大学生甚至是高中生在学校听课时,若想记录老师所讲内容,他们希望投影仪上或者黑板上的内容可直接保存,这样就更能理解老师讲授的知识。同样,在日常生活中,如图书馆的阅读材料,或记录其他人的名片信息,我也希望有一种软件可以取代手工录制直接记录纸张。上的内容。

  智慧型手机因为其丰富的多种类型功能使其在普通人的生活需求变得越来越高。随着各种手机的迭代更新,其配置的不断完善,光学识别技术在手机上的实际应用也随之而来。识别软件不仅可以使人们更加便捷的在各种论文中存储有用信息,同时还可以提高了人们处理信息的能力,并且帮助人们打破语言障碍,使大家在不同语言环境下可以通过手机的 OCR 文本识别软件以及翻译软件轻松了解周围情况信息。比如在异国情调的餐厅,可以用手机扫描菜单,以便帮助访客快速订购,并了解商店的名称和相关信息。

  与此同时,随着移动终端的快速发展,手机的内存以及摄像头像素相比前几年都有不可忽略的进步。因此,研究移动终端上的文本识别技术的客观条件已经成熟。对于大多数用户,尤其是年轻人,基本上每个人都有移动设备,甚至是好几个移动设备。这也是为什么这一应用需要移动终端的推广和运用。

  智能终端的用户非常受欢迎,他们大多数是学生和工薪阶层的人。智能终端的使用频率在日常生活和学习工作中极高。对图片内容的需求非常迫切,目前的市场并没有类似的。

  目前在现实生活中文字识别与翻译系统的一些主要应用方向有:

 (1)许多白领工作当中需要使用识别输入工具,所以文字识别和翻译系统起到了代替手动输入文字的作用。

  (2)在外语外贸领域中,用于识别和翻译一些外国邮件和高级技术理论,文字识别与翻译将一定程度的降低其难度。

  (3)外国人来华旅游或者国人出国旅游,商务谈判,文化交流,学习等场景中利用文字识别与翻译系统实现的从外语文件识别翻译,到路标,菜单等生活场景的识别翻译。

  3.2.2 性能需求

 现在市场上已经可使用的与 OCR 相关的APP,然而绝大多数都只在计算机上实现和使用,很少有在移动端上实现的应用程序,更不用说识别和翻译的APP了。即使仅限于特定应用,例如,夏普名片识别和汉王名片,这些应用的范围也很小,对非商业人士几乎没有用处。对大多数人来说,他们需要一种能够快速识别目标文本,并在与此同时获取翻译结果的应用程序,并可对拍摄或者相册中选取的图片进行目标区域的剪裁。当他们需要获取其文本信息后,只需要复制编辑原文识别结果以及翻译后结果。

  为了让应用程序达到实用的标准,需要达以下三个目标:

 (1)第一点也是最重要的一点,即为目标文本的识别率将要高达90%以上。倘若文本的识别率太低,则信息传输将存在偏差。由应用程序提供的这种信息有时使得用户无法获得准确的信息,并且应用程序丢失了它用的价值。

  (2)文本识别的时间应控制在5秒内。当用户使用该应用程序时,通常需要这种文本获取辅助,并且用户希望程序尽可能快。为了达到这个目标,文应在5秒内控制单词识别的时间。否则,用户将体验到焦虑的心理感受,这将大大降低用户体验。倘若用户无法及时获取信息,用户将无法长时间使用该应用程序。

  每个系统花费了时间精力等设计出来后,则需要系统为设计者创造一定的价值,及为我们的生活带来有利的影响,那么,则需要系统具有运行长期、稳定展示和高效的运作等特性。

  3.2.3 界面需求

 目前,评估软件质量的重要指标之一即为界面设计。

  (1)输出设计

 输出由计算机端解决,每个部分的有用信息都可以及时反映出来。输出设计的标准不仅要明确不同管理层的所有需求,而且要简洁,不要提供用户不需要的信息。

  (2)输入设计

 输入的数据的准确性对整个系统的性能起着决定性意义。

  ①输入应尽可能低,以满足处理要求。输入量需和错误率成正比。

  ②应使输入准备和及其过程尽可能便捷高效。这样使错误的发生率降低。

  ③为了在一定程度上及时的更正错误,尽量早些检查数据。

  ④为了有效防止数据从两种介质之间传输所发生的错误,输入数据的处理所需形式需尽快记录。

  3.3 系统功能分析

 3.3.1 功能概述

 基于Android移动平台图像处理文字识别(翻译)系统可以为用户提供一下功能:

  (1) 拍照;

 (2) 打开相册

 (3) 选择图片;

 (4) 对目标识别区域进行剪裁

 (5)文字识别;

 (6)文字翻译;

 (5)查阅识别翻译历史;

 (6)语音播报;

 3.3.2 系统功能结构

 根据上述分析,得出了基于Android移动平台图像处理文字识别(翻译)系统的功能结构图,如图3-1所示。

  图3-1 系统功能结构图

 3.4 开发环境分析

 (1)开发硬件平台:

  CPU:酷睿M3/i5

 内存:8G

 硬盘:512G

 (2) 开发软件平台:

  操作系统:Windows 10

 开发语言:java

  开发工具:Android studio/IntelliJ IDEA

 数据库:MySQL

 4 系统设计

 4.1 设计目标及原则

 系统的架构设计,要能够反映出用户与整个系统模块的接口之间存在有效互动,而且应该是非常清楚的,从而仅在将来,当系统实际实现时,才能保证数据的可扩展性和安全性。只有设计好的系统才能实现这一目标,才能拥有更好的扩展空间,以适应未来的发展。

  在整个系统的设计中,系统必须满足以下要求:

  (1)数据安全性

 存储有关隐私权的基于Android移动文本识别(翻译)系统的系统数据需要确保数据的安全。

  这也是为什么需要在系统设计期间,采取必要的安全预防措施来处理潜在的安全问题。

  (2)易于操作性

 在使用者的权限范围内,能够在统一的样式界面中完成所有相关的业务流程操作或所有相关信息,极大地加强了用户的工作效率和易用性,并灵活应用了系统。

  (3)柔软性

 由于这个基于Android移动平台文字识别(翻译)系统涉及到范围广泛的业务,设计出的系统必须能够处理接受变化的能力。

  (4)扩展性

 随着图像文字识别需求的不断变化,基于Android移动平台文字识别(翻译)系统要求在设计的初始阶段,需要寻找到更优秀的可扩展方案。

  4.2 系统概要设计

 4.2.1 系统流程

 首先,在系统概要设计过程中,第一点也是最重要的就是对整个系统进行分析,分析出后需要实现哪些不同的功能,然后再对其功能进行细化。文字识别翻译系统系统功能结构如图4-1所示。

  图4-1程序业务功能结构图

 4.2.2 总体业务流程设计

 用户开启此App程序,若无账号需点击注册按钮进入注册页面,注册填写相关信息后完成注册,返回登陆页面进行登录操作。登录后进入主页,主页有图片识别翻译,查看识别翻译记录,退出三个主要功能。用户选择图片识别翻译功能进入相关页面,点击打开照相机拍照识别功能按钮后,拍摄目标翻译的图像,选择需识别翻译区域进行剪裁后确定图片;或者点击相册识别按钮,打开系统相册选取目标图片,,选择需识别翻译区域进行剪裁后,系统判断图片大小进行压缩。识别翻译后相应文字出现在文本框中,用户可复制文本以及点击播音按钮进行语音播报。返回进入主页后选择识别翻译历史记录页面,查看历史记录,查找相关记录学习,并可点击播音按钮进行语音播报。返回进入主页后可点击退出按钮,点击确认返回登陆页面。

  图4-2总体业务功能流程图

 4.3 详细设计

 4.3.1 图像文字识别步骤

 (1) 选择图片模块

 此模块实现了两种读取图片的方式,第一种为打开系统照相机进行拍摄图片,第二种为打开本地相册选取图片。

  (2) 图像处理模块

 图像处理的主体部分有文档扫描,图像大小控制和旋转等功能。在输入图像之后,倘若图像放置不正确或者图像区域过大,可以旋转图像以及剪裁图像,为文本识别创造更好的条件,从而使得识别率更高。文字识别翻译模块

 (3) 文字识别翻译模块

 此模块是整个软件的核心部分,文本识别翻译模块主要对输入的图片信息进行“读取”。并将识别翻译后的原文以及结果呈现出来。

  (4) 文字编辑模块

 文本编辑模块主要功能为修改与编辑识别翻译文本。

  (5) 语音播报模块

 对识别原文以及翻译结果进行语音播报。

  (6) 查询历史记录模块

 查询相关的历史记录,也可进行播报。

  4.3.2 代码设计原则

 代码设计遵循以下原则:

  (1)唯一性。实体或属性与特定的代码来表示。

  (2)标准化。考虑到系统执行数据验收和传输功能,负责通信和网络需求,尽可能采用国际标准代码,国家,部门。

  (3)多样化。尝试使用原始代码和有效的业务流程已经在使用并且易于使用。

  (4)可扩展性。可自行添加其他功能,得到更丰富的功能体验。

  (5)鉴定性。更简单的管理代码,与此同时电脑应易于识别。

  (6)简明性。能够在最大程度上不影响编码环境的情况下尽可能的简单以及统一。

  5 系统实现

 5.1 配置环境搭建

 此基于Android移动平台图像处理系统使用Androidstudio作为开发工具。首先下载Android studio安装包,可以从http://www.android-studio.org/下载最新版本,此次开发采用3.0版本。

  图5-1 Androidstudio启动界面

 安装成功后,需要安装和配置Java环境,由于此基于Android移动平台图像处理系统App端使用了Java语言,因此需要安装配置Java环境。

  JDK下载地址:

  http://www.oracle.com/technetwork/java/javase/downloads/index.html,点开链接看到如下图所示的界面:

  图5-2 JDK下载地址

 JDK安装完成后,需要进行环境变量的配置,右键“我的电脑”—>“属性”—>“高级系统设置”,下图5-3,5-4,5-5所示:

  图5-3 JAVA_HOME 变量

 图5-4 Path 变量

 图5-5CLASSPATH变量

 安装和配置成功后,就可以编译Android程序了。

  5.2 程序详细设计

 5.2.1 AndroidManifest.xml清单文件配置信息

 如下图5-6所示:

  图5-6 AndroidManifest.xml清单文件配置信息

 在项目的AndroidManifest.xml中增加如下权限,图5-7所示。

  图5-7 权限信息

 5.3 初始页面设计

 登录后,用户会看到初始界面,相应代码下图5-7所示:

  图5-8初始页面代码

 5.3.1 初始页面侧边栏设计

 通过setContentView把初始页面的静态布局加载,图5-9所示。

  图5-9加载静态布局

 获取Toolbar后,把其支持位系统标题栏。通过getIntent()函数把登录页面的用户信息加载进来。通过Gson()转化为user对象。加载位于侧边栏的三个功能按钮的图标以及名称,并通过适配器的方式进行绑定,图5-10所示。

  图5-10 初始页面侧边栏代码

 顶部显示用户名和手机号,图5-11所示。

  图5-11登初始页面显示用户信息代码

 在Android 6.0 (API 23) 发布之前, 所有的权限都在安装应用的时候显示给用户,用户选择安装则表示全部接受这些权限, 之后无法撤销对这些权限的授权。

  Android 6.0开始, 一部分比较危险的权限需要在程序运行时显式弹框,请求用户授权。

  鉴于6.0之前的各安卓版本权限管理相对的不那么的安全,所以Android 6.0开始采用新的权限模型,只有在需要权限的时候,才告知用户是否授权,是在runtime时候授权,而不是在原来安装的时候,同时默认情况下每次在运行时打开页面时候,需要先检查是否有所需要的权限申请。这样的用户的自主性提高很多,比如用户可以给APP赋予摄像的权限,也可以使用权限,如果执行的操作需要一个dangerous permission, 那么每次在执行操作的地方都必须check你是否有这个permission, 因为用户可以在应用设置里随意地更改授权情况, 所以必须每次在使用前都检查是否有权限,检查权限的方法: ContextCompat.checkSelfPermission()两个参数分别是Context和权限名。返回值是:PERMISSION_GRANTED if you have the permission, or PERMISSION_DENIED if not.如图5-12所示。

  图5-12获取权限代码

 点击退出按钮,弹出确认框,点击确认返回登陆页面,相应代码如图5-13所示。

  图5-13退出按钮代码

 点击拍照识别按钮,进入拍照识别页面,点击历史记录按钮,进入历史记录页面,相应代码如图5-14所示。

  图5-14拍照翻译及历史记录按钮代码

 5.4 拍照翻译页面设计

 拍照翻译页面布局文件fragment_ocr.xml相应代码,如图5-15所示:

  图5-15布局文件fragment_ocr.xml

 核心代码中通过findViewById获取布局文件的相关控件,如图5-16所示。

  图5-16获取相关控件

 初始化百度图片翻译SDK,输入AppID,Appkey,如图5-17所示。

  图5-17初始化百度图片翻译SDK

 打开照相机拍照翻译按钮,设置点击事件打开系统照相机,打开相册翻译按钮打开系统相册,并设置剪裁后输出的照片长与宽,如图5-18所示。

  图5-18页面两个按钮点击事件

 获取sd卡状态,判断有无sd卡,如图5-19所示。

  图5-19获取sd卡状态

 拍照后剪裁图片用的是github上一个专门对Android平台以及第三方开源图片剪裁的剪裁库,剪裁后返回bitmap类型,并在imageView控件上把图片展现出来,如图5-20所示。

  图5-20拍照处理图片代码

 打开相册选择照片进行剪裁后,这里会判断剪裁后的图片大小,如果过大会压缩图片,返回图片uri类型,显示在imageView控件上,并转换成bitmap类型,如图5-21所示。

  图5-21相册图片处理代码

 判断用户选择什么目标语言进行翻译后,设置百度翻译对象并将图片发送给百度翻译,如图5-22所示。

 图5-22选择目标语言并将图片传给百度翻译

 得到结果,显示在文本框中,如图5-23所示。

  图5-23识别原文及翻译结果显示到文本框中

 5.5 历史记录页面

 历史记录布局文件fragment_history_list.xml相应代码,如图5-24所示:

  图5-24 布局文件fragment_history_list.xml

 核心代码中用inflate方法加载fragment_history_list布局文件,界面下图5-25所示:

  图5-25历史记录页面

 查找列表项,并绑定适配器,如图5-26所示。

  图5-26 绑定适配器

 6 系统测试

 在这一系统开发的最终步骤是系统测试,系统测试是系统中最为关键的一个环节,测试的好坏关系到产品的发展。客户对软件的质量、性能和可靠性等需求就要通过测试来实现。测试过程必须遵循严格,完整和标准化的原则。测试的主要目的就是看看在系统运行中,是否会出现bug,然后对出现的bug进行调试,直到程序完美运行。但是软件的测试只能尽可能的减少bug,理论上来说是无法达到消除bug。但是bug越少,系统出错的几率就越低,用户使用起来也更方便、更安全。

  6.1 测试环境与条件

 处理器:麒麟海思 970/高通骁龙820 处理器

 内存:

 6GB/3GB

 硬盘:128GB/32G

 操作系统:Android 5.0/9.0系统

 6.2 功能测试

 功能测试包括很多种,通常有五个方面,分别为:安全性、依从性、适用性、准确性以及可操作性行。本基于Android移动平台文字识别(翻译)系统功能测试如表6-1所示:

  表6-1 系统功能测试

 6.2.1 初始页面测试

 打开App完成登录注册一系列操作后,成功登录进入初始页面,可选择拍照翻译,历史记录,退出三个功能页面,如图6-1:

  图6-1初始页面

 6.2.2 拍照翻译页面功能测试

 在初始页面点击侧边栏拍照翻译功能按钮后,成功进入拍照翻译功能页面,选择单选按钮原文语言以及需要翻译语言,此App提供,汉译英,英译汉,汉译日,汉译韩,汉译法,汉译西六种翻译模式,选择完后可点击打开照相机拍照识别按钮或者打开相册识别按钮,如图6-2:

  图6-2拍照识别页面

 选择打开照相机拍照识别按钮,对焦好需要识别翻译的图像,点击拍照快门,可确认是否使用此照片,可点击左上角X返回重新拍摄,点击右上角✔确认图片后进入剪裁环节,用户可根据需求(拍摄对象在镜子里造成图片镜像,拍摄图片上

 下颠倒等)点击右上角镜像旋转按钮进行编辑,用户可剪裁需要识别的部分如图6-3,6-4,6-5所示:

  图6-3拍照页面

 图6-4 确定图片页面

 图6-5 选择识别区域进行剪裁

 识别翻译完成,图片显示在中间,原文识别内容现在第一个文本框,翻译后内容显示在第二个文本框,用户可根据自行需要复制内容,如图6-6:

  图6-6识别翻译结果

 选择打开相册识别按钮,选取需要识别的照片,经过系统剪裁,如图6-7:

  图6-7选择相册图片识别区域

 识别翻译后,结果显示在上文提到的区域,如图6-8:

  图6-8 识别翻译后结果

 6.2.3 翻译历史页面功能测试

 登录后进入初始页面或者识别翻译完成后返回初始页面,可点击侧边栏翻译历按钮进入翻译历史页面,进行查询历史记录,如图6-9所示:

  图6-8 翻译历史页面

 6.3 性能测试

 性能测试运用模拟系统运行环境测试网站的性能,用来满足使用者的需求。性能测试的重要技术指标包括:系统速度,网络响应时间以及支持的并发节点数。

  (1)系统运行速度:把系统在不同的电脑上运行,没有发现任何停顿、迟滞现象。

  (2)网络响应时间:系统响应时间包括一下三个方面:第一是此系统的最小响应时间;二为此系统平均响应时间;三,系统最大响应时间。经过测试,在正常情况下下,局域网内响应时间的三个数值分别为:2/3/5s,速度非常快,用户满意。

  (3)支持并发节点数:支持并发节点数,就是在访问量增大时,系统是否有延迟,经过测试,当数据超过5000时,访问有些延迟。

  测试环境与条件

 6.4 测试结果

 经过对上述的测试结果分析,基于Android移动平台文字识别(翻译)系统满足图像识别要求。所有基本功能齐全,操作简单,系统运行良好。这是一个值得推广和应用的移动应用程序。

  7 总结与展望

 通过这次的毕业设计,我不得不承认这个系统的相关的知识不仅融合了许多Android的知识还有JAVA语言的正确编写,例如在编写各个模块的代码,以及处理信息方面,甚至包括页面设计,这大大改善了我独立思考以及独立学习的能力。对我自己而言,这毫无疑问在我将来的学习和工作中扮演着重要的作用。

  此外,在本次毕业设计中遇到的最困难的方面就是大二大三期间关于安卓方面的学习的知识不够扎实,以及JAVA编程课程的学习不够牢固,这也是为什么在刚开始进行毕业设计的时候感觉十分困难,毫无头绪甚至根本不知道该从何处下手,但好在自己不变的信念并且不断的坚持下,在CSDN网站查询了很多相关应用程序的开发介绍以及询问了很多这领域的网友,并且与此同时在中国大学MOOC慕课网站以及极客学院网站参加了相关知识的学习,设计的最终还是被完成。所以,在我看来凡事无论多么的困难,只要自己能够坚持下去,充分利用好现有的学习资源,难题就不再是难题了。

  回到在开发系统的过程中遇到的情况,我运用了前两年在课堂上以及课外时间学习和了解的一些知识,通过实现这些知识,大大提升了效率。在这篇论文里我都对这些内容做了比较详细的介绍。当然,不可否认这个系统确实会存在些我意想不到的不完善的地方。这也是为什么在今后的日子里,我需要对这些不足进行改善。

  与此同时,它极大地改善了我的动手能力,让我充分感受到了发现与探索的喜悦和创作的成功经历。在设计过程中学到的东西是宝贵的资产,因此终生难忘。通过这个毕业设计,我增强了自己的学习能力,而且我也学到了很多我在课堂上无法学到的知识。通过实践,我也深刻认识到,开发应用程序的艰苦,最重要的是我感受到了解决困难后的心情,这也无形的加强了我本人独立思考的能力,这样为我今后的求学道路和工作奠定了良好的基础。

  参考文献

 [1]宋杰,党李成,郭振朝,等. Android

 OS

 手机平台的安全机制分析和应用研究[J]. 计算机技术与发展, 2010, 20(6): 152-155.

 [2]杨文志. Google Android程序设计指南[M]. 北京:电子工业出版社,2009:10-100.

 [3]韩超,梁泉著. Android系统原理及开发要点详解 [M]. 北京:电子工业出版社,2010:50-150.

  [4]赵妍. 2010-2013

 年国际手机市场营销分析[J]. 科学时代, 2013 (7).

 [5]苗忠良.Android多媒体编程从初学到精通[M].北京:电子工业出版社,2011.

 [6]林城.Google Android 2.x应用开发实践[M].北京:清华大学出版社,2011.

 [7]王向辉,张国印.Android应用程序开发[M].北京:清华大学出版社,2010.

 [8]沈澔,徐明星. Android 与 iOS

 移动操作系统技术创新模式对比[J]. 中小企业管理

 与科技, 2012 (1): 288-288.

 [9] 黄爱民,安向京.数字图像处理与分析基础[M]. 北京:中国水利水电出版社:230-250.

 [10] 郭宏志.Android应用开发详解 [M]. 北京:电子工业出版社,2010:22-300.

 [11]MartinNgobye.Computing Static Slice for Java Programs[D]. 湖南:湖南大学计算机科学与技术系,2005.

 [12]张铮,王艳平,薛桂香.数字图像处理与机器视觉[M].北京:人民邮电出版社,2010:12-500.

 [13]百度.通用翻译API技术文档[OL],http://fanyi-api.baidu.com/api/trans/product/apidoc#phojoinFile 201:86

 [14]崔洋.Sql数据库应用从入门到精通.中国铁道出版社,2013:27

 [15王珊,萨师煊.数据库系统概论.高等教育出版社, 2006:16

 [16]张海潘.软件工程导论.清华大学出版社,2008:86

 致谢

 转眼间,我的大学生活就要结束了,毕业设计也基本完成了。历时几个多月的紧张学习和努力,我的毕业设计终于如期、顺利的完成了。此次毕业设计是对我们日常所学理论的一次综合性评测,也是将理论应用到实践的一项考察。

  首先我要感谢我的指导老师XXX,在没有他的定期检查和指导下,我的毕业设计能如期并且高质量完成。他为我推荐了许多有用的资料和文献,他的指导和建议使我受益匪浅在,并且在我整个系统开发和设计过程里,老师为我的程序的设计、框架的设计、代码的撰写方面以及论文框架的设计提供了很多宝贵的意见,有了指导老师的辅导和指点,我论文才能够顺利完成。老师的负责的认真态度和治学理念使我这个即将要踏入社会的大学毕业生受益匪浅,收获终生。

  同时,我也要感谢我的搭档高鹏同学,在我们的不懈努力下我们的设计能够顺利完成。

  与此同时,我更要感谢在广州商学院的这几年信息技术与工程对我们投入的精力,学院的每一位老师不辞辛苦为我们上课与辅导,是他们让我们获得了的更好的专业知识,并且也提升了我们在面临困难时候的处理能力,这将成为我人生中最难忘的四年学习经历。

  在这最后,我诚心地祝愿我们学校的领导教师还有与我一起刻苦学习努力奋斗四年的同伴同学们事业有成,工作顺利,也祝愿本校的前景更加辉煌!

推荐访问:图像处理 开发 系统

《基于Android移动平台图像处理系统开发.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:

文档为doc格式

一键复制全文 下载 投诉