AppInvenor开发——AI图像识别
2021-07-16王德贵
王德贵
一、思路
在本报第15期《AppInvenor开发——拍照识花》中我们已经实现了手机的植物识别App,那么很自然我们就希望这个App能够进行动物识别和其他的图像智能识别,这类AI应用百度已经开发出很多种类,你可以去百度智能云查看支持文档,这里我们在拍照识花的基础上再添加3种:动物识别、菜品识别、果蔬识别,通过本文你有其他需求就可以自行添加其他功能了(图1)。

二、准备工作
1制作智能植物识别时,我们已经申请了Apikey和Secretkey,可以直接使用,如果还没有申请Apikey和Secretkey,则需要去百度智能云申请,再来继续制作App。
2 GET请求获取Access_token令牌
(1)请求头格式(Header)如下:

(2)请求网址格式为(中括号中的变量用你的Apikey和Scretkey替换):
https:∥aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【你的Apikey】&client_secret=【你的Scretkey】
3.POST请求获取AI数据(中括号中的变量用access_token令牌口令替换):
(1)植物识别
https:∥aip.baidubce.com/rest/2.0/image-classify/v1/plant?access_token=【access_token令牌口令】
(2)动物识别
https:∥aip.baidubce.com/rest/2.0/irnage-classify/v1/anirnal?access_token=【access_token令牌口令】
(3)果蔬识别
https:∥aip.baidubce.com/rest/2.0/irnageclassify/v1/classify/ingredient? access_token=【access_token令牌口令】
(4)菜品識别
https:∥aip.baidubce.com/rest/2.0/image-classify/v2/dish?access_token=【access_token令牌口令】
三、组件设计
本程序使用wxbit在线版(app.wxbit.com)(图2)。

四、程序设计
(1)变量和初始化
变量Apikey和Secretkey存储两个KEY,需要你自行申请。
初始化程序利用Apikey和Secretkey,通过HTTP客户端1GET请求的实时申请,得到JSON文本,然后将返回的JSON保存在列表Access_token_list中,再提取令牌值保存在变量Access_token中。
列表变量returnplant、plantlist、highscoreplant和baike分别存储通过HTTP客户端2POST请求返回的JSON文本、种类列表、最高置信度的种类列表和相关的百科简介。
变量image存储待识别照片(图3)。


(2)GET请求文本处理(HTTP客户端1)
初始化GET请求成功后,从获得的JSON文本中提取令牌口令,保存在变量Access_token中备用(图4)。

(3)选择识别种类
这就是本例新添加的部分了,种类有4种:植物识别,动物识别,果蔬食材,菜品识别。……
