基于App Inventor 2的文字识别 手机APP设计

发表时间:2020/8/27   来源:《中小学教育》2020年第12期   作者:歹洁
[导读] 文章通过基于App Inventor 2编程开发工具的环境下介绍一款文字识别APP的制作流程,
        【摘要】:文章通过基于App Inventor 2编程开发工具的环境下介绍一款文字识别APP的制作流程,让学生在手机APP开发的过程中对人工智能中的文字识别有一个大致的了解和熟悉,进而引起孩子们学习人工智能的兴趣并使学生深入认识身边的人工智能。
        【关键词】:文字识别;App Inventor 2;手机APP
        
        一、绪论
        (一)人工智能的背景
        人工智能作为引领未来的战略性新兴技术,正在深刻影响着社会的方方面面,也将深刻改变我们的生产生活方式。2017年7月8日,国务院印发的《新一代人工智能发展规划》明确指出人工智能已成为国际竞争的新焦点,我国应逐步开展全民人工智能教育项目,在中小学阶段设置人工智能相关课程、逐步推广编程教育、建设人工智能学科。2018年教育部印发《教育信息化2.0行动计划》,明确要求要完善课程方案和课程标准,使中小学人工智能和编程课程内容能充分适应信息时代、智能时代发展需要。在中小学开设人工智能课程,从小学、初中到高中分学段、系统化地进行人工智能教育,是具有前瞻性的举措。
        (二)人工智能中的文字识别
        人工智能(Artificial Intelligence),英文缩写为AI,是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,该领域的研究包括机器人、语言识别、图像识别、文字识别、自然语言处理和专家系统等。
        随着信息技术水平的不断提升,信息的数量和形式正突飞猛进,如何对这些信息进行处理,使其能够方便被识别,成为人工智能研究领域的一大重点。文字对信息储存、内容提取、检索等具有重要作用,且在占很大比重的图像中都有文字的存在,所以对图片中文字的提取便意义非凡。
        文字识别--利用计算机自动识别字符的技术,是模式识别应用的一个重要领域。就是通过计算机检测图片或纸面上的字符,以输出文字信息识别结果。
(三)开发环境介绍:App Inventor 2
        App Inventor 2是谷歌公司开发的,是一款在线开发、完全免费、可视化、可拖拽的编程工具,用于在Android平台上构建移动应用。
        
        二、问题的提出
        笔者作为一位高中信息技术教师,探索如何将人工智能内容与编程课程完美结合,成为当务之急。
        (一)App Inventor 2的优点
         通过调查笔者所带的高一年级,共15个班,有编程基础的学生在全年级780个人中占比例为3%,大部分的学生是没有编程基础的。对于没有编程基础的中学生来讲选择一种合适的工具是良好开端的一半。信息社会手机等移动设备已经进入千家万户,作为手机APP的开发程序——App Inventor 2这种可视化代码块编程对正值青春期的中学生有着强烈的吸引力,还不易引起学生的畏难情绪。
         App Inventor 2 将教育与看似无趣的编程技术做了相应的融合,App Inventor 2不需要学习者有较高的代码编写水平,学习者只需要在一定的逻辑思维的指导下,通过代码块的拼接,就能体验自行设计程序的乐趣,且界面友好全中文化操作、并可在手机上运行。
        (二)人工智能内容与编程课程完美结合--一款文字识别APP
        文字识别作为人工智能研究领域的其中一部分,很实用又有推广价值和意义。同时结合编程课程,笔者就想到了用App Inventor 2设计一款文字识别APP。
        1、目前文字识别软件的不足
        1.1现有的文字识别软件虽然在识别准确率和速度上都已经可以满足使用者的需求,但使用起来却受很多限制;
        1.2大多数软件只提供PDF和JPG 格式的图像识别,用户有格式转换问题;
