Meine Blog-Beiträge

Videoklassifizierung mit CNN mit Keras

Videoklassifizierung mit CNN mit Keras


Ein Modell, das mit einer CNN-Struktur erstellt wurde, wird auf der Grundlage des Bildklassifizierungsprozesses verarbeitet.

1. Was ist Convolutional Neural Network (CNN) ?

Ein CNN-Modell ist ein neuronales Netzwerk, das verwendet wird, um die Attribute des Bildes zu offenbaren. CNN zeigt mehr Attribute, wenn die Ebenen zunehmen. Die Tatsache, dass die Attribute zu hoch sind, sind Features, die den Erfolg der Bilderkennung erhöhen. Es gibt einige Ebenen in der CNN-Struktur, werfen wir einen Blick auf sie.

A) Konvolutionale Schicht

In diesem Layer wird das Attribut abgeleitet. Für diese Rückschlüsse werden einige Filter verwendet. Die Arbeitsstruktur von Filtern besteht aus mehreren Matrixoperationen, was bedeutet, dass die Hauptbildmatrix mit einer anderen Matrix multipliziert wird, die wir wählen. Wenn Sie z. B.

Fügen wir eine Bildmatrix von 5 x 5 in einen 3X3-Filter ein. Wenn wir die Filtermatrix in die Anzeigematrix setzen, setzen wir überlappende Zellwerte in die Matrixmultiplikation und schreiben sie in eine neue Matrix. Die Matrix, die auftritt, wenn wir dies auf dem gesamten Bild tun, ist unsere Attributmatrix.

Kantenmarkierungsfilter (Kantenerkennung)

Edge-Informationen sind innerhalb von Attributen, die aus dem Bild abgerufen werden. Es hilft uns, hochfrequente Bereiche des Bildes zu finden.

Schritt (Schritt Scrollen)

Matrix ist ein Parameter, der bestimmt, zu wie viel der Filter bei der Berechnung gescrollt wird. Direkte Auswirkungen der Ausgabegröße.

Polsterung

Nach dem Konvolutwird wird es hinzugefügt, um die Dimensionsdifferenz zwischen der Eingabematrix und der Ausgabematrix zu zerstören. Dies wird mit zusätzlichen Pixeln versehen, die der Eingabematrix hinzugefügt werden sollen.

Filterprozess mit Padding (Scorecard-Filtermatrix)

Pooling

Reduziert Höhen- und Breiteninformationen, indem die Anzahl der Kanäle (RGB oder Grau) konstant bleibt. Das Attribut hat keine Rückschlüsse. Es gibt verschiedene Berechnungsalgorithmen wie Maximum, Average und L2-Norm Pooling. Das Arbeitssystem erstellt eine neue Matrix, indem es den Wert basierend auf dem Algorithmus auswählt, der von der Bildmatrix verwendet wird, in der eine Filtermatrix navigiert wird.

Max Pooling-Beispiel

AusgabeMatrix-Ermittlungsformel

Ausgabematrixgröße Berechnete Formel

B) Abflachungsschicht

Die Aufgabe dieser Ebene besteht darin, die Daten vorzubereiten, die an die vollständig verbundene Ebene gesendet werden sollen. Dabei wird die Matrix aus der konvolutionalen Pooling-Schicht in eine eindimensionale Matrix übersetzt.

C) Vollständig vernetzte Schicht

Es ist der Teil, in dem das Lernen mit neuronalen Netzwerken weitergegeben wird.

2.Immensite mit Keras

Der Datensatz, den wir verwenden werden, ist der CIF-10-Datensatz, der mit Keras kommt.

Datenladen

von keras.datasets import cifar10
(x_train,y_train),(x_test,y_test) = cifar10.load_data()

Datenerkennung und -anzeige

• explore datadatanum=1000import matplotlib.pyplot as pltimg=plt.imshow(x_train[datanum])#See labelprint("Label:"y_train[datanum])

Eine Hot-Codierung

Eine Hot-Codierung ist der Prozess der Benennung kategorialer Variablen binär.

von keras.utils Import to_categoricaly_train_ohe=to_categorical(y_train)y_test_ohe=to_categorical(y_test)- y_trainprint y_train_ohe nach dem Prozess

Normalisieren von Bildpixeln

x_train=x_train/255x_test=x_test/255

Erstellen eines Modells durch Erstellen einer CNN-Ebene

von keras.models importieren Sequentialfrom keras.layers importieren Dense,Flatten,Conv2D,MaxPool2D' Modell definiert modell=Sequential(#CNN und Pooling-Layer werden hinzugefügt model.add(Conv2D(32,((5,5),. activation='relu',input_shape=(32,32,3)))))model.add(MaxPool2D(pool_size=(2.2))))model.add(Conv2D(32,(5,5),activation='relu'))model.add(Conv2D(32,(5,5),activation='relu')model.add(MaxPool2D(pool_size)))model.add(Conv2D(32,5,5),activation='relu')model.add(MaxPool2D(pool_size)))model.add(Conv2D(32,5,5),activation='relu')model.add(MaxPool2D(pool_size)))model.add(MaxPool2D(pool_size)))model.add(MaxPool2D(pool_size))model.add(MaxPool2D(pool_size))model.add(MaxPool2D(pool_size))model.add 2.2))))#Flatten-Schicht wird model.add(Flatten( )model.add(Dense(1000,activation='relu'relu'relu' ) model.add(Dense(10,activation='softmax') ) )' 10 neuronale Knoten wurden gehowt, weil es 10 Labels compile.compile.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])

Modellzusammenfassung

Messen und Visualisieren des Modellerfolgs

Erfolgsquote mit 150 Epochen

Erfolgs- und Verlustwerte

Prognose-Einbau des Modells

Ein Modul mit dem Namen IageClassifiar() wurde erstellt. Das Modell wurde durch Hochladen von Bildern über den internen Speicher vorhergesagt.

Aufzeichnen des trainierten Modells

model.save('model_1.h5')

Wiederverwenden des vorgefertigten Modells

von keras.models importieren load_modelmodel=load_model('model_1.h5')



Diesen Artikel teilen


Kommentare (0)

Kommentar