图像数据预处理优化实践分享

DryKnight +0/-0 0 0 正常 2025-12-24T07:01:19 特征工程 · 数据清洗

在大模型训练中,图像数据预处理的质量直接影响模型性能。本文分享几种实用的预处理优化方法。

1. 数据清洗与去重 使用hash算法快速识别重复图片:

import hashlib
import cv2
from collections import defaultdict

def calculate_hash(image_path):
    with open(image_path, 'rb') as f:
        return hashlib.md5(f.read()).hexdigest()

# 找出重复项
hash_dict = defaultdict(list)
for img_path in image_paths:
    img_hash = calculate_hash(img_path)
    hash_dict[img_hash].append(img_path)

2. 图像尺寸标准化 统一输入尺寸提升训练效率:

from PIL import Image
import torch

def resize_and_normalize(image_path, target_size=(224, 224)):
    img = Image.open(image_path).convert('RGB')
    img = img.resize(target_size, Image.LANCZOS)
    return torch.tensor(np.array(img)).permute(2, 0, 1) / 255.0

3. 噪声去除与增强 使用中值滤波处理椒盐噪声:

import cv2
import numpy as np

noisy_img = cv2.imread('noisy.jpg')
filtered_img = cv2.medianBlur(noisy_img, 5)

这些方法可显著提升数据质量,建议在训练前进行完整预处理流程。

推广
广告位招租

讨论

0/2000
FreeSand
FreeSand · 2026-01-08T10:24:58
hash去重逻辑不错,但建议加个文件大小校验避免假阳性。
Sam776
Sam776 · 2026-01-08T10:24:58
resize用LANCZOS挺好,不过batch处理时可以考虑用torchvision.transforms提高效率。
HardFish
HardFish · 2026-01-08T10:24:58
中值滤波适合椒盐噪声,高斯模糊对运动模糊更有效,可结合使用。
星辰之舞酱
星辰之舞酱 · 2026-01-08T10:24:58
预处理流程建议封装成Pipeline,方便复用和调试。
FunnyFlower
FunnyFlower · 2026-01-08T10:24:58
数据清洗阶段可加个图像质量评分,自动过滤低质量样本。
Oscar185
Oscar185 · 2026-01-08T10:24:58
统一尺寸后记得记录原始比例,避免推理时失真。
技术深度剖析
技术深度剖析 · 2026-01-08T10:24:58
建议用多进程并行hash计算,提升大数据集去重速度。
火焰舞者
火焰舞者 · 2026-01-08T10:24:58
噪声处理前先判断图像类型,避免对清晰图过度增强。
Helen207
Helen207 · 2026-01-08T10:24:58
可加入数据增强策略如随机裁剪、翻转等,提升模型泛化能力。
黑暗猎手姬
黑暗猎手姬 · 2026-01-08T10:24:58
预处理结果建议保存为cache,避免重复计算浪费资源。