Die Bildverarbeitung ist eine Technologie, die an verschiedenen Orten eingesetzt werden kann. Auch wenn es eine Hochzeitsunterhaltung ist. Wenn ich Ende zwanzig bin, sind die Leute um mich herum verheiratet, also bin ich mir dessen bewusst (Schweiß)
[Hochzeit / Hochzeitstischset]( https://www.pakutaso.com/20130406108post-2650.html" Hochzeit / Hochzeitstisch gesetzt ")
Und wenn es um Hochzeiten geht, Unterhaltung
Ich möchte die Qualität verbessern, auch wenn ich keine Zeit habe ... Es wird solche Bedürfnisse erfüllen. Das ist richtig für die Bildverarbeitung.
Der Umfang dieses Artikels ist "Zuordnung zwischen Bildern" (entsprechend Kapitel 3 von Practical Computer Vision). Wenn Sie ein fortgeschrittener Bildprozessor sind, weisen Sie bitte auf Fehler hin.
Wenn Sie ein Foto für die Unterhaltung vorbereiten, müssen Sie die Fotos kombinieren.
Wenn Sie die Fotos einfach kombinieren, sehen die Fotos seltsam aus.
Die dort erforderliche Verarbeitung ist wie folgt.
・ Bildverformung ・ Betten Sie das Bild gut in das Bild ein ·Ausrichtung ・ Ausrichtung für Panorama
Die für die Bildkonvertierungsverarbeitung erforderlichen Elemente sind grob wie folgt unterteilt.
EECS 442 – Computer vision Conversation hour
・ Bildskalierung ・ Bildskalierung (asymmetrisch) ·Drehung ・ Bitte sehen Sie die Abbildung ganz rechts, da sie nicht mit Worten erklärt werden kann.
Wir werden das Bild konvertieren, indem wir diese Prozesse kombinieren.
Hier sind einige wichtige Formeln.
\begin{pmatrix}
x' \\
y' \\
w'
\end{pmatrix}
=
\begin{pmatrix}
h_{11} & h_{21} & h_{31}\\
h_{12} & h_{22} & h_{32}\\
h_{13} & h_{23} & h_{33}
\end{pmatrix}
\begin{pmatrix}
x \\
y \\
w
\end{pmatrix}
\begin{matrix}
\boldsymbol{x'} = \boldsymbol{H}\cdot{\boldsymbol{x}}
\end{matrix}
Die obige Gleichung zeigt, dass ein Punkt, der als Vektor angegeben wird, einem anderen Raum zugeordnet wird, indem er mit einer Matrix multipliziert wird, die diesen Punkt transformiert. In Worten macht es keinen Sinn, also werde ich unten eine Zahl einfügen.
Lecture 16: Planar Homographies
Es zeigt, wie es auf der Lochkamera aussieht, wenn Sie ein Objekt von der Lochkamera aus betrachten, und es zeigt, dass es konvertiert wird, indem die Matrix H multipliziert wird, wenn es als flaches Bild von der Lochkamera ausgedrückt wird.
Matrix H behandelt die zu Beginn beschriebene grundlegende Bildkonvertierungsverarbeitung. Indem Sie die vollständige Matrix H finden, können Sie darstellen, wie sie auf der Lochkamera aussieht, wenn Sie in ein Objekt von der Lochkamera schauen, oder Sie können das Bild in einer Ebene von der Lochkamera darstellen. Diese Matrix H wird als Homographiematrix bezeichnet.
Ich werde es hier zusammenfassen.
Die Bildkonvertierungsverarbeitung ist erforderlich, um ein zusammengesetztes Foto zu erstellen. Die Bildkonvertierungsverarbeitung kann unter Verwendung einer Homographiematrix durchgeführt werden. Unter Verwendung der Homographiematrix ist es möglich, ein Bild zu reproduzieren, das diagonal von einer Ebene bewegt wird, oder ein Bild, das diagonal zu einer Ebene ist.
Hier erfahren Sie, wie Sie die Homografiematrix finden.
Verwendet den Direct Linear Transfer-Algorithmus.
Lassen Sie uns nun die Formel noch einmal überprüfen.
\begin{pmatrix}
x' \\
y' \\
w'
\end{pmatrix}
=
\begin{pmatrix}
h_{11} & h_{21} & h_{31}\\
h_{12} & h_{22} & h_{32}\\
h_{13} & h_{23} & h_{33}
\end{pmatrix}
\begin{pmatrix}
x \\
y \\
w
\end{pmatrix}
Da dies ein Bild ist, stellt es zweidimensionale Koordinaten dar, verwendet jedoch Koordinaten, die als simultanes Koordinatensystem bezeichnet werden, und es gibt zusätzlich zu den x- und y-Werten w-Werte.
Der Wert von w wird normalerweise auf 1 normiert, aber der Effekt dieses Wertes besteht darin, dass er auch eine parallele Bewegung darstellen kann.
Bei der Bildkonvertierung können nicht nur die obigen vier, sondern auch parallele Bewegungen, die Positionen ändern, ausgedrückt werden. Dies ist ein wichtiger Punkt.
Unten finden Sie eine leicht verständliche Abbildung.
http://d.hatena.ne.jp/Zellij/20120523/p1
Als nächstes überprüfen wir das normalisierte Muster. Was wir aus dieser Formel herausfinden wollen, ist eine Homographiematrix, die ein flaches Bild in ein diagonales Bild und ein diagonales Bild in ein flaches Bild verwandelt.
\begin{pmatrix}
x' \\
y' \\
1'
\end{pmatrix}
=
\begin{pmatrix}
h_{11} & h_{21} & h_{31}\\
h_{12} & h_{22} & h_{32}\\
h_{13} & h_{23} & h_{33}
\end{pmatrix}
\begin{pmatrix}
x \\
y \\
1
\end{pmatrix}
Wenn die Beziehung zwischen den Punkten des Originalbilds und dem abgebildeten Bild durch eine mathematische Formel ausgedrückt wird
x' = \frac{h_{11}x + h_{21}y + h_{31}}{h_{13}x + h_{23}y + h_{33}}\\
y' = \frac{h_{12}x + h_{22}y + h_{32}}{h_{13}x + h_{23}y + h_{33}}
Um die Matrix H zu finden, müssen Sie einen 9-dimensionalen Wert finden, aber hier fügen wir eine Einschränkung hinzu. Beschränken Sie den Wert von h33 auf 1. Warum ist es in Ordnung, hier Einschränkungen zu setzen?
x' = \frac{kh_{11}x + kh_{21}y + kh_{31}}{kh_{13}x + kh_{23}y + kh_{33}}\\
y' = \frac{kh_{12}x + kh_{22}y + kh_{32}}{kh_{13}x + kh_{23}y + kh_{33}}\\
\\
Wenn h33 auf 1 gesetzt ist
x' = \frac{h_{11}x + h_{21}y + h_{31}}{h_{13}x + h_{23}y + 1}\\
y' = \frac{h_{12}x + h_{22}y + h_{32}}{h_{13}x + h_{23}y + 1}
Selbst wenn der mit k multiplizierte Wert berechnet wird, ist er praktisch bedeutungslos, da er durch den Nenner und das Molekül geteilt wird, sodass h33 sowohl in x als auch in y verwendet wird. Hier kann man davon ausgehen, dass k ein Wert ist, der h33 auf 1 setzt. Daher konnten wir vom Problem des Findens des 9-dimensionalen Werts zum Problem des Findens des 8-dimensionalen Wertes wechseln, indem wir den Wert von h33 auf 1 begrenzten.
Direkte Lösung der direkten linearen Transformationsmethode von hier
(h_{13}x + h_{23}y + 1)x' = h_{11}x + h_{21}y + h_{31}\\
({h_{13}x + h_{23}y + 1})y' = h_{12}x + h_{22}y + h_{32}
Gefragt x ', y'
x' = h_{11}x + h_{21}y + h_{31} - h_{13}xx' - h_{23}yx' \\
y' = h_{12}x + h_{22}y + h_{32} - h_{13}xy' - h_{23}yy'
Es stellte sich heraus, dass aus den abgebildeten Einpunktdaten zwei Formeln erhalten werden können. Mit anderen Worten wurde gefunden, dass, wenn vier Punkte mathematisch erhalten werden, die simultanen Gleichungen erhalten werden können, die erforderlich sind, um acht Werte zu erhalten. Hier werde ich die Formel ausdrücken, wenn 4 Punkte erhalten werden.
\begin{pmatrix}
x'_{1} \\
y'_{1} \\
x'_{2} \\
y'_{2} \\
x'_{3} \\
y'_{3} \\
x'_{4} \\
y'_{4}
\end{pmatrix}
=
\begin{pmatrix}
x_{1} & y_{1} & 1 & 0 & 0 & 0 & -x_{1}x'_{1} & -y_{1}x'_{1}\\
0 & 0 & 0 & x_{1} & y_{1} & 1 & -x_{1}y'_{1} & -y_{1}y'_{1}\\
x_{2} & y_{2} & 1 & 0 & 0 & 0 & -x_{2}x'_{2} & -y_{2}x'_{2}\\
0 & 0 & 0 & x_{2} & y_{2} & 1 & -x_{2}y'_{2} & -y_{2}y'_{2}\\
x_{3} & y_{3} & 1 & 0 & 0 & 0 & -x_{3}x'_{3} & -y_{3}x'_{3}\\
0 & 0 & 0 & x_{3} & y_{3} & 1 & -x_{3}y'_{3} & -y_{3}y'_{3}\\
x_{4} & y_{4} & 1 & 0 & 0 & 0 & -x_{4}x'_{4} & -y_{4}x'_{4}\\
0 & 0 & 0 & x_{4} & y_{4} & 1 & -x_{4}y'_{4} & -y_{4}y'_{4}\\
\end{pmatrix}
\begin{pmatrix}
h_{11} \\
h_{12} \\
h_{13} \\
h_{21} \\
h_{22} \\
h_{23} \\
h_{31} \\
h_{32}
\end{pmatrix}
Es ist auch möglich, die obigen simultanen Gleichungen analytisch zu finden. Normalerweise ist es offensichtlich, dass die Reproduzierbarkeit höher ist, wenn Sie mit 4 oder mehr Punkten reproduzieren.
Es ist eine Lösung, wenn die Anzahl der Punkte zunimmt, aber es ist eine Lösung nach der Minimum-Square-Methode unter Verwendung von SVD. Die letzte Zeile der Matrix V der durch SVD erhaltenen Lösung ist diesmal die Lösung nach der Minimum-Square-Methode. (Für die Punktgruppe werden die Werte verwendet, die aus dem durch den Mittelwert 0 und die Varianz 1 normalisierten Raum beobachtet wurden.)
Wenn Sie sehen möchten, warum dies der Fall ist, lesen Sie bitte unten.
Um es hier zusammenzufassen
・ Die Homographiematrix ist eine Matrix, die ein Bild diagonal von einer Ebene und von einer schrägen zu einer Ebene bewegt. ・ Die Matrix kann mit 4 Punkten berechnet werden ・ Verwenden Sie SVD, wenn Sie mit 4 oder mehr Punkten rechnen.
Anstatt die Probleme zu begrenzen, die durch Vereinfachung der Homographiematrix gelöst werden können, werden wir von hier aus die affine Transformation einführen, die die drei erforderlichen Punkte nutzen kann.
\begin{pmatrix}
x' \\
y' \\
1
\end{pmatrix}
=
\begin{pmatrix}
a_{1} & a_{2} & t_{1}\\
a_{3} & a_{4} & t_{2}\\
0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
x \\
y \\
1
\end{pmatrix}
Die obige Formel bedeutet Skalierung 1. Mit anderen Worten wird der Umwandlungsbetrag unterdrückt.
Sie können vom Viereck zum parallelen Viereck konvertieren, vergrößern, verkleinern und parallel bewegen, aber Sie können nicht vom Viereck zum Trapez konvertieren.
x' = \frac{h_{11}x + h_{21}y + h_{31}}{h_{13}x + h_{23}y + 1}\\
y' = \frac{h_{12}x + h_{22}y + h_{32}}{h_{13}x + h_{23}y + 1}
Wenn Sie die obige Formel überprüfen, können Sie die gemeinsamen Werte von x'und y'in entsprechend den Werten von x und y konvertieren. Mit anderen Worten, es war möglich, die Größe des gesamten Werts abhängig von der Position der Koordinaten zu ändern, aber da es sich wie folgt änderte, kann es nur einfache Konvertierung und parallele Bewegung verarbeiten. Stattdessen benötigen Sie nur 3 Punkte. Dies hat den Vorteil, dass Split Affine Warping verwendet werden kann.
x' = h_{11}x + h_{21}y + h_{31}\\
y' = h_{12}x + h_{22}y + h_{32}
Verwenden Sie Split Affine Warping, um ein Bild in ein anderes Bild einzubetten.
Wenn Sie zwei Bilder wie unten gezeigt abgleichen möchten, nehmen Sie normalerweise eine Gruppe von Punkten und probieren die Punkte in der Homografiematrix aus, um sie zu berechnen. Aufgrund von Berechnungsfehlern usw. ist es jedoch schwierig, sie an den oberen Bildrand anzupassen. Werden.
Mit der Affin-Transformation unter Verwendung der Dronay-Dreieck-Teilungsmethode ist es jedoch möglich, die Eckpunkte des Bildes anzupassen.
Dann werde ich erklären, warum es möglich ist, die Eckpunkte des Bildes mithilfe der Affin-Transformation unter Verwendung der Dronay-Dreieck-Teilungsmethode abzugleichen.
Bei der affinen Umwandlung sind nur 3 Punkte wichtig.
Und die Dronay-Dreiecksteilungsmethode ist eine Methode zum Verbinden einer bestimmten Punktgruppe mit einem Dreieck, das den maximalen Mindestwinkel aufweist, wenn eine bestimmte Punktgruppe erhalten wird. Im Folgenden erfahren Sie, wie Sie den maximalen Winkel des Dreiecks auswählen.
Ein Beispiel ist unten gezeigt.
Programming Computer Vision with Python
Mit anderen Worten, da die affine Transformation auf alle Punkte angewendet wird, ist es möglich, eine Transformation durchzuführen, die mit den Eckpunkten übereinstimmt. Die Berechnungsmethode ist die DLT-Methode, und die affine Umwandlung wird auf die gleiche Weise berechnet.
Zusammenfassung
・ Die Affin-Konvertierung weist weniger Variationen auf, die konvertiert werden können als die Homographie-Konvertierung. ・ Stattdessen kann es mit nur 3 Punkten konvertiert werden ・ Wenn 3 Punkte ausreichen, kann die Dronay-Dreiecksteilungsmethode verwendet werden, sodass eine Konvertierung möglich ist, die den Eckpunkten entspricht.
Bei der Bildausrichtung wird die Ähnlichkeitskonvertierung verwendet, da das Bild selbst ein ähnliches Bild verwendet.
\begin{pmatrix}
x' \\
y' \\
1
\end{pmatrix}
=
\begin{pmatrix}
s\ cos(\theta) & -s\ sin(\theta) & t_{x}\\
s\ sin(\theta) & s\ cos(\theta) & t_{y}\\
0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
x \\
y \\
1
\end{pmatrix}
s ist die Vergrößerung und θ ist der Umsatz. Da es in Bezug auf die gesamten Koordinaten vergrößert, verkleinert und gedreht werden kann, ist es die beste Konvertierung für die Ausrichtung. Vergleichen wir das Bild unten mit dem einfach gemittelten und dem ausgerichteten und gemittelten. Es kann bestätigt werden, dass das Bild durch Ausrichten genauer wiedergegeben werden kann.
Programming Computer Vision with Python
Programming Computer Vision with Python
RANSAC
Es wird nur das DLT-Verfahren eingeführt. Da das DLT-Verfahren jedoch nicht robust gegenüber Rauschen ist, wurde ein anderes Verfahren vorgeschlagen. Diese Technik ist ein zeitaufwändiger Algorithmus, anstatt robust gegen Rauschen zu sein.
Informationen zu bestimmten Methoden finden Sie in den folgenden Materialien.
Preemptive RANSAC by David Nister.
Es gibt ein Bild, das vom selben Ort aufgenommen wurde. Wenn Sie die Bilder wie in der zweiten Abbildung gezeigt zusammenfügen möchten
Programming Computer Vision with Python
Programming Computer Vision with Python
1: Erfassen Sie die Merkmalspunkte des Bildes mit UMSCHALT (Einzelheiten siehe unten). Goldnadel für den Fall, dass es ein Stein wird, wenn man sich die Formel der Bildverarbeitung ansieht 2: Berechnen Sie die Homografiematrix zwischen Bildern mit RANSAC 3: Wählen Sie das mittlere Bild aus 4: Fügen Sie links und rechts vom mittleren Bild 0 hinzu, um die deformierten Bilder zu verbinden. 5: Es wird festgelegt, ob die parallele Komponente eine Verbindung nach links oder rechts herstellen soll.
Da der Unterschied zwischen Bildern spürbar ist, verfügt handelsübliche Software über einen Prozess zum Normalisieren und Glätten der Helligkeit.
ipython notebook
Nur affine Konvertierung, aber es ist in Code geschrieben.
https://github.com/SnowMasaya/Image_Processing_for_Wedding
Praktische Computer Vision Entwurf dieses Artikels
Informatik der Pennsylvania State University Ein Vortrag über die Bildkonvertierung aus drei Dimensionen wird beschrieben und ist leicht zu verstehen, da er nicht wie in diesem Artikel auf zwei Dimensionen beschränkt ist.
Zusammenfassung der Michigan University
Da es sich um ein Material aus dem Grundteil der Bildkonvertierung handelt, kann der Grundteil unterdrückt werden.
Preemptive RANSAC by David Nister.
Eine ausgezeichnete Folie, die den RANSAC-Algorithmus sofort zeigt
Nach dem Erwachsenwerden neu lernen: Affin-Konvertierung
Leicht verständliche Erklärung der affinen Bekehrung
Recommended Posts