图像美学评分
更新时间:2026-06-15
简介
图像美学评分处理器,智能评估图像的审美质量和构图效果
功能描述
- 美学评分:对输入图像进行专业美学质量评估
- 构图分析:基于视觉感知理论分析图像构图效果
- 标准化输出:评分范围归一化至0-1,便于后续处理
- 批量处理:支持高效的批量图像评分
- 多格式支持:兼容多种图像输入格式
- 输入:支持图像URL、BOS地址、二进制流等多种格式
- 输出:浮点数美学评分(0.0-1.0),数值越高表示美学质量越好
- 图像格式:JPG、PNG、WebP等主流图像格式
- 分辨率:自动适配不同分辨率的图像输入
- 视觉特征提取:使用先进的视觉模型提取图像特征
- 美学建模:基于大规模美学数据集训练的评分模型
- 多维度评估:综合考虑色彩、构图、对比度等多个美学要素
- 感知对齐:评分结果与人类美学感知高度一致
算子参数
输入
| 输入 | 含义 |
|---|---|
| image_inputs | 包含输入图像的数组 |
输出
| 输出 | 含义 |
|---|---|
| result | pyarrow.Array: 包含美学评分的浮点数组,评分范围0.0-1.0, 无法解码或处理失败的图像返回null值 |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| batch_size | int | 32 | 批处理大小,控制单次推理处理的图像数量 默认值:32 |
| model_path | str | '/opt/aihc/models' | 模型文件存储路径 默认值:'/opt/aihc/models' |
| clip_model_name | str | 'openai/clip-vit-large-patch14' | CLIP视觉模型名称 默认值:'openai/clip-vit-large-patch14' |
| mlp_model_name | str | 'laion_aesthetic_v2/sac+logos+ava1-l14-linearMSE.pth' | MLP评分模型名称 默认值:'laion_aesthetic_v2/sac+logos+ava1-l14-linearMSE.pth' |
| device | str | 'cpu' | 设备类型,支持CPU和GPU设备 默认值:"cpu" 可选值:"cpu", "cuda", "cuda:0", "cuda:1"等 |
调用示例
Python
1from __future__ import annotations
2
3import os
4
5import daft
6from daft import col
7
8from daft.aihc.common.udf import aihc_udf
9from daft.aihc.functions.image.image_aesthetic_score import ImageAestheticScore
10
11if __name__ == "__main__":
12 if os.getenv("DAFT_RUNNER", "native") == "ray":
13 import ray
14 ray.init(dashboard_host="0.0.0.0", ignore_reinit_error=True)
15 daft.set_runner_ray()
16 daft.set_execution_config(actor_udf_ready_timeout=6000, min_cpu_per_task=0)
17
18 # TODO: 根据实际场景准备样本数据
19 samples = {"image_inputs": [...]}
20 ds = daft.from_pydict(samples)
21 constructor_kwargs = {
22 "batch_size": 32,
23 "model_path": '/opt/aihc/models',
24 "clip_model_name": 'openai/clip-vit-large-patch14',
25 "mlp_model_name": 'laion_aesthetic_v2/sac+logos+ava1-l14-linearMSE.pth',
26 "device": 'cpu',
27 }
28 ds = ds.with_column(
29 "result",
30 aihc_udf(
31 ImageAestheticScore,
32 construct_args=constructor_kwargs,
33 num_cpus=1,
34 concurrency=4,
35 batch_size=8,
36 )(col("image_inputs")),
37 )
38 ds.show()
评价此篇文章
