Maison  >  Article  >  Périphériques technologiques  >  Résumé de 12 techniques d'amélioration des données d'image couramment utilisées

Résumé de 12 techniques d'amélioration des données d'image couramment utilisées

王林
王林avant
2023-04-11 22:49:012062parcourir

L'objectif de la formation d'un modèle de machine learning ou de deep learning est de devenir un modèle « universel ». Cela nécessite que le modèle ne surajuste pas l'ensemble de données d'entraînement, ou en d'autres termes, que notre modèle ait une bonne compréhension des données invisibles. L’augmentation des données est également l’un des nombreux moyens d’éviter le surapprentissage.

Le processus d'augmentation de la quantité de données utilisée pour entraîner un modèle est appelé augmentation des données. En entraînant un modèle avec plusieurs types de données, nous pouvons obtenir un modèle plus « généralisé ». Que signifie « plusieurs types de données » ? Cet article traite uniquement de la technologie d'amélioration des données « d'image » et présente uniquement en détail diverses stratégies d'amélioration des données d'image. Nous mettrons également en pratique et mettrons en œuvre des techniques d'augmentation de données principalement utilisées dans les données d'image ou la vision par ordinateur à l'aide de PyTorch.

Résumé de 12 techniques damélioration des données dimage couramment utilisées


Parce qu'il introduit une technologie d'amélioration des données. Il suffit donc d'utiliser une image, regardons d'abord le code du visuel

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):

Resize/Rescale

Cette fonction est utilisée pour redimensionner la hauteur et la largeur de l'image à la taille spécifique souhaitée. Le code ci-dessous montre que nous souhaitons redimensionner l'image de sa taille d'origine à 224 x 224.

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

Résumé de 12 techniques damélioration des données dimage couramment utilisées

Recadrage

Cette technique applique une partie d'une image sélectionnée à une nouvelle image. Par exemple, utilisez CenterCrop pour renvoyer une image recadrée au centre.

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

Résumé de 12 techniques damélioration des données dimage couramment utilisées

RandomResizedCrop

Cette méthode combine le recadrage et le redimensionnement en même temps.

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

Résumé de 12 techniques d'amélioration des données d'image couramment utilisées

Flipping

Retournez l'image horizontalement ou verticalement, le code ci-dessous tentera d'appliquer un retournement horizontal à notre image.

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

Résumé de 12 techniques d'amélioration des données d'image couramment utilisées

Padding

Padding consiste à remplir d'une quantité spécifiée sur tous les bords de l'image. Nous remplirons chaque bord avec 50 pixels.

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

Résumé de 12 techniques d'amélioration des données d'image couramment utilisées

Rotation

applique un angle de rotation aléatoire à l'image. Nous allons régler cet angle à 15 degrés.

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

Résumé de 12 techniques d'amélioration des données d'image couramment utilisées

Random Affine

Cette technique est une transformation qui laisse le centre inchangé. Cette technique a quelques paramètres :

  • degrees : angle de rotation
  • translate : translation horizontale et verticale
  • scale : paramètre de mise à l'échelle
  • share : paramètre de recadrage de l'image
  • fillcolor : couleur de remplissage en dehors de l'image
transform = transforms.RandomAffine(1, translate=(0.5, 0.5), scale=(1, 1), shear=(1,1), fillcolor=(256,256,256))
 imshow(path, transform)

Résumé de 12 techniques damélioration des données dimage couramment utilisées

Flou gaussien

L'image sera floue à l'aide du flou gaussien.

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

Résumé de 12 techniques d'amélioration des données d'image couramment utilisées

Grayscale

Convertissez les images couleur en niveaux de gris.

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

Résumé de 12 techniques damélioration des données dimage couramment utilisées

L'amélioration des couleurs, également connue sous le nom de tramage des couleurs, est le processus de modification des propriétés de couleur d'une image en changeant ses valeurs de pixels. Les méthodes suivantes sont toutes des opérations liées aux couleurs.

Luminosité

Modifiez la luminosité de l'image. L'image résultante devient plus sombre ou plus claire par rapport à l'image d'origine.

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

Résumé de 12 techniques damélioration des données dimage couramment utilisées

Contraste

Le degré de différence entre les parties les plus sombres et les plus claires d'une image est appelé contraste. Le contraste de l'image peut également être ajusté en guise d'amélioration.

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

Résumé de 12 techniques damélioration des données dimage couramment utilisées

Saturation

Résumé de 12 techniques damélioration des données dimage couramment utilisées中颜色的分离被定义为饱和度。

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

Résumé de 12 techniques damélioration des données dimage couramment utilisées

Hue

色调被定义为Résumé de 12 techniques damélioration des données dimage couramment utilisées中颜色的深浅。

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

Résumé de 12 techniques damélioration des données dimage couramment utilisées

总结

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer