如何实施
可以使用图像分类华为ML套件服务。它将图像中的元素分类为直观的类别,以定义图像主题和使用场景。该服务既支持设备上的识别模式,也支持云上的识别模式,前者识别400多个类别的项目,后者识别12000多个类别。它还允许创建自定义图像分类模型。
制剂
1.创建一个应用程序的应用程序连接和配置签名证书指纹。
2.配置华为Maven存储库地址,并添加对图像分类服务的构建依赖项。
dependencies{// Import the basic SDK.implementation'com.huawei.hms:ml-computer-vision-classification:2.0.1.300'// Import the image classification model package.implementation'com.huawei.hms:ml-computer-vision-image-classification-model:2.0.1.300'}
3.自动更新机器学习模型。
将下列语句添加到AndroidManifest.xml档案。当用户从华为应用程序库安装应用程序后,机器学习模型将自动更新到用户的设备上。
...
4.配置混淆脚本。
有关详细信息,请参阅ML工具包。发展指南华为的开发者。
5.在AndroidManifest.xml档案。
要通过照相机或相册获取图像,您需要在文件中申请相关权限。
XML
发展过程
1.创建和配置云上图像分类分析器。
为图像分类分析器创建一个类。
public class RemoteImageClassificationTransactor extends BaseTransactor>
在类中,使用自定义类(
MLRemoteClassficationAnalyzerSet)若要创建分析器、设置相关参数并配置处理程序,请执行以下操作。
privatefinalMLImageClassificationAnalyzerdetector;privateHandlerhandler;MLRemoteClassificationAnalyzerSettingoptions=newMLRemoteClassificationAnalyzerSetting.Factory().setMinAcceptablePossibility(0f).create();this.detector=MLAnalyzerFactory.getInstance().getRemoteImageClassificationAnalyzer(options);this.handler=handler;
2.呼叫异步分析框架处理图像。
异步分类输入MLFrame对象。
@OverrideprotectedTask>detectInImage(MLFrameimage) {returnthis.detector.asyncAnalyseFrame(image);}
3.获得成功的分类结果。
覆盖成功方法图像分类转换器若要在图像中显示可识别二手手机出售对象的名称,请执行以下操作。
@OverrideprotectedvoidonSuccess(BitmaporiginalCameraImage,Listclassifications,FrameMetadataframeMetadata,GraphicOverlaygraphicOverlay) {graphicOverlay.clear();this.handler.sendEmptyMessage(Constant.GET_DATA_SUCCESS);ListclassificationList=newArrayList<>();for(inti=0;i
如果识别失败,处理错误并检查日志中的失败原因。
@OverrideprotectedvoidonFailure(Exceptione) {this.handler.sendEmptyMessage(Constant.GET_DATA_FAILED);Log.e(RemoteImageClassificationTransactor.TAG,"Remote image classification detection failed: "+e.getMessage());}
4.在认可结束时释放资源。
识别结束时,停止分析器,释放检测资源,并覆盖停()方法图像分类转换器.
@Overridepublicvoidstop() {super.stop();try{this.detector.stop();}catch(IOExceptione) {Log.e(RemoteImageClassificationTransactor.TAG,"Exception thrown while trying to close remote image classification transactor"+e.getMessage()); }}