视频清晰度评分
更新时间:2026-06-15
简介
视频清晰度计算处理器,支持多种清晰度评估方法和抽帧策略。
功能描述
- 视频抽帧:支持基于FPS的抽帧策略
- 拉普拉斯方差法(laplacian) - 基于二阶导数的边缘检测
- Tenengrad法(tenengrad) - 基于Sobel梯度的边缘强度
- Brenner法(brenner) - 基于相邻像素灰度差的简单计算
- FFT高频能量法(fft_highfreq) - 基于频域分析的清晰度评估
- 池化功能:返回所有池化方法的结果(均值、中位数、最大值、最小值、标准差)
- URL地址
- 二进制流
算子参数
输入
| 输入 | 含义 |
|---|---|
| video_paths | 输入视频路径列,类型为数组。 默认值:None |
| video_binaries | 输入视频二进制数据列,类型为数组。 默认值:None |
| video_formats | 输入视频格式列(如 'mp4'、'avi' 等),类型为数组。 默认值:None |
输出
| 输出 | 含义 |
|---|---|
| mean | 清晰度均值 |
| median | 清晰度中位数 |
| max | 清晰度最大值 |
| min | 清晰度最小值 |
| std | 清晰度标准差 |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| fps | float | 2.0 | 每秒抽帧数量,默认为2.0 描述: 从视频中每秒抽取的帧数,用于计算清晰度 默认值: 2.0 |
| method | str | 'laplacian' | 清晰度计算方法 描述: 清晰度计算方法,支持 laplacian(拉普拉斯方差)、tenengrad(Tenengrad梯度)、brenner(Brenner梯度)、fft_highfreq(FFT高频能量),默认为 laplacian 可选值: ["laplacian", "tenengrad", "brenner", "fft_highfreq"] 默认值: "laplacian" |
| max_frames | int | 100 | 最大抽帧数量,默认为100 描述: 限制抽帧的最大数量,防止处理长视频时陷入无限循环 默认值: 100 |
调用示例
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.video.video_sharpness import VideoSharpness
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 = {"video_paths": [...], "video_binaries": [...]}
20 ds = daft.from_pydict(samples)
21 constructor_kwargs = {
22 "fps": 2.0,
23 "method": 'laplacian',
24 "max_frames": 100,
25 }
26 ds = ds.with_column(
27 "result",
28 aihc_udf(
29 VideoSharpness,
30 construct_args=constructor_kwargs,
31 num_cpus=1,
32 concurrency=4,
33 batch_size=8,
34 )(col("video_paths"), col("video_binaries"), col("video_formats")),
35 )
36 ds.show()
评价此篇文章
