云信美颜

更新时间: 2023/07/06 09:05:23

NERoom SDK 提供云信自研的基础美颜和高级美颜功能,帮助用户在音视频通话或互动直播场景中,对人脸进行美肤、美型等美颜调整,或通过画面滤镜改变视频的色调与氛围。

前提条件

已集成 NERoom SDK,并实现了基础音视频通话或互动直播流程。

基础美颜

云信基础美颜可免费使用。

云信基础美颜支持美白、磨皮、红润和锐化 4 种效果,程度可调节,具体参数如下表所示。

分类 枚举值 描述
美肤 美白 kNERoomBeautyWhiten 强度范围 0~1,默认值为 0,推荐值为 0.80
磨皮 kNERoomBeautySmooth 强度范围 0~1,默认值为 0,推荐值为 0.65
红润 kNERoomBeautyFaceRuddy 强度范围 0~1,默认值为 0,推荐值为 0.30
锐化 kNERoomBeautyFaceSharpen 强度范围 0~1,默认值为 0,推荐值为 0.10

基础美颜的实现方法和高级美颜一样,具体步骤请参见高级美颜中的实现方法

高级美颜

云信高级美颜支持美白、磨皮、瘦脸、大眼等多种美肤、美型效果。

实现方法

NERoom SDK 基础美颜、高级美颜的实现方法如下:

  1. 启用美颜模块。

    在开启视频之前,调用 startBeauty 开启美颜功能模块。

  2. (可选)暂停和恢复美颜功能。

    美颜功能启用后,您可以通过 enableBeauty 暂停和恢复美颜功能,参数说明如下:

    • NO:暂停美颜功能。暂停后,所有美颜和滤镜效果都会暂时取消,直至重新启用美颜效果。
    • YES: 恢复美颜功能。
  3. 调整美颜效果。

    您可以通过 setBeautyEffect 手动设置各种美颜效果,并调整对应的效果强度,具体请参见高级美颜枚举值

    参数
    说明
    beautyType 用于指定美颜效果。目前支持美白、磨皮等美颜效果。
    level 用于指定美颜强度。取值范围为 [0,1],各种美颜效果的默认值不同。取值越大,美颜强度越大,请根据业务需要自定义设置美颜强度。

    美白、磨皮等美颜效果可以互相叠加。

  4. 结束美颜模块。

    无需使用美颜效果时,需要调用 stopBeauty 结束美颜功能模块,此时 SDK 会自动销毁美颜引擎并释放资源。

高级美颜枚举值

高级美颜目前有 23 种效果,程度可调节,且包含了基础美颜的 4 种效果。

分类 枚举值 描述
美肤 美白 kNERoomBeautyWhiten 强度范围 0~1,默认值为 0,推荐值为 0.80
磨皮 kNERoomBeautySmooth 强度范围 0~1,默认值为 0,推荐值为 0.65
红润 kNERoomBeautyFaceRuddy 强度范围 0~1,默认值为 0,推荐值为 0.30
锐化 kNERoomBeautyFaceSharpen 强度范围 0~1,默认值为 0,推荐值为 0.10
脸型 瘦脸 kNERoomBeautyThinFace 强度范围 0~1,默认值为 0,推荐值为 0.35
V 脸 kNERoomBeautyVFace 强度范围 0~1,默认值为 0,推荐值为 0.00
窄脸 kNERoomBeautyNarrowFace 强度范围 0~1,默认值为 0,推荐值为 0.00
小脸 kNERoomBeautySmallFace 强度范围 0~1,默认值为 0,推荐值为 0.10
面部 瘦颧骨 kNERoomBeautyCheekBone 强度范围 0~1,默认值为 0,推荐值为 0.30
瘦下颌 kNERoomBeautyThinUnderjaw 强度范围 0~1,默认值为 0,推荐值为 0.30
瘦下巴 kNERoomBeautyJaw 强度范围 0~1,默认值为 0,推荐值为 0.40
人中调整 kNERoomBeautyRenZhong 强度范围 0~1,默认值为 0.50,推荐值为 0.50
眼睛 大眼 kNERoomcBeautyBigEye 强度范围 0~1,默认值为 0,推荐值为 0.30
圆眼 kNERoomBeautyRoundEye 强度范围 0~1,默认值为 0,推荐值为 0.80
亮眼 kNERoomBeautyLightEye 强度范围 0~1,默认值为 0,推荐值为 0.60
开眼角 kNERoomBeautyOpenEyeAngle 强度范围 0~1,默认值为 0,推荐值为 0.30
眼距调整 kNERoomBeautyEyeDis 强度范围 0~1,默认值为 0.50,推荐值为 0.50
眼角调整 kNERoomBeautyEyeAngle 强度范围 0~1,默认值为 0.50,推荐值为 0.50
鼻子 小鼻 kNERoomBeautySmallNose 强度范围 0~1,默认值为 0,推荐值为 0.40
鼻长调整 kNERoomBeautyLongNose 强度范围 0~1,默认值为 0.50,推荐值为 0.50
嘴巴 美牙 kNERoomBeautyWhiteTeeth 强度范围 0~1,默认值为 0,推荐值为 0.30
嘴角调整 kNERoomBeautyMouthAngle 强度范围 0~1,默认值为 0.50,推荐值为 0.50
嘴型调整 kNERoomBeautyMouth 强度范围 0~1,默认值为 0.50,推荐值为 0.50

示例代码

auto context = m_pRoomKit->getRoomService()->getRoomContext(roomUuid);
if(context){
    auto rtcController = context->getRtcController();
    rtcController->startBeauty();
    rtcController->enableBeauty(true);
    rtcController->setBeautyEffect(kNERoomBeautyWhiten, 0.5);
}

滤镜

云信美颜支持通过美颜资源或模型打造多种个性化的滤镜。

  1. 请从下载的 NERoom SDK 包中获取滤镜资源。

  2. 启用美颜模块。

    在开启视频之前,调用 startBeauty 开启美颜功能模块。开启美颜功能之后才能使用美颜、滤镜等美颜效果。

  3. 调用 addBeautyFilter 添加滤镜效果。

    滤镜效果可以和美颜等效果互相叠加,但是不支持叠加多个滤镜。

    需要更换滤镜时,重复调用此接口使用新的滤镜资源即可。

    参数
    说明
    file_path 指定滤镜模型所在路径。例如 e:\Resources\Filters\filters.bundle\filter_style_白皙\template.json
    level 指定滤镜强度。取值范围为 [0,1],默认为 0.5。取值越大,滤镜越明显,请根据业务需要自定义设置滤镜强度
  4. 您可以通过setBeautyFilterLevel 设置滤镜强度。

  5. 不需要使用滤镜效果时,调用 removeBeautyFilter 移除滤镜。

  6. 结束美颜模块。

    无需使用美颜效果时,需要调用 stopBeauty 结束美颜功能模块,此时 SDK 会自动销毁美颜引擎并释放资源。

示例代码

cpp// 创建 roomkit 实例
auto* roomkit = neroom::createNERoomKit();
// 获取 room service 实例
auto* room_service = roomkit->getRoomService();
// 获取 room context 实例
auto* room_context = room_service->getPreviewRoomContext();
// 获取 Preview room RTC controller
auto* preview_room_rtc_ctrl = room_context->getPreviewRoomRtcController();
// 开启美颜
preview_room_rtc_ctrl->startBeauty();
preview_room_rtc_ctrl->enableBeauty(true);
// 设置美颜滤镜
auto filter_path = "Your App Directory/resources/filters/filters.bundle/filter_style_f1";
preview_room_rtc_ctrl->addBeautyFilter(filter_path);
// 设置滤镜强度
preview_room_rtc_ctrl->setBeautyFilterLevel(0.5);

// .....

// 移除滤镜效果
preview_room_rtc_ctrl->removeBeautyFilter();
// 关闭美颜
preview_room_rtc_ctrl->enableBeauty(false);
preview_room_rtc_ctrl->stopBeauty();

API 参考

方法 功能描述
startBeauty 启用美颜模块。
stopBeauty 结束美颜模块。
enableBeauty 打开美颜功能。
setBeautyEffect 开启指定美颜效果,并设置美颜强度。
addBeautyFilter 添加滤镜效果。
setBeautyFilterLevel 设置滤镜强度。
removeBeautyFilter 移除滤镜。
此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 基础美颜
  • 高级美颜
  • 实现方法
  • 高级美颜枚举值
  • 示例代码
  • 滤镜
  • 示例代码
  • API 参考