From 41480bc789a6ea7c1e4c6d2d56bd4426ade8f4af Mon Sep 17 00:00:00 2001 From: Zheyuan Wu <60459821+Trance-0@users.noreply.github.com> Date: Fri, 25 Apr 2025 10:04:28 -0500 Subject: [PATCH] update medias and lecture notes --- pages/CSE559A/CSE559A_L25.md | 2 +- pages/CSE559A/CSE559A_L26.md | 176 +++++++++++++++++++ public/CSE559A/Ambiguities_in_projection.png | Bin 0 -> 35952 bytes 3 files changed, 177 insertions(+), 1 deletion(-) create mode 100644 public/CSE559A/Ambiguities_in_projection.png diff --git a/pages/CSE559A/CSE559A_L25.md b/pages/CSE559A/CSE559A_L25.md index e61cb27..bcb6962 100644 --- a/pages/CSE559A/CSE559A_L25.md +++ b/pages/CSE559A/CSE559A_L25.md @@ -135,7 +135,7 @@ $$ ##### Approaches 3: Linear approach -$x_1\simeq P_1X$ and $x_2\simeq P_2X$ +$x_1\cong P_1X$ and $x_2\cong P_2X$ $x_1\times P_1X = 0$ and $x_2\times P_2X = 0$ diff --git a/pages/CSE559A/CSE559A_L26.md b/pages/CSE559A/CSE559A_L26.md index 8b13789..6446035 100644 --- a/pages/CSE559A/CSE559A_L26.md +++ b/pages/CSE559A/CSE559A_L26.md @@ -1 +1,177 @@ +# CSE559A Lecture 26 + +## Continue on Geometry and Multiple Views + +### The Essential and Fundamental Matrices + +#### Math of the epipolar constraint: Calibrated case + +Recall Epipolar Geometry + +![Epipolar Geometry Configuration](https://notenextra.trance-0.com/CSE559A/Epipolar_geometry_setup.png) + +Epipolar constraint: + +If we set the config for the first camera as the world origin and $[I|0]\begin{pmatrix}y\\1\end{pmatrix}=x$, and $[R|t]\begin{pmatrix}y\\1\end{pmatrix}=x'$, then + +Notice that $x'\cdot [t\times (Ry)]=0$ + +$$ +x'^T E x_1 = 0 +$$ + +We denote the constraint defined by the Essential Matrix as $E$. + +$E x$ is the epipolar line associated with $x$ ($l'=Ex$) + +$E^T x'$ is the epipolar line associated with $x'$ ($l=E^T x'$) + +$E e=0$ and $E^T e'=0$ ($x$ and $x'$ don't matter) + +$E$ is singular (rank 2) and have five degrees of freedom. + +#### Epipolar constraint: Uncalibrated case + +If the calibration matrices $K$ and $K'$ are unknown, we can write the epipolar constraint in terms of unknown normalized coordinates: + +$$ +x'^T_{norm} E x_{norm} = 0 +$$ + +where $x_{norm}=K^{-1} x$, $x'_{norm}=K'^{-1} x'$ + +$$ +x'^T_{norm} E x_{norm} = 0\implies x'^T_{norm} Fx=0 +$$ + +where $F=K'^{-1}EK^{-1}$ is the **Fundamental Matrix**. + +$$ +(x',y',1)\begin{bmatrix} +f_{11} & f_{12} & f_{13} \\ +f_{21} & f_{22} & f_{23} \\ +f_{31} & f_{32} & f_{33} +\end{bmatrix}\begin{pmatrix} +x\\y\\1 +\end{pmatrix}=0 +$$ + +Properties of $F$: + +$F x$ is the epipolar line associated with $x$ ($l'=F x$) + +$F^T x'$ is the epipolar line associated with $x'$ ($l=F^T x'$) + +$F e=0$ and $F^T e'=0$ + +$F$ is singular (rank two) and has seven degrees of freedom + +#### Estimating the fundamental matrix + +Given: correspondences $x=(x,y,1)^T$ and $x'=(x',y',1)^T$ + +Constraint: $x'^T F x=0$ + +$$ +(x',y',1)\begin{bmatrix} +f_{11} & f_{12} & f_{13} \\ +f_{21} & f_{22} & f_{23} \\ +f_{31} & f_{32} & f_{33} +\end{bmatrix}\begin{pmatrix} +x\\y\\1 +\end{pmatrix}=0 +$$ + +**Each pair of correspondences gives one equation (one constraint)** + +At least 8 pairs of correspondences are needed to solve for the 9 elements of $F$ (The eight point algorithm) + +We know $F$ needs to be singular/rank 2. How do we force it to be singular? + +Solution: take SVD of the initial estimate and throw out the smallest singular value + +$$ +F=U\begin{bmatrix} +\sigma_1 & 0 \\ +0 & \sigma_2 \\ +0 & 0 +\end{bmatrix}V^T +$$ + +## Structure from Motion + +Not always uniquely solvable. + +If we scale the entire scene by some factor $k$ and, at the same time, scale the camera matrices by the factor of $1/k$, the projections of the scene points remain exactly the same: +$x\cong PX =(1/k P)(kX)$ + +Without a reference measurement, it is impossible to recover the absolute scale of the scene! + +In general, if we transform the scene using a transformation $Q$ and apply the inverse transformation to the camera matrices, then the image observations do not change: + +$x\cong PX =(P Q^{-1})(QX)$ + +### Types of Ambiguities + +![Ambiguities in projection](https://notenextra.trance-0.com/CSE559A/Ambiguities_in_projection.png) + +### Affine projection : more general than orthographic + +A general affine projection is a 3D-to-2D linear mapping plus translation: + +$$ +P=\begin{bmatrix} +a_{11} & a_{12} & a_{13} & t_1 \\ +a_{21} & a_{22} & a_{23} & t_2 \\ +0 & 0 & 0 & 1 +\end{bmatrix}=\begin{bmatrix} +A & t \\ +0^T & 1 +\end{bmatrix} +$$ + +In non-homogeneous coordinates: + +$$ +\begin{pmatrix} +x\\y\\1 +\end{pmatrix}=\begin{bmatrix} +a_{11} & a_{12} & a_{13} \\ +a_{21} & a_{22} & a_{23} +\end{bmatrix}\begin{pmatrix} +X\\Y\\Z +\end{pmatrix}+\begin{pmatrix} +t_1\\t_2 +\end{pmatrix}=AX+t +$$ + +### Affine Structure from Motion + +Given: 𝑚 images of 𝑛 fixed 3D points such that + +$$ +x_{ij}=A_iX_j+t_i, \quad i=1,\dots,m, \quad j=1,\dots,n +$$ + +Problem: use the 𝑚𝑛 correspondences $x_{ij}$ to estimate 𝑚 projection matrices $A_i$ and translation vectors $t_i$, and 𝑛 points $X_j$ + +The reconstruction is defined up to an arbitrary affine transformation $Q$ (12 degrees of freedom): + +$$ +\begin{bmatrix} +A & t \\ +0^T & 1 +\end{bmatrix}\rightarrow\begin{bmatrix} +A & t \\ +0^T & 1 +\end{bmatrix}Q^{-1}, \quad \begin{pmatrix}X_j\\1\end{pmatrix}\rightarrow Q\begin{pmatrix}X_j\\1\end{pmatrix} +$$ + +How many constraints and unknowns for $m$ images and $n$ points? + +$2mn$ constraints and $8m + 3n$ unknowns + +To be able to solve this problem, we must have $2mn \geq 8m+3n-12$ (affine ambiguity takes away 12 dof) + +E.g., for two views, we need four point correspondences diff --git a/public/CSE559A/Ambiguities_in_projection.png b/public/CSE559A/Ambiguities_in_projection.png new file mode 100644 index 0000000000000000000000000000000000000000..87de743ab8d9ac0b344a6f66a4705fcff17f8da8 GIT binary patch literal 35952 zcmd43XHZm4*Y}H(B?*ck2uMbh3^S5*1`$P(3^F8%5+#ddNh6Z8phyk_k{Lh*MsiSK z$VhewN*?0dgZFzs&!U=p=U6-Xb?A_CQ_3E|$|6lLOhYwUKt}tA|!^5LcS5ta~ zhj$r`hj(d+gb4gg%l;=P@W&;$N2&^VW&O9-z+VV#*1~`p*e|zw=82`pm@-eiqj5H`X@PzC}8T+{~vFZZGRn>Kq| z16l{Y?gM+pzkRaSeva7rDD3D?Gb;JQ$l1MUO45kjzQxKAiYv!>%d!1J6Ojr)KSwdMcAC9c1dZaH}#;QfoV zYOw*+OBZ-rj9o3rqog7eK#nKjZfIqW;(FWKpl>RaeHM5=OWigB?UmdRt=e0N+ZzEx z;jscEy0San2h}GXDc)@88Fgrnqmp{aX$yv<+WD-=Na(s4jc% zEcf*_ZXtbNO$Ff-_vXk4_j<2ndVPD??Bg-g;99-mWf4+Scf1Byxi$Y)g(*efeZ7EN@(uFOyFO*L#j0uSfI z`(~Pb_Z+~(BD=Vlp&fbZ9Gkkde@&Wm5qX^p^%vBD?0FORZx@T>B<2xzDcP)7-^}0Y z#=U1Qub$O7q*BasXS&CWV;A2SlPiXi3xV-hVPXtjZh}AqGj3Ct8qJteHErBE_LHSk z*UG5g^%F&f0P--GpZ9K~=Z0`P#IZ=&VHP

NGXJ|JrrxWfv23tnAsVky0aQ)r+6J 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