当前位置: 首页 > news >正文

图像处理篇---图像预处理


文章目录

  • 前言
  • 一、通用目的
    • 1.1 数据标准化
      • 目的
      • 实现
    • 1.2 噪声抑制
      • 目的
      • 实现
        • 高斯滤波
        • 中值滤波
        • 双边滤波
    • 1.3 尺寸统一化
      • 目的
      • 实现
    • 1.4 数据增强
      • 目的
      • 实现
    • 1.5 特征增强
      • 目的
      • 实现:
        • 边缘检测
        • 直方图均衡化
        • 锐化
  • 二、分领域预处理
    • 2.1 传统机器学习(如SVM、随机森林)
      • 2.1.1 特点
      • 2.1.2 预处理重点
        • 灰度化
        • 二值化
        • 形态学操作
        • 特征工程
    • 2.2 深度学习(如CNN、Transformer)
      • 2.2.1 特点
      • 2.2.2 预处理重点
        • 通道顺序调整
        • 批量归一化
        • 高级增强
        • 预训练模型适配
    • 2.3 其他领域
      • 2.3.1医学影像(如MRI、CT)
        • 去伪影
        • 标准化
      • 2.3.2 卫星遥感
        • 多光谱融合
        • 辐射校正
      • 2.3.3 工业检测
        • 背景分割
        • 高动态范围
  • 三、工具与库
    • 3.1 OpenCV
    • 3.2 PIL/Pillow
    • 3.3 scikit-image
    • 3.4 TensorFlow
    • 3.5 PyTorch
  • 四、总结
    • 4.1 目标检测
    • 4.2 语义分割
    • 4.3 低光照场景


前言

图像预处理是机器学习和计算机视觉任务中至关重要的一环,其核心目的是通过对原始图像进行优化和调整提升模型性能、降低噪声干扰、增强关键特征,并适应模型的输入要求。以下是分领域的详细说明:


一、通用目的

1.1 数据标准化

目的

目的:统一输入数据的分布,避免因像素值范围差异(如0-255或0-1)导致模型训练不稳定。

实现

#归一化到 [0, 1]
image_normalized = image / 255.0
#标准化(均值中心化 + 方差归一化)
image_standardized = (image - mean) / std

1.2 噪声抑制

目的

目的:消除图像中的随机噪声(如高斯噪声、椒盐噪声),提升特征提取的鲁棒性

实现

高斯滤波

高斯滤波:cv2.GaussianBlur()

中值滤波

中值滤波:cv2.medianBlur()

双边滤波

双边滤波:保留边缘的同时去噪,cv2.bilateralFilter()

1.3 尺寸统一化

目的

目的:确保所有输入图像尺寸一致,适配模型输入层(如CNN要求固定尺寸)。

实现

resized_image = cv2.resize(image, (width, height))

1.4 数据增强

目的

目的:通过**几何变换(旋转、翻转、裁剪)颜色扰动(亮度、对比度调整)**扩充数据集,防止过拟合。

实现

#使用OpenCV或深度学习框架(如TensorFlow的ImageDataGenerator)
flipped = cv2.flip(image, 1)  # 水平翻转
rotated = cv2.rotate(image, cv2.ROTATE_90_CLOCKWISE)

1.5 特征增强

目的

目的:突出目标区域的关键特征(如边缘、纹理)

实现:

边缘检测

边缘检测:Sobel算子、Canny算子

直方图均衡化

直方图均衡化:cv2.equalizeHist()(增强对比度)

锐化

锐化:拉普拉斯算子或自定义卷积核

二、分领域预处理

2.1 传统机器学习(如SVM、随机森林)

2.1.1 特点

特点:依赖手工提取特征(如HOG、LBP、颜色直方图)。

2.1.2 预处理重点

灰度化

灰度化:减少计算量,cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

二值化

二值化:cv2.threshold()(如文档OCR任务

形态学操作

形态学操作:腐蚀、膨胀(去除小斑点或连接断裂区域

特征工程

特征工程:提取统计特征(均值、方差)或结构特征。

2.2 深度学习(如CNN、Transformer)

2.2.1 特点

特点:端到端学习特征,但依赖大量数据和标准化输入。

2.2.2 预处理重点

通道顺序调整

通道顺序调整:适配框架要求(如TensorFlow的HWC格式或PyTorch的CHW格式)。

批量归一化

批量归一化:在数据加载阶段统一处理(如torchvision.transforms.Normalize)。

高级增强

高级增强:MixUp、CutMix等基于混合样本的策略。

预训练模型适配

预训练模型适配:输入需与预训练数据分布一致(如ImageNet的均值方差)。

2.3 其他领域

2.3.1医学影像(如MRI、CT)

去伪影

去伪影:消除扫描过程中的运动伪影或设备噪声

标准化

标准化:使用Z-score或直方图匹配**(不同设备间的数据一致性**)。

2.3.2 卫星遥感

多光谱融合

多光谱融合:合并不同波段的图像(如红外与可见光)。

辐射校正

辐射校正:消除大气干扰。

2.3.3 工业检测

背景分割

背景分割:提取ROI(如产品表面缺陷检测)。

高动态范围

高动态范围(HDR):处理过曝或欠曝区域

三、工具与库

3.1 OpenCV

OpenCV:基础操作(滤波、几何变换、颜色空间转换)。

3.2 PIL/Pillow

PIL/Pillow:简单的图像增强(缩放、裁剪)。

3.3 scikit-image

scikit-image:高级滤波和特征提取(如局部二值模式)。

3.4 TensorFlow

TensorFlow:tf.image模块

3.5 PyTorch

PyTorch:torchvision.transforms

四、总结

图像预处理的选择需结合具体任务:

4.1 目标检测

目标检测:可能更关注多尺度输入颜色增强

4.2 语义分割

语义分割:需保留空间信息,避免过度下采样

4.3 低光照场景

低光照场景:需Retinex算法或深度学习去噪(如AutoEncoder)。

通过合理设计预处理流程,可显著提升模型泛化能力收敛速度


相关文章:

  • 【宠粉赠书】极速探索 HarmonyOS NEXT:国产操作系统的未来之光
  • tongweb信创项目线上业务添堵问题排查
  • 《Python实战进阶》No21:数据存储:Redis 与 MongoDB 的使用场景
  • Spring面试:Spring,SpringMVC,SpringBoot
  • 软考系统架构师 — 1 考点分析
  • 基于javaweb的SpringBoot精美物流管理系统设计与实现(源码+文档+部署讲解)
  • 五大基础算法——分治算法
  • QT中的宏
  • 大数据学习(64)- 大数据集群的高可用(HA)
  • 基于ydoVr算法的车辆智能防盗系统的设计与实现
  • linux:进程调度(下)
  • 单机 elasticsearch下载,安装,配置,启动,百度云链接提供
  • 【C语言】动态内存管理用realloc管理更灵活
  • CSS Table (表格)
  • windows上清理docker
  • Dify使用部署与应用实践
  • Python学习第十九天
  • 在Flutter中使用Future读取一个大文件会导致线程阻塞吗
  • Vue3 修改Pinia数据
  • 解决 VSCode SSH 连接报错:“REMOTE HOST IDENTIFICATION HAS CHANGED” 的问题
  • 武汉麦诺信网站建设/网站建站流程
  • 安徽省工程建设工程信息网站/济南今日头条新闻
  • 网站建设实验报告/html底部友情链接代码
  • 公司网络建设计划书/seo搜索推广费用多少
  • 重庆石桥铺网站建设公司/推广普通话的意义
  • 如何在自己网站做解析api/百度云网盘搜索引擎入口