Erkennen der Nutzung von Gewerbe-/Industrie-/Einzelhandels-/Wohngebäuden mit Satellitenbilderkennung | von Taras Skavinskyy | Mai 2023

0
32


Wir haben jedes der oben beschriebenen CNN-Modelle ausprobiert. Die endgültige Struktur des CNN-Modells ist in Tabelle E oben beschrieben.

Modellstruktur

## Mannequin Construction
batch_size = 20
num_classes = 5
epochs = 20

mannequin = Sequential()

mannequin.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='similar', input_shape=input_shape))
mannequin.add(Conv2D(32, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='similar'))

mannequin.add(MaxPooling2D((2, 2)))

mannequin.add(Dropout(0.3))
mannequin.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='similar'))
mannequin.add(Conv2D(64, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='similar'))
mannequin.add(MaxPooling2D((2, 2)))
mannequin.add(Dropout(0.3))
mannequin.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='similar'))
mannequin.add(Conv2D(128, (3, 3), activation='relu', kernel_initializer='he_uniform', padding='similar'))
mannequin.add(MaxPooling2D((2, 2)))
mannequin.add(Dropout(0.25))

mannequin.add(Flatten())
mannequin.add(Dense(28, activation='relu', kernel_initializer='he_uniform'))
##mannequin.add(Dense(5, activation='sigmoid'))

mannequin.add(Dense(num_classes, activation='sigmoid'))

# compile mannequin

mannequin.compile(loss=keras.losses.binary_crossentropy,
optimizer=keras.optimizers.Adadelta(),
metrics=['accuracy'])
mannequin.abstract()

# match mannequin
historical past = mannequin.match(x_train_rot, y_train_rot,
batch_size=batch_size,
epochs=epochs,
verbose=1,
validation_data=(x_test, y_test))

CCN-Struktur
Die Ausgabe der letzten Epochen

Wir haben eine Funktion erstellt, um den Modus mit mehreren Parametern auszuwerten

def model_eval():
rating = mannequin.consider(x_test, y_test, verbose=0)
print('Take a look at loss:', rating[0])
print('Take a look at accuracy:', rating[1])
plt.determine(figsize=[8,6])
plt.plot(historical past.historical past['loss'],'r',linewidth=3.0)
plt.plot(historical past.historical past['val_loss'],'b',linewidth=3.0)
plt.legend(['Training loss', 'Validation Loss'],fontsize=18)
plt.xlabel('Epochs ',fontsize=16)
plt.ylabel('Loss',fontsize=16)
plt.title('Loss Curves',fontsize=16)
# Accuracy Curves
plt.determine(figsize=[8,6])
plt.plot(historical past.historical past['acc'],'r',linewidth=3.0)
plt.plot(historical past.historical past['val_acc'],'b',linewidth=3.0)
plt.legend(['Training Accuracy', 'Validation Accuracy'],fontsize=18)
plt.xlabel('Epochs ',fontsize=16)
plt.ylabel('Accuracy',fontsize=16)
plt.title('Accuracy Curves',fontsize=16)
predicted_classes = mannequin.predict_classes(x_test)
y_test_list=[]
for i in vary(len(y_test)):
if ((y_test[i][0])==1):
y_test_list.append(1)
if ((y_test[i][1])==1):
y_test_list.append(2)
if ((y_test[i][2])==1):
y_test_list.append(3)
if ((y_test[i][3])==1):
y_test_list.append(4)
if ((y_test[i][4])==1):
y_test_list.append(5)
from sklearn.metrics import confusion_matrix
confusion_matrix(y_test_list,predicted_classes)
### bought from https://pandas-ml.readthedocs.io/en/newest/conf_mat.html
predicted_classes = mannequin.predict_classes(x_test)
y_test_list=[]
for i in vary(len(y_test)):
if ((y_test[i][0])==1):
y_test_list.append("residences")
if ((y_test[i][1])==1):
y_test_list.append("business")
if ((y_test[i][2])==1):
y_test_list.append("home")
if ((y_test[i][3])==1):
y_test_list.append("industrial")
if ((y_test[i][4])==1):
y_test_list.append("retail")
##from sklearn.metrics import confusion_matrix
##confusion_matrix(y_test_list,predicted_classes)
predicted_classes_list=[]
for label in predicted_classes:
if (label==0):
predicted_classes_list.append("residences")
if (label==1):
predicted_classes_list.append("business")
if (label==2):
predicted_classes_list.append("home")
if (label==3):
predicted_classes_list.append("industrial")
if (label==4):
predicted_classes_list.append("retail")
confusion_matrix = ConfusionMatrix(y_test_list,predicted_classes_list)
print("Confusion matrix:npercents" % confusion_matrix)
##confusion_matrix.plot()
##confusion_matrix.print_stats()
## Consider mannequin
model_eval()

