文档开发者中心
我的

快应用快速接入HUAWEI HiAI Engine(13)-图片分类

“HUAWEI HiAI体验”快应用源码在github(https://github.com/Huawei/Consumer/tree/master/HiAI-quickapp-demo)开源了,一步步带你快速在快应用中接入HUAWEI  HiAI Engine,让你的快应用变得更智能。

1.    引言

HUAWEI HiAI Engine提供了免费的人脸识别、自然语言处理等多种AI能力,而且还可以在快应用中使用,您可以轻松将多种AI能力和APP或快应用相结合,让您的APP或快应用更加智能强大。最重要的是HUAWEI HiAI Engine是离线的,用户的数据始终都在他们自己的手机上面,不需要担心隐私泄露的问题,可以放心使用。

本次介绍HUAWEI HiAI Engine的图片分类能力。图片分类提供了一个检测给定图片中的标签信息,对图像分类的接口,可应用于智能相册分类、智能美图、搜图、辅助用户行为识别等应用场景。本次实现效果图如下所示。

2.    接入准备

图片分类在快应用中使用很简单,只需要开发者在华为快应用官网下载华为快应用IDE,然后就可以根据HUAWEI HiAI开发指南进行开发了。目前使用华为快应用IDE开发HUAWEI HiAI的能力只需完成一下两步即可开始代码编写,具体如下:

1)  manifest配置文件增加如下配置:{'name': 'system.ai'}

2)  导入AI模块,如:import ai from '@system.ai或 var ai = require('@system.ai ')

3.    代码实现

代码编写先是完成界面部分,然后实现HUAWEI HiAI接口功能,界面实现可以参考快应用开发指南,这里详细介绍一下HUAWEI HiAI中图片分类接口的实现,本示例中具体实现步骤如下:

第一步:获取图片资源uri。

第二步:调用HUAWEI HiAI图片分类接口。

(1)  获取图片资源uri有两种方式,一种是获取手机相册图片uri,另一种是通过手机相机拍照获取图片uri,实现方法如下:

       //获取图片资源

       selectMedia: function (e) {

           var that = this;

           //判断是拍照获取资源,调用takePhoto方法

           if (e === 'takePhoto') {

               that.takePhoto().then(function (data) {

                   that.imageUri = data.uri;

                   that. detectLabel();

               });

           }

           //判断是从相册中选择图片,调用selectOneImage方法

           else if (e === 'selectImage') {

               that.selectOneImage().then(function (data) {

                   that.imageUri = data.uri;

                   that. detectLabel();

               });

           }

           else {

               that.cancel();

           }

       },

       //拍摄照片

       takePhoto: function () {

           var that = this;

           that.isShow = '';

           return new Promise(function (resolve, reject) {

               //调用media库中takePhoto方法

               media.takePhoto({

                   success: function (data) {

                       resolve(data);

                   }

               })

           });

       },

       //从手机相册中选择第一张图片

       selectOneImage: function () {

           var that = this;

           that.isShow = '';

           return new Promise(function (resolve, reject) {

               //调用media库中pickImage方法

               media.pickImage({

                   success: function (data) {

                       resolve(data);

                   }

               })

           });

       },

(2)  调用图片分类接口

       //图片分类

       detectLabel: function () {

           var that = this;

           that.result_list = [];

           //调用图片分类接口

           ai.detectLabel({

               //源文件的uri,仅支持本地路径

               uri: that.imageUri,

               success: function (data) {

                   if (data.category === -2) {

                       that.result_list.push('无结果。');

                       return;

                   }

                   //解析返回结果

                   var lableCategory = '种类: ' + lableCategoryList[data.category] + '   ' + '置信度: ' + data.categoryProbability;

                   that.result_list.push(lableCategory);

                   if (data.labelContent !== null && data.labelContent.length > 0) {

                       for (var i = 0; i < data.labelContent.length; i++) {

                           var lableId = '标签' + (i + 1) + ': ' + lableIdList[data.labelContent[i].labelId] + '   ' + '置信度: ' + data.labelContent[i].probability;

                           that.result_list.push(lableId);

                       }

                   }

               },

               fail: function (data, code) {

                   var failCode = '错误码:  ' + errCodeList[code];

                   that.result_list.push(failCode);

               },

               complete: function () {

                   console.log('handling complete')

               }

           })

       }

4.    总结

至此,介绍快应用接入HUAWEI HiAI的图片分类能力已经描述完了,本次介绍的分A词能力源码在github上有上传,大家可以点击下载去看一下。

除此之外,华为还提供了Android端的HUAWEI HiAI,本次分享没有介绍,有兴趣的朋友可以去华为开发者网站看看关于Android端HUAWEI HiAI。


点赞
收藏
回复
分享
举报
浏览5760 编辑于2020-03-20 01:14未知归属地
全部评论
最多点赞
最新发布
最早发布
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。