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.
Implementiert in OpenCV 3.0 Python. Hier ist eine Quelle, die Sie tatsächlich zum Auffüllen verwenden können.
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.
#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
Reduzierter Kontrast
Referenz Konvertierung der Bilddichte mit Tonkurve
Diese Konvertierung wird bei der Anzeige auf einem Display verwendet und ändert den Helligkeitswert entsprechend dem Wert von γ.
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
Wenn γ = 0,75
Referenz Nachschlagetabelle (Beispiel für Gammakorrektur)
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
Referenz Glättungsfilter (gleitender Durchschnitt, Gaußscher Filter)
Fügen Sie jedem Pixel Rauschen hinzu, indem Sie den generierten Wert basierend auf der Gaußschen Verteilung addieren.
Gaußsches Rauschen mit σ = 15
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)
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
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)
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