本节书摘来自华章出版社《AR与VR开发实战》一书中的第2章,第2.4节,作者 张克发 赵兴 谢有龙,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.4 文字识别
本节介绍如何使用Vuforia和Unity实现文字识别功能。Vuforia对文字识别有一定的要求,首先,Vuforia能够识别的文字大多为英文,不能识别数字和中文。其次,默认能够识别的英文单词必须是官方词库中的单词(10万个),当然,还可以自定义添加英文单词。接下来我们通过Vuforia官方自带的案例来看一下文字识别的实现步骤。
1.插件导入
登录Vuforia官网,在下载页面中找到Samples,该页面中有Vuforia SDK提供的基本功能对应的案例,下载下图所示文件。
下载并解压之后找到下图所示Unity包并导入。
如果在导入Unity插件包的过程中出现下图所示的对话框,点击“I Made a Backup. Go Ahead!”按钮即可。
2.实现文字识别
插件包成功导入Unity工程后删除场景自带的Main Camera,同时在Vuforia文件夹中找到如下文件,拖到层级视图Hierarchy中。
选择场景中新添加的TextRecognition物体,在Inspector面板中添加Text Event Handler脚本。
在Inspector面板中,Additional Word File表示添加自定义词库,类型为.vwl文件。上图中,在第二个线框标定区域可以自定义添加需要识别的单词,如ARinChina。MaxSimultaneous Words属性是指最大同时存在的物体的单词。
Black_List表示黑名单,即将某个单词加入该名单之后就无法再识别;相对应的White_List则表示白名单,加入该名单的单词会优先进行识别。
点开Word,将子对象Text文字改为我们自定义的文字ARinChina,并在场景中的Word物体下创建一个识别之后要显示的物体,然后调整其位置和大小,比如创建一个Cube,最后运行并查看识别效果。