通过输入的图片或者视频流,对图像进行画质打分
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
详细接口说明查看头文件: bef_ai_image_quality_enhancement_vida.h
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);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_image_quality_enhancement_handle* | 创建的画质打分算法句柄 |
config | bef_ai_vida_init_config* | 画质打分创建的config |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
#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);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_image_quality_enhancement_handle | 已创建的画质打分句柄 |
license_path | const unsigned char * | 素材文件的路径 |
env | JNIEnv* | android jni 的环境 |
jobject | context | android context |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
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);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_image_quality_enhancement_handle | 已创建的画质打分句柄 |
data | void* | buffer 首地址 |
width | int | buffer 的宽 |
height | int | buffer的高 |
result | float* | 画质打分的返回值 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
BEF_SDK_API bef_effect_result_t bef_ai_image_quality_enhancement_vida_destory(bef_image_quality_enhancement_handle handle);
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
handle | bef_image_quality_enhancement_handle | 已创建的画质打分句柄 |
返回值
成功返回 BEF_RESULT_SUC, 失败返回相应错误码, 具体请参考 bef_effect_ai_public_define.h
接口说明
详细接口说明查看文件:com.bytedance.labcv.effectsdk.Vida.java
public int init(Context context, VidaInitConfig config, String licensePath, boolean onlineLicense)
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
context | String | java context |
config | config | 画质打分的初始化配置 |
licensePath | String | 授权文件绝对路径 |
onlineLicense | boolean | 授权类型 |
返回值
成功返回BEF_RESULT_SUC,否则返回对应的错误码
public float process(ByteBuffer buffer, int width, int height)
参数说明
参数名 | 参数类型 | 参数说明 |
---|---|---|
buffer | ByteBuffer | 输入图片数据 |
width | int | 输入图像的宽度 (以像素为单位) |
height | int | 输入图像的高度 (以像素为单位) |
返回值
返回值为打分的分数float
int destroy();
答:建议首先查看以下tag输出Error类型的日志:
bef_effect_ai 和SMASH_E_LOG 以及 EffectSDK,lens
错误码请参考错误码表