You need to enable JavaScript to run this app.
导航
画质打分算法
最近更新时间:2025.03.17 14:05:28首次发布时间:2025.03.17 14:05:28
我的收藏
有用
有用
无用
无用
简介

通过输入的图片或者视频流,对图像进行画质打分
V4.4.2及之后版本新增算法,iOS11以下机器不支持画质模块除去插帧以外的算法。

技术规格
支持平台Android、iOS
支持输入格式RGBA8888 不支持有padding的数据
模型列表人脸打分 vida_face_model.bytenn 美学 vida_aes_model.bytenn 清晰度 ios level0_cpu.bytenn android level0_gpu.bytenn
内存占用<83.64M (测试机型oppo r11)
速度face <10.48ms, aes <65.5ms, clarity <32.89ms (测试机型oppo r11)

注意
算法要求输入的buffer的长度 必须为: 宽 * 高 * 4

C接口说明

详细接口说明查看头文件: bef_ai_image_quality_enhancement_vida.h

1.创建画质打分算法句柄

typedef struct bef_ai_vida_init_config {
    const char* modelPath; // 模型路径
    const char* kernelBinPath; // 可读写路径
    bef_ai_vida_type vidaType; // 模型类型,画质打分类型
    bef_ai_lens_backend_type backendType; // 运行的bachend,清晰度算法 android 选择 gpu, ios 选 cpu
    int numThread; //only make sense when backendType is CPU, default set 2
    float alpha;    // 1.0
    float beta;     // 0.0
    const char* tempDirPath;  // iOS 存放临时文件的目录,仅 coreml 模型生效,传空即可
}bef_ai_vida_init_config;

BEF_SDK_API bef_effect_result_t
bef_ai_image_quality_enhancement_vida_create(bef_image_quality_enhancement_handle* handle, bef_ai_vida_init_config* config);

参数说明

参数名参数类型参数说明
handlebef_image_quality_enhancement_handle*创建的画质打分算法句柄
configbef_ai_vida_init_config*画质打分创建的config

返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

2.对画质打分检测license

#if defined(__ANDROID__) || defined(TARGET_OS_ANDROID)
#include<jni.h>
BEF_SDK_API bef_effect_result_t
bef_ai_image_quality_enhancement_vida_check_license(JNIEnv* env, jobject context, bef_image_quality_enhancement_handle handle, const char* license_path);
#endif

#ifdef __APPLE__
BEF_SDK_API bef_effect_result_t
bef_ai_image_quality_enhancement_vida_check_license(bef_image_quality_enhancement_handle handle, const char* license_path);
#endif

BEF_SDK_API bef_effect_result_t
bef_ai_image_quality_enhancement_vida_check_online_license(bef_image_quality_enhancement_handle handle, const char* license_path);

参数说明

参数名参数类型参数说明
handlebef_image_quality_enhancement_handle已创建的画质打分句柄
license_pathconst unsigned char *素材文件的路径
envJNIEnv*android jni 的环境
jobjectcontextandroid context

返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

3. 画质打分算进行处理

EF_SDK_API bef_effect_result_t
bef_ai_image_quality_enhancement_vida_process(bef_image_quality_enhancement_handle handle, void* data, int width, int height, float* result);

参数说明

参数名参数类型参数说明
handlebef_image_quality_enhancement_handle已创建的画质打分句柄
datavoid*buffer 首地址
widthintbuffer 的宽
heightintbuffer的高
resultfloat*画质打分的返回值

返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

4.销毁句柄

BEF_SDK_API bef_effect_result_t
bef_ai_image_quality_enhancement_vida_destory(bef_image_quality_enhancement_handle handle);

参数说明

参数名参数类型参数说明
handlebef_image_quality_enhancement_handle已创建的画质打分句柄

返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h

Java 接口说明

接口说明
详细接口说明查看文件:com.bytedance.labcv.effectsdk.Vida.java

1.初始化画质打分句柄

public int init(Context context, VidaInitConfig config, String licensePath, boolean onlineLicense)

参数说明

参数名参数类型参数说明
contextStringjava context
configconfig画质打分的初始化配置
licensePathString授权文件绝对路径
onlineLicenseboolean授权类型

返回值
成功返回BEF_RESULT_SUC,否则返回对应的错误码

2.画质打分算法处理

public float process(ByteBuffer buffer, int width, int height)

参数说明

参数名参数类型参数说明
bufferByteBuffer输入图片数据
widthint输入图像的宽度 (以像素为单位)
heightint输入图像的高度 (以像素为单位)

返回值
返回值为打分的分数float

3.释放句柄

int destroy();
FAQ

1.如果出现任何异常,请查看是否有以下类型日志

答:建议首先查看以下tag输出Error类型的日志:
bef_effect_ai 和SMASH_E_LOG 以及 EffectSDK,lens

错误码

错误码请参考错误码表