美摄SDK For Android
3.10.0
|
AR Scene是美摄SDK中用于展示AR效果的特技,现支持道具,美颜,美型,美妆等功能。
AR Scene 中由于使用了人体检测相关的技术,在程序初始化阶段需要加载一些模型以及数据包资源。
首先判断该SDK是否包含AR功能,不包含AR功能的SDK无法加载人体检测模型。
人体检测模型的加载通过调用 InitHumanDetection 和 InitHumanDetectionExt 实现。InitHumanDetection 指定主模型的加载,只能调用一次。InitHumanDetectionExt 指定扩展模型的加载,可以通过多次调用加载多个扩展模型。一般情况下我们使用人脸点位模型作为主模型。
如下是加载人脸点位模型与眼眼球轮廓模型的示例。
在程序销毁时还需调用 closeHumanDetection 来卸载安装过的所有模型以及数据包。
注:
模型分为两种,普通模型与复合模型。普通模型只支持单一的功能,复合模型可以支持多项功能。例如人脸检测模型就是复合模型,同时支持点位检测以及人脸动作检测。
SDK现支持具体如下:
模型 | 命名 | 复合模型 | Flag |
---|---|---|---|
106人脸检测模型 | ms_face_vX.X.X.model | 是 | HUMAN_DETECTION_FEATURE_FACE_LANDMARK | HUMAN_DETECTION_FEATURE_FACE_ACTION |
240人脸检测模型 | ms_face240_vX.X.X.model | 是 | HUMAN_DETECTION_FEATURE_FACE_LANDMARK | HUMAN_DETECTION_FEATURE_FACE_ACTION |
眼球轮廓检测模型 | ms_eyecontour_vX.X.X.model | 否 | HUMAN_DETECTION_FEATURE_EYEBALL_LANDMARK |
表情检测模型 | ms_avatar_vX.X.X.model | 否 | HUMAN_DETECTION_FEATURE_AVATAR_EXPRESSION |
手势检测模型 | ms_hand_vX.X.X.model | 是 | HUMAN_DETECTION_FEATURE_HAND_LANDMARK | HUMAN_DETECTION_FEATURE_HAND_ACTION |
背景分割模型 | ms_humanseg_vX.X.X.model | 否 | HUMAN_DETECTION_FEATURE_SEGMENTATION_BACKGROUND |
天空分割模型 | ms_skyseg_vX.X.X.model | 否 | HUMAN_DETECTION_FEATURE_SEGMENTATION_SKY |
注:
检测模式:
模式 | Flag | 描述 |
---|---|---|
视频检测模式 | HUMAN_DETECTION_FEATURE_VIDEO_MODE | 适用于拍摄场景,效率最高,视频间检测结果连续,但首帧通常无检测出来 |
图片检测模式 | HUMAN_DETECTION_FEATURE_IMAGE_MODE | 适用于编辑模式,效率一般,检测结果不连续,首帧能够检测出来 |
半图片检测模式 | HUMAN_DETECTION_FEATURE_SEMI_IMAGE_MODE | 适用于拍摄模式与编辑模式,效率较高,检测结果连续,首帧能够检测出来线程模式: |
在调用InitHumanDetection 和 InitHumanDetectionExt 时features参数需要或上所有支持的检测模式。同时在AR Scene使用时,需要通过 setDetectionMode 指定该特技实例具体使用哪种检测模式。
例如,如下代码在模型加载阶段同时或上了“视频检测模式”和“图片检测模式”,在 AR Scene 特技使用时指定检测模型为“图片检测模式”。
数据包使用 setupHumanDetectionData 来加载。如下代码展示美妆数据包的加载过程。
数据包类型:
数据包 | 命名 | 类型 | 描述 |
---|---|---|---|
假脸数据包 | fakeface.dat | HUMAN_DETECTION_DATA_TYPE_FAKE_FACE | 假脸数据,用于AR Scene的人脸道具中,道具紧贴人脸,随面部表情变化而变化 |
美妆数据包 | makeup2_240_vX.X.X.dat | HUMAN_DETECTION_DATA_TYPE_MAKEUP2 | 美妆相关数据,用于美妆以及美妆道具中 |
AR Scene 是内建特技,对应特技名称为“AR Scene”。可以使用美摄SDK内建特技的标准创建方式进行创建。例如拍摄模式下:
AR Scene 道具的应用,需要先安装道具包,再把返回的包ID设置给 AR Scene 特技。例如:
取消道具“Scene Id”传空。
注:道具包使用前,需加载该包要求的人体检测模型以及数据包。各个包的具体要求参见美摄素材平台。
美颜功能分为普通美颜与高级美颜,普通美颜不需要人体检测的支持,高级美颜需要。
高级美颜与普通美颜都有磨皮的功能,如果同时开启,高级美颜的磨皮效果会覆盖普通美颜效果。
普通美颜功能包括:磨皮,Lut,美白,红润,锐化等功能。
具体参数参见 美颜参数
高级美颜功能包括:高级磨皮,祛黑眼圈,祛法令纹,眼亮,白牙,哑光等功能。
具体参数参见 高级美颜参数 。
高级美颜要求加载106人脸点位检测模型或者240人脸点位检测模型。二者在效果上有细微差别。
美型功能能够对面部细节进行一些微调。具体参数参见 美型参数 。
美型要求加载106人脸点位检测模型或者240人脸点位检测模型。二者在效果上没有差别。
美型的各项调节有默认的效果,同时也支持自定义美型包的形式。
如果使用美型包,需要先安装,再把返回的包ID设置给对应的包ID参数。
如果要取消自定义美型效果,则对应包ID参数传空。
美妆分为:单妆和妆容。
美妆要求加载240人脸点位检测模型,如果使用美瞳也还需要加载眼球轮廓检测模型。
美妆要求加载美妆数据包。
单妆是单一的美妆效果,现支持的有口红、眉毛、眼影、睫毛、眼线、腮红、高光、修容。
每个单妆需要安装对应单妆包才可使用。
如下是口红包的安装与使用过程。
妆容是若干单妆、美颜、美型、微整型、滤镜的整体效果。对于妆容的接入,美摄提供一套中间层的接口,具体可参考sdkdemo。
问:为什么道具没有效果?
答:请做如下确认:
问:为什么高级美颜,美型没有效果?
答:请做如下确认:
问:为什么单妆没有效果?
答:请做如下确认:
问:为什么添加AR Scene后,添加的其他特效没有效果?
答:在 单缓冲 模式下,AR Scene之前的特效会失效,需要其他特效移到AR Scene之后,或者改用双缓冲模式。
问:想要自定义美型效果怎么办?
答:AR Scene 支持自定义美型包,请联系美摄设计同学定制。
问:如何确定检没检测到人体信息?
答:通过 setARSceneCallback 设置检测回调,查看检测到的目标个数。前提是,该荐功能已授权。
问:低端机效果卡顿怎么办?
答:需要对低端机做适配,可选配置如下: