APPInvenor安卓应用开发之《AI图像识别》

Posted 钥匙编程入门

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APPInvenor安卓应用开发之《AI图像识别》相关的知识,希望对你有一定的参考价值。

APPInvenor安卓应用开发之《AI图像识别》


本程序使用wxbit在线版(app.wxbit.com)。


一、思路

由之前做的植物识别,就想到了动物识别,又想到了其它的智能识别,应该有很多种类,大家可以去百度智能云查看支持文档,这里我们只添加3种:动物识别、菜品识别、果蔬识别,其它的大家可以自行研究。

那么添加的识别种类需要什么数据呢?

APPInvenor安卓应用开发之《AI图像识别》


 二、准备工作

1、制作智能植物识别时,我们已经申请了apiKey和secretkey,可以直接使用,如果没有申请apiKey和secretkey,则需要去百度智能云申请,再继来续制作APP。

2、GET请求获取Access_token令牌

(1)请求头格式如下:

APPInvenor安卓应用开发之《AI图像识别》

(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/image-classify/v1/animal?access_token=【access_token令牌口令】

(3)果蔬识别:

https://aip.baidubce.com/rest/2.0/image-classify/v1/classify/ingredient?access_token=【access_token令牌口令】

(4)菜品识别:

https://aip.baidubce.com/rest/2.0/image-classify/v2/dish?access_token=【access_token令牌口令】

三、组件设计

组件

所属面板

命名

作用

属性

Screen1


Screen1

主屏幕

标题:AI图像识别

是否允许滚动:勾选

标签

用户界面

标题标签


文本:AI图像识别 文本颜色:红

字号:25 粗体:勾选:

背景颜色 :橙色

标签

用户界面

版权标签


文本:2021.4.8  Copyright By WZY

字号:16 粗体:勾选

水平布局

页面布局

类别选择布局



列表选择框

用户界面

类别选择框

选择类别

文本:选择分类 字号:18  字色:白

水平对齐:居中 背景颜色:品红

标签

用户界面

图像识别标签



水平布局

页面布局

水平布局1

放置按键

水平对齐:居中  宽度:充满

按钮

用户界面

按钮_拍照

拍照按钮

文本:拍照 文本对齐:居中

背景:#c79c00ff 字号:18 宽度:100 

图像选择框

多媒体

图像选择框_选择图片

选择植物图片

文本对齐:居中  文本:选择图片 背景:蓝色 字号:18 宽度:100

是否粗体:勾选

按钮

用户界面

按钮_开始识别

识别图片

文本:拍照 文本对齐:居中

背景:#c79c00ff 字号:18 宽度:100 

垂直布局

界面布局

垂直布局1



标签

用户界面

名称标签


文本:空 字号:16 粗体:勾选

标签

用户界面

置信度标签


文本:空 字号:16 粗体:勾选

标签

用户界面

简介标签


文本:空 字号:14 粗体:勾选

图像

用户界面

图像

显示植物图片


照相机

多媒体

照相机1

拍照


SimpleBase64

插件

SimpleBase641

图像编码


TaifunImage

插件

TaifunImage1

图像转换


Http客户端

通讯连接

Http客户端1

GET请求


Http客户端

通讯连接

Http客户端2

POST请求


 

四、程序设计

程序设计主要是以下几个部分。

(1)变量和初始化

变量Apikey和Secretkey存储两个KEY,因为是个人申请,所以隐藏。

初始化程序利用Apikey和Secretkey,通过HTTP客户端1GET请求的实时申请,得到JSON文本,然后将返回的JSON保存在列表Access_token_list中,再提取令牌值保存在变量Access_token中。

列表变量returnplant、plantlist、highscoreplant和baike分别存储通过HTTP客户端2POST请求返回的JSON文本、种类列表、最高置信度的种类列表和相关的百科简介。

变量image存储待识别照片。

APPInvenor安卓应用开发之《AI图像识别》

(2)GET请求文本处理(HTTP客户端1)

初始化GET请求成功后,从获得的JSON文本中提取令牌口令,保存在变量Access_token中备用。

APPInvenor安卓应用开发之《AI图像识别》

(3)选择识别种类(这是需要添加的

    4种:植物识别,动物识别,果蔬食材,菜品识别。注意这4个是有顺序的。

APPInvenor安卓应用开发之《AI图像识别》

(4)重设图片尺寸函数

由于拍摄照片或植物图片大小不一,识别过程可能会很长,于是确定图片的最大宽度为500像素,高度则按比例调整。

这里需要一个图像处理插件TaifunImage.aix,可以百度搜索在网上下载。

APPInvenor安卓应用开发之《AI图像识别》

APPInvenor安卓应用开发之《AI图像识别》

(5)选择待识别图片

点击选择要识别的图片,可以事先拍摄好,然后导入图像组件中,调整大小后,显示出来,同时清空上一次识别的所有数据。

APPInvenor安卓应用开发之《AI图像识别》

(5)拍照植物图片:通过手机的拍照功能,把待识别种类的照片直接拍照,注意一定尽量的清晰,对比度适中,否则识别可能会出错,或是识别不准确。拍摄完成后,处理图片过程与选择图片一样。

 

APPInvenor安卓应用开发之《AI图像识别》


(6)开始识别:

POST请求网址在前面已经介绍。

POST请求时,必须将待识别图片转换成BASE64编码,存储在HTTP客户端创建的列表中,然后通过HTTP客户端2获取这些数据后,进行处理和提取,得到我们想要的有用数据。

BASE64编码是数据传输中常用的编码,以前有相关文章介绍过,大家可以去参考一下。SimpleImage.aix组件是BASE64编码插件,需要去网上下载,导入后即可使用。也就是说,POST请求数据时,是按照BASE64编码请求的。

APPInvenor安卓应用开发之《AI图像识别》

APPInvenor安卓应用开发之《AI图像识别》

(7)POST请求获得文本(HTTP客户端2)(这是需要添加大部分内容):

如果请求成功(响应代码为200),返回参数如下表(3个层级)。将返回的数组解码为JSON文本,保存在列表变量returnplant中。然后将识别结果存储在列表plantlist中,它包括所有置信度的植物信息,即识别的种类可能很多,但置信度(也可以理解为可信度)不同,其值从高到低排列,我们只取置信度最高的一项,存储在列表highscoreplant中。并从中提取植物的名字和置信度值,在文本中显示出来。

在列表highscoreplant中还有相关百科知识,只是列表维度太高,提取时稍有难度。百科简介显示出来,从中也能学到很多相关知识。

APPInvenor安卓应用开发之《AI图像识别》

APPInvenor安卓应用开发之《AI图像识别》

APPInvenor安卓应用开发之《AI图像识别》

APPInvenor安卓应用开发之《AI图像识别》

APPInvenor安卓应用开发之《AI图像识别》

APPInvenor安卓应用开发之《AI图像识别》

    

五、调试

写一个种类,测试一下,正确以后再进行下一个种类的代码,以保证每一步的正确性。最后完善程序设计和UI设计。本例程序只添加了3个,与植物识别相比改动不多,不是很难,就是在处理数据列表时,稍微复杂一点。检索数据时,需要一步步测试,才能了解数组(列表或字典)的意义。

可以添加的项目,还有很多的,比如货币、车辆、红酒、地标、Logo等等,可以根据自己的兴趣添加。参考资料可以在百度智能云申请Apikey时,查看相关说明文档。

 

六、相关说明。图片和程序均在百度网盘,如有问题也可以和我联系,加我微信。

 



微信二维码


以上是关于APPInvenor安卓应用开发之《AI图像识别》的主要内容,如果未能解决你的问题,请参考以下文章

系列视频AI产品 之 图像识别

AI图像识别2:AI图像识别之石头剪刀布游戏

走进AI时代的文档识别技术 之表格图像识别

直播预告 | AI图像识别技术能识别真假烟酒吗?

各类场景应用中涉及的AI算法汇总

实战!轻松搭建图像分类 AI 服务