0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

12个常用的图像数据增强技术总结

Dbwd_Imgtec 来源:DeepHub IMBA 作者:Prabowo Yoga Wicaksan 2022-10-26 11:44 次阅读

神经网络在训练时的优化首先是对模型的当前状态进行误差估计,然后为了减 机器学习深度学习模型的训练的目标是成为“通用”模型。这就需要模型没有过度拟合训练数据集,或者换句话说,我们的模型对看不见的数据有很好的了解。数据增强也是避免过度拟合的众多方法之一。 扩展用于训练模型的数据量的过程称为数据增强。通过训练具有多种数据类型的模型,我们可以获得更“泛化”的模型。“多种数据类型”是什么意思呢?本篇文章只讨论“图像”数据增强技术,只详细地介绍各种图片数据增强策略。我们还将使用 PyTorch 动手实践并实现图像数据或计算机视觉中主要使用的数据增强技术。

f4a51538-54de-11ed-a3b6-dac502259ad0.jpg

因为介绍的是数据增强技术。所以只使用一张图片就可以了,我们先看看可视话的代码

import PIL.Image as Image import torch from torchvision import transforms import matplotlib.pyplot as plt import numpy as np import warnings def imshow(img_path, transform): """ Function to show data augmentation Param img_path: path of the image Param transform: data augmentation technique to apply """ img = Image.open(img_path) fig, ax = plt.subplots(1, 2, figsize=(15, 4)) ax[0].set_title(f'Original image {img.size}') ax[0].imshow(img) img = transform(img) ax[1].set_title(f'Transformed image {img.size}') ax[1].imshow(img)Resize/Rescale

此函数用于将图像的高度和宽度调整为我们想要的特定大小。下面的代码演示了我们想要将图像从其原始大小调整为 224 x 224。

path = './kitten.jpeg' transform = transforms.Resize((224, 224)) imshow(path, transform)

f4b74280-54de-11ed-a3b6-dac502259ad0.png

Cropping

该技术将要选择的图像的一部分应用于新图像。例如,使用 CenterCrop 来返回一个中心裁剪的图像。

transform = transforms.CenterCrop((224, 224)) imshow(path, transform)

f4cf83fe-54de-11ed-a3b6-dac502259ad0.png

RandomResizedCrop

这种方法同时结合了裁剪和调整大小。

transform = transforms.RandomResizedCrop((100, 300)) imshow(path, transform)

Flipping

水平或垂直翻转图像,下面代码将尝试应用水平翻转到我们的图像。

transform = transforms.RandomHorizontalFlip() imshow(path, transform)

Padding

填充包括在图像的所有边缘上按指定的数量填充。我们将每条边填充50像素。

transform = transforms.Pad((50,50,50,50)) imshow(path, transform)

f4f65376-54de-11ed-a3b6-dac502259ad0.png

Rotation

对图像随机施加旋转角度。我们将这个角设为15度。

transform = transforms.RandomRotation(15) imshow(path, transform)

f5112598-54de-11ed-a3b6-dac502259ad0.png

Random Affine

这种技术是一种保持中心不变的变换。这种技术有一些参数

degrees:旋转角度

translate:水平和垂直转换

scale:缩放参数

share:图片裁剪参数

fillcolor:图像外部填充的颜色

transform = transforms.RandomAffine(1, translate=(0.5, 0.5), scale=(1, 1), shear=(1,1), fillcolor=(256,256,256)) imshow(path, transform)

Gaussian Blur

图像将使用高斯模糊进行模糊处理。

transform = transforms.GaussianBlur(7, 3) imshow(path, transform)

f527cd48-54de-11ed-a3b6-dac502259ad0.png

Grayscale

将彩色图像转换为灰度。

transform = transforms.Grayscale(num_output_channels=3) imshow(path, transform)

f567f7f6-54de-11ed-a3b6-dac502259ad0.png

颜色增强,也称为颜色抖动,是通过改变图像的像素值来修改图像的颜色属性的过程。下面的方法都是颜色相关的操作。

Brightness

改变图像的亮度当与原始图像对比时,生成的图像变暗或变亮。

transform = transforms.ColorJitter(brightness=2) imshow(path, transform)

Contrast

图像最暗和最亮部分之间的区别程度被称为对比度。图像的对比度也可以作为增强进行调整。

transform = transforms.ColorJitter(contrast=2) imshow(path, transform)

f58dc1c0-54de-11ed-a3b6-dac502259ad0.png

Saturation

图片中颜色的分离被定义为饱和度。

transform = transforms.ColorJitter(saturation=20) imshow(path, transform)

f5ad3a00-54de-11ed-a3b6-dac502259ad0.png

Hue

色调被定义为图片中颜色的深浅。

transform = transforms.ColorJitter(hue=2) imshow(path, transform)

f5cd9ffc-54de-11ed-a3b6-dac502259ad0.png

总结

图像本身的变化将有助于模型对未见数据的泛化,从而不会对数据进行过拟合。以上整理的都是我们常见的数据增强技术,torchvision中还包含了很多方法,可以在他的文档中找到:https://pytorch.org/vision/stable/transforms.html

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4771

    浏览量

    100752
  • 图像数据
    +关注

    关注

    0

    文章

    52

    浏览量

    11279
  • 数据集
    +关注

    关注

    4

    文章

    1208

    浏览量

    24697

