-
Die vorliegende Erfindung betrifft ein Verfahren zur Verfolgung von mehreren Objekten aus Punktwolken-Daten mittels eines Transformers mit Attention-Modell.
-
Stand der Technik
-
Bei bildgebenden Sensoren wird heutzutage Objektverfolgung (Object Tracking) durchgeführt, bei dem ein Objekt detektiert und über einen Zeitraum hinweg verfolgt wird. In der aufgenommenen Umgebung befinden sich typischerweise mehrere Objekte, sodass eine Verfolgung von mehreren Objekten (MOT, Multi-Object Tracking) durchgeführt wird. Jedem Objekt wird eine eindeutige Identifikation zugeordnet, welche sich in dem Zeitraum nicht ändert. Beispielsweise wird Objektverfolgung bei Sensoren für Fahrzeuge eingesetzt, um andere Fahrzeuge, andere Verkehrsteilnehmer und die Infrastruktur zu erfassen. Diese Daten können für (teil-)automatisiertes oder autonomes Fahren verwendet werden. Bei Fahrzeugen muss die Eigengeschwindigkeit des Fahrzeugs bei der Objektverfolgung miteinbezogen werden.
-
Generell gibt es zwei Ansätze für die Objektverfolgung. Beim Tracking-by-Detection werden die Objekte detektiert und einem separaten Tracker übergeben, der sie über den Zeitraum verfolgt. Die Informationen werden dabei über eine Schnittstelle zwischen dem Detektor und dem Tracker übergeben.
-
Beim Tracking-and-Detection werden Detektion und Verfolgung (Tracking) der Objekte gleichzeitig ausgeführt. Dabei kann Deep Learning und ein neuronales Netzwerk in Form eines Transformers verwendet werden. Hierfür sind bis jetzt weder eine Auswertung von Punktwolken-Daten noch eine Anwendung für den Fahrzeugbereich bekannt.
-
Die Transformer werden in dem Paper Ashish Vaswani et al, „Attention is all you need“, arXiv preprint arXiv:1706.03762, 2017 beschrieben.
-
Offenbarung der Erfindung
-
Die Erfindung betrifft ein Verfahren zur Verfolgung von mehreren Objekten aus Punktwolken-Daten mittels eines Transformers mit Attention-Modell. Die Punktwolken-Daten werden beispielsweise durch ein LiDAR erfasst. Allerdings ist dieses Verfahren nicht auf LiDAR beschränkt, sondern es können auch andere Sensortypen verwendet werden. Bevorzugt ist der Sensor bzw. das Sensorsystem an einem Fahrzeug angeordnet, sodass die Punktwolken-Daten aus dem Fahrzeug aufgenommen werden. Ein Fahrzeug bewegt sich typischerweise, sodass hier eine unten beschriebene Eigengeschwindigkeitskompensation besonders vorteilhaft ist.
-
Der Zustand der verfolgten Objekte ist im Feature-Space gespeichert. Das Verfahren umfasst die folgenden Schritte: Zu Beginn werden Feature-Vektoren aus den Punktwolken-Daten berechnet. Dies wird nicht wie üblich von dem Encoder des Transformers durchgeführt, sondern durch einen Backbone. Ein Backbone ist ein neuronales Netz, das dafür verwendet wird, aus gemessenen Daten Features zu extrahieren, bzw. den Input in eine gewisse Feature-Repräsentation zu bringen, die dann weiterverarbeitet werden kann. Somit kann auf den Encoder des Transformers verzichtet werden. Durch die Verwendung des Backbones zur Berechnung der Feature-Vektoren ist die Eingabesequenz bei der Self-Attention weniger limitiert und stattdessen wird bei einem gitterbasierten Backbone, wie PointPillars, die Größe der Zelle erhöht. Die somit berechneten Feature-Vektoren werden dann dem Transformer zugeführt und dienen als Key-Vektoren und Value-Vektoren für die Ermittlung der Cross-Attention.
-
Zudem werden aus den Punktwolken-Daten durch eine Sampling-Methode wie beispielsweise Farthest-Point-Sampling (FPS) Anker-Positionen berechnet. Da die Anker-Positionen aus den aufgenommenen Daten ermittelt werden, ändern sich diese für jeden Zeitpunkt (Frame). Aus den Anker-Positionen werden mittels Encoding, beispielsweise Fourier-Encoding, Feature-Vektoren ermittelt. Das Encoding kann insbesondere durch ein Feed-Forward-Netz ausgeführt werden. Die somit berechneten Feature-Vektoren dienen als Objekt-Queries für den Transformer. Die Objekt-Queries der Anker-Positionen dienen als Ausgangspunkte für die Suche nach Objekten. Allerdings ist die Suche nicht auf diese Anker-Positionen beschränkt, sondern es werden auch Objekte in einem Abstand zu diesen Anker-Positionen detektiert. Anker-Positionen entsprechen nicht Anchor-Boxen, wie sie bei anderen Detektionsansätzen verwendet werden. Die Objekt-Queries für den Transformer sind somit von Daten abhängig und nicht wie üblich eingelernt. Dies bietet vor allem bei dünn besetzen Punktwolken Vorteile, da sonst viel Rechenressourcen für das Auffinden von Positionen, die tatsächlich Daten aufweisen, verschwendet wird. Solche dünn besetzen Punktwolken kommen insbesondere bei Messungen mit LiDAR vor. Die aus den Anker-Positionen ermittelten Objekt-Queries dienen als Slots für mögliche Objekte.
-
Ein Decoder des Transformers ermittelt zu einem ersten Zeitpunkt (Frame) aus den Objekt-Queries, also den vorstehend beschriebenen Feature-Vektoren, die zu diesem ersten Zeitpunkt berechnet wurden, und den Key-Vektoren und Value-Vektoren, also den eingangs beschriebenen Feature-Vektoren, die zu diesem Zeitpunkt berechnet wurden, Ergebnis-Feature-Vektoren, welche auch als Decoder-Ausgabe-Vektoren bezeichnet werden. Aus den Ergebnis-Feature-Vektoren werden Box-Parameter, die ein Objekt beschreiben, also z. B. dessen Position, Ausmaße, Orientierung, Geschwindigkeit und/oder Klassenidentifikator, insbesondere relativ zu den Anker-Positionen, mittels eines Feed-Forward-Netzes berechnet. Hierfür wird bevorzugt ein anderes Feed-Forward-Netz als das vorstehend genannte Feed-Forward-Netz zur Ermittlung der Objekt-Queries verwendet, das sich durch die Gewichtung unterscheidet.
-
Im Ergebnis werden somit mehrere Objekte aus Punktwolken-Daten zu einem ersten Zeitpunkt detektiert. Für die Objektverfolgung müssen die Objekte an weiteren aufeinanderfolgenden Zeitpunkten ermittelt werden. Hierbei kann sich der Sensor, das Sensorsystem bzw. das System, an dem der Sensor angeordnet ist, also z. B. ein Fahrzeug, selbst mit einer Eigengeschwindigkeit bewegen. Im Folgenden wird die Eigengeschwindigkeit mittels eines Eigengeschwindigkeitskompensationsmoduls kompensiert und diese Kompensation auf die Ergebnis-Feature-Vektoren angewendet, um somit eigengeschwindigkeits-kompensierte, transformierte Ergebnis-Feature-Vektoren zu erhalten.
-
Die transformierten Ergebnis-Feature-Vektoren werden nun als Eingabe für den nächsten Zeitpunkt dem Decoder des Transformers zugeführt und dienen dort neben den Objekt-Queries als Slots für mögliche Objekte. Der Decoder des Transformers ermittelt jeweils nach einem Zeitschritt zu einem weiteren Zeitpunkt Ergebnis-Feature-Vektoren aus den transformierten Ergebnis-Feature-Vektoren, die für den vorherigen Zeitpunkt berechnet wurden, aus den berechneten Objekt-Queries, die zu diesem Zeitpunkt wie oben beschrieben berechnet wurden, und aus den Key-Vektoren und Value-Vektoren, die zu diesem Zeitpunkt wie eingangs beschrieben berechnet wurden. Diese Berechnung kann für beliebig viele Zeitschritte fortgesetzt werden. Die berechneten Ergebnis-Feature-Vektoren werden schließlich wie oben beschrieben den Objekten zugeordnet und somit die mehreren Objekte verfolgt.
-
Im Ergebnis wird somit eine Objektverfolgung von mehreren Objekten aus Punktwolken-Daten mit einer Eigengeschwindigkeitskompensation erhalten.
-
Um den Transformer bzw. das Modell des Transformers einzutrainieren, werden vorzugsweise folgende Schritte durchgeführt: Zunächst werden, wie oben beschrieben, Ergebnis-Feature-Vektoren berechnet und aus jedem Ergebnis-Feature-Vektor Box-Parameter, die ein Objekt beschreiben, also z. B. dessen Position, Ausmaße, Orientierung, Geschwindigkeit und/oder Klassenidentifikator, insbesondere relativ zu den Anker-Positionen, mittels des Feed-Forward-Netzes berechnet. Dabei können mehrere Zeitschritte übersprungen werden. Im Anschluss werden diejenigen Ergebnis-Feature-Vektoren ermittelt, deren Box-Parameter der bekannten Position der vorhandenen Objekte aus der Grundwahrheit (Ground Truth) am nächsten liegen. Hierfür wird ein an sich bekannter Optimierungs-Algorithmus wie z. B. die Ungarische Methode verwendet. Nun erfolgt eine Zuweisung zwischen den aus den Ergebnis-Feature-Vektoren berechneten, geschätzten Objekten und den bekannten, vorhandenen Objekten der Grundwahrheit. Die Ergebnis-Feature-Vektoren, deren Box-Parameter der bekannten Position der vorhandenen Objekte aus der Grundwahrheit am nächsten liegen, werden zur Verfolgung der bekannten Objekte im nächsten Zeitschritt verwendet. Ergebnis-Feature-Vektoren, die keinem Objekt der Grundwahrheit zugewiesen werden können, werden eine geringe Konfidenz zugewiesen. Aus der Grundwahrheit ist bekannt, welche Pfade von Objekten fortgesetzt werden, welche enden und welche neu entstehen. Diejenigen Objekte der Grundwahrheit, deren Pfade sich fortsetzen, werden den entsprechenden Slots zugeordnet, diejenigen, die in einem Zeitschritt neu erscheinen, werden den nächstliegenden Objekt-Queries zugeordnet und diejenigen, deren Pfade enden, werden der „nicht-Objekt“-Klasse zugeordnet. Schließlich wird der Transformer bzw. dessen Modell mittels der Zuweisung eintrainiert.
-
Bei der Objektverfolgung selbst, kann die Konfidenz als Maß verwendet werden, ob ein Pfad weitergeführt wird, endet oder neu entsteht. Bevorzugt wird die Verfolgung eines Objekts weitergeführt, wenn in dem entsprechenden Zeitschritt die Konfidenz über einem Schwellenwert liegt. Ansonsten wird die Objektverfolgung dieses Objekts ausgesetzt - sodass sie zu einem späteren Zeitpunkt wieder aufgenommen werden kann - oder beendet. Ebenso bevorzugt wird ein neues Objekt in den Ergebnis-Feature-Vektoren nur verfolgt, wenn die Konfidenz über einem (weiteren) Schwellenwert liegt.
-
Im Folgenden wird eine bevorzugte Art der Eigengeschwindigkeitskompensation für das Verfahren beschrieben. In jedem Zeitschritt wird die Ego-Posenänderung, also die Änderung in Translation und Rotation des Sensors, des Sensorsystems bzw. des Systems, an dem der Sensor angeordnet ist, also z. B. ein Fahrzeug, erfasst. Aus dieser Ego-Posenänderung wird eine Transformationsmatrix mittels eines Feed-Forward-Netzes berechnet. Hierfür wird bevorzugt ein anderes Feed-Forward-Netz als das oben genannte Feed-Forward-Netz zur Ermittlung der Objekt-Queries und/oder das oben genannte Feed-Forward-Netz zur Berechnung der Box-Parameter verwendet, das sich durch die Gewichtung unterscheidet. Ein weiteres Feed-Forward-Netz wird verwendet, um die Dimension des Ergebnis-Feature-Vektors des Decoders zu reduzieren. Dann wird eine Transformation des Ergebnis-Feature-Vektors durchgeführt, indem ein Matrix-Vektor-Produkt - auch als „dot product“ bezeichnet - der Transformationsmatrix und des reduzierten Ergebnis-Feature-Vektors berechnet wird. Das Ergebnis der Transformation wird dann mittels eines Feed-Forward-Netzes wieder auf die ursprüngliche Dimension erweitert. Schließlich kann der ursprüngliche Ergebnis-Feature-Vektor einbezogen werden, sodass ein Verlust von Informationen verhindert wird. Diese Art der Eigengeschwindigkeitskompensation bietet die Vorteile einerseits, dass die Transformation in einer im Vergleich zu der vollen Länge des Feature-Vektors niedrigen Dimension durchgeführt wird, sodass nur relevante Teile des Vektors transformiert werden. Andererseits wird die Transformationsmatrix unabhängig von den Feature-Vektoren berechnet, sodass sie unabhängig von der Position der Objekte ist.
-
Für das Trainieren der Eigengeschwindigkeitskompensation können folgende Schritte ausgeführt werden: Es werden sowohl die Box-Parameter für die zu kompensierenden Ergebnis-Feature-Vektoren des Decoders als auch die Box-Parameter für die vorstehend beschriebenen transformierten Ergebnis-Feature-Vektoren der Eigengeschwindigkeitskompensation mittels eines Feed-Forward-Netzwerks ermittelt. Dann wird, wie oben beschrieben, in jedem Zeitschritt die Ego-Posenänderung, also die Änderung in Translation und Rotation, des Sensors, des Sensorsystems bzw. des Systems, an dem der Sensor angeordnet ist, also z. B. ein Fahrzeug, erfasst. Aus der Ego-Posenänderung und den vorstehend beschriebenen Box-Parametern, werden erwartete Box-Parameter, wie die erwartete Position, Ausrichtung und Geschwindigkeit, jedes Objekts im nächsten Zeitschritt ermittelt. Die Abmessung und die Klassenidentifikation werden als konstant angesehen und somit für die erwarteten Box-Parameter direkt aus den obengenannten Box-Parametern übernommen. Die erwarteten Box-Parameter werden dann als Grundwahrheit (Ground Truth) für die Eigengeschwindigkeitskompensation verwendet. Vorteilhafterweise wird dabei die aus der Ego-Posenänderung zu erwartende Änderung in der Position direkt als transformierte Anker-Positionen übernommen.
-
Das Computerprogramm ist eingerichtet, jeden Schritt des Verfahrens durchzuführen, insbesondere, wenn es auf einem Rechengerät oder Steuergerät durchgeführt wird. Es ermöglicht die Implementierung des Verfahrens in einem herkömmlichen elektronischen Steuergerät, ohne hieran bauliche Veränderungen vornehmen zu müssen. Lediglich ein Transformator muss auf den elektronischen Steuergerät implementiert sein oder werden. Zur Implementierung ist das Computerprogramm auf dem maschinenlesbaren Speichermedium gespeichert.
-
Durch Aufspielen des Computerprogramms und eines Transformators auf ein herkömmliches elektronisches Steuergerät, wird das elektronische Steuergerät erhalten, welches eingerichtet ist, eine Verfolgung von mehreren Objekten aus Punktwolken-Daten.
-
Kurze Beschreibung der Zeichnungen
-
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert.
- 1 zeigt ein Ablaufdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens.
- 2 zeigt ein Ablaufdiagramm einer Eigengeschwindigkeitskompensation gemäß dem erfindungsgemäßen Verfahren.
-
Ausführungsbeispiele der Erfindung
-
1 zeigt ein Ablaufdiagramm des erfindungsgemäßen Verfahrens zu zwei aufeinanderfolgenden Zeitpunkten t und t+1. Gleiche Schritte werden mit gleichen Bezugszeichen bezeichnet und nur einmal im Detail beschrieben. Nachfolgend bezeichnen i und k als Indizes Laufvariablen.
-
Die linke Seite betrifft den ersten Zeitpunkt t. Zu Beginn erfasst ein LiDAR-Sensor eines Fahrzeugs F die Umgebung. Eine visuelle Darstellung dieser aufgenommenen Punktwolken-Daten ist mit 1 bezeichnet. Aus den Punktwolken-Daten berechnet ein Backbone 2 Feature-Vektoren, welche dann durch ein Positions-Encoding 3 mittels Sinus und Cosinus augmentiert werden und schließlich als Key-Vektoren kt,i und Value-Vektoren vt,i für den ersten Zeitpunkt t einem Decoder 6 eines Transformers zugeführt werden.
-
Gleichzeitig werden aus den Punktwolken-Daten durch eine Sampling-Methode 4, beispielsweise Farthest-Point-Sampling, Anker-Positionen ρ
t,i zum ersten Zeitpunkt t ermittelt, die dann ein Fourier-Encoding 5 durchlaufen:
-
B ist dabei eine Matrix, die Einträge der Normalverteilung aufweist, FFN stellt ein Feed-Forward-Netz dar, welches hier aus zwei Schichten mit einer ReLU-Aktivierung (Rectified Linear Unit) besteht. yi sind die berechneten Feature-Vektoren, welche als Objekt-Queries dem Decoder 6 des Transformers zugeführt werden.
-
Das für den ersten Zeitpunkt t ausgegebene Set von Feature-Vektoren ist mit Y
t bezeichnet und bestehen aus den Objekt-Queries y
t,i. Jedes Objekt-Query y
t,i dient als Slot (In
1 dargestellt durch einzelne Kästchen) für ein mögliches Objekt. Der Decoder 6 des Transformers besteht aus sechs Schichten mit jeweils acht Attention-Heads. Der Decoder 6 ermittelt zum ersten Zeitpunkt t aus den Objekt-Queries y
t,i sowie den Key-Vektoren k
t,i und den Value-Vektoren v
t,i Ergebnis-Feature-Vektoren
Die Dimension der Objekt-Queries y
t,i, der Key-Vektoren k
t,i und der Value-Vektoren v
t,i beträgt beispielsweise 256.
-
Hierdurch werden zwei Objekte O
1 und O
2 zum ersten Zeitpunkt t detektiert. Ein Feed-Forward-Netz 7 berechnet aus den Ergebnis-Feature-Vektoren
Box-Parameter d
i = (Δx, Δy, Δz, w, l, h, γ, v
x, v
y,cls) für die Objekte O
1, O
2, wobei Δx, Δy, Δz den Unterschied der Position zu den Anker-Positionen ρ
i in drei Dimensionen repräsentiert, w, L, h die Ausmaße des Objekts O
1, O
2 in drei Dimensionen sind, γ die Ausrichtung des Objekts O
1, O
2 ist, v
x, v
y die Geschwindigkeit des Objekts O
1, O
2 in der horizontalen Ebene repräsentiert und cis einen Klassenidentifikator darstellt. Die Objekte O
1, O
2 wurden detektiert und sind hier in der mit 8 bezeichneten visuellen Darstellung eingezeichnet.
-
Die Objektverfolgung für ein Objekt O1, O2 wird nur weitergeführt, wenn in dem entsprechenden Zeitschritt die Konfidenz über einem Schwellenwert liegt. Ansonsten wird die Objektverfolgung dieses Objekts ausgesetzt oder beendet.
-
Auf der rechten Seite in
1 ist die Auswertung für einen zweiten Zeitpunkt t+1 dargestellt, der nach einem Zeitschritt, der durch die Wiederholrate der Aufnahme des LiDAR-Sensors definiert ist, dem ersten Zeitpunkt t folgt. Das Fahrzeug F bewegt sich in diesem Zeitschritt mit seiner Eigengeschwindigkeit fort. Dies wirkt sich auf die Auswertung der gemessenen Daten und die relative Position und Geschwindigkeit der Objekte O
1, O
2 aus. Es wird eine Eigengeschwindigkeitskompensation 9 durchgeführt, die mit Bezug auf
2 näher beschrieben wird. Hierbei werden aus den Ergebnis-Feature-Vektoren
für den ersten Zeitpunkt t, den Anker-Positionen ρ
t,i, und einer Posenänderung p transformierte Ergebnis-Feature-Vektoren
erhalten:
-
Analog zum ersten Zeitpunkt t erfasst auch hier zu Beginn der LiDAR-Sensor die Umgebung und das Backbone 2 berechnet aus den Punktwolken-Daten Feature-Vektoren, welche durch das Positions-Encoding 3 mittels Sinus und Cosinus augmentiert werden und schließlich als Key-Vektoren kt+1,i und Value-Vektoren vt+1,i für den zweiten Zeitpunkt t+1 dem Decoder 6 des Transformers zugeführt werden. Gleichzeitig werden aus den Punktwolken-Daten durch die Sampling-Methode 4, Anker-Positionen ρt+1,i zum zweiten Zeitpunkt t+1 ermittelt, die dann das Fourier-Encoding 5 gemäß Formel 1 durchlaufen. Es werden Objekt-Queries yt+1,i für den zweiten Zeitpunkt t+1 erhalten.
-
Das für den zweiten Zeitpunkt t+1 ausgegebene Set von Feature-Vektoren ist mit Y
t+1 bezeichnet und bestehen aus den Objekt-Queries y
t+1,i für den zweiten Zeitpunkt t+1 und den transformierten Ergebnis-Feature-Vektoren
die für den ersten Zeitpunkt t berechnet wurden, und kann als Vereinigung
dargestellt werden. Jedes Objekt-Query y
t+1,i und jeder transformierte Ergebnis-Feature-Vektor
dient als Slot (In
1 dargestellt durch einzelne Kästchen) für ein mögliches Objekt.
-
Der Decoder 6 ermittelt aus den Objekt-Queries y
t,i, den transformierten Ergebnis-Feature-Vektoren
sowie den Key-Vektoren k
t+1,i und den Value-Vektoren v
t+1,i Ergebnis-Feature-Vektoren
zum zweiten Zeitpunkt t+1. Ein neues Objekt O
3 wird in den Ergebnis-Feature-Vektoren
nur verfolgt, wenn die Konfidenz über einem Schwellenwert liegt. Es wird neben den beiden Objekten O
1 und O
2 ein drittes Objekt O
3 detektiert, dessen Pfad weiterverfolgt wird. Das Feed-Forward-Netz 7 berechnet aus den Ergebnis-Feature-Vektoren
Box-Parameter d
i für die Objekte O
1, O
2, O
3. Auch hier sind die Objekte O
1, O
2, O
3 in der mit 8 bezeichneten visuellen Darstellung eingezeichnet. Hierdurch werden die mehreren Objekte O
1, O
2, O
3 zu einem weiteren Zeitschritt t+1 detektiert.
-
Die genannten Schritte werden für weitere Zeitpunkte durchgeführt, sodass eine Objektverfolgung der mehreren Objekte O1, O2, O3 erfolgt. Dabei werden die genannten Schritte, Eingaben und Ausgaben entsprechend den Zeitpunkten angepasst.
-
In 2 ist eine Eigengeschwindigkeitskompensation für den Zeitschritt zwischen dem ersten Zeitpunkt t und dem zweiten Zeitpunkt t+1 dargestellt. Diese kann durch Anpassung der Zeitpunkte auf weitere Zeitschritte übertragen werden.
-
In dem aktuellen Zeitschritt wird eine Ego-Posenänderung p des Fahrzeugs F ermittelt 90. Die Ego-Posenänderung p = (t
1, t
2, t
3, q
0, q
1, q
2, q
3) ist ein Vektor mit Dimension p, der sich aus der Translation t
1, t
2, t
3 und der Rotation q
0, q
1, q
2, q
3 in Quaternionform zusammensetzt. Mittels eines Feed-Forward-Netz 91 wird nun die Dimension des Vektors der Ego-Posenänderung p zu k
2 geändert, sodass der Vektor nun k
2 Werte aufweist. Aus dem Vektor der Ego-Posenänderung p mit der Dimension k
2 wird nun durch Umformen 92 eine featureunabhängige Transformationsmatrix T mit der Dimension (k x k) gebildet. Gleichzeitig wird mittels eines weiteren Feed-Forward-Netzes 93 die Dimension des zum ersten Zeitpunkt t vom Decoder 6 ausgegebenen Ergebnis-Feature-Vektors
die ursprünglich d beträgt, zu k reduziert. Die Vektorlänge wird also so verändert, dass die Transformationsmatrix T anwendbar ist. Die Transformationsmatrix T und des Ergebnis-Feature-Vektors
weisen nun die Dimension k als gemeinsame Basis auf. Im Folgenden wird eine Transformation 94 durchgeführt, indem das Matrix-Vektor-Produkt - auch als „dot product“ bezeichnet - der Transformationsmatrix T und des Ergebnis-Feature-Vektors
berechnet wird. Dadurch wird der transformierte Ergebnis-Feature-Vektoren
erhalten. Da dieser die Dimension k hat, wird mittels eines weiteren Feed-Forward-Netzes 95 die Dimension wieder auf d erweitert. Schließlich wird eine Verbindung 96 zum ursprünglichen Ergebnis-Feature-Vektor
hergestellt, um sicherzustellen, dass keine Informationen verloren gegangen sind.