You need to enable JavaScript to run this app.
导航
使用画质评估获取分值
最近更新时间:2024.08.20 10:35:39首次发布时间:2022.06.15 21:13:47

本接口支持指定服务 ID 和原图地址后对该图像的主客观画质和美学维度进行评分,并获取该图片各维度评分结果。具体图片维度说明以及分值含义请参考下方参数说明。

说明

更多典型实践案例和收益参考详见抖音集团都在用的画质评估工具,确定不试试吗?

使用说明

画质评估分为绝对画质评估和相对画质评估两种评估方式,具体如下所示:

  • 绝对画质评估:

    • 含义:又称无参指标评估,该方式不依赖于任何参照对象,而是基于一系列固定的标准和指标来独立评估图像 ImageUrl 的质量。例如,根据指定的模糊度、噪声和对比度等评估工具,直接对被评估的图片进行分析和判定。
    • 优缺点:优点是评估结果相对客观和稳定,不受其他图片的影响。但缺点是这些固定的标准可能难以完全涵盖所有复杂的实际情况,且对于某些主观感受较强的画质特征,难以精确量化。
  • 相对画质评估:

    • 含义:又称有参指标评估,该方式以一个特定的图片 ImageUrlRef 作为参照来对目标图片 ImageUrl 进行评估。例如,以一张被公认为高质量的图片作为基准,将其他图片与之对比,分析它们在清晰度、色彩和其他细节等方面的差异。

    • 优缺点:优点是更贴近实际的比较需求,能够更直观地反映出目标图片在特定场景或与特定参照之间的优劣。但缺点是其结果可能会受到参照图片选择的影响,如果参照图片本身存在问题或不具有代表性,会影响评估结果的可靠性。

      注意

      使用相对画质评估时,参照图片 ImageUrlRef 和目标图片 ImageUrl分辨率的宽高大小必须相同

注意事项

  • 计费说明:画质评估功能属于附加组件下智能处理模块,属于后付费计费,使用后会产生附加组件智能处理费用
  • 前提条件:请确保已开通智能处理计费配置
  • 使用限制:使用组件前,请先确认画质评估使用限制
  • 请求频率:单用户请求频率限制为 5 次/秒
  • 超时时间:超时时间约为 20 秒
  • 服务地址:veImageX 在全球多个区域部署,每个区域有自己对应的 OpenAPI 域名,不支持跨区域调用。具体详情请查看服务地址

请求说明

  • 请求方式:POST
  • 请求地址:https://imagex.volcengineapi.com/?Action=GetImageQuality&Version=2018-08-01

请求参数

下表仅列出该接口特有的请求参数和部分公共参数。更多信息请见公共请求参数

Query

参数类型是否必选示例值描述
ActionStringGetImageQuality接口名称。当前 API 的名称为 GetImageQuality
VersionString2018-08-01接口版本。当前 API 的版本为 2018-08-01

ServiceId

String

7h**i6

服务 ID。

  • 您可以在 veImageX 控制台 服务管理页面,在创建好的图片服务中获取服务 ID。
  • 您也可以通过 OpenAPI 的方式获取服务 ID,具体请参考获取所有服务信息

Body

参数类型是否必选示例值描述

ImageUrl

String

tos-example/7a7979974.jpeg

图片存储 Uri 或访问 URL。

  • 图片 Uri 格式,例如:tos-example/7a7979974.jpeg
  • 图片 URL 格式,例如:https://example.org/tos-example/7a7979974.jpeg~tplv.png

说明

若传 URL,必须保证 URL 公网可访问。

VqType

String

nr_index,vqscore,advcolor,blockiness,noise,aesmod,blur,cg,contrast,texture,brightness,overexposure,hue,saturation,psnr,ssim,vmaf,green,cmartifacts

