[PYTHON] So erhöhen Sie die Anzahl der Datensatzbilder für maschinelles Lernen

Bedeutung der Bildauffüllung

Ein guter Trainingsdatensatz ist erforderlich, um die Genauigkeit der Klassifizierung wie CNN für tiefes Lernen zu verbessern. Um die Genauigkeit sicherzustellen, ist Folgendes erforderlich.

Dazu benötigen Sie nur einige Blätter. Je nach Typ kann die Anzahl der Blätter vorgespannt sein, und es ist schwierig, alle von Hand zu extrahieren und zu kennzeichnen.

Daher werden wir erwägen, die Anzahl der Bilder zu erhöhen, indem wir die Bilder verarbeiten, die bis zu einem gewissen Grad markiert wurden. Hier sind einige der Techniken. Die Erklärung basiert auf der Meinung, dass Reni Takashiro als Beispiel für die Bildverarbeitung verwendet werden sollte. Benutzen.

Aufblasmethode

Implementiert in OpenCV 3.0 Python. Hier ist eine Quelle, die Sie tatsächlich zum Auffüllen verwenden können.

Github

Kontrasteinstellung

Erstellt ein Bild mit verbessertem und reduziertem Kontrast. Stellen Sie zur Hervorhebung 0 für Pixel mit niedriger Helligkeit unterhalb eines bestimmten Pegels und 255 für Pixel mit hoher Helligkeit oberhalb eines bestimmten Pegels ein und passen Sie diejenigen mit mittlerer Helligkeit an. Um dies zu verringern, stellen Sie die Helligkeitsbreite umgekehrt so ein, dass sie kleiner ist. Diese Zahl ist leicht zu verstehen. http://livedoor.blogimg.jp/progr-python2/imgs/f/8/f867a2e8.png

#Generierung von Nachschlagetabellen
min_table = 50
max_table = 205
diff_table = max_table - min_table

LUT_HC = np.arange(256, dtype = 'uint8' )
LUT_LC = np.arange(256, dtype = 'uint8' )

#Kontrastreiche LUT-Erstellung
for i in range(0, min_table):
    LUT_HC[i] = 0
for i in range(min_table, max_table):
    LUT_HC[i] = 255 * (i - min_table) / diff_table
for i in range(max_table, 255):
    LUT_HC[i] = 255

#Erstellen Sie eine kontrastarme LUT
for i in range(256):
    LUT_LC[i] = min_table + i * (diff_table) / 255

#Umwandlung
src = cv2.imread("reni.jpg ", 1)
high_cont_img = cv2.LUT(src, LUT_HC)
low_cont_img = cv2.LUT(src, LUT_LC)

Hervorgehobener Kontrast reni_takagi_2012_04_15_1.jpg

Reduzierter Kontrast reni_takagi_2012_04_15_2.jpg

Referenz Konvertierung der Bilddichte mit Tonkurve

Gamma-Umwandlung

Diese Konvertierung wird bei der Anzeige auf einem Display verwendet und ändert den Helligkeitswert entsprechend dem Wert von γ. http://livedoor.blogimg.jp/progr-python2/imgs/0/4/043dfda9.png

Ersetzen Sie hier die Nachschlagetabelle der Kontrastanpassungsquelle.

#Nachschlagetabelle für die Gammakonvertierung
gamma1 = 0.75
gamma2 = 1.5
for i in range(256):
    LUT_G1[i] = 255 * pow(float(i) / 255, 1.0 / gamma1)
    LUT_G2[i] = 255 * pow(float(i) / 255, 1.0 / gamma2)

Wenn γ = 1,5 reni_takagi_2012_04_15_3.jpg

Wenn γ = 0,75 reni_takagi_2012_04_15_2.jpg

Referenz Nachschlagetabelle (Beispiel für Gammakorrektur)

Glätten

Glätten Sie das Bild. Hier wird der Mittelungsfilter angewendet.

average_square = (10,10)
src = cv2.imread("reni.jpg ", 1)
blur_img = cv2.blur(src, average_square)

10x10 Mittelungsfilter reni_takagi_2012_04_15_5.jpg

Referenz Glättungsfilter (gleitender Durchschnitt, Gaußscher Filter)

Rauschen basierend auf der Gaußschen Verteilung

Fügen Sie jedem Pixel Rauschen hinzu, indem Sie den generierten Wert basierend auf der Gaußschen Verteilung addieren.

Gaußsches Rauschen mit σ = 15 reni_takagi_2012_04_15_7.jpg

src = cv2.imread("reni.jpg ", 1)
row,col,ch= src.shape
mean = 0
sigma = 15
gauss = np.random.normal(mean,sigma,(row,col,ch))
gauss = gauss.reshape(row,col,ch)
gauss_img = src + gauss

Referenz Konvertierung von Bildinformationen (Helligkeitsdaten)

Salz- und Pfeffergeräusche

Es heißt so, weil es ein Geräusch wie Salz und Pfeffer ist. Es wird auch Impulsrauschen genannt.

src = cv2.imread("reni.jpg ", 1)
row,col,ch = src.shape
s_vs_p = 0.5
amount = 0.004
sp_img = src.copy()

#Salzmodus
num_salt = np.ceil(amount * src.size * s_vs_p)
coords = [np.random.randint(0, i-1 , int(num_salt)) for i in src.shape]
sp_img[coords[:-1]] = (255,255,255)

#Pfeffermodus
num_pepper = np.ceil(amount* src.size * (1. - s_vs_p))
coords = [np.random.randint(0, i-1 , int(num_pepper)) for i in src.shape]
sp_img[coords[:-1]] = (0,0,0)