1.3大多数文字识别软件收费。
        2、该项目的意义
        为了让中学生对人工智能的过程有一个感性的认识,以期引起孩子们学习人工智能的兴趣,结合目前文字识别软件的不足,本文详细阐述了基于App Inventor 2编程开发工具的环境下如何设计制作一个对图像中的文字进行识别,也就是文字识别的APP。通过这个APP,手机能够识别出图片中的文字,并复制粘贴等具体应用,节约了大量的文本输入时间。让学生在手机APP开发的过程中对人工智能中的文字识别有一个大致的了解和熟悉,进而引起孩子们学习人工智能的兴趣并使学生深入认识身边的人工智能。对于教师来说,该项目可行性较高,既满足了人工智能教育的需要,又结合学生自身情况进行代码块的编程,而不是直接接触大量的代码编写编程,具有普遍推广的意义。
        
三、项目设计
        (一)先让学生分析文字识别的原理:
        1、图文输入:是指通过输入设备将文档输入到计算机中,也就是实现原稿的数字化。
        2、预处理:扫描一幅简单的印刷文档的图像,将每一个文字图像分检出来交给识别模块识别,这一过程称为图像预处理。
        3、单字识别:单字识别是体现OCR文字识别的核心技术。从扫描文本中分检出的文字图像,由计算机将其图形、图像转变成文字的标准代码,是让计算机“认字”的关键,也就是所谓的识别技术。就像人脑认识文字是因为在人脑中已经保存了文字的各种特征,如文字的结构、文字的笔画等。要想让计算机来识别文字,也需要先将文字的特征等信息储存到计算机里。?
                通过以上三个步骤就能够顺利的将图片上的文字识别出来。
        (二)通过以上问题的分析,我们可以得出解决问题的方法:
        1、放置拍照或打开现有图片文件按钮
        2、放置“开始识别”按钮,具体的计算机“认字”的关键识别过程也就是机器学习部分交给百度智能云等完成,我们不需要了解内部工作机制的细节。
        3、放置“复制”按钮,便于识别出来的文字进行粘贴使用。
         (三)本项目利用API接口在App Inventor 2中做一个文字识别APP,使用者提交包含文字信息的照片或者手机中存储的图片,手机APP将能够分析照片或图片并识别出其中的文字信息,可以直接复制粘贴使用。效果如图1:
                 
       
        
        (四)项目设计流程图如下:
       
        
        文字识别分类很多,通用文字、卡证文字、票据文字、汽车场景文字、教育场景文字和其它文字识别,而且各类别又细分很多种。本文只研究通用文字识别类中的通用文字识别,也是最基本的文字识别。
(五)为了给开发者提供方便,各大网站开发者开放平台提供了一些API应用程序接口,如果想获取一些相关类别的数据,需要申请APIKey和SecretKey,才能制作相关的APP。
        1、API接口
        API(ApplicationProgramming Interface,应用程序接口)是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码,或理解内部工作机制的细节。
        2、申请APIKey和Secret Key
        网上搜索API接口,各类API有很多。百度智能云、阿里云、腾讯云,聚合数据、万维易源等等都可以申请,有免费的,有收费的。本项目中使用的是百度智能云申请的Key。申请过程中,在人工智能项目中选择文字识别,然后建立应用即可得到相应的KEY。
        3、access_token(令牌)获取方法
        利用Web客户端获取,GET请求方式,用你的Key去替换【】及里面的内容。网址:
        https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【你的API KEY】&client_secret=【你的secret key】
        4、请求地址和请求头
        4.1请求方法:
        HTTP方法:POST
        4.2请求地址:
        https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=【access_token】
        4.3请求消息头:
        参数:Content-Type
        值 :application/x-www-form-urlencoded
        4.4返回参数
        我们用到的基本就是这3个参数,其它参数大家可以参考相关说明。
       
        5、插件
        文字识别,要用到三个插件,需要到官网下载,然后导入到项目中。
        第一个是图像转换软件(com.puravidaapps.TaifunImage.aix),即是把不同大小的照片,转换成一定比例的小图像,以方便转码,识别。
        第二个是图像编码插件(com.ghostfox.SimpleBase64.aix),作用是把图像转换成Base64编码,用以识别图像内容。
        第三个是剪切板插件(com.puravidaapps.TaifunClipboard.aix),将识别出的文字复制到剪切板,以便粘贴到其它文档里。
        6、下载安装雷电模拟器、AI伴侣
        本文调试所用模拟器为雷电模拟器,模拟器安装好后可以安装好相应的AI伴侣,便于在电脑上可以实时调试效果。
