Welche Unterteilung von Lernsystemen gibt es?
“klassisches “ Machine Learning
überwachtes Lernen kNN, SVM (Klassifikationen)
Die Eingabe des Netzwerks während des Trainings sind ein Satz von Merkmalsvektoren (feature vector) ->xi und die zugehörige Klasse yi (Label).
Ziel: Durch das Training wird ein Modell entwickelt, das einen Merkmalsvektor einer unbekannten Klasse seiner Klasse richtig zuordnet.
unüberwachtes Lernen, KMeans-Clustering, Bag of Features)
Die Eingabe des Netzwerks während des Trainings ist ein Satz von Merkmalsvektoren (feature vector) ->xi OHNE die zugehörige Klasse yi (Label).
Ziel: Beispiel Erkennung von Ausreißern: Ausgabe einer Zahl, die die Abweichung von einem typischen Eingabevektor angibt.
bestärkendes Lernen
Deep Learning
CNN
Was ist Overfitting was Underfitting?
Overfitting:
Durch zu viele Testdaten wird zu genaue Kurve erzeugt und der eigentliche Blaue Punkt wird falsch zugeordnet
Underfitting:
Durch gerade können die Testdaten nicht genau eingegrenzt werden und neue Punkte werden falsch detektiert.
Passender wäre eine Kurve
8Wie ist der ML Workflow bei Überwachtem Lernen aufgebaut? (Pipeline)
Daten vorbereiten
Vorverarbeitung
Label erstellen
Bildvorverarbeitung
Augmentieren
Aufteilen in Trainings- und Testdatensatz
Erstellen von geeigneten Features
Manuell berechnen
Automatisiert berechnen
Training des Modells
Modell auswählen
Wahl der Hyperparameter
Hyperparameter anpassen (KNN -> Größe der Nachbarschaft, Nächster Nachbar über Winkel oder Vektoren bestimmen, Werte, die vor dem Lernen festgelegt werden müssen)
Hyperparameter -> z.B. Fine KNN (1 Nachbar), Medium KNN (10 Nachbarn), …[Optimal] - Parameter -> werden beim Training des Modells gelernt
Training
Evaluierung des Modells
Messung geeigneter Kennwerte der Klassifikationsleitung (Trai-
ningsdaten und Testdaten)
Was macht SVM (Support Vector Machine)?
Bestimmt w und b Parameter (Bestimmen Gerade)
Bestimmt eine Gerade welche am Besten (mit gleichem und maximalem Abstand) zwischen den Datenmengen liegt.
Mit welchen 3 Datenmengen arbeitet man?
Trainingsmenge: Daten, die zum Trainieren eines Modells verwendet werden
Validierungsmenge: Ein Teil der Trainingsdaten wird während des Trainings zur Validierung des Modells verwendet
Testmenge: Testdaten werden nicht zum Training verwendet und dienen der Evaluation des Modells nach Abschluss des Trainings
Was ist eine Hyperebene?
Eine Hyperebene ist in der Mathematik eine Veralgemeinerung eines Begriffs der Ebene vom Anschauungsraum auf Räume beliebiger Dimension.
Was meinen folgende Begriffe:
scatter plot
max recall
misclassification loss
scatter plot:
Streudiagramm zur Klassifizierung mit Gerade (SVM / …)
zeigt positive und negative Verteilung
max recall:
Mehr FP, sodass wir mehr Präzesion in unserer Detektierung haben (Beispiel Betonrisse erkennen)
misclassification loss:
Falsch erkannte Bilder. Kann mehrere Gründe haben:
Datensatz zu klein
Zu wenig lernepochen
Gewichtungen anpassen
usw.
Überwachtes Lernen
Klassifizierung:
kNN: k-NearestNeighbors-Algorithmus
vs
SVM: Support Vector Machine
Instance based learning: KNN
Instanzbasierter Algorithmus, der die nächsten Nachbarn (aus dem Trainingsdatensatz) eines neu eingegebenen Feature-Vektors im Raum der Feature-Vektoren betrachtet und die Klassifikation danach vornimmt, welcher Klasse die meisten der benachbarten Vektoren angehören
Modellparameter: es werden keine Modellparameter gelernt
Hyperparameter: Art der Abstandbestimmung (euklidischer Abstand oder Winkelabstand), Anzahl k der betrachteten Nachbarn. Wählt man k zu klein, dann kommt es bei verrauschten Daten zu Fehlklassifikationen, wählt man k zu groß, so können Strukturen in den Daten verloren gehen, siehe die folgende Abbildung zur Veranschaulichung
Voreinstellung in MatLab:
”Optimizable kNN”:
Model based learning: SVM
Modellbasierter Algorithmus, der eine Trennlinie zwischen den Klassen im Feature-Raum so zieht, dass der Abstand zwischen der Trennlinie und dem am nächsten zur Trennlinie gelegenen Datenpunkt maximiert wird, siehe Veranschaulichung in der folgenden Abbildung.
Als Modellparameter werden die Parameter der passenden Geraden gelernt.
Zwei Probleme gilt es in der Anwendung zu lösen.
Der Algorithmus muss modifiziert werden, wenn die Daten sich durch eine lineare Funktion trennen lassen, aber verrauscht sind. Dann lässt man zu, dass sich Datenpunkte in der ’leeren’ Zone um die Trennlinie befinden. Wie hoch man diese Datenpunkte in der Kostenfunktion einrechnet, ist dann ein weiterer Hyperparameter, der optimiert werden muss.
Das zweite Problem sind Daten, die sich grundsätzlich nicht durch eine lineare Funktion trennen lassen. Hier verwendet man eine geeignete Abbildung der Originaldaten in einen oft in der Dimension erweiterten Raum, so dass sich die Daten besser separieren lassen
Wie funktioniert die Confusion Matrix (Wahrheitsmatrix)?
Vorhersage:
Accuracy: (TP+TN)/(TP+TN+FP+FN)
Recall: TP/(TP+FN) -> alle Risse erkennen: Recall vergrößern (Wahrscheinlich mehr FP)
Precision: TP/(TP+FP) -> Auf Recall oder Precision gehen
Wie werden neue Bilder Klassifiziert?
trainedClassifier wird abgespeichert und in einem neuen Programm geladen
Neue Bilder werden ohne Label in einem Ordner gespeichert
Neue Bilder laufen durch eine Schleife, wo Helligkeit und Standardabweichung von jedem Bild erstellt wird
Neue Featuretabelle wird berechnet
Prediction von der Featuretabelle wird ausgegeben
Bildklassifizierung mithilfe von CNNs in Matlab
Wie sehen die verschiedenen Pipelines aus:
Traditional vision pipeline
Classic machine learning pipeline
Deep learning pipeline
Deep learning:
Datensatz anfertigen
Evaluieren
Klassifizieren
Wie sind Convolutional Neural Networks (CNN) allgemein aufgebaut?
Deep Networks
Untersuchung der Schichten in GoogLeNet
Wie jedes CNN wird GoogLeNet in MATLAB als ein Array von Schichten dargestellt. Von besonderem Interesse sind das erste und das letzte Element dieses Arrays, die jeweils die Eingabe- und die Ausgabeschicht darstellen
| Feature Extraktion | Klassifikation |
Input Image:
Bild wird als Input genommmen anstatt von Features
Image-> Features:
Convolution (Faltung -> Kanten filtern (Filtermasken werden optimiert (selbstbestimmt) und auf Ergebnis wird das Bias (ein selbstbestimter Wert) addiert),
ReLU (Funktion: wenn wert im Neuron zu klein: passiert nichts, wenn groß genug: wird wert mit faktor (meistens 1) skaliert und weitergegeben),
Pooling (max-filter, maximalster wert wird behalten, sonst zu viele Pixel durch faltung),
Convolution,
ReLU
Features-> Classification:
Fully Connected (1 Zeile in erstes Neuron, 2 Zeile in zweites Neuron,… Flach machen des Bildes (flacher Vektor)), Bias wird mitgelernt (passt sich dem gelernten an), Mithilfe des Gradienten Verfahren wird Gewichtung bestimmt, Letzte Neuronenanzahl (Output layer) = Anzahl Klassen
Softmax (Wandelt Werte aus Neuronen in Wahrscheinlichkeiten um (mathematische Funktion))
Output
Was ist Cross Validation?
Aufteilung der Daten in Prozent: Validierungsdaten, Trainingsdaten
Testen der Leistung eines Vorhersagemodells für Machine Learning
Jedes Teilstück eines Datensatzes wird als Trainingsmodell benutzt, sodass jede Zahl einmal als Validierung (Validierungsdatensatz) genutzt wird. Dann wird der Mittelwert gebildet
einfache/dreifache/zehnfache cross validierung
TTV / TTV, TVT, VTT / TTTTTTTTTV, TTTTTTTTVT, TTTTTTTVTT, usw.
Was meint Back propagation?
Der Backpropagation Algorithmus ist ein Werkzeug zur Verbesserung des Neuronalen Netzwerkes während des Trainingsprozesses. Mit Hilfe dieses Algorithmus werden die Parameter der einzelnen Neuronen so abgeändert, dass die Vorhersage des Modells und der tatsächliche Wert möglichst schnell übereinstimmen. Dadurch kann ein Neuronales Netzwerk auch schon nach einer verhältnismäßig kurzen Trainingszeit gute Ergebnisse liefern.
Jede Schicht in unserem Netzwerk ist definiert durch einen Input, entweder aus der vorangegangenen Layer oder aus dem Trainingsdatensatz, und über einen Output, der an die nächsten Schicht weitergegeben wird. Der Unterschied zwischen Input und Output entsteht durch die Gewichtungen und die Aktivierungsfunktionen der Neuronen.
Das Problematische daran ist, dass der Einfluss den eine Schicht auf den schlussendlichen Fehler hat auch davon abhängig ist, wie die nachfolgende Schicht diesen Fehler weitergibt. Selbst wenn sich ein Neuron „verrechnet“ fällt das nicht so stark ins Gewicht, wenn das Neuron in der nächsten Schicht diesen Input einfach ignoriert, also dessen Gewichtung auf 0 setzt. Dies zeigt sich mathematisch daran, dass der Gradient einer Schicht auch die Parameter der nachfolgenden Schicht enthält. Deshalb müssen wir die Backpropagation in der letzten Schicht, der Ausgabeschicht, beginnen und dann Schicht für Schicht mit dem Gradientenverfahren die Parameter optimieren.
Was ist Transfer Learning?
Nenne ein Beispiel
Sie entwickeln ein tiefes Modell anhand der ursprünglichen großen Datenmenge (Wildtiere).
Sie stellen eine sehr viel kleinere mit Labeln gekennzeichnete Datenmenge für das zweite Modell zusammen (Haustiere).
Sie entfernen die letzte Schicht oder bestimmte Schichten aus dem ersten Modell. Diese Schichten sind für gewöhnlich für die Klassifikation oder Regression verantwortlich und folgen üblicherweise der Embedding-Schicht.
Sie ersetzen die entfernten Schichten durch neue Schichten, die an die neue Aufgabe angepasst sind.
Sie lassen die Parameter der vom ersten Modell stammenden Schichten unverändert (”Einfrieren” der Parameter).
Sie verwenden Ihre kleinere gekennzeichnete Datenmenge und den Gradientenabstieg, um nur die Parameter der neuen Schichten zu trainieren
Beispiel:
Das CNN googlenet wurde mit dem oben beschriebenen Vorgehen nachtrainiert, um Bilder aus dem flowers-Datensatz zu klassifizieren. Der so entstandene Klassifikator wurde unter dem Namen ”flowernet.mat” abgespeichert. Das Programm”flowers transfer” läd den Klassifikator und klassfiziert die Bilder damit.
Training eines CNN
Was versteht man unter einer loss function/ cost function?
Geben Sie ein Beispiel, wie diese Funktion aussehen kann.
Um die Gewichte in einem neuronalen Netzwerk zu optimieren, wird eine Verlustfunktion (loss function oder cost function) definiert.
Beispiel: Die Ausgabe eines Netzwerks zur Bildklassifikation ist ein Vektor ->y, der so viele Komponenten hat, wie es Klassen gibt. Wird ein Bild der Klasse i eingegeben, so ist der Sollvektor ->t, der optimalerweise vom Netzwerk ausgeben wird, ein Vektor, dessen Komponenten Null sind, und nur ti = 1, die i-te Komponente, ist 1. Als Kostenfunktion kann die quadrierte Differenz aus ->t und ->y berechnet werden
Diese Kostenfunktion wird dann durch Anpassen der Gewichte iterativ durch ein Gradientenverfahren minimiert. Die für das Gradientenverfahren benötigten partiellen Ableitungen der Kostenfunktion bezüglich der Gewichte werden mit einem Verfahren namens Backpropagation ermittelt.
loss function/ cost function: 1 Wert, der angibt, wie gut das System das Bild zugeordnet hat
1 2 3 4 5
0 0 1 0 0 (<-Vektor siehe unten)
Schrittweise anpassen der Gewichtungen (Gradientenverfahren) um ein bestmögliches Ergebnis zu bekommen (back propagation)
Was wird beim Training eines CNN angepasst, um die loss function zu minimieren?
Mit welchen Verfahren passiert das?
Gewichtungen optimieren (Verlustfunktion,Gradient Descent, Stochastic Descent), Epochen, Plateaus vermeiden, Bias, Kerne werden angepasst
Bias und Faltungskerne werden angepasst
Gradientenverfahren
Erläutern Sie folgende Begriffe:
Neuron, Gewicht, Bias, Input Layer, Hidden layer, Output Layer, Fully Connected Layer (dense layer), Convolutional Layer, striding, padding, Pooling layer, Max Pooling, Average Pooling, Activation function, ReLU, Softmax
Neuron:
Neuron mit Gewichten, Bias und Aktivierungsfunktion
werden üblicherweise in Schichten (layers) angeordnet
Gewicht:
Das Grundelement eines Netzes, das Neuron (Abb. 1), besitzt mehrere Eingänge (xi) und einen Ausgang (yj ).
Die Eingaben werden mit einem Bias (b) und dem entsprechenden Gewicht (wi) multipliziert und danach aufsummiert.
Im Anschluss wird eine Aktivierungsfunktion darauf angewendet und ausgegeben.
Bias:
Bias wird mitgelernt (passt sich dem gelernten an oder wird selbstbestimmt)
für alle verborgenen Neuronen in einer bestimmten Schicht gleich
Das bedeutet, dass alle verborgenen Neuronen das gleiche Merkmal, z. B. eine Kante oder einen Fleck, in verschiedenen Bildbereichen erkennen. Auf diese Weise ist das Netz tolerant gegenüber der Verlagerung von Objekten in einem Bild. Ein Netz, das beispielsweise auf die Erkennung von Autos trainiert ist, kann diese Aufgabe überall dort erfüllen, wo sich das Auto im Bild befindet.
Input Layer:
Anzahl entspricht Feature Anzahl (zum Beispiel: Helligkeit, Kontrast, …)
Hidden layer:
Verknüpfte Neuronen die zwischen dem Input Layer und Output Layer liegen
Output Layer:
Anzahl entspricht der Klassen die identifiziert werden sollen
Fully Connected Layer (dense layer):
Zusammenfassung aller Layer (Input, Hidden, Output Layer)
Convolutional Layer:
beinhaltet verschiedene Faltungskerne
Aus einem Bild werden mehrere Bilder, eines für jeden angewendeten Faltungskern
Die Aktivierungsfunktion wirkt auf die gefalteten Bilder
Striding:
Mit Faltungskern wird über das Bild gegangen und es wird zum Beispiel nur jede zweite Spalte verwendet (leicht verkleinerte Bilder entstehen)
Ändern der Schrittweite
Padding:
bekannt aus der linearen Filterung
zeigt ein Beispiel für ein Bild mit Padding 2. Padding erweist sich bei größeren Filtern als nützlich, weil es ermöglicht, den Rand eines Bildes besser zu erkennen
Pooling layer:
Pooling verkleinert die Datenmenge
Max Pooling:
Maximalster Wert aus kleiner Matrix wird genommen, um eine kleinere Gesamtmatrix zu bekommen
Pooling mit einem Filter der Größe 2 und Schrittweite 2
Average Pooling:
Das Average Pooling ist eine Pooling-Operation, bei der der Durchschnittswert für Bereiche einer Feature-Map berechnet und zur Erstellung einer verkleinerten (gepoolten) Feature-Map verwendet wird.
Activation function:
schaltet ein Neuron aktiv oder inaktiv, bewährt hat sich die ReLu-Funktion (Rectified Linear Unit)
ReLU:
schaltet ein Neuron aktiv oder inaktiv
Softmax:
Softmax-Funktion wird auf die Ergebnisse des Netzwerks angewendet, und wandelt diese in Wahrscheinlichkeiten für die jeweilige Klasse um.
Beispielanwendung der Softmax-Funktion, obere Reihe: Die Ergebnisse eines Klassifikators, untere Reihe: die Ergebnisse nach Anwendung der Softmax-Funktion
Was versteht man unter Gradient Descent?
Was versteht man unter Stochastic Gradient Descent?
Was versteht man unter Stochastic Gradient Descent with momentum?
Was ist ein ‘mini batch’?
Was bedeutet ‘epoch’?
Gradient Descent:
Anhand einer Steigungstangente, sieht man welche Seite nach oben und welche nach unten geht und läuft weiter Richtung Tal
Gradient zeigt in die Richtung des größten Anstiegs
Optimierungsverfahren, Man nähert sich dem Minimum, indem man die Parameter gemäß der Schrittweite in Richtung des negativen Gradienten (Richtung des steilsten Abstiegs) verändert.
Dies kann man sich anschaulich wie eine blinde Person vorstellen, die auf einem Berg steht, und einen im Tal gelegenen See erreichen möchte
Stochastic Gradient Descent:
Die Anpassung der Gewichte erfolgt nicht erst nach dem Durchlauf des gesamten Trainingsdatensatzes, sondern nach dem Durchlauf eines ’mini batches’, das ist ein Teil der Trainingsdaten
Gradient*Schrittweite
Stochastic gradient descent with momentum:
Bei einer Richtungsänderung wird eine gewisse Trägheit eingebaut. Das bringt den Vorteil, dass ein Plateau der Fehlerfunktion bzgl. eines Gewichts nicht zum Stillstand bei der Suche nach dem Minimum führt. Gleichzeitig darf das ’momentum’ nicht zu groß sein, damit die Suche nicht zu weit über das Minimum hinausläuft.
Gradient*Schrittweite+Gradient vor 5 Schritten, Schwung vom Abstieg mitnehmen um Plateau zu überwinden
Mini Batch:
Unterteilt die Trainingsdatensätze in ungefähr gleich große Gruppen und aktualisiert dann die synaptischen Gewichtungen jeweils nach dem Durchlauf einer Gruppe. Beim Mini-Batch-Training werden also Informationen aus einer Gruppe von Datensätzen verwendet.
Epoch:
bezeichnet einen vollständigen Durchlauf des Trainingsdatensatzes durch den Algorithmus.
Jedes Mal, wenn der Trainingsdatensatz den Algorithmus durchläuft, sagt man, dass er eine „Epoche“ abgeschlossen hat. Dies ist ein Hyperparameter, der den Trainingsprozess des Machine-Learning-Modells bestimmt.
Sie spiegelt die Anzahl der Durchläufe des Algorithmus während der Trainingsphase wider.
Was bedeuten die Matlab Trainings Optionen:
‘InitialLearnRate’: 0.01
‘LearRateSchedule’: piecewise
‘LearnRateDropPeriod’: 5
‘LearnRateDropFactor’: 0.2
‘Momentum’?: 0.9
Shuffle: once
Mini batch size: 64
Max epochs: 20
‘InitialLearnRate’:
Sagen wie weit das Netz gehen soll, um das Minimum zu finden (Anfangsschrittweite), Schrittweite [0.01]
‘LearRateSchedule’:
Plan festlegen wie sich die Lernrate verhalten soll im Laufe des Durchlaufs [piecewise]
‘LearnRateDropPeriod’:
Nach 5 Epochen wird die Schrittweite um 0.2 verkürzt [5]
‘LearnRateDropFactor’:
Schrittweite wird nach einiger Zeit verkürzt [Reduzierung der Schrittweite mit dem Faktor 0.2]
‘Momentum’:
Bei einem Plateau würde mit Gradientenverfahren nichts mehr passieren, mit Momentum wird ein gewisser “Schwung” mitgenommen und man kommt über das Plateau drüber weg [0.9]
‘Shuffle’:
Mischen der Trainingsdaten [once']
‘Mini batch size’:
Unterteilt die Trainingsdatensätze in ungefähr gleich große Gruppen und aktualisiert dann die synaptischen Gewichtungen jeweils nach dem Durchlauf einer Gruppe. Beim Mini-Batch-Training werden also Informationen aus einer Gruppe von Datensätzen verwendet. [64 Bilder = 1 MiniBatch]
‘Max epochs’:
Sie spiegelt die Anzahl der Durchläufe des Algorithmus während der Trainingsphase wider. [20 Epochen, Ist das Abbruchkriterium]
Erläutern Sie den Nutzen der Visualisierung durch CAM und Grad-CAM (Class Activation Mapping)?
Wie funktionieren die Verfahren?
CAM: Class Activation Mapping
Wir wollen Zebras klassifizieren
In letzter Faltungsschicht haben wir 2048 Bilder in der Größe 7x7
Von jedem Bild ein letztes mal Global Average Pooling(GAP) um einen Featurewert zu bekommen
Linearkombination: Bild1*Gewicht1+Bild2*Gewicht2+…
Heraus kommt eine 7x7 Heatmap
Heatmap auf Originalbildgröße skalieren und über das Originalbild legen
Ergebnisse der letzten Faltung -> Pooling um aus jedem Bild einen (Feature)-Wert zu machen -> Werte werden mit Gewichten aufaddiert und zu Klassen verbunden -> Klasse bekommt Wert -> nächste Klasse bekommt die gleichen Werte mit anderen Gewichten -> Klasse kann bestimmt werden -> in trainiertem Netz sind Gewichte fest-> um herrauszufinden wieso das Ergebnis kam wird im Netz zurückgegangen und auf die Gewichte geschaut-> erstes Gewicht *erstes Bild + zweites Gewicht* zweites Bild+…-> da kommt ein Bild raus (wenn Filter ausschlagen leuchtety die Stelle auf)-> dieses wird vergrößert und über das Originalbild gelegt
Nachteil: CAM kann nicht auf Netzwerke angewendet werden, die mehrere vollständig verbundene Schichten (fully connected layers) vor der Ausgabeschicht verwenden.
CAM erstellt eine Art Heat Map bei CNNs, bei denen die Ergebnisse der letzten Faltung gemittelt über eine Softmax-Funktion zur Klassifizierung verwendet werden. Hat die vorletzte Schicht k Feature-Maps A^k vom Format u×v, dann werden diese mithilfe von Global Average Pooling (GAP) gemittelt und linear kombiniert, um eine Punktzahl y^c für jede Klasse c zu erzeugen:
Das Ergebnis des Verfahrens ist eine Karte L^c CAM vom Format R^(u×v) für eine Klasse c. Dazu wird die Linearkombination der k Feature-Maps mit Gewichten w^c k der letzten Schicht gebildet:
Einschränkung des Verfahrens: CAM kann nicht auf Netzwerke angewendet werden, die mehrere vollständig verbundene Schichten (fully connected layers) vor der Ausgabeschicht verwenden.
GradCAM: Gradient-weighted Class Activation Mapping
Bezieht Gradienteninformationen mit ein
Gradient der Loss-Function bestimmt das Gewicht für die Featuremap der letzten Faltungsschicht
Berechnung der Liniarkombination = 1 Heatmapbild
Um eine entsprechende Karte auch für weitere CNN-Architekturen zu erhalten, berechnet man den Gradienten von y^c in Bezug auf Feature-Maps A einer Faltungsschicht, also
Aus der Mittelung dieser Gradienten werden die Gewichte α^c k bestimmt:
Dieser Wert erfasst den Einfluss der Feature-Map k für eine Zielklasse c und ersetzt den Wert w^c k im CAM-Verfahren. Außerdem wird noch eine ReLu- Funktion angewendet:
Praktikum Hund
Was meint Gradient-weighted Class Activation Mapping?
Gradient-weighted Class Activation Mapping ist eine Technik zur Herstellung visueller Erklärungen für CNN. Grad-CAM verwendet die Gradienten-Informationen, die zurück in die letzte Faltenschicht des CNN fließen, um jedem Neuronen Bedeutungswerte für eine bestimmte Interessenentscheidung zuzuweisen (Selvaraju et al. 2020). Grad-CAM wurde beim DCNN-Modell zur Fehlerdiagnose angewendet, um den Schlussfolgerungsprozess transparent zu machen. Mit einem gut ausgebildeten DCNN-Modell erstellt Grad-CAM eine Lokalisierungskarte für eine Eingabematrix, um die Bedeutung verschiedener Neuronen zu zeigen. Dies kann Menschen helfen zu verstehen, auf welche Variablen DCNN bei der Diagnose der Art der Fehler des Prozesses mehr Aufmerksamkeit schenkt. Die Ergebnisse der Experimente zum TE-Prozess zeigen, dass das DCNN-Modell den empfindlichen Variablen mehr Aufmerksamkeit schenkt, die sich intensiv mit Störungen, aber nicht mit Störvariablen selbst verändern. Wenn sich alle Variablen nur nach Fehlern leicht ändern, wird es für DCNN schwierig sein, die Art von Fehler zu identifizieren. In diesem Fall haben die Lokalisierungskarten nur geringe Farbunterschiede in verschiedenen Regionen.
Was meint Augmentieren?
Bilder werden gespiegelt, gedreht, Helligkeit wird verändert, Kontrast wird verändert, usw. um einen Datensatz aus einem ursprünglichen Bild zu bekommen.
CNN zur Feature-Extraktion
Man kann die Features aus einem vortrainierten CNN verwenden, um einen Klassifikator zu trainieren, der kein NN ist, zum Beispiel einen SVM-Klassifikator. Der Vorteil ist das schnellere Anlernen des Klassifikators.
Modellparameter
Hyperparameter
Modellbasiertes Lernen
Instanzbasiertes Lernen
Nenne ein Beispiel für Deep Learning vs Klassische ML
Modellparameter: Diese Parameter werden während des Trainings ’gelernt’, also optimiert. Bei k-nn gibt es keine. Bei SVM Steigung und Lage der Gerade.
Hyperparameter: Diese Parameter werden vor dem Training festlegt und gehören zur Auswahl des geeigneten Modells. Bei kNN wie viele Nachbarn genommen werden (Anzahl k). Bei SVM welche Funktion genommen wird (x-Dimension/ Kernel Function Beispiel Gauß-Kurve, S-linie,…) (Darstellung)
Modellbasiertes Lernen: Aus dem Training resultiert ein Modell mit erlernten Parametern, das zur Klassifizierung neuer Daten verwendet wird. Die Trainingsdaten werden zur Klassifizierung neuer Daten nicht mehr benötigt. Beispiel: SVM
Instanzbasiertes Lernen: Die Trainingsdatenmenge dient als Modell. Beispiel: KNN
Deep Learning:
Katzen unterscheiden
Sehr aufwändig und Fehleranfällig (Beispiel Verkehrschild wird als Baum erkannt oder anders herum)
Klassisches ML (SVM/ kNN):
Platine ob Bauteil vorhanden ist oder nicht
Was meint Ground truth?
(Datensatz der Trainingsdaten)
Sind die Trainingsdaten mit Labeln
Beipiel: Man hat händisch Lungen gelabelt und das Netz soll jetzt herrausfinden nach welchen Kriterien es die Lunge finden muss
Praktikum
Wie funktioniert Object Detection (Yolo)?
Ein zentrales Ziel von YOLO ist die Echtzeit-Objekterkennung. Aufgrund seiner Eigenschaften als One-Stage Object Detector wird für den gesamten Prozess der Objekterkennung lediglich ein neuronales Netz verwendet, das pro Bild durchlaufen wird - das Bild wird dabei nur einmal betrachtet (You Only Look Once)
Beispiel Autos
YOLO teilt das Bild zunächst in ein Raster ein. Der Einfachheit halber nehmen wir in diesem Beispiel ein Raster mit 4 x 4 Zellen.
Jede Rasterzelle überprüft, ob sie ein Objekt (oder einen Teil davon) enthält und um welche Objektklasse es sich handelt. Ist ein Objekt vorhanden, zeichnet die Zelle zwei mögliche Begrenzungsrahmen darum.
Zum Schluss werden die Begrenzungsrahmen auf einen pro Objekt reduziert. Übrig bleiben nur diejenigen, von denen das Modell glaubt, dass sie das Objekt am besten eingrenzen.
Jede Zelle muss entscheiden, ob sie ein Objekt enthält oder nicht, aber sehr kleine Objekte werden womöglich als Teil des Hintergrunds wahrgenommen und daher nicht als solche erkannt.
Jede Zelle kann außerdem nur eine geringe Anzahl an Objekten umfassen. Befinden sich mehrere Objekte nah beieinander, erkennt YOLO daher mitunter nur eines davon.
Ablauf:
Konfigurieren Sie einen Datensatz zum Trainieren, Validieren und Testen des YOLO v4-Objekterkennungsnetzwerks. Sie führen außerdem eine Datenerweiterung des Trainingsdatensatzes durch, um die Netzwerkeffizienz zu verbessern.
Berechnen Sie Ankerboxen aus den Trainingsdaten, um sie zum Training des YOLO v4-Objekterkennungsnetzwerks zu verwenden.
Erstellen Sie einen YOLO v4-Objektdetektor mit der Funktion yolov4ObjectDetector und trainieren Sie den Detektor mit der Funktion trainYOLOv4ObjectDetector.
Vorbereitung: Bilder und Boxen werden in zwei verschiedenen Ordnern gespeichert. Boxen werden in dem Array [linke obere Ecke x, linkere obere Ecke y, Länge x, Höhe y] gespeichert. Bilder werden “random” in Trainings-, Test- und Validierungsdaten in Ordnern mit einer gewissen Prozentzahl gespeichert. Passende Boxen werden in die jeweiligen Ordner geladen.
Training:
Daten von Box, Prozentzahl, Klasse
256 3x3x512 - 256 verschiedene Gewichtungen auf 512 Bilder, 3x3 Convolution Matrix, 512 Bilder in Tiefe auf die die Convolution angewendet wird (Endergebnis 256 modifizierte Bilder)
64 1x1x512 - 64 verschiedene Gewichtungen auf 512 Bilder (Endergebnis 64 modifizierte Bilder), 1x1 Convolution Matrix, 512 Bilder in Tiefe, pro Tiefe andere Gewichtung
First Detection Head ist halb so groß wie Second Head, Second Head kann besser kleine Objekte erkennen
matlab anchor boxes for object detection (erklärung für boxen)
Evaluierung:
Bewerten Sie den trainierten Objektdetektor anhand einer großen Anzahl von Bildern, um die Leistung zu messen. Verwenden Sie in diesem Beispiel die Metrik „average precision“, um die Leistung zu bewerten. Die durchschnittliche Präzision stellt eine einzelne Zahl dar, die die Fähigkeit des Detektors, korrekte Klassifizierungen vorzunehmen (Precision) und die Fähigkeit des Detektors, alle relevanten Objekte zu finden (Recall) berücksichtigt.
Was ist der Unterschied zwischen SIFT und SURF?
Was ist ein klassischer Anwendungsbereich?
Skaleninvariante Bildmerkmale (Scale Invariant Feature Transform/ SIFT) Burger und Burge Buch
SURF (Speeded-Up Robust Features) ist anders umgesetzter SIFT
Was ist der klassische Anwendungsbereich von SIFT:
Objekterkennung
Feature Matching
Feature Vektoren im Vektorraum, wo liegen die nah aneinander
Bsp Schachtel/ Elefanten im Bild erkennen (SURF, anders umgesetzter SIFT)
Bildklassifizierung
keine Objektpunkte detektieren sondern über Bag of Features klassifizieren
Geometrische Transformation
Kameramann letztes Semester
Merkmalsübereinstimmungen, kein Neuronales Netz
Ziel: Erst Detektion von Schlüsselpunkten (key), dann Zuweisung von Merkmals-Vektoren zu den Schlüsselpunkten. Die Merkmalsvektoren sollen unabhängig von der Skalierung und der Rotation des Bildes sein.
Was meint Bildregistrierung?
Multimodale Bildregistrierung (CT-Bilder mit MRT-Bildern kombinieren)
Bildregistrierung (auch Bildfusion) ist ein wichtiger Prozess in der digitalen Bildverarbeitung und wird dazu benutzt, zwei oder mehrere Bilder derselben Szene, oder zumindest ähnlicher Szenen, bestmöglich in Übereinstimmung miteinander zu bringen.
Registrierungsverfahren lassen sich in zwei Kategorien einordnen, die merkmalsbasierten und die flächenbasierten Verfahren. Bei den flächenbasierten Verfahren wird die Registrierung direkt mit den Intensitätswerten durchgeführt, es müssen keine Merkmale extrahiert werden.
Merkmalsextraktion:
Regionen: Als Regionenmerkmale eignen sich Flächen im Bild, die sich von den sie umgebenden Flächen deutlich abheben. Dies können in Satellitenbildern z. B. Seen sein. Regionen werden meist durch ihren Schwerpunkt repräsentiert und können durch Segmentierungsverfahren detektiert werden.
Linien: Linien oder Kanten können im Bild als Konturen von Regionen oder eben als Linien selbst vorhanden sein. Sie können durch die Paare ihrer Endpunkte oder ihren Mittelpunkt repräsentiert und mittels Kantendetektion extrahiert werden.
Punkte: Punkte können im Bild als Schnittpunkte von Linien oder Ecken von Konturen gegeben sein. Sie können durch Eckendetektoren extrahiert werden.
Dieses Beispiel zeigt, wie Sie eine 3D-Segmentierung mithilfe aktiver Konturen (Schlangen) durchführen und die Ergebnisse mit der Volume Viewer-App anzeigen
Aufbau:
Bereiten Sie die Daten vor
Segmentieren Sie die Lunge
Erstellen Sie eine Saatmaske und segmentieren Sie die Lunge mit activecontour
Berechnen Sie das Volumen der segmentierten Lunge
SIFT Allgemeine Erklärung
SIFT
Helle Objekte bei Dunklem Hintergrund -> Dunkel
Dunkle Objekte bei Hellem Hintergrund -> Hell
Beste Features werden ausgewählt (Burger, Burge Buch):
Das Ziel ist die Lokalisierung von „interessanten“ Bildpunkten, und zwar zuverlässig und resistent gegenüber typischen Bildtransformationen auch über mehrere Bilder oder ganze Bildfolgen hinweg. SIFT verwendet das Konzept des „Skalenraums“ (scale space), um Bildereignisse über mehrere Skalenebenen hinweg bzw. bei unterschiedlichen Bildauflösungen zu lokalisieren, was nicht nur die Zahl der verfügbaren Features vergrößert, sondern die Methode auch resistent gegenüber Größenänderungen macht. Dadurch ist es beispielsweise möglich, ein Objekt zu verfolgen, das sich auf die Kamera zubewegt und dabei seine Größe kontinuierlich ändert, oder in einer Stitching-Anwendung Bilder mit unterschiedlichen Zoom-Einstellungen in Übereinstimmung zu bringen.
Rotations und Validerungsinvariant
Was sind SIFT Features?
Wo werden sie eingesetzt?
Keypoint detektieren
Faltungskern gibt Größe des Objektes
Wenn Auge im Bild nicht erkannt wird, wird ein Größererer Faltungskern genutzt bis das Objekt erkannt wird
Muss in kleinem und großem Bild erkannt werden
Dann werden die Beiden Bilder skaliert auf die gleiche Größe
Rotationsinvarianz schaffen durch Gradientenhistogramm
Gradient = Ein Vektor der senkrecht auf Höhenlinien steht
Gradient zeigt richtung Aufstieg (hell im Bild)
Helligkeitsunterschiede werden bestimmt (lineares Filter geht über das Bild und daraus kann man den Gradienten bestimmen, Sobel Filter)
Orientierung des Bildes sieht man dadurch
Dann können Bilder in die gleiche Position gedreht werden (Vorzugsrichtung). Rotations- und Skalierungsinvarianz ist gegeben
Berechnung des Feature-Deskriptors
Bildgradienten werden berechnet
diese werden in 8 Richtungen zusammengefasst (in Orientierungshistogramm)
4Descriptoren x 8Vektoren = 32 x4 = 128
Vektor mit 128 Einträgen
3 Feature Vektoren für 2 Keypoints (zwei Orientierungen gefunden die beide markant sind deswegen 2 Feature Vektoren bei einem Keypoint)
Bei Verzerrung des Bildes, sind die Features anders
Was hat man davon?
Wie funktioniert Klassifizierung mit Bag of Features (Bag of Visual words)?
Ziel: ähnliche Bilder finden, Durchführung von Ortserkennungsaufgaben (Klassifikation)
Verfahren zur Klassifikation mithilfe von Features, z.B. den SIFT-Features, verwendet man ein Verfahren namens Bag of Features (auch Bag of Words).
Analogie: Dokumentenvergleich
1. Wörterbuch erstellen
Man kategorisiert die Bilder und erstellt Feature-Deskriptoren (Schlüsselpunkte detektieren oder Grid vorgeben). Man clustert die Feature-Vektoren (k-means Clustering) und definiert den Cluster-Schwerpunkt als visuelles Wort, also einen Eintrag im ”Wörterbuch”.
2. Histogramm erstellen (Anzahl des Vorkommens gegen alle Wörter aus dem Wörterbuch meistens mit k-means)
Veranschaulichung aus der genannten Matlab-Dokumentation
Man detektiert die Feature-Vektoren eines zu klassifizierenden Bilds und bestimmt jeweils den nächstgelegenen Vektor aus dem ’Wörterbuch’. Man zählt die Anzahl der visuellen Wörter und erstellt so ein Histogramm.
3. Histogramm als Vektor schreiben
Man interpretiert das Histogramm als Feature-Vektor, der wiederum als Eingangsgröße eines Klassifikationsalgorithmus verwendet wird (z.B. SVM, kNN).
4. Ähnlichkeitsmaß berechnen (hier: Winkel-basiert)
Dieses Beispiel zeigt, wie ein Ansatz mit vielen Funktionen für die Klassifizierung von Bildkategorien verwendet wird. Diese Technik wird oft auch als Bag of Words bezeichnet. Bei der visuellen Bildkategorisierung handelt es sich um einen Prozess, bei dem einem zu testenden Bild eine Kategoriebezeichnung zugewiesen wird. Kategorien können Bilder enthalten, die praktisch alles darstellen, zum Beispiel Hunde, Katzen, Züge, Boote.
Praktikum 1.1 Datensatz Beton, Klassifizierung Riss / kein Riss
- Klassifizierung mit kNN
- Klassifizierung mit SVM
- Veränderung der Kostenfunktion zur Optimierung des Recall
Klassifizierung mit kNN
Neuronales Netz wird trainiert mithändisch vorgegebenen Labeln. Dauert lange
Klassifizierung mit SVM
Fertig trainiertes Netz wird genutzt, wo die letze/letzten Schichten auf eigenen Fall geändert werden, danach SVM zur Klassifizierung. Geht schneller als KNN
Veränderung der Kostenfunktion zur Optimierung des Recall
Wenn Recall vergrößert wird, bekommt man mehr FP. Dadurch mehr Kosten
Was sind Beispiele zur Bildklassifizierung mit einem vortrainierten CNN?
Das Programm ”googlenet_webcam_class.mlx” klassifiziert Bilder einer Webcam mit dem trainierten CNN googlenet.
Das Programm ”Einzelbild_gnet.mlx” klassifiziert einzelne Bilder mit dem trainierten CNN googlenet. Außerdem Ansicht der Schichten, des Eingabeformats der Kategorien und der scores.
Wie in dem oben genannten Kurs von Matlab beschrieben, können Sie unter http: //download. tensorflow. org/ example£_ £images/ flower£_ £photos. tgz einen Satz Fotos von Blumen herunterladen. Das Programm ”Flowers googlenet.mlx” klassifiziert Bilder aus diesem Datensatz mit dem trainierten CNN googlenet, was nicht sinnvoll ist und erwartungsgemäß nicht funktioniert.
Praktikum 3.1 Verwenden Sie Transfer Learning zur Klassifizierung der Betonbilder.
Verwenden Sie die Vorlage ”train flowers.mlx” und das Beispiel unter
https://de.mathworks.com/matlabcentral/fileexchange/75418-classify-crack-image-using-deep-learning-and-explain-why
um eine Klassifizierung der Betonbilder mithilfe des Squeezenet-CNNs zu erreichen.
Transfer Learning = KNN mit Classifier (zum Beispiel SVM)
Wie überprüft man das richtige Arbeiten eines CNN?
Um das richtige Arbeiten eines CNN zu überprüfen, ist es üblich, diejenigen Bildbereiche darzustellen, die den größten Einfluss auf das Klassifikationsergebnis haben.
Bekannte Verfahren sind CAM und GradCAM,
Segmentierung für 3D Bilder:
ActiveContour
Anwendungsbeispiel: Segmentierung von 3D Daten in der Medizin (Bildgebendes Verfahren in der Medizin, Olaf Dössel)
Für semantic segmentation fehlen genug trainigsdaten
Bei der Segmentierung geht es darum, Grenzflächen zwischen unterschiedlichen Gewebearten in den Bildern automatisch zu finden. Auch diese Aufgabe ist inzwischen ein sehr weites Feld mit vielen unterschiedlichen Lösungsmöglichkeiten, dass es hier nur kurz gestreift werden kann. Die einfachste Methode zur Segmentierung ist das “Schwellwert Verfahren”, bei dem alle Pixel, deren Grauwerte sich in einem vorgegebenen Bereich befinden, zu einem Gebiet zusammengefasst werden. Rauschen und Abbildungsfehler führen leider dazu, dass bei diesem Verfahren eine große Zahl von falsch segmentierten Gebieten entstehen. Nur Knochen in Röntgenbildern zeigen einen von der Umgebung so unterschiedlichen Grauwert, dass sie mit dem Schwellwertverfahren gut gefunden werden können.
Ein besonders wichtiges Verfahren ist das Regionen-Wachstum. Hierbei wird ein Saatpunkt in ein zu segmentierendes Gebiet gesetzt. Dann wird für alle Nachbarn des Saatpunktes geprüft, ob die Grauwerte einen vorgegebenen Schwellenwert überschreiten oder nicht. Bleibt der Grauwert unter (bzw. über) der Schwelle, wird das Pixel zur Region hinzugeschlagen. Dann werden alle neuen Nachbarn der Region genauso behandelt wie oben. Das Verfahren wird solange fortgesetzt, bis alle Nachbarn entweder außerhalb vom Bildrand oder außerhalb der Grauwertschwelle liegen. So können einfach zusammenhängende Gebiete gefunden werden.
Problematisch ist, dass durch Rauschen oder Artefakte Grauwerte an einzelnen Randpunkten des gesuchten Gebietes zu niedrig liegen können und das “region growing” dort “ausläuft”. Die Bilder müssen vor der Segmentierung oft zur Rauschunterdrückung mit einem Gaußfilter geglättet werden. Dies führt aber dazu, dass auch die gesuchten Kanten nicht mehr so genau lokalisiert werden können.
Ein weiteres Segmentierungsverfahren arbeitet mit sog. “aktiven Konturen”. Bei 2D-Bildern spricht man auch von ”snakes”. Das sind vereinfacht ausgedrückt, Gummibänder, die so durch das Graustufengebirge des Gradientenbildes gelegt werden, dass ein Energieminimum erreicht wird. Bei 3D Bildern geht man entsprechend von verformbaren Gummiballons aus, die sich in die Kanten des zu segmentierenden Datensatzes einschmiegen. So können besonders zusammenhängende Gebiete gut segmentiert werden, auch wenn im Original-Datensatz kurze Abschnitte der Berandung nicht gut zu erkennen sind. Natürlich können alle die genannten Segmentierungsverfahrenn auch auf beliebig vorverarbeitete Daten angewendet werden. Dann gehen in die Entscheidung, ob z.B. beim Regionen-Wachstum ein Pixel zum Gebiet hinzugerechnet werden soll, auch die Grauwerte in der Nachbarschaft, die Textur oder das Histogramm über die Grauwerte der Nachbarvoxel mit ein.
Beispiel Coins: SegmentImageUsingActiveContourExample
Ziel: Konturen finden
1.Methode: edge method
Startkontur wird nach bestimmten Verfahren vorgegeben
schmiegt sich um Konturen herum an
2.Methode:
Kontur vorgeben
Kontur schrumpft um Konturen herum
Wikipedia:
Energy formulation
A simple elastic snake is defined by a set of n points v i for i = 0 , … , n − 1 , the internal elastic energy term E internal , and the external edge-based energy term E external . The purpose of the internal energy term is to control the deformations made to the snake, and the purpose of the external energy term is to control the fitting of the contour onto the image. The external energy is usually a combination of the forces due to the image itself E image and the constraint forces introduced by the user E con
The energy function of the snake is the sum of its external energy and internal energy, or
Internal energy
The internal energy of the snake is composed of the continuity of the contour Econt and the smoothness of the contour Ecurv.
Einternal=Econt+Ecurv
This can be expanded as
where α ( s ) and β ( s ) are user-defined weights; these control the internal energy function's sensitivity to the amount of stretch in the snake and the amount of curvature in the snake, respectively, and thereby control the number of constraints on the shape of the snake.
In practice, a large weight α ( s ) for the continuity term penalizes changes in distances between points in the contour. A large weight β ( s ) for the smoothness term penalizes oscillations in the contour and will cause the contour to act as a thin plate.
Image Energy
Energy in the image is some function of the features of the image. This is one of the most common points of modification in derivative methods. Features in images and images themselves can be processed in many and various ways.
For an image I ( x , y ) , lines, edges, and terminations present in the image, the general formulation of energy due to the image is
where w line, w edge, w term are weights of these salient features. Higher weights indicate that the salient feature will have a larger contribution to the image force.
Line functional:
The line functional is the intensity of the image, which can be represented as
E line = I ( x , y )
The sign of w line will determine whether the line will be attracted to either dark lines or light lines.
Some smoothing or noise reduction may be used on the image, which then the line functional appears as
E line = filter ( I ( x , y ) )
Some systems, including the original snakes implementation, allowed for user interaction to guide the snakes, not only in initial placement but also in their energy terms. Such constraint energy Econ can be used to interactively guide the snakes towards or away from particular features.
Konturen sollen möglichst klein sein
Kurven möglichst
Beispiel: SegmentLungsFrom3DChestScanExample
Ein weiterer Ansatz zur Segmentierung ist der Wasserscheiden-Algorithmus (water-shed-algorithm). Hier fasst man das Graustufenbild als ein Graustufengebirge auf und füllt es von unten her mit Wasser, zB. indem der Grundwasserspiegel schrittweise erhöht wird. Entsteht dabei ein neuer See, so bekommen alle Pixel die dazu benachbart sind, die gleiche Nummer. Stoßen bei der Schrittweisen Erhöhung der Schwelle zwei zusammenhängende Gebiete aneinander, so wird hier ein “Damm” errichtet, d.h. es wird eine Grenzfläche zwischen zwei Gebieten definiert. Der Wasserscheiden-Algorithmus hat das Problem, dass oft zu viele Gebiete als “verschieden” segmentiert werden, die eigentlich zusammengehören.
Was ist Semantic Segmentation?
https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7438418/
https://de.mathworks.com/solutions/image-video-processing/semantic-segmentation.html
Was ist Segmentierung?
was ist semantic segmentierung?
was sind zwei Verfahren? semantic segmentation & active contour
Wo findet es Anwendungen? autonomes fahren, medizinische anwendung
Wie ist der Workflow?
Getting Started with semantic segmentation using deep learning:
Die Segmentierung ist für Bildanalyseaufgaben unerlässlich. Semantische Segmentierung beschreibt den Prozess der Zuordnung jedes Pixels eines Bildes zu einer Klassenbezeichnung (z. B. Blume, Person, Straße, Himmel, Meer oder Auto).
Ein semantisches Segmentierungsnetzwerk klassifiziert jedes Pixel in einem Bild, was zu einem Bild führt, das nach Klassen segmentiert ist. Zu den Anwendungen der semantischen Segmentierung gehören die Straßensegmentierung für autonomes Fahren und die Segmentierung von Krebszellen für die medizinische Diagnose.
Applications for semantic segmentatiion include:
Autonomous driving
Industrial inspection
Classification of terrain visible in satellite imagery
Medical imaging analysis
Train and Test a Semantic Segmentation Network:
Die Schritte für das Training einer Semantic Segmentation sind folgende:
Analysieren Sie Trainingsdaten für die semantische Segmentierung.
Erstellen Sie ein semantisches Segmentierungsnetzwerk.
Trainieren Sie ein semantisches Segmentierungsnetzwerk.
Bewerten und überprüfen Sie die Ergebnisse der semantischen Segmentierung
Segment Objects Using Pretrained DeepLabv3+ Network
MathWorks GitHub repository provides implementations of the latest pretrained deep learning networks to download
Convolutional Neural Network for Image Segmentation
Fragen zur PDF: Hofmanninger
Was bedeutet DSC (Dice similarity coefficient)?
CT-Segmentierung: Atlas-basiert, Regel-basiert, ML-basiert, Hybridansätze?
Wie wurden die Netzwerke trainiert?
Was ist die Hauptaussage des Papers?
Was ist ein Beipiel um etwas zu Segmentieren und wie heißt das Verfahren?
Paper ist nicht Lungenbasiert sondern Allgemein
Ist eine Metrik zur Bewertung der Ähnlichkeit zwischen zwei Mengen. Im Kontext von Bildsegmentierung wird der DSC verwendet, um die Übereinstimmung zwischen der automatisch generierten Segmentierung (zum Beispiel durch einen Algorithmus) und der Ground-Truth-Segmentierung (die als Referenz gilt) zu quantifizieren. Der DSC liegt zwischen 0 und 1, wobei 0 für keine Übereinstimmung und 1 für eine perfekte Übereinstimmung steht
Atlas-basiert: Dieser Ansatz verwendet ein vorher segmentiertes Referenzbild (Atlas), das an die Merkmale anderer Bilder angepasst wird, um die Segmentierung zu übertragen.
Regel-basiert: Hier kommen vordefinierte Regeln und Algorithmen basierend auf Bildmerkmalen wie Intensität oder Gradienten zur Anwendung, um die Segmentierung zu steuern.
ML-basiert: Diese Methode nutzt maschinelles Lernen, um Modelle zu trainieren, die automatisch Muster in den Bildern erkennen und für die Segmentierung von anatomischen Strukturen eingesetzt werden.
Hybridansätze: Hybridansätze kombinieren verschiedene Methoden wie Atlas-basierte und ML-basierte Techniken, um die Vorteile unterschiedlicher Ansätze zu nutzen und die Robustheit der Segmentierung zu verbessern.
Trainieren mit 5 verschiedenen Datensätzen auf 4 verschiedenen Modellen
(1) Die Anwendung von ML-Ansätzen vom Labor zum Patienten erfordert vielfältige Trainingsdaten; (2) öffentlich verfügbare Studiendatensätze erfüllen diese Diversitätsanforderungen nicht; und (3) generische, semantische Segmentierungsalgorithmen sind für die Lungensegmentierung geeignet.
Lungen/ Lungenvolumen detektieren mit Semantic Segmentation oder Active Contour
ist eine Statistik, die verwendet wird, um die Ähnlichkeit zweier Stichproben zu messen./ ist ein räumlicher Überlappungsindex und eine Metrik zur Validierung der Reproduzierbarkeit.
IOU= Schnittmenge durch perfekte Schnittmenge einer Bounding Box
Atlas basiert: Bilddatensatz wird mit Standarddatensatz überlagert und so wird herausgefunden wo die Lunge liegt. / Nutzen einen vorab erstellten anatomischen Referenz Atlas oder Modell, um strukturelle oder räumliche Informationen für die Analyse von medizinischen Bildern oder anderen Daten zu verwenden. (Mit Threshold)
(Das Verfahren gliedert sich in folgende Phasen: 1. Patienten- und Atlasdatensatz werden derselben Vorverarbeitung unterzogen. Der Atlasdatensatz wird affin auf den Patientendatensatz registriert; 2. Es werden einzelne äquidistante Konturpunkte der Atlassegmentierung ausgewählt; 3. Die Konturpunkte werden mittels Korrelationsverfahren auf den Patientendatensatz übertragen; 4. Das Kostenbild des Patientendatensatz wird berechnet; 5. Ausgehend von den übertragenen Saatpunkten wird das Segmentierungsverfahren durchgeführt.)
Regel basiert: Verwenden vordefinierte Regeln und Logik, um Entscheidungen zu treffen oder Daten zu verarbeiten.
ML basiert: Verwenden Algorithmen, die auf Trainingsdaten lernen und Muster erkennen, um automatisch Entscheidungen zu treffen oder komplexe Aufgaben zu erfüllen. Beispiel fürs Netz: U-Net
Hybridansätze: Kombinieren verschiedene Techniken, wie zum Beispiel regelbasierte und maschinenlernbasierte Methoden, um die Vorteile unterschiedlicher Ansätze zu nutzen.
Zusammenfassend haben wir gezeigt, dass eine genaue Lungensegmentierung keine komplexe Methodik erfordert und dass eine bewährte Deep-Learning-basierte Segmentierungsarchitektur hochmoderne Ergebnisse liefert, sobald diverse (aber nicht unbedingt größere) Trainingsdaten zur Verfügung stehen verfügbar sind. Durch den Vergleich verschiedener Datensätze für das Training der Modelle haben wir die Bedeutung der Vielfalt der Trainingsdaten veranschaulicht und gezeigt, dass Daten aus der klinischen Routine gut auf unbekannte Kohorten verallgemeinert werden können, was den Bedarf an öffentlichen Datensätzen verdeutlicht, die speziell für die Lungensegmentierung kuratiert werden. Wir ziehen die folgenden Schlussfolgerungen: (1) Die Übertragung von ML-Ansätze vom Labor zum Krankenbett kann die Sammlung vielfältiger Trainingsdaten statt methodische Änderungen; (2) aktuelle, öffentlich verfügbare öffentlich zugängliche Studiendatensätze erfüllen nicht die Anforderungen; und (3) generische, semantische Segmentierungsalgorithmen sind für die Aufgabe der Lungen Segmentierung. Ein zuverlässiges, universelles Werkzeug zur Lungen Segmentierung der Lunge ist von grundlegender Bedeutung für die Forschung zu schweren Lungenkrankheiten und zur Untersuchung klinischen Datensätzen.
Auf vorhandenen Datensatz wurde ground truth verwendet. Mit den daraus entstanden Bilder wurde ein Netz trainiert, dass selbstständig Bilder labeln. Die daraus entstanden Bilder wurden von 4 Personen mit 2-6 Jahren Erfahrung kontrolliert. Danach wurden die Bilder wieder zum anlernen genutzt. Dies geschah mehrfach, wodurch das Labeln schneller vorran ging (20-30 Verbesserungen waren nötig). ITK-Snap wurde verwendet (ähnlich dem Programm mit dem wir die Lungen aus CT Bildern genommen haben)
Objekterkennung in einer unübersichtlichen Szene mithilfe von Punkt-Feature-Matching mit SURF Features
In diesem Beispiel wird ein Algorithmus zur Erkennung eines bestimmten Objekts vorgestellt, der auf der Suche nach Punktkorrespondenzen zwischen dem Referenz- und dem Zielbild basiert. Es kann Objekte trotz einer Maßstabsänderung oder Drehung in der Ebene erkennen. Es ist auch robust gegenüber geringfügigen Rotationen und Okklusionen außerhalb der Ebene.
Bild lesen
Punktmerkmale erkennen
Feature-Deskriptoren extrahieren
Finden Sie mutmaßliche Punktübereinstimmungen
Suchen Sie das Objekt in der Szene mithilfe mutmaßlicher Übereinstimmungen
Praktikum?????????????
Widerstand auf Platine auf Korrektheit überprüfen
Mithilfe der SIFT Features werden Beispielbilder vorgegeben die richtig herum sind. Dann sollen Platinen überprüft werden.
Was sind Flache- und tiefe neurnale netze?
Ein neuronales Netz mit einer einzigen versteckten Schicht wird als flaches neuronales Netze bezeichnet. Dagegen wird jedes Netz, das mehr als eine versteckte Schicht umfasst, als tiefes Netz bezeichnet, woher auch der Begriff Deep Learning stammt
Mit welchen Verfahren kann man Risse in Betonbildern klassifizieren?
Transfer Learning
SVM
k-NN
Wofür steht SGDM?
Stochastic Gradient Descent with Momentum
Mit welchen Hauptthemen haben wir uns beschäftigt?
Klassifikation (womit haben wir uns schwerpunktmäßig beschäftigt: klassifikation)
Segmentierung (klassisches verfahren active contour)
Was ist Skalierungsinvarianz?
Wie bekommt man diese?
Skalierungsinvarianz bedeutet, dass ein System oder eine Methode unabhängig von Veränderungen in der Größe oder Skalierung bleibt.
Beispiel Faltungskern vom SIFT:
Detektion von runden, hellen oder dunklen Strukturen durch Faltung mit einem passenden Faltungskern (also sozusagen ’Template Matching’).
Strukturen die erkannt werden sind: Strukturen die so aussehen wie der Faltungskern
Kreuzkorrelation aus beiden Bildern ist maximal (Template matching Beispiel Münzen)
Variation der Größe des Faltungskerns liefert ein maximales ”Signal” bei der passenden Größe des Faltungskerns. Die Größe des Faltungskerns liefert eine vergleichbare Umgebungsgröße für den betrachteten Schlüsselpunkt für unterschiedliche Skalierungen des Bildes.
Praktische Umsetzung: LoG: Laplace of Gaussian.
Vereinfachung des Verfahrens: DoG: Difference of Gaussian
Was ist Rotationsinvarianz?
Rotationsinvarianz bedeutet, dass ein System oder eine Methode gegenüber Drehungen oder Rotationen unverändert bleibt.
Die mit aus der Skalierungsinvarianz gefundenen Umgebung der Schlüsselpunkte wird analysiert, um Rotationsinvarianz zu erreichen:
Für jeden Pixel der Umgebung wird der Gradient berechnet und
nach Stärke gewichtet,
und dann ein Gradientenhistogramm erzeugt (10-Grad-Unterteilungen).
Aus dem Histogramm wird die vorherrschende Orientierung errechnet. Kennt man diese, so erreicht man Rotationsinvarianz (Drehen der Umgebungen für gleiche Ausrichtung der vorherrschenden Orientierung)
Wie wird der Feature-Deskriptor berechnet?
Hat man die Schlüsselpunkte bestimmt, die passenden Umgebung extrahiert und bezüglich Rotation normiert, so kann man in der Umgebung einen Feature-Vektor berechnen, der dem Schlüsselpunkt zugeordnet wird.
16 Bildgradienten werden berechnet
Werden einem der beiden Schlüsselpunkten zwei Feature-Vektoren zugeordnet heißt das, dass bei der Berechnung der vorherrschenden Orientierung zwei Richtungen in Frage kommen.
Verwandtes Verfahren: SURF
Was ist k-means Clustering?
K-means Clustering:
Der k-Means-Algorithmus ist eines der am häufigsten verwendeten mathematischen Verfahren zur Gruppierung von Objekten (Clusteranalyse). Der Algorithmus ist in der Lage, aus einer Menge ähnlicher Objekte mit einer vorher bekannten Anzahl von Gruppen die jeweiligen Zentren der Cluster zu ermitteln.
K-Means ist ein Clustering-Algorithmus, der Datenpunkte in k Gruppen (Cluster) aufteilt. Dabei versucht der Algorithmus, die Datenpunkte so zu gruppieren, dass die Varianz innerhalb der Cluster minimiert wird. Es ist nicht garantiert, dass der k-Means Algorithmus ein globales Minimum findet. K-Means ist häufig in der Bildverarbeitung zur Segmentierung von Bildern oder zur Reduzierung der Merkmalsdimensionalität im Einsatz
In der Bag-of-Features-Methodik wird das Vokabular von visuellen Wörtern oft mit K-Means erstellt. Der Algorithmus wird auf den extrahierten Merkmalsvektoren angewendet, um sie in k Cluster zu gruppieren. Jedes Cluster repräsentiert ein visuelles Wort im Vokabular. Diese visuellen Wörter werden dann verwendet, um die Darstellung eines Bildes zu erstellen, indem man zählt, wie oft jedes visuelle Wort im Bild vorkommt.
Keypoints finden
Bilder blurren (unscharf machen)
Bilder voneinander abziehen (Difference of Gaussian)
Von jedem Pixel im Bild werden die 26 Nachbarn betrachtet
wenn Pixelwert größer oder kleiner als alle 26 Nachbarn ist dann ist dieser ein Kandidat für einen Keypoint
Keypoints, die auf dem Rand liegen oder schlechten Kontrast haben, werden entfernt
Skaleninvarianz erreichen
Skaleninvarianz ist erreicht, da die Keypoints auf allen möglichen Bildgrößen vorhanden sind. Filtergröße kann auch geändert werden.
Rotationsinvarianz erreichen
Größe und Richtung der Gradienten aus der Nachbarschaft vom Keypoint erstellen
Orientierungshistogramm aufstellen (36 Richtungen)
Höchster Peak & Peaks über 80% werden genommen um vorherschende Orientierung (Ausrichtung) zu berechnen
Rotation des Keypoints wird von jeder Ausrichtung abgezogen
Rotationsinvarianz ist dadurch erreicht
Feature Descriptor berechnen
16x16 Fenster, welches in 16 Unterblöcke der Größe 4x4 unterteilt ist, wird über Keypoint gelegt
Ein Schlüsselpunktdeskriptor wird erstellt, indem zunächst die Gradientengröße und -ausrichtung in jedem Kästchen berechnet wird
Für jeden Unterblock wird ein Orientierungshistogramm erstellt (8 Richtungen)
Das ergibt einen Vektor mit 128 Einträgen
Dieser Vektor heißt Merkmalsvektor
Zuletzt geändertvor 5 Monaten