Rauschen bei 0,4% Pixel reni_takagi_2012_04_15_8.jpg

Umkehren

Nach links und rechts drehen und nach oben und unten drehen.

src = cv2.imread("reni.jpg ", 1)
hflip_img = cv2.flip(src, 1)
vflip_img = cv2.flip(src, 0)

Rahmen

Vergrößert oder verkleinert einen Teil des Bildes.

src = cv2.imread("reni.jpg ", 1)
hight = src.shape[0]
width = src.shape[1]
half_img = cv2.resize(src,(hight/2,width/2))

Recommended Posts

So erhöhen Sie die Anzahl der Datensatzbilder für maschinelles Lernen
Wie nutzt man maschinelles Lernen für die Arbeit? 01_ Den Zweck des maschinellen Lernens verstehen
So erhöhen Sie die Achse
Wie man die Portnummer des xinetd-Dienstes kennt
So ermitteln Sie die Anzahl der Stellen in Python
So erhöhen Sie die Verarbeitungsgeschwindigkeit der Erfassung der Scheitelpunktposition
So finden Sie die optimale Anzahl von Clustern für k-means
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Regression zu bewerten
Lesen des SNLI-Datensatzes
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Klassifizierung zu bewerten
[Maschinelles Lernen] Ich habe versucht, die Theorie von Adaboost zusammenzufassen
Sammeln von Daten zum maschinellen Lernen
Menschen merken sich gelerntes Wissen im Gehirn, wie man gelerntes Wissen im maschinellen Lernen auswendig lernt
scikit-learn Verwendung der Zusammenfassung (maschinelles Lernen)
So überprüfen Sie die Version von Django
Notieren Sie die Schritte zum Verständnis des maschinellen Lernens
Wie man Coursera / Maschinelles Lernen genießt (Woche 10)
Hat die Anzahl der Ladenschließungen aufgrund des Einflusses des neuen Koronavirus zugenommen?
So ermitteln Sie die Anzahl der CPUs ohne den Befehl sar
Wie nutzt man maschinelles Lernen für die Arbeit? 02_AI Entwicklungsprojektübersicht
So setzen Sie eine Zeilennummer am Anfang einer CSV-Datei
Bedeutet Memo, wenn versucht wird, maschinelles Lernen mit 50 Bildern durchzuführen
So spielen Sie ein Video ab, während Sie die Anzahl der Bilder ansehen (Mac)
So berechnen Sie die Volatilität einer Marke
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 1
So finden Sie den Bereich des Boronoi-Diagramms
Laden Sie eine große Anzahl von Bildern in Wordpress hoch
Über die Entwicklungsinhalte des maschinellen Lernens (Beispiel)
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 2
So identifizieren Sie die Systemrufnummer ausyscall
Anordnung von selbst erwähnten Dingen im Zusammenhang mit maschinellem Lernen
So zählen Sie die Anzahl der Elemente in Django und geben sie in die Vorlage aus
Ich habe versucht, das Vorhandensein oder Nichtvorhandensein von Schnee durch maschinelles Lernen vorherzusagen.
Eine Einführung in die Datenanalyse mit Python - Um die Anzahl der Videoansichten zu erhöhen -
Richten Sie die Anzahl der Stichproben zwischen Datenklassen für maschinelles Lernen mit Python aus
So installieren Sie das Deep Learning Framework Tensorflow 1.0 in der Windows Anaconda-Umgebung
Einführung in das maschinelle Lernen
Zählen Sie die Anzahl der Parameter im Deep-Learning-Modell
Eindrücke vom Udacity Machine Learning Engineer Nano-Abschluss
Die Entscheidung von scikit-learn Wie man ein Holzmodell visualisiert
Versuchen Sie, die Anzahl der Likes auf Twitter zu schätzen
So zeigen Sie mehrere Bilder einer Galaxie in Kacheln an
Prognostizieren Sie das Geschlecht von Twitter-Nutzern durch maschinelles Lernen
[Blender] So legen Sie die Auswahlelemente von EnumProperty dynamisch fest
Zusammenfassung des grundlegenden Ablaufs des maschinellen Lernens mit Python
Aufzeichnung der ersten Herausforderung des maschinellen Lernens mit Keras
[Python] Zusammenfassung, wie die Farbe der Figur angegeben wird
Wie man das Dokument der magischen Funktion (Linienmagie) trifft
So greifen Sie auf die globale Variable des importierten Moduls zu
[Selen] Wie wird der relative Pfad des Chromedriver angegeben?
Ich möchte die Sicherheit der SSH-Verbindung erhöhen
Ich habe versucht, das Bild mithilfe von maschinellem Lernen zu komprimieren
Der erste Schritt des maschinellen Lernens ~ Für diejenigen, die versuchen möchten, mit Python zu implementieren ~
Wie identifiziere ich das Element mit der geringsten Anzahl von Zeichen in einer Python-Liste?
Einführung in das maschinelle Lernen ~ Zeigen wir die Tabelle der K-Methode für den nächsten Nachbarn ~ (+ Fehlerbehandlung)
So zählen Sie die Anzahl der Vorkommen jedes Elements in der Liste in Python mit der Gewichtung
Erstellen eines Gesichtsbilddatensatzes für maschinelles Lernen (2: Rahmenanalyse von Videos, um Kandidatenbilder zu erhalten)
[Teil 4] Verwenden Sie Deep Learning, um das Wetter anhand von Wetterbildern vorherzusagen
[Ubuntu] So löschen Sie den gesamten Inhalt des Verzeichnisses
10. Zählen der Anzahl der Zeilen