MomoCVCenter 接口文档-iOS
MomoCVCenter模块是用于对MMCV算法模块进行版本控制,资源管理,预处理操作的。所有MMCV 检测器的构造,都需要调用MCCDetectorsCenter
来完成。
1. 先获取单例
+ (instancetype)sharedInstance;
2. 设置APPID
AppID 通过官网入口获取
- (void)configAppId:(NSString *)appId;
3. 提前获取配置环境
该方法推荐在程序启动时执行,异步回调是否准备好了,YES时才可准备,获取检测器
typedef void (^MCCConfigEnvironmentBlock)(BOOL result, NSString * __nullable errorMsg);
- (void)prepareManagerEnvironment:(MCCConfigEnvironmentBlock)resultBlock;
4. 提前准备Detectors资源
传参检测器类型枚举,来准备算法检测器。
- 检测器类型枚举
typedef NS_ENUM(NSUInteger, MCCDetectorType) {
MCCFaceDetectorTypeNone,
MCCFaceDetectorTypeFace, // 人脸检测
MCCFaceDetectorTypeObject, // 手势检测
MCCFaceDetectorTypeMomentImageSegmenter, // 抠图检测器
MCCFaceDetectorTypeBareness, // 光膀子检测器
MCCFaceDetectorTypeBodyJoint, // 人体关节点
MCCFaceDetectorTypeExpress,
MCCFaceDetectorType87, // 87 点人脸检测
MCCFaceDetectorTypeFacerigV2, // FacerigV2检测器
MCCFaceDetectorTypeHandGesture, // 新版手势检测
MCCFaceDetectorTypeNewFace // 新版人脸检测
};
- 准备检测器,首次构造MMCV检测器前,需先调用此方法准备,再次构造同一类型检测器,无需再次调用。
typedef void (^MCCDetectorsPrepareBlock)(NSDictionary <NSNumber *,NSNumber *>* resultDic);
/**
提前准备Detectors资源
@param detectorTypes 探测器枚举数组。例:@[@(MCCFaceDetectorTypeFace), @(MCCFaceDetectorTypeObject)]
@param MCCDetectorsPrepareBlock 异步结果回调。例:@{@(MCCFaceDetectorTypeFace):@(YES), @(MCCFaceDetectorTypeObject):@(YES)}
*/
- (void)prepareDetectors:(NSArray <NSNumber *>*)detectorTypes complete:(MCCDetectorsPrepareBlock)MCCDetectorsPrepareBlock;
- 判断检测器环境是否已准备好,入参为检测器类型
- (BOOL)isDetectorEnvironmentPrepared:(MCCDetectorType)detectorType;
5. 构造算法检测器
建议构造前先调用prepareDetectors:complete:
方法
5.1. 同步构造检测器
调用同步构造某类型检测器前,需先调用 prepareDetectors:complete:
,得到Yes回调后,再调用同步方法构造。否则可能构造失败
- ( NSObject * _Nullable )syncMakeFaceDetector:(MCCDetectorType)detectorType;
5.2. 异步构造检测器
异步构造方法内部相当于,先调用prepareDetectors:complete:
后调用 syncMakeFaceDetector:
。若在异步构造检测器前,已经调用过prepareDetectors:complete:
。可减少异步获取的时间。
- (void)asyncMakeFaceDetector:(MCCDetectorType)detectorType complete:(MCCDetectorMakeBlock)completed;