(六)APP编程
        本程序使用App Inventor 2 Wxbit 汉化增强版。在浏览器中输入地址:http://app.wxbit.com,无须注册直接用QQ帐号即可登录。新建一个App Inventor项目(注意:项目名称不可使用中文)。图2为此APP界面组件设计,表1为所有组件设计的参数设置。
       
        图2  APP界面组件设计
       
                     
        表1组件的参数设置
        
        逻辑设计将完成以下功能:
        点击“拍照”按钮,调用手机上的相机功能拍照;点击“图像选择”按钮,调用手机图库中的图片;点击“开始识别”按钮,即可识别并提取图像中的文字;点击“复制”按钮,将文字信息复制到粘贴板;点击“退出”即可退出该程序,释放内存。图3为调用Web客户端POST请求,获取数据关键部分逻辑设计。
       
        图3
        
        
        (七)调试
        由于程序相对有一定难度,所以必须边写代码边调试,以保证每一步的正确性。调试比编写程序更重要。调试程序有两种方式,第一种在电脑上调试。笔者选用雷电模拟器安装在电脑中,并在雷电模拟器中安装相应的AI伴侣,可以在电脑上实时调试,而不用每一次都安装apk文件在手机上。第二种调试方式也可以在手机上安装AI伴侣,利用手机AI伴侣进行实时调试。调试的过程很关键,决定整个程序的成败,很多教师在使用App Inventor 2编程时,就会因为调试困难而放弃。
        1、获取access_token(令牌):将结果可以显示在标签“显示结果”里,查看数据是否正常。
        2、缩放图片测试:直接把图片放在图片组件中。
        3、剪切板测试:复制到文本文档中。
        4、最后完善程序设计和UI设计。
        
        四、小结
        之前发生的一件小事激发了笔者设计这款 App 的灵感。在看一份杂志的时候,其中一篇文章,想保存其中的一些文字以备以后使用,可是试了很多软件识别文字,拍出来的效果要么太黑了,要不然就是识别过程有很多障碍,有的还要收费,如果有一款手机 App 能够将这篇文章识别成 word文档的格式就好了。在这件事的启发下有了这个创意,并设计了这款文字识别 App。在现实生活中的问题是各种各样的,而问题的分析方法也千差万别,所以需要对问题进行分析归纳,以便更好地培养抽象问题、分析问题的能力,而这种抽象及分析能力也正是人工智能思维的重要体现。
        这就是简单的人工智能,用App Inventor 2开发具有人工智能的文字识别手机APP,是非常直观有效的,功能实现和引用接口很方便,让学生在手机APP开发的过程中对人工智能中的文字识别有一个大致的了解和熟悉,进而引起孩子们学习人工智能的兴趣并使学生深入认识身边的人工智能,易于学生掌握,具有可普及、可推广的意义价值。
        将人工智能基本内容融入到中学信息技术教育中来,可以使学生在认识和体验人工智能技术与知识的过程中体会到半结构化和非结构化问题解决的便捷,进而培养学生多角度看待问题,实现中学生信息素养的提升。经过阶段化的人工智能教育,学生还能够了解并熟悉人工智能语言的特性,从而领会到问题智能化求解的主要策略,这样有利于激发学生对人工智能技术的探索。
        
        【参考文献】
        [1]盛寔,刘伟,计算机文字识别的发展与应用,科技信息[J],2008(31)。
        [2]陈平,“创中学”:人工智能时代的学习之道[J].江苏教育研究,2019(C2):4-8.
        [3]罗红梅,基于App Inventor的图像识别APP设计,电脑知识与技术:学术版[J],2020(1):49-50
        
        
        
       
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: