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