Maison > Article > Périphériques technologiques > Résumé de 12 techniques d'amélioration des données d'image couramment utilisées
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.
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):
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)
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)
Cette méthode combine le recadrage et le redimensionnement en même temps.
transform = transforms.RandomResizedCrop((100, 300)) imshow(path, transform)
Retournez l'image horizontalement ou verticalement, le code ci-dessous tentera d'appliquer un retournement horizontal à notre image.
transform = transforms.RandomHorizontalFlip() imshow(path, transform)
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)
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)
Cette technique est une transformation qui laisse le centre inchangé. Cette technique a quelques paramètres :
transform = transforms.RandomAffine(1, translate=(0.5, 0.5), scale=(1, 1), shear=(1,1), fillcolor=(256,256,256)) imshow(path, transform)
L'image sera floue à l'aide du flou gaussien.
transform = transforms.GaussianBlur(7, 3) imshow(path, transform)
Convertissez les images couleur en niveaux de gris.
transform = transforms.Grayscale(num_output_channels=3) imshow(path, transform)
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.
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)
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中颜色的分离被定义为饱和度。
transform = transforms.ColorJitter(saturatinotallow=20) imshow(path, transform)
色调被定义为Résumé de 12 techniques damélioration des données dimage couramment utilisées中颜色的深浅。
transform = transforms.ColorJitter(hue=2) imshow(path, transform)
图像本身的变化将有助于模型对未见数据的泛化,从而不会对数据进行过拟合。以上整理的都是我们常见的数据增强技术,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!