评估工具。指定多个评估工具时使用英文逗号分隔,当前支持以下工具:

  • nr_index
  • vqscore
  • advcolor
  • blockiness
  • noise
  • aesmod
  • blur
  • cg
  • contrast
  • texture
  • brightness
  • overexposure
  • hue
  • saturation
  • psnr
  • ssim
  • vmaf
  • green
  • cmartifacts

说明

nr_index 工具支持评估 contrast、brightness 等多个维度。您也可以单独指定各维度,获取指定维度估值。

ImageUrlRef

String

https://example.org/test.png

指定服务下的评估参照图片存储 Uri 或访问 URL,用于和 ImageUrl 图片进行特定维度的对比。

说明

VqType 中包含 psnr、ssim、vmaf 等任一字段时,该字段为必填,否则上述评估指标无法正常输出结果。

返回参数

下表仅列出本接口特有的返回参数。更多信息请见公共返回参数

注意

NrScoresNrScoresResultFrScoresFrScoresResult 的各相同评估工具字段之间除字段名略有差异外,其他字段含义,取值范围、字段类型和结果值均相同。

参数类型示例值描述
VqTypeStringvqscore您指定的评估工具
NrScoresJSON Map-图片无参指标分数(旧版,推荐您参考使用 NrScoreResult
FrScoresJSON Map-图片有参指标分数(旧版,推荐您参考使用 FrScoreResult
NrScoreResultObject of NrScoreResult-图片无参指标分数
FrScoreResultObject of FrScoreResult-图片有参指标分数

NrScores

参数类型示例值描述

vqscore

Float

40

当评估工具为vqscore,表示图片主观质量,分数越高表示质量越好。取值范围: [0, 100]

  • 数值在 [0, 65),表示画质较差
  • 数值在 [65, 75),表示画质一般
  • 数值在 [75, 100],表示画质较好

noise

Float

70

当评估工具为noise,表示图片噪声强度,分数越高表示噪声越强。取值范围: [0, 100]

  • 数值在 [0, 50),表示无明显噪声
  • 数值在 [50, 70),表示轻微噪声
  • 数值在 [70, 100],表示明显噪声

说明

建议您将 noisevqscore 组合使用,获取主观和客观两个方面的的画质评估指标。

advcolor

Float

40

当评估工具为advcolor,表示图片整体色彩质量,分数越高表示色彩越好。取值范围: [0, 100]

  • 数值在 [0, 50),表示色彩质量差
  • 数值在 [50, 60),表示色彩质量中
  • 数值在 [60, 100],表示色彩质量好
contrastFloat50当评估工具为nr_indexcontrast,表示对比度程度,分数越低表示对比度越低。取值范围:[0, 100]
brightnessFloat220当评估工具为nr_indexbrightness,表示平均亮度,值越大表示越亮。取值范围:[0, 255]
textureFloat60当评估工具为nr_indextexture,表示纹理的丰富程度,值越大表示纹理越丰富。取值范围:[0, 255]
overexposureFloat40当评估工具为nr_indexoverexposure,表示过曝光面积大小程度,值越大越可能存在过曝光。取值范围:[0, 100],大于2会有明显过曝区域。
saturationFloat60当评估工具为nr_indexsaturation,表示饱和度的均衡程度,值越大表示饱和度越均衡。取值范围:[0, 100]
hueFloat90当评估工具为nr_indexhue,表示色调的均衡程度,值越大表示色调越均衡。取值范围:[0, 100]

aesthetic

Float

60

当评估工具为aesmod,表示综合大众美学的质量评分,值越高表示更具美感。取值范围:[0, 100]

  • 数值在 [0, 60),表示美感较差
  • 数值在 [60, 80),表示美感一般
  • 数值在 [80, 100],表示美感较好

blockiness

Float

60

当评估工具为blockiness,表示图片的块效应严重程度,值越高块效应越强。取值范围: [0, 100]

  • 数值在 [0, 30),表示无块效应
  • 数值在 [30, 60),表示轻微块效应
  • 数值在 [60, 100],表示显著块效应(类似马赛克问题)
  • 当返回为-1时,表示检测的图像为非常规图像,如三明治,块状特效,游戏场景等。

blur

Float

40

当评估工具为blur,表示模糊度指标,值越高表示模糊程度越高,取值范围: [0, 100]

  • 数值在 [0, 60),表示无模糊
  • 数值在 [60, 75),表示轻微模糊
  • 数值在 [75, 100],表示严重模糊

cg

Float

20

当评估工具为cg,表示是否为非自然场景,取值范围: [0, 100]

  • 数值接近 0 表示为自然场景
  • 数值接近 100 表示为非自然场景(游戏、录屏等)
greenFloat20当评估工具为green,表示图像绿色区域面积大小,数值越大表示绿色区域面积越大,即是绿屏的概率越大。取值范围:[0,255]

cmartifact

Float

30

当评估工具为cmartifact,表示压缩失真强度,分数越高表示压缩失真越显著,画质越差。取值范围:[0,100]

  • 数值在 [0, 30),表示无/轻微压缩失真
  • 数值在 [30, 60),表示压缩失真
  • 数值在 [60, 100],表示明显噪声

FrScores

参数类型示例值描述

psnr

Float

40

当评估工具为psnr,表示峰值信噪比。峰值信噪比是一个表示信号最大可能功率(像素值最大值)和影响它的表示精度的破坏性噪声功率(测试图像与参考图像之间的误差)的比值。
本质上就是表示两个信号的相似程度。当两个图像其中一个为无失真图像,另一个为失真后的图像,二者的 PSNR 可以看成是失真图像的质量衡量指标。
值越大图片保真度越高。取值范围:[0, 60]

  • 数值在 [0, 30),表示差
  • 数值在 [30, 38),表示一般
  • 数值在 [38, 45),表示较好
  • 数值在 [45, 60],表示非常好

ssim

Float

0.2

当评估工具为ssim,表示结构相似性,是一种用以衡量两个图像或视频结构相似性的指标。该指标主要从亮度 (luminance)、对比度 (contrast) 和结构 (structure)三个方面来衡量两个图像/视频之间的区别。
当两个视频其中一个为无失真视频,另一个为失真后的视频,二者的 SSIM 可以看成是失真视频的质量衡量指标。
值越大图片相似度越高。取值范围:[0, 1]

  • 数值在 [0, 0.9),表示差
  • 数值在 [0.9, 0.95),表示较差
  • 数值在 [0.95, 0.98),表示中等
  • 数值在 [0.98, 1],表示好

vmaf

Float

80

当评估工具为vmaf,表示 Netflix 提出的一个客观有参考视频质量指标,它也是当前业界广泛认可的有参画质指标。
它主要使用了 3 种基础指标:visual quality fidelity(VIF)、detail loss measure(DLM)、temporal information(TI),其中 VIF 和 DLM 是空间域的也即一帧画面之内的特征,TI 是时间域的也即多帧画面之间相关性的特征。最终使用机器学习算法(SVM)将三个基础指标融合成最终的画质分数。
值越大图片纹理相似度越高。取值范围:[0, 100]

  • 数值在 [0, 80),表示很差
  • 数值在 [80, 87),表示较差
  • 数值在 [87, 93),表示中等
  • 数值在 [93, 97),表示好
  • 数值在 [97, 100],表示非常好

NrScoreResult

参数类型示例值描述

VqScore

Float

40

当评估工具为vqscore,表示图片主观质量,分数越高表示质量越好。取值范围: [0, 100]

  • 数值在 [0, 65),表示画质较差
  • 数值在 [65, 75),表示画质一般
  • 数值在 [75, 100],表示画质较好

Noise

Float

70

当评估工具为noise,表示图片噪声强度,分数越高表示噪声越强。取值范围: [0, 100]

  • 数值在 [0, 50),表示无明显噪声
  • 数值在 [50, 70),表示轻微噪声
  • 数值在 [70, 100],表示明显噪声

说明

建议您将 noise 与 vqscore 组合使用,获取主观和客观两个方面的的画质评估指标。

AdvColor

Float

40

当评估工具为advcolor,表示图片整体色彩质量,分数越高表示色彩越好。取值范围: [0, 100]

  • 数值在 [0, 50),表示色彩质量差
  • 数值在 [50, 60),表示色彩质量中
  • 数值在 [60, 100],表示色彩质量好
ContrastFloat50当评估工具为nr_indexcontrast,表示对比度程度,分数越低表示对比度越低。取值范围:[0, 100]
BrightnessFloat220当评估工具为nr_indexbrightness,表示平均亮度,值越大表示越亮。取值范围:[0, 255]
TextureFloat60当评估工具为nr_indextexture,表示纹理的丰富程度,值越大表示纹理越丰富。取值范围:[0, 255]
OverExposureFloat40当评估工具为nr_indexoverexposure,表示过曝光面积大小程度,值越大越可能存在过曝光。取值范围:[0, 100],大于2会有明显过曝区域。
SaturationFloat60当评估工具为nr_indexsaturation,表示饱和度的均衡程度,值越大表示饱和度越均衡。取值范围:[0, 100]
HueFloat90当评估工具为nr_indexhue,表示色调的均衡程度,值越大表示色调越均衡。取值范围:[0, 100]

Aesthetic

Float

60

当评估工具为aesmod,表示综合大众美学的质量评分,值越高表示更具美感。取值范围:[0, 100]

  • 数值在 [0, 60),表示美感较差
  • 数值在 [60, 80),表示美感一般
  • 数值在 [80, 100],表示美感较好

Blockiness

Float

60

当评估工具为blockiness,表示图片的块效应严重程度,值越高块效应越强。取值范围: [0, 100]

  • 数值在 [0, 30),表示无块效应
  • 数值在 [30, 60),表示轻微块效应
  • 数值在 [60, 100],表示显著块效应(类似马赛克问题)
  • 当返回为-1时,表示检测的图像为非常规图像,如三明治,块状特效,游戏场景等。

Blur

Float

40

当评估工具为blur,表示模糊度指标,值越高表示模糊程度越高,取值范围: [0, 100]

  • 数值在 [0, 60),表示无模糊
  • 数值在 [60, 75),表示轻微模糊
  • 数值在 [75, 100],表示严重模糊

Cg

Float

20

当评估工具为cg,表示是否为非自然场景,取值范围: [0, 100]

  • 数值接近 0 表示为自然场景
  • 数值接近 100 表示为非自然场景(游戏、录屏等)
GreenFloat20当评估工具为green,表示图像绿色区域面积大小,数值越大表示绿色区域面积越大,即是绿屏的概率越大。取值范围:[0,255]

CmArtifact

Float

30

当评估工具为cmartifact,表示压缩失真强度,分数越高表示压缩失真越显著,画质越差。取值范围:[0,100]

  • 数值在 [0, 30),表示无/轻微压缩失真

  • 数值在 [30, 60),表示压缩失真

  • 数值在 [60, 100],表示明显噪声

FrScoreResult

参数类型示例值描述

Psnr

Float

80

当评估工具为psnr,表示峰值信噪比。峰值信噪比是一个表示信号最大可能功率(像素值最大值)和影响它的表示精度的破坏性噪声功率(测试图像与参考图像之间的误差)的比值。
本质上就是表示两个信号的相似程度。当两个图像其中一个为无失真图像,另一个为失真后的图像,二者的 PSNR 可以看成是失真图像的质量衡量指标。
值越大图片保真度越高。取值范围:[0, 60]

  • 数值在 [0, 30),表示差
  • 数值在 [30, 38),表示一般
  • 数值在 [38, 45),表示较好
  • 数值在 [45, 60],表示非常好

Ssim

Float

0.2

当评估工具为ssim,表示结构相似性,是一种用以衡量两个图像或视频结构相似性的指标。该指标主要从亮度 (luminance)、对比度 (contrast) 和结构 (structure)三个方面来衡量两个图像/视频之间的区别。
当两个视频其中一个为无失真视频,另一个为失真后的视频,二者的 SSIM 可以看成是失真视频的质量衡量指标。
值越大图片相似度越高。取值范围:[0, 1]

  • 数值在 [0, 0.9),表示差
  • 数值在 [0.9, 0.95),表示较差
  • 数值在 [0.95, 0.98),表示中等
  • 数值在 [0.98, 1],表示好

Vmaf

Float

40

当评估工具为vmaf,表示 Netflix 提出的一个客观有参考视频质量指标,它也是当前业界广泛认可的有参画质指标。
它主要使用了 3 种基础指标:visual quality fidelity(VIF)、detail loss measure(DLM)、temporal information(TI),其中 VIF 和 DLM 是空间域的也即一帧画面之内的特征,TI 是时间域的也即多帧画面之间相关性的特征。最终使用机器学习算法(SVM)将三个基础指标融合成最终的画质分数。
值越大图片纹理相似度越高。取值范围:[0, 100]

  • 数值在 [0, 80),表示很差
  • 数值在 [80, 87),表示较差
  • 数值在 [87, 93),表示中等
  • 数值在 [93, 97),表示好
  • 数值在 [97, 100],表示非常好

请求示例

POST https://imagex.volcengineapi.com/?Action=GetImageQuality&Version=2018-08-01&ServiceId=7h**i6
{
    "ImageUrl": "tos-example/7a7979974.jpeg",
    "VqType": "nr_index,vqscore,advcolor,blockiness,noise,aesmod,blur,cg,contrast,texture,brightness,overexposure,hue,saturation,psnr,ssim,vmaf,green,cmartifacts",
    "ImageUrlRef": "https://example.org/test.png"
}

返回示例

{
    "ResponseMetadata": {
        "RequestId": "202306041104200100100232280022D31",
        "Action": "GetImageQuality",
        "Version": "2018-08-01",
        "Service": "ImageX",
        "Region": "cn-north-1"
    },
    "Result": {
        "VqType": "nr_index,vqscore,advcolor,blockiness,noise,aesmod,blur,cg,contrast,texture,brightness,overexposure,hue,saturation,psnr,ssim,vmaf,green,cmartifacts",
        "NrScores": {
            "vqscore": 40,
            "blockiness": 60,
            "aesthetic": 60,
            "hue": 90,
            "saturation": 60,
            "overexposure": 40,
            "texture": 60,
            "brightness": 220,
            "contrast": 50,
            "advcolor": 40,
            "noise": 70,
            "blur": 40,
            "cg": 20,
            "green": 20,
            "cmartifact": 30
        },
        "FrScores": {
            "psnr": 40,
            "ssim": 0.2,
            "vmaf": 80
        },
        "NrScoreResult": {
            "VqScore": 40,
            "Blockiness": 60,
            "Aesthetic": 60,
            "Hue": 90,
            "Saturation": 60,
            "OverExposure": 40,
            "Texture": 60,
            "Brightness": 220,
            "Contrast": 50,
            "AdvColor": 40,
            "Noise": 70,
            "Blur": 40,
            "Cg": 20,
            "Green": 20,
            "CmArtifact": 30
        },
        "FrScoreResult": {
            "Vmaf": 40,
            "Ssim": 0.2,
            "Psnr": 80
        }
    }
}

错误码

本接口无特有的错误码。更多信息请见公共错误码以及 veImageX 错误码

SDK

为了方便您快速开发,veImageX 提供了配套的服务端 SDK,同时支持多种编程语言。建议您使用服务端 SDK 来调用 API,参考文档如下所示: