文档管理中心
我的
API参考机器学习服务Androidcom.huawei.hms.mlsdk.objectsClass SummaryMLObjectAnalyzer

MLObjectAnalyzer

展开

Class Info

com.huawei.hms.mlsdk.objects.MLObjectAnalyzer

对象分析器:检测图像中的对象信息(MLObject)。创建一个对象分析器的方法有两种:
  • 带参数的创建方法,可以自定义一个对象分析配置器。
  • 不带参数的创建方法,使用默认的对象分析配置器,默认使用视频流模式。

Sample code:

收起
自动换行
深色代码主题
复制
  1. // 创建对象分析配置器的实例
  2. MLObjectAnalyzerSetting setting = new MLObjectAnalyzerSetting.Factory()
  3. .allowClassification()
  4. .allowMultiResults()
  5. .setAnalyzerType(MLObjectAnalyzerSetting.TYPE_PICTURE)
  6. .create();
  7. // 使用不带参数的方法创建对象分析器
  8. MLObjectAnalyzer analyzer = MLAnalyzerFactory.getInstance().getLocalObjectAnalyzer();
  9. // 使用带参数的方法创建对象分析器
  10. MLObjectAnalyzer analyzer = MLAnalyzerFactory.getInstance().getLocalObjectAnalyzer(setting);

Public Method Summary

展开

Qualifier and Type

Method Name and Description

Task<List<MLObject>>

asyncAnalyseFrame(MLFrame frame)

使用异步调用的方式从图像中检测对象。

SparseArray<MLObject>

analyseFrame(MLFrame frame)

使用同步调用的方式从图像中检测对象。

void

stop() throws IOException

释放资源,包括释放输入输出流等资源。

Public Methods

asyncAnalyseFrame(MLFrame frame)

展开

Method

public Task<List<MLObject>> asyncAnalyseFrame(MLFrame frame)

使用异步调用的方式从图像中检测对象。

Parameters
展开

Name

Description

frame

待检测图像。

Returns
展开

Type

Description

Task<List<MLObject>>

返回封装了检测结果的异步任务,使用方式参见示例代码。

Sample code:

收起
自动换行
深色代码主题
复制
  1. // 创建使用自定义配置的对象分析器实例
  2. MLObjectAnalyzerSetting setting = new MLObjectAnalyzerSetting.Factory()
  3. .allowClassification()
  4. .allowMultiResults()
  5. .setAnalyzerType(MLObjectAnalyzerSetting.TYPE_PICTURE)
  6. .create();
  7. MLObjectAnalyzer analyzer = MLAnalyzerFactory.getInstance().getLocalObjectAnalyzer(setting);
  8. // 通过bitmap创建MLFrame,建议图片尺寸不小于288*288
  9. MLFrame frame = new MLFrame.Creator().setBitmap(bitmap).create();
  10. Task<List<MLObject>> task = analyzer.asyncAnalyseFrame(frame);
  11. task.addOnSuccessListener(new OnSuccessListener<List<MLObject>>() {
  12. public void onSuccess(List<MLObject> Object) {
  13. // 检测成功的处理逻辑
  14. }
  15. }).addOnFailureListener(new OnFailureListener() {
  16. public void onFailure(Exception e) {
  17. // 检测失败的处理逻辑
  18. }
  19. });

analyseFrame(MLFrame frame)

展开

Method

public SparseArray<MLObject> analyseFrame(MLFrame frame)

使用同步调用的方式从图像中检测对象。

Parameters
展开

Name

Description

frame

待检测图像。

Returns
展开

Type

Description

SparseArray<MLObject>

返回检测结果集,使用方式参见示例代码。

Sample code:

收起
自动换行
深色代码主题
复制
  1. // 创建使用自定义配置的对象分析器实例
  2. MLObjectAnalyzerSetting setting = new MLObjectAnalyzerSetting.Factory()
  3. .allowClassification()
  4. .allowMultiResults()
  5. .setAnalyzerType(MLObjectAnalyzerSetting.TYPE_PICTURE)
  6. .create();
  7. MLObjectAnalyzer analyzer = MLAnalyzerFactory.getInstance().getLocalObjectAnalyzer(setting);
  8. // 通过bitmap创建MLFrame,建议图片尺寸不小于288*288
  9. MLFrame frame = new MLFrame.Creator().setBitmap(bitmap).create();
  10. SparseArray<MLObject> objects = analyzer.analyseFrame(frame);

stop()

展开

Method

public void stop() throws IOException

释放资源,包括释放输入输出流等资源。

Throws
展开

Name

Description

IOException

发生IO异常,可能产生输入流、输出流的异常。