MomoCVCenter 接口文档-Android

目前最新版本 2.1.2.20210813.1924

MomoCVCenter模块是用于对MMCV算法模块进行版本控制,资源管理,预处理操作的。所有MMCV 检测器的构造,都需要调用CVCenter来完成。

1. 初始化

在application启动中对CVCenter进行初始化

AppID 通过官网入口获取

autoDownload用来控制是否马上准备所有资源,实现预加载功能

CVCenter.getInstance().init(getApplication(), new SDKConfig() {
            @Override
            public boolean autoDownload() {
                return false;
            }

            @Override
            public String getAppId() {
                return "AppID";
            }
        });

2. 提前准备Detectors资源

在使用检测器之前,需要提前准备Detectors的资源。

输入参数为DetectorType[]-需要准备的检测器类型数组,OnDetectorPreparedListener-准备结果监听接口

结果以map形式在DetectorListener.OnDetectorPreparedListener中异步回调

detectorType:检测器枚举类型,见com.immomo.cvcenter.constances.DetectorConstance

 /*
     * * 检测器跟枚举常量对应关系
     * * DetectorConstance.DETECTOR_TYPE_FACE           ==>       {@link VideoProcessor}
     * * DetectorConstance.DETECTOR_TYPE_OBJECT         ==>       {@link ObjectDetect}
     * * DetectorConstance.DETECTOR_TYPE_SEGMENT        ==>       {@link Segmentation}
     * * DetectorConstance.DETECTOR_TYPE_BARENESS       ==>       {@link BarenessDetect}
     * * DetectorConstance.DETECTOR_TYPE_FACERIGV3      ==>       {@link FaceRigV3}
     * * DetectorConstance.DETECTOR_TYPE_HANDGESTURE    ==>       {@link HandGesture}
     * @param detectorType               需要准备探测器的类型
     * @param onDetectorPreparedListener 准备结果回调

 */
  public void prepareDetector(@DetectorConstance.DetectorType final int[] detectorType,
                                final DetectorListener.OnDetectorPreparedListener onDetectorPreparedListener);

示例:

 CVCenter.getInstance().prepareDetector(
                 //该数组包含需要准备的detector
                new int[]{DetectorConstance.DETECTOR_TYPE_HANDGESTURE,
                        DetectorConstance.DETECTOR_TYPE_FACE},
                new DetectorListener.OnDetectorPreparedListener() {
                    @Override
                    public void onPrepared(Map<Integer, Boolean> result) {
                        //准备结果回调,key是detectorType,value是是否准备成功
                    }
                });

3. 构造检测器

构造检测器的方式有两种

  • 同步构造
  • 异步构造

同步构造

同步构造需要在确保探测器已经准备好

返回结果,需要根据type,选择对应的检测器类型去接收

/**
 * @return Object 根据type,选择对应的检测器类型去接收
 */
public Object syncNewDetector(@DetectorConstance.DetectorType int type)

示例:

Object detector = CVCenter.getInstance().syncNewDetector(DetectorConstance.DETECTOR_TYPE_FACE);
VideoProcessor videoProcessor = (VideoProcessor) detector;

异步构造

异步构造不需要提前准备环境,异步构造会先准备环境,当环境ok,再构造出对应的检测器,在listener中异步返回

同样的,返回的结果仍然是一个Object,需要根据具体类型进行接收

    public void asyncNewDetector(@DetectorConstance.DetectorType final int type, 
    DetectorListener.OnDetectorCreatedListener listener);

示例:

CVCenter.getInstance().asyncNewDetector(DetectorConstance.DETECTOR_TYPE_FACE, new DetectorListener.OnDetectorCreatedListener() {
            @Override
            public void onCreated(int type, Object detector) {
                Log.e(TAG, "onCreated: " + type + "," + detector);
                VideoProcessor videoProcessor = (VideoProcessor) detector;

            }

            @Override
            public void onFailed(String msg) {
                Log.e(TAG, "onFailed: " + msg);

            }
        });
@Copyright © cosmos 2019 all right reserved,powered by Gitbook修订时间: 2021-08-25 17:26:30

results matching ""

    No results matching ""