Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken

王林
Freigeben: 2023-04-11 22:49:01
nach vorne
2032 Leute haben es durchsucht

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):
Nach dem Login kopieren

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)
Nach dem Login kopieren

RandomResizedCrop

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

transform = transforms.CenterCrop((224, 224))
 imshow(path, transform)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
    Nach dem Login kopieren
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)
Nach dem Login kopieren

Graustufen

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

transform = transforms.GaussianBlur(7, 3)
 imshow(path, transform)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken

Saturation

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

transform = transforms.ColorJitter(saturatinotallow=20)
 imshow(path, transform)
Nach dem Login kopieren

Zusammenfassung von 12 häufig verwendeten Bilddatenverbesserungstechniken

Hue

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

transform = transforms.ColorJitter(hue=2)
 imshow(path, transform)
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:51cto.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!