智能识别书目并手机显示

在这个特殊的春节,我们多了很多属于自己的时间。不论是孩子还是大人,都有了更多的业余时间,也多了更多彼此的陪伴。足不出户,就是守护自己,守护他人,多读书成了我们家不二的选择。书读的多了,桌上的书堆积如山,不知道每天都读了哪些书?为此,我考虑集成了百度的文字识别,TinyWebDB数据库以及App Inventor的手机应用,还有掌控板,共同制作了这个项目。

步骤一:确定思路

可以肯定的是这次需要用到三个终端,一个是手机,一个是电脑,一个是掌控板。

掌控板:只有一个按钮,当按下按钮时,开始进行文字识别操作。也就是说,每按下一次,都会识别一次文字(既:识别一本书)

电脑:重点使用的是电脑的摄像头,具体内容分三步走。

(1):通过mind+连接到百度AI云平台,利用电脑的摄像头,对书上的文字进行识别。

(2):将识别出来的文字,更新到数据库中(Tiny web DB)。

(3):将识别后的文字语音播放出来,并将统计的总数显示在掌控板屏幕上。

手机:使用AppInventor2进行编程,将数据库中的内容读取出来并显示。

步骤二:注册百度云AI账号

打开百度AI开放平台:http://ai.baidu.com/

这里是为mind+中的文字识别做准备,在百度控制台中选择文字识别,如下图。

新建自己的应用,注意带星号的都要输入。由于是在文字识别类目下创建应用,所以默认需要的接口都已经打好勾了。

创建好应用之后,管理该应用,会看到AppID,APIKey,以及SecretKey,这三个参数。

步骤3下载最新版本Mind+

强烈推荐先下载最新版本的mind+,变化还是有的哦,df的程序猿gg们很勤劳的,经常会有很多很棒的更新。

在当前最新版V1.6.2中,打开实时模式,注意是实时模式而不是上传模式哦!

接着将需要扩展的项目和主板都加载进来。

主控板中的掌控板

功能模块中的文字朗读

网络服务中的TinyWebDB和AI图像识别

步骤4:电脑端的编程

文字识别这里有三个要注意的点,其中有两个也是我掉进去的坑:

1)一定要开启镜像,否则的话摄像头是按反相文字进行识别,基本全错,一开始这个问题困扰了我,后来发现这里有镜像开启,一切困难迎刃而解。

2)识别出来的文字,如果有换行或者特殊字符是会在字符串中加入\再写入数据库的,而手机端在读取时,只读取第一个\之前的内容,因此为了防止将多余的文字识别进去,希望入库的数据尽可能是有效书目,这里我做了一个类似trim的操作,因为没有太多对字符串的操作,所以只简单识别了第一个斜杠之前的文字。另外关于识别时,我发现,只要将书脊对着摄像头,会极大的提高识别准确度。书目内容相当简洁。

3)将百度AI智能云的账号输入,如下图。

这段代码主要有三个功能:

1)通过掌控板按下按钮后,开始识别摄像头中的文字(并进行简单的文字处理)

2)如果识别到了,那么录入数据库(http://tinywebdb.appinventor.space/

3)录入数据库后,语音播放所识别内容,并将识别总数显示在掌控板上。

其他内容都比较好理解,下面说一说我在录入数据库中踩到的坑。

步骤5:TinyWebDB数据库

打开网址:http://tinywebdb.appinventor.space/

就来到上图中的界面,注册自己的账号后,登录数据库中。

在mind+中,调用TinyWebDB中,需要设置API地址,用户名,密钥这三项,将上图中的对应项目,填入mind+代码中。

至此,我们已经建立好了数据库和录入,在开始操作文字识别后,我们会发现数据库的数据是在不断增加的。

步骤6:手机端App Inventor的设计和制作

关于App Inventor2的操作,我也是学习了很多论坛大神的方法后,多方面尝试,总结一下具体操作。

最好是能够根据连接中的方案,安装上集成版,这样可以直接在电脑端看到手机模拟器的效果,很方便调试程序,如果不能,直接用网络版也是可以的。

https://www.wxbit.com/?p=18&q=154

设计自己需要的页面:三个按钮,一个列表,一个隐藏控件(网络微数据库)

选中网络微数据库的组件后,设置其服务器地址。这里的地址和刚刚在mind+中所填写的是不一样的哦,这里是服务器地址(也就是我用红框第一个圈出来的)。

在这里我也曾掉了一个坑,就是一开始没有仔细看,一直觉得,既然写了地址,就一定要有地方去输入用户名密码才能连数据库啊,完全没有仔细观察,这个地址的后面本身就是传参的,自带了用户名和密码,所以此处和mind+不一样,也是完全合情合理哒~~输入完这个,基本上数据库的设置就完事了,很简单吧。

然后打开逻辑设计,在逻辑设计中填写代码。

我用了三个按钮,点击获取数据后,会将数据库的数据读取到数组中,再点击显示按钮后,会显示再列表中,假如需要清空,那么就点击清空,将列表初始化。

在模拟器中的效果已经读取出来我们识别到的书目了。

这个是在安卓手机上的实际演示效果。这样,我们每天都看了哪些书,就一目了然了~~

最后放上实际文字识别书目的视频效果,录入之后,在手机端获取数据即可。

收藏 评论(0)