Skip to content

tommy-yjw/image-aug

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

统一图像增强框架 (Unified Augmentation Framework)

此文件夹包含了一个统一的图像增强框架,整合了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相关资源

脚本功能说明

1. 核心类

  • base_augmenter.py: 定义了BaseAugmenter基类,提供增强器的通用功能,包括:

    • 增强管道创建与应用
    • 特定增强方法调用
    • 配置管理
  • UnifiedAugmenter.py: 定义了UnifiedAugmenter类,继承自BaseAugmenterFDAAugmentationsSynthDogAugmentations,整合了两种增强方法体系。

2. 增强方法集合

  • 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相关增强方法。

3. 变换工具

  • affine_transform.py: 提供仿射变换功能,包括位移、旋转和剪切,使用OpenCV实现基本几何变换。

  • basic_transform.py: 提供基础图像变换,包括噪声添加、阴影生成、虚拟背景替换、水印添加和褶皱效果等核心功能。

  • composite_transform.py: 提供复合变换,组合多种基础变换,如旋转+LCD效果、褶皱+噪声效果等。

  • distortion.py: 提供图像扭曲功能,包括随机扭曲、拉伸和透视变换,基于WarpMLS类实现复杂变形。

  • warp_mls.py: 实现MLS(移动最小二乘法)扭曲算法,提供高效的图像变形能力。

    注:fda_augmentations.py中的增强方法主要调用以上变换工具中的函数来实现,形成了清晰的功能分层结构。

4. 辅助工具

  • utility.py: 提供通用工具函数,如纹理添加、透视点计算等。
  • config.yaml: 增强配置文件,定义了增强方法参数、管道配置等。

5. 测试与演示

  • test_augmenter.py: 测试增强器功能的脚本。
  • unified_demo.py: 演示增强框架使用的脚本。

使用方法

  1. 创建增强器实例:
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)
  1. 应用增强:
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: 增强器配置,如增强类型、强度范围等

您可以根据需要修改配置文件以调整增强效果。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages