图像模糊
更新时间:2026-07-29
简介
ImageBlur 是按概率对图像做模糊处理的算子,仅依赖 PIL,可用于隐私保护与数据增广。
功能描述
• 支持 mean / box / gaussian 三种模糊方式,gaussian / box 可通过 radius 控制模糊半径。
• 按概率 p 决定单张图是否模糊,未命中概率时原样返回原图路径。
• 处理后的图像先落地到本地 output_dir,若配置 output_bosdir 则上传 BOS 并返回 BOS 路径。
• 纯 CPU 实现,不依赖 data_juicer 包,可与其它 AIHC 算子共存于统一环境。
算子参数
输入
| 输入 | 含义 |
|---|---|
| image | 待模糊的图像列,取值由 image_src_type 决定(bos/http URL、base64 或二进制) |
输出
| 输出 | 含义 |
|---|---|
| result | large_string,模糊后图像路径(本地或 BOS);未命中概率时返回原图路径;失败为 None |
参数
| 参数名称 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| image_src_type | str | "image_url" | 图像输入类型(image_url / image_binary / image_base64) |
| p | float | 0.2 | 模糊概率,取值须在 [0, 1];1.0 表示强制模糊 |
| blur_type | str | "gaussian" | 模糊类型,可选 mean / box / gaussian |
| radius | float | 2.0 | 模糊半径,须 >= 0;对 box / gaussian 生效(mean 使用固定 ImageFilter.BLUR) |
| output_dir | str | "/tmp/aihc_image_blur" | 模糊后图像的本地输出目录 |
| output_bosdir | str | "" | BOS 输出目录;非空时上传并返回 BOS 路径,为空则返回本地路径 |
调用示例
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_blur import ImageBlur
10
11IMAGE = "bos://your-bucket/sample.jpg" # MOCK
12
13os.environ.setdefault("BOS_ENDPOINT", "http://bj.bcebos.com")
14os.environ.setdefault("BOS_REGION", "bj")
15
16if __name__ == "__main__":
17 if os.getenv("DAFT_RUNNER", "native") == "ray":
18 import ray
19
20 ray.init(ignore_reinit_error=True)
21 daft.set_runner_ray()
22 daft.set_execution_config(actor_udf_ready_timeout=6000, min_cpu_per_task=0)
23
24 samples = {"image": [IMAGE]}
25 ds = daft.from_pydict(samples)
26 ds = ds.with_column(
27 "blurred",
28 aihc_udf(
29 ImageBlur,
30 construct_args={
31 "image_src_type": "image_url",
32 "p": 1.0, # 强制模糊
33 "blur_type": "gaussian",
34 "radius": 2.0,
35 },
36 num_cpus=1,
37 concurrency=1,
38 batch_size=1,
39 )(col("image")),
40 )
41 ds.show()
评价此篇文章
