一个简单有效的数据增强技术:data3

在训练图像到图像的生成任务时,经常会需要涉及到对图像做预处理。

一个最普通的预处理方式,就是统一将图像resize到固定的某个分辨率,比如1024×1024或512×512。或者使用random crop 或 center crop,这是学术界常用的建立Baseline结果的快速方法。

但是很多实习生会把这种学术界的常用方法用到工业界的落地实践中。会发现结果和预期相比大相径庭。

经过我的实际探索,发现了一个比较行之有效的数据增强方案,我称之为Data3

具体来说,我需要让模型能够充分利用数据的所有价值,包括全集信息和局部信息。同时,不能破坏数据的原始结构,也就是不能进行过分的缩放,也不能改变图像原始的长宽比。

talk is cheap, here is code

python 复制代码
from dmlutils.image_operations import (
    pad_short_side_to_size,
    resize_short_side_to_size,
    resize_long_side_to_size,
)


def data3_process_xy_pair(name, x, y, size=1024):
    """
    处理图像对 (x, y)
    
    Args:
        name: 数据名称
        x: 输入图像(草稿)
        y: 输出图像(线稿)
        size: 目标尺寸
    
    Yields:
        (name, {"x": x, "y": y})
    """
    assert x.size == y.size
    
    if min(x.size) > size:
        # ===== 大图: 生成2个版本 =====
        # v1: 短边缩放到 size(可随机crop获取局部)
        x1 = resize_short_side_to_size(x, size)
        y1 = resize_short_side_to_size(y, size)
        yield f"{name}_short", {"x": x1, "y": y1}
        
        # v2: 长边缩放 + pad 到 size(获取完整图)
        x2 = pad_short_side_to_size(resize_long_side_to_size(x, size), size)
        y2 = pad_short_side_to_size(resize_long_side_to_size(y, size), size)
        yield f"{name}_long", {"x": x2, "y": y2}
    
    else:
        # ===== 小图: 只生成1个版本 =====
        # 直接 pad 到 size
        x1 = pad_short_side_to_size(x, size)
        y1 = pad_short_side_to_size(y, size)
        yield f"{name}_pad", {"x": x1, "y": y1}


# ===== 使用示例 =====
for name, (x, y) in data_list:
    for out_name, data in data3_process_xy_pair(name, x, y):
        save(out_name, data)

以上代码的库函数来自这里 https://github.com/RaccoonDML/common_utils ,可以直接安装dmlutils包,当然这三个函数逻辑也很简单,自己实现也可以。

结果就是能够简单粗暴的提升模型效果,谁用谁知道(有用的话记得点个star, 没用的话可以回来留下恶评)

此外如果你的任务对结果的某些细节有更高的要求,比如对生成人物的头部或者手部,还可以在data3的基础上加上头部检测或者手部检测

相关推荐
冬奇Lab6 分钟前
一天一个开源项目(第232篇):DSH Desktop —— 把桌面壳本身也做成一个插件,30k+ Stars 的 DeepSeek Harness 桌面客户端
人工智能·开源·资讯
揽秀亭长14 分钟前
从音频到五线谱|扒谱过程中的关键技术环节
人工智能·音视频
米小虾30 分钟前
把 40 步压到 8 步:少步生成的三笔账,Qwen-Image-2.1-Turbo 拆给你看
人工智能
Csvn34 分钟前
线上出问题怎么查?一套可复现的排障 SOP(O04)
人工智能·aigc·agent
Raas10034 分钟前
MAI Gateway(魔芋企业级AI网关)能力解析:AI网关能做故障转移吗?AI网关核心功能详解
大数据·人工智能·网关·ai·gateway·mai gateway
米小虾39 分钟前
别再让 LLM 写「置信度:0.8」了:决策模型把判别从生成里拆了出来
人工智能
Dawson Zhu1 小时前
《Agentic Design Patterns》第 9 章导读:学习与适应(Learning and Adaptation)
人工智能·语言模型·架构·aigc·agi
IT研究所2 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微
SEO_juper2 小时前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
小易老师AI实战2 小时前
RLHF深度详解(超通俗+原理+工程+对比):大模型对齐的核心基石
人工智能·大模型·sft·rlhf·ppo·人类反馈强化学习·llm 对齐