原文标题:12个常用的图像数据增强技术总结

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【每天学点AI】实战图像增强技术在人工智能图像处理中的应用

    图像增强(ImageEnhancement)是人工智能和计算机视觉中一项重要的技术,也是人工智能数据集预处理的一重要步骤。它旨在提高
    的头像 发表于 11-22 17:14 544次阅读
    【每天学点AI】实战<b class='flag-5'>图像</b><b class='flag-5'>增强</b><b class='flag-5'>技术</b>在人工智能<b class='flag-5'>图像</b>处理中的应用

    基于差分卷积神经网络的低照度车牌图像增强网络

    车牌识别作为现代化智能交通系统中重要的环节,对提升路网效率以及缓解城市交通压力等问题具有重要的社会意义,然而弱光照车牌图像识别仍然具有重大的挑战。构建了一基于差分卷积神经网络的弱光照车牌图像
    的头像 发表于 11-11 10:29 186次阅读
    基于差分卷积神经网络的低照度车牌<b class='flag-5'>图像</b><b class='flag-5'>增强</b>网络

    如何使用base64处理图像数据

    Base64是一种编码方法,可以将二进制数据转换为ASCII字符集的文本格式。这种编码方式常用于在不支持二进制数据的系统之间传输图像数据,例
    的头像 发表于 11-10 10:51 601次阅读

    深圳单片机开发公司常用12硬件电路,你用过几个?

    在电子产品开发的广阔领域中,硬件设计是构建创新产品的基石。无论是消费级产品、工控还是科研仪器等,都离不开精心设计的电路。英锐恩科技的技术工程师老唐将介绍在硬件设计实战中常用12电路
    发表于 09-25 16:07

    图像采集卡:增强视觉数据采集

    图像采集卡介绍:在视觉数据采集领域,图像采集卡在捕获和处理来自各种来源的图像或视频方面发挥着关键作用。在本文中,我们将深入探讨图像采集卡的世
    的头像 发表于 09-24 11:06 306次阅读
    <b class='flag-5'>图像</b>采集卡:<b class='flag-5'>增强</b>视觉<b class='flag-5'>数据</b>采集

    说明增强现实技术的产生原因

    增强现实技术(Augmented Reality, AR)的产生,主要源于人类对信息获取和交互方式的不断追求与探索,以及计算机技术图像处理、传感器
    的头像 发表于 09-15 14:44 673次阅读

    Cricket XL全新亮相:革新图像增强技术的解决方案

    由法国知名光电科技公司PHOTONIS生产的像增强器是一种先进的光电设备,主要用于提高图像的亮度和清晰度。像增强器凭借其高性能和多功能性,在科学研究、工业检测和生物医学成像等多个领域发挥
    的头像 发表于 07-25 06:32 309次阅读
    Cricket XL全新亮相:革新<b class='flag-5'>图像</b><b class='flag-5'>增强</b><b class='flag-5'>技术</b>的解决方案

    图像识别算法的提升有哪些

    方法。 数据增强 数据增强是提高图像识别算法性能的一种有效方法。通过对训练数据进行变换和扩展,可
    的头像 发表于 07-16 11:12 657次阅读

    增强现实技术的特点有哪些

    增强现实技术(Augmented Reality,简称AR技术)是一种将计算机生成的虚拟信息叠加到现实世界中的技术。它通过实时地计算摄像机影像的位置及角度,将相应的
    的头像 发表于 07-08 10:56 971次阅读

    ar增强现实技术的特点是什么

    增强现实(Augmented Reality,简称AR)技术是一种将虚拟信息与现实世界相结合的技术,它通过计算机技术将虚拟的图像、声音、文字
    的头像 发表于 07-04 11:42 881次阅读

    图像检测与识别技术的关系

    图像检测与识别技术是计算机视觉领域的两重要分支,它们在许多应用场景中发挥着关键作用。本文将介绍图像检测与识别技术的关系,以及它们在不同领域
    的头像 发表于 07-03 14:43 648次阅读

    从索尼IMX623相机流式传输1936x1552 RAW12数据图像不能正确显示的原因?

    我们正在开发一项目,从索尼 IMX623 相机流式传输 1936x1552 RAW12 数据。我能够获得图像,但前提是将 CX3 MIPI 配置的输出像素时钟设置为 100 MHz
    发表于 05-27 06:41

    增强现实ar是什么

    手段,将计算机生成的文字、图像、音频等信息与现实世界相结合,为用户提供一更加丰富、直观的交互体验。 增强现实技术的核心是将虚拟信息与现实环境相融合。为了实现这一目标,首先需要对现实世
    的头像 发表于 05-02 15:18 813次阅读

    基于FPGA的常见的图像算法模块总结

    意在给大家补充一下基于FPGA的图像算法基础,于是讲解了一下常见的图像算法模块,经过个人的总结,将知识点分布如下所示。
    的头像 发表于 04-28 11:45 597次阅读
    基于FPGA的常见的<b class='flag-5'>图像</b>算法模块<b class='flag-5'>总结</b>

    PLC常用专业英文词汇翻译总结

    PLC编程中我们经常会遇到一些专业英文词汇,对于入门的学员来说过理解起来是非常困难的。本文总结了一些PLC常用专业英文词汇,并做已翻译。
    的头像 发表于 03-19 11:40 2403次阅读