Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken

Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken

王林
王林nach vorne
2023-04-11 22:49:012061Durchsuche

Das Ziel des Trainings eines Machine-Learning- oder Deep-Learning-Modells besteht darin, ein „universelles“ Modell zu werden. Dies setzt voraus, dass das Modell nicht zu stark an den Trainingsdatensatz angepasst ist, oder mit anderen Worten, dass unser Modell die unsichtbaren Daten gut versteht. Datenerweiterung ist auch eine von vielen Möglichkeiten, eine Überanpassung zu vermeiden.

Der Prozess der Erweiterung der Datenmenge, die zum Trainieren eines Modells verwendet wird, wird als Datenerweiterung bezeichnet. Indem wir ein Modell mit mehreren Datentypen trainieren, können wir ein „allgemeineres“ Modell erhalten. Was bedeutet „mehrere Datentypen“? In diesem Artikel wird nur die Technologie zur „Bild“-Datenverbesserung erläutert und verschiedene Strategien zur Bilddatenverbesserung nur im Detail vorgestellt. Wir werden uns auch mit PyTorch befassen und Datenerweiterungstechniken implementieren, die hauptsächlich bei Bilddaten oder Computer Vision zum Einsatz kommen.

Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken


Weil es eine Datenverbesserungstechnologie einführt. Es reicht also aus, nur ein Bild zu verwenden. Schauen wir uns zunächst den Code des Bildmaterials an. Der folgende Code zeigt, dass wir die Größe des Bildes von seiner Originalgröße auf 224 x 224 ändern möchten.

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

Zuschneiden

Zusammenfassung von 12 häufig verwendeten BilddatenverbesserungstechnikenDiese Technik wendet einen Teil eines ausgewählten Bildes auf ein neues Bild an. Verwenden Sie beispielsweise „CenterCrop“, um ein in der Mitte zugeschnittenes Bild zurückzugeben.

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

RandomResizedCrop

Zusammenfassung von 12 häufig verwendeten BilddatenverbesserungstechnikenDiese Methode kombiniert Zuschneiden und Größenänderung gleichzeitig.

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

Flipping

Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken Spiegeln Sie das Bild horizontal oder vertikal. Der folgende Code versucht, eine horizontale Spiegelung auf unser Bild anzuwenden.

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

Padding

Zusammenfassung von 12 häufig verwendeten BilddatenverbesserungstechnikenPadding besteht aus dem Auffüllen aller Bildränder um einen bestimmten Betrag. Wir füllen jede Kante mit 50 Pixeln.

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

Rotation

Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken wendet einen zufälligen Rotationswinkel auf das Bild an. Wir stellen diesen Winkel auf 15 Grad ein.

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

Random Affine

Zusammenfassung von 12 häufig verwendeten BilddatenverbesserungstechnikenDiese Technik ist eine Transformation, die das Zentrum unverändert lässt. Diese Technik hat einige Parameter:

degrees: Drehwinkel

translate: horizontale und vertikale Verschiebung
  • scale: Skalierungsparameter
  • share: Bildzuschneideparameter
  • fillcolor: Farbe der Füllung außerhalb des Bildes
  • transform = transforms.RandomRotation(15)
     imshow(path, transform)
Gaußsche Unschärfe

Zusammenfassung von 12 häufig verwendeten BilddatenverbesserungstechnikenDas Bild wird mit der Gaußschen Unschärfe unscharf gemacht.

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

Graustufen

Zusammenfassung von 12 häufig verwendeten BilddatenverbesserungstechnikenKonvertieren Sie Farbbilder in Graustufen.

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

Farbverbesserung, auch Farbdithering genannt, ist der Prozess der Änderung der Farbeigenschaften eines Bildes durch Änderung seiner Pixelwerte. Die folgenden Methoden sind alle farbbezogene Vorgänge.

Zusammenfassung von 12 häufig verwendeten BilddatenverbesserungstechnikenHelligkeit

Ändern Sie die Helligkeit des Bildes. Das resultierende Bild wird im Vergleich zum Originalbild dunkler oder heller.

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

Kontrast

Zusammenfassung von 12 häufig verwendeten BilddatenverbesserungstechnikenDer Grad des Unterschieds zwischen den dunkelsten und hellsten Teilen eines Bildes wird als Kontrast bezeichnet. Zur Verbesserung kann auch der Kontrast des Bildes angepasst werden.

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

Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken

Saturation

Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken中颜色的分离被定义为饱和度。

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

Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken

Hue

色调被定义为Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken中颜色的深浅。

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

Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken

总结

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

Das obige ist der detaillierte Inhalt vonZusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen