现在手机摄影越来越不便,顺手一拍就能记录美好生活。但照片越多,整顿越麻烦,有的时候咱们想对照片进行二次加工、分享,须要不停翻找相册。HMS Core 机器学习服务(ML Kit)提供了图片分类服务,不便用户在多个场景下疾速筛选图片集、定义图片题材并标注分类信息。比方,期末老师时常会要求家长和孩子一起制作亲子成长手册,教育服务类 App集成图片分类服务后能够把一个学期以来的所有照片分类汇总成相册;出去玩了多个景点或路径不同城市,游览分享类 App能够帮忙用户整顿基于某个地位或某个实物进行图片分类;在全场景下手机相册须要把照片同步到大屏上轮播,文件分享类 App能够设置分享规定,分类上传。
接下来,请开发者们通过以下 开发实战 进行体验,同时期待大家将便捷的图片分类服务进一步带给用户~
开发实战
1 开发筹备
在进行开发前须要配置 HMS Core SDK 的 Maven 仓地址:
repositories {
maven {
url’https://cmc.centralrepo.rnd.h…’ }
}
并集成本 SDK:
- dependencies {
-
// 引入根底 SDK
implementation 'com.huawei.hms:ml-computer-vision-classification:3.3.0.300'
- // 引入图片分类模型包
- implementation ‘com.huawei.hms:ml-computer-vision-image-classification-model:3.3.0.300’
}
而后请参见云端鉴权信息应用须知,设置您利用的鉴权信息
2 编辑工程集成
2.1 设置利用的鉴权信息
能够通过 api_key 或者 Access Token 来设置利用鉴权信息。
通过 setAccessToken 办法设置 Access Token,在利用启动时初始化设置一次即可,无需屡次设置。
MLApplication.getInstance().setAccessToken(“your access token”);
通过 setApiKey 办法设置 api_key,在利用启动时初始化设置一次即可,无需屡次设置。
MLApplication.getInstance().setApiKey(“your ApiKey”);
2.2 创立动态图片检测器
// 形式一:端侧辨认应用自定义参数配置。
MLLocalClassificationAnalyzerSetting setting =
new MLLocalClassificationAnalyzerSetting.Factory()
.setMinAcceptablePossibility(0.8f)
.create();
MLImageClassificationAnalyzer analyzer = MLAnalyzerFactory.getInstance().getLocalImageClassificationAnalyzer(setting);
// 形式二:端侧辨认应用默认参数配置。
MLImageClassificationAnalyzer analyzer = MLAnalyzerFactory.getInstance().getLocalImageClassificationAnalyzer();
2.3 创立 MLFrame
// 通过 bitmap 创立 MLFrame,bitmap 为输出的 Bitmap 格局图片数据。反对的图片格式包含:jpg/jpeg/png/bmp,倡议图片尺寸不小于 112*112 像素。
MLFrame frame = MLFrame.fromBitmap(bitmap);
2.4 调用 asyncAnalyseFrame 办法进行图像分类
Task<List<MLImageClassification>> task = analyzer.asyncAnalyseFrame(frame);
task.addOnSuccessListener(new OnSuccessListener<List<MLImageClassification>>() {
@Override
public void onSuccess(List<MLImageClassification> classifications) {
// 辨认胜利。// 遍历返回的列表 MLImageClassification,获取分类名称等信息。}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception e) {
// 辨认失败。// Recognition failure.
try {MLException mlException = (MLException)e;
// 获取错误码,开发者能够对错误码进行解决,依据错误码进行差异化的页面提醒。int errorCode = mlException.getErrCode();
// 获取报错信息,开发者能够联合错误码,疾速定位问题。String errorMessage = mlException.getMessage();} catch (Exception error) {// 转换错误处理。}
}
});
2.5 辨认实现后进行分析器
try {if (analyzer != null) {analyzer.stop();
}
} catch (IOException e) {// 异样解决。}
3 演示及阐明
3.1 阐明
图片分类性能蕴含动态端侧、动态云侧、动静检测,以上示例仅为动态端侧性能。
3.2 演示
理解更多详情 >>
拜访华为开发者联盟官网
获取开发领导文档
华为挪动服务开源仓库地址:GitHub、Gitee
关注咱们,第一工夫理解 HMS Core 最新技术资讯~