Das CNN-Modell „Gebäudenutzung“ ermöglicht es Entscheidungsträgern im Gewerbeimmobilienbereich, Gebäude anhand von Satellitenbildern der Adresse in Wohnungen, Gewerbeimmobilien, Häuser, Industriegebäude oder Einzelhandelsgeschäfte zu klassifizieren. Die allgemeine Vorhersagegenauigkeit dieses Modells beträgt 87 % für den Holdout-Satz.

Das Modell wurde anhand von 5.283 Bildern trainiert. Wir haben für unsere Daten ein Upsampling durchgeführt, sodass jede Klasse der abhängigen Variablen eine relativ gleiche Verteilung aufweist. Das Zug- und Testverhältnis betrug bei diesem Modell 70:30. Die Daten wurden mit drei Rotationen jedes Bildes erweitert, um die Trainingsgröße im Modell zu erhöhen. Wir haben jedes der oben beschriebenen CNN-Modelle ausprobiert. Die endgültige Struktur des CNN-Modells ist in Tabelle E oben beschrieben.

Die Klassifizierungsverwirrungsmatrix in Tabelle B1 beschreibt die Leistung des Modells weiter und zeigt, dass wir für alle Klassen eine hohe Genauigkeit vorhersagen können. Wenn wir beispielsweise einen Satz von 1.585 Adressen erhielten, die 325 Gebäude mit industrieller Nutzung enthielten, hat das Modell 231 davon korrekt vorhergesagt. Um ein tieferes Verständnis der Modellqualität zu erhalten, zeigt Diagramm 1 die Zunahme der Trainings- und Validierungsgenauigkeit des Modells mit jeder Epoche.

Diagramm 1. Modellgenauigkeit

Wir können Gebäudemerkmale anhand von Satellitenbildern mit angemessener Genauigkeit identifizieren. Diese Deep-Studying-Techniken können menschliche Standortuntersuchungen ersetzen, um Gebäudemerkmale für die Entscheidungsfindung und Analyse von Gewerbeimmobilien zu klassifizieren, zu messen und zu identifizieren. Einschränkungen der Geokodierung und veraltete Bilder führen zu einer erheblichen Verrauschung der Daten, die außerhalb des Geltungsbereichs der Modelle liegt. Wenn Sie den Modellen mehr Beispiele zeigen, können Sie die Genauigkeit verbessern und sie verallgemeinern.

Fortgeschrittenere, spezialisierte Bilderkennungsalgorithmen erreichen häufig eine Genauigkeit von über 95 %, so dass unsere Vorhersagegenauigkeit mit etwa 85 % unter dieser Marke liegt. Die Ergebnisse der von uns erstellten Modelle sind bei der Identifizierung dieser spezifischen Gebäudemerkmale quick so intestine wie einige der allgemeineren Algorithmen.

Dieses Modell kann persönliche Besuche vor Ort ersetzen, um Gebäudemerkmale in der Vorphase der Immobilienauswahl zu identifizieren und so Unternehmen Zeit und Ressourcen sparen. Immobilienentscheider können die Ergebnisse dieses Algorithmus nutzen, um gewünschte Gebäude schnell zu filtern und zu finden. Die Identifizierung dieser Gebäudemerkmale kann als Enter zur Verbesserung anderer Analyseprojekte verwendet werden.

In unserem anderen Artikeldiskutieren wir weitere ähnliche Modellimplementierungen und weiter Geschäftswert dieser KI-Algorithmen



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here