此文件夹包含了一个统一的图像增强框架,整合了FDA和SynthDog两种增强方法,提供了灵活的增强管道配置和多种增强效果。
unified_augmentation/
├── __init__.py
├── UnifiedAugmenter.py # 统一增强器,整合多种增强方法
├── base_augmenter.py # 基础增强器类,提供通用功能
├── fda_augmentations.py # FDA增强方法集合
├── synthdog_augmentations.py # SynthDog增强方法集合
├── affine_transform.py # 仿射变换功能
├── basic_transform.py # 基本变换功能
├── composite_transform.py # 复合变换功能
├── distortion.py # 图像扭曲功能
├── utility.py # 工具函数
├── warp_mls.py # MLS扭曲功能
├── config.yaml # 增强配置文件
├── test_augmenter.py # 测试脚本
├── unified_demo.py # 演示脚本
└── 资源文件夹
├── background/ # 背景图像
├── overlays/ # 覆盖纹理
└── synthdog_*/ # SynthDog相关资源
-
base_augmenter.py: 定义了
BaseAugmenter基类,提供增强器的通用功能,包括:- 增强管道创建与应用
- 特定增强方法调用
- 配置管理
-
UnifiedAugmenter.py: 定义了
UnifiedAugmenter类,继承自BaseAugmenter、FDAAugmentations和SynthDogAugmentations,整合了两种增强方法体系。
-
fda_augmentations.py: 定义了
FDAAugmentations类,提供7种FDA增强方法:noise_fda: 添加高斯或椒盐噪声shadow_fda: 添加阴影效果virtual_background_fda: 添加虚拟背景watermark_fda: 添加水印wrinkles_fda: 添加褶皱纹理rotation_with_lcd_fda: 旋转并添加LCD效果wrinkle_with_noise_fda: 褶皱与噪声组合
注:该类通过调用其他变换工具中的函数实现增强效果,避免了代码重复。
-
synthdog_augmentations.py: 定义了
SynthDogAugmentations类,提供SynthDog相关增强方法。
-
affine_transform.py: 提供仿射变换功能,包括位移、旋转和剪切,使用OpenCV实现基本几何变换。
-
basic_transform.py: 提供基础图像变换,包括噪声添加、阴影生成、虚拟背景替换、水印添加和褶皱效果等核心功能。
-
composite_transform.py: 提供复合变换,组合多种基础变换,如旋转+LCD效果、褶皱+噪声效果等。
-
distortion.py: 提供图像扭曲功能,包括随机扭曲、拉伸和透视变换,基于WarpMLS类实现复杂变形。
-
warp_mls.py: 实现MLS(移动最小二乘法)扭曲算法,提供高效的图像变形能力。
注:fda_augmentations.py中的增强方法主要调用以上变换工具中的函数来实现,形成了清晰的功能分层结构。
- utility.py: 提供通用工具函数,如纹理添加、透视点计算等。
- config.yaml: 增强配置文件,定义了增强方法参数、管道配置等。
- test_augmenter.py: 测试增强器功能的脚本。
- unified_demo.py: 演示增强框架使用的脚本。
- 创建增强器实例:
from unified_augmentation.UnifiedAugmenter import UnifiedAugmenter
import yaml
# 加载配置
with open('unified_augmentation/config.yaml', 'r') as f:
config = yaml.safe_load(f)
# 创建增强器
augmenter = UnifiedAugmenter(config)- 应用增强:
import cv2
# 加载图像
image = cv2.imread('path/to/image.jpg')
# 应用增强管道
augmented_image = augmenter.apply_augmentation(image)
# 应用特定增强方法
noisy_image = augmenter.apply_specific_augmentation(image, 'noise_fda', noise_typ='gauss')配置文件config.yaml包含以下部分:
augmentation_params: 各增强方法的默认参数augmentation_pipeline: 增强管道配置,定义了方法应用顺序和概率augmenter: 增强器配置,如增强类型、强度范围等
您可以根据需要修改配置文件以调整增强效果。