现在手机摄影越来越不便,顺手一拍就能记录美好生活。但照片越多,整顿越麻烦,有的时候咱们想对照片进行二次加工、分享,须要不停翻找相册。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 最新技术资讯~