增加了数据增强离线的程序(可扩充数据集),将图片压缩从32*32,调整为224*224.

This commit is contained in:
zhanghuan
2025-09-15 17:26:14 +08:00
parent d73331010c
commit 264d01e9b9
5 changed files with 80 additions and 14 deletions
+50
View File
@@ -0,0 +1,50 @@
import os
import random
from PIL import Image
from torchvision import transforms
# 原始数据目录
input_root = "../dataset/train"
# 增强后保存目录
output_root = "../dataset/train_aug"
# 每类目标张数
target_num = 500
# 定义数据增强
transform = transforms.Compose([
transforms.RandomHorizontalFlip(p=0.5),
transforms.RandomRotation(15),
transforms.ColorJitter(brightness=0.1, contrast=0.1, saturation=0.1, hue=0.02),
transforms.RandomResizedCrop(size=(224, 224), scale=(0.8, 1.0)),
])
os.makedirs(output_root, exist_ok=True)
# 遍历每个类别文件夹
for class_name in os.listdir(input_root):
input_dir = os.path.join(input_root, class_name)
output_dir = os.path.join(output_root, class_name)
os.makedirs(output_dir, exist_ok=True)
# 读取类别下所有图片路径
img_files = [f for f in os.listdir(input_dir) if f.lower().endswith(('.jpg', '.png', '.jpeg'))]
img_paths = [os.path.join(input_dir, f) for f in img_files]
print(f"类别 {class_name} 原始图片数: {len(img_paths)}")
count = 0
while count < target_num:
img_path = random.choice(img_paths)
img = Image.open(img_path).convert("RGB")
# 生成增强图
aug_img = transform(img)
# 保存
save_path = os.path.join(output_dir, f"aug_{count:03d}.jpg")
aug_img.save(save_path)
count += 1
print(f"类别 {class_name} 已扩充到 {target_num} 张,保存于 {output_dir}")
print("✅ 数据增强完成!")