【木棉花】:基于OpenHarmony的AI图像识别应用开发(ETS) 原创 精华
前言
之前参加了OpenHarmony开源开发者成长计划解决方案,原本打算在九联开发板上搭配摄像头开发,去实现拍照并对图片进行AI识别的应用开发,但是遇到了点问题(见正文,也欢迎大家评论区解答)。
不过基于Openharmony的AI图像识别案例(FA模型)可以正常运作,于是作此文章作为小分享O(∩_∩)O。
概述
本案例是通过网络请求连接到百度云,调用百度云AI图像识别的API,再将结果返回至应用显示。百度云文档
举例效果图:
![]() |
---|
正文
一、创建项目
项目选择OpenHarmony的Empty Ability模板,API选择8,语言选择ets。
![]() |
---|
![]() |
二、添加权限及导入模块
1、在config.json文件中添加权限
2、在index.ets文件中导入模块,第一个是资源管理模块,第二个是网络模块。
三、创建网络请求并根据百度云API传参
该API调用前需要获取access_token,具体方法见其文档(注意的是创建应用后要去开启图像识别的服务)
1、定义变量
并上传要识别的图片到项目中,此案例中使用的是一张莲藕的图片。
![]() |
---|
2、编写函数获取access_token
3、编写函数编码图片并去掉编码头
resourceManager.getResourceManager 此API只适用于FA模型,stage模型不适用。(所以在标准系统相机开发模型为stage时,不能用此方法对图片编码)
4、编写函数调用图像识别API
注:这里 header:{‘Content-Type’: ‘application/x-www-form-urlencoded’} 才能传image参数到百度云。HTTP请求头字段,默认{‘Content-Type’: ‘application/json’} 。笔者将能在harmonyOS模拟器上跑起来的同样代码复制到一个新建的openHarmony项目中,但是会报错:缺参。通过后台调试发现能接收url的参数access_token和header参数,当header为默认类型时能接收到extraData里的参数,但当header为’application/x-www-form-urlencoded’时,无法收到extraData里的参数,所以初步认为是笔者所用OH系统版本的网络请求库不支持application/x-www-form-urlencoded传参。
四、编写UI界面调用函数
因为图片编码需要点时间,为了避免传参时出现错误,于是添加了一个延迟函数。
结语
以上就是本次的小分享啦!❀❀
百度的识图效果还是很不错的,感谢楼主分享调用API的知识
不仅识别了名称,还做了介绍,不错不错
感谢支持
感谢支持