Di chuyển bình phương nhỏ nhất Python

Trong đồ án này, tôi thực hiện bài báo "Biến dạng ảnh sử dụng bình phương nhỏ nhất di chuyển" do Scott Schaefer đề xuất. Phương pháp này bao gồm ba loại biến dạng. biến dạng affine, biến dạng tương tự và biến dạng cứng nhắc. Và nó cũng sử dụng cả tập hợp điểm kiểm soát và tập hợp đoạn đường kiểm soát để chỉ định hình thái.

Phần 1. Di chuyển biến dạng bình phương nhỏ nhất

Biến dạng MLS [Di chuyển bình phương nhỏ nhất] được sử dụng để tìm hàm biến đổi tốt nhất \[f\] ánh xạ \[p\] thành \[q\]. \[p\] là tập hợp các chốt điều khiển và \[q\] là vị trí biến dạng của các chốt điều khiển. Hàm \[f[v]\] cần thỏa mãn 3 điều kiện. [1] Nội suy. Các tay cầm \[p\] phải ánh xạ trực tiếp tới \[q\] dưới dạng biến dạng [i. e. \[f[p_i]=q_i\]][2] Độ mượt. \[f\] sẽ tạo ra các biến dạng mịn [3]Identity. Nếu các chốt biến dạng \[q\] giống với \[p\], thì \[f\] phải là hàm nhận dạng. [tôi. e. , \[q_i=p_i\ \Rightarrow f[v]=v\]]

1 Biến dạng afin

Biến đổi affine. \[l_v[x]=xM+T\]
Có thể xóa bản dịch. \[T=q_*-p_*M\]
\[p_*=\frac{\Sigma_iw_ip_i}{\Sigma_iw_i}\] \[q_*=\frac{\Sigma_iw_iq_i}{ . \[I_v[x]=[x-p_*]M+q_*\]
We can easily get: \[I_v[x]=[x-p_*]M+q_*\]
Hàm chi phí mới.
\[\Sigma_iw_i. \hat{p}_iM-\hat{q}_i. ^2\] trong đó \[\hat{p}_i=p_i-p_*\] \[\hat{q}_i=q_i-q_*\]
\[M\] có thể . \[M=[\Sigma_i\hat{p}_i^Tw_i\hat{p}_i]^{-1}\Sigma_jw_j\hat{p}_j^T\hat{q}_j\]
Solution:\[M=[\Sigma_i\hat{p}_i^Tw_i\hat{p}_i]^{-1}\Sigma_jw_j\hat{p}_j^T\hat{q}_j\]
The deformation function:
\[f_a[v]=\Sigma_jA_j\hat{q}_j+q_*\]
\[A_j=[v-p_*][\
\[A_j\]can be precomputed
Contains non-uniform scaling and shear

2 Biến dạng tương tự

Một tập hợp con đặc biệt của các phép biến đổi affine
Dịch, Xoay, Ràng buộc. Chia tỷ lệ đồng nhất
Yêu cầu. \[M^TM=\lambda^2I\]
Xác định \[M=[M_1,M_2]\], trong đó \[M_2=M_1^\perp\]
Cost function [Least squares problem] still quadratic in \[M\]
\[\Sigma_iw_i|\left[\begin{array}{c} \hat{p}_i \\ -\hat{p}_i^\perp \end{array}\right]M-\hat{q}_i^T|^2\], where \[[x,y]^\perp=[-y,x]\]
Giải pháp cho ma trận \[M\]
\[M=\frac{1}{\mu_s}\Sigma_iw_i\left[\begin{array}{c} \hat{p}_i \\ -\hat{p}_i^\perp \end{array}\right][\hat{q}_i^T,-\hat{q_i}^{\perp T}]\], where \[\mu_s=\Sigma_iw_i\hat{p}_i\hat{p}_i^T\]
Solution for deformation function
\[f_s[v]=\Sigma_i\hat{q}_i[\frac{1}{\mu_s}A_i]+q_*\],where \[A_i=w_i\left[\begin{array}{c} \hat{p}_i \\ -\hat{p}_i^\perp \end{array}\right]\left[\begin{array}{c} v-p_* \\ -[v-p_*]^\perp \end{array}\right]^T\]

3 biến dạng cứng nhắc

Giải pháp cho Ma trận \[M\]
\[M=\frac{\Sigma_i\left[\begin{array}{c} \hat{p}_i \\ . v-p_*. \frac{\overrightarrow{f}_r[v]}{. \overrightarrow{f}_r[v]. }+q_*\], trong đó \[\overrightarrow{f}_r[v]=\Sigma_i\hat{q}_iA_i\] và \[A_i\] giống như trong các biến dạng tương tự.
Solution for deformation function
\[f_r[v]=|v-p_*|\frac{\overrightarrow{f}_r[v]}{|\overrightarrow{f}_r[v]|}+q_*\], where \[\overrightarrow{f}_r[v]=\Sigma_i\hat{q}_iA_i\] and \[A_i\] is the same as in similarity deformations.

4 Kết quả thí nghiệm

Tôi làm thí nghiệm tương tự nhưng với hướng ngược lại. Con rối nghiêng về bên phải

Kết quả của tác giả

Kết quả của riêng tôi

Biến dạng Affine của Ảnh gốc Biến dạng Tương tự Biến dạng Cứng nhắc

Một số kết quả thú vị

MonalisaDeforming MonalisaGirrafeDeforming Girrafe

Nói chung, biến dạng hình ảnh MLS sử dụng các điểm được kiểm soát tạo ra kết quả như tôi mong đợi. Biến dạng cứng có thể tạo ra kết quả thực tế nhất so với các phương pháp khác mà tôi thực hiện nhưng với tốc độ thấp nhất.

Phần 2. Biến dạng với các đoạn thẳng

Tay cầm là các đường cong điều khiển thay vì các điểm điều khiển
Hàm chi phí
\[\Sigma_i\int_0^1w_i[t]. p_i[t]M+T-q_i[t]. ^2\] và \[w_i[t]=\frac{. hố]. }{. p_i[t]-v. ^{2\alpha}}\]
T vẫn có thể bị xóa
\[T=q_*-p_*M\]
\[T=q_*-p_*M\]
\[\Sigma_i\int_0^1w_i[t]|\hat{p}_i[t]M-\hat{q}_i[t]|^2\]
trong đó \[\hat{p}_i[t]=p_i[t]-p_*\] và \[\hat{q}_i[t]=q_i[

1 dòng afin

Biểu diễn các đoạn dòng \[\hat{p}_i[t]\],\[\hat{q}_i[t]\] dưới dạng tích của ma trận
\[\ . [1-t,t]\left[\left[\begin{array}{c} \hat{a}_i \\ \hat{b}_i \end{array}\right]M-\left[\begin . ^2\]
Cost function
\[\Sigma_i\int_0^1|[1-t,t]\left[\left[\begin{array}{c} \hat{a}_i \\ \hat{b}_i \end{array}\right]M-\left[\begin{array}{c} \hat{c}_i \\ \hat{d}_i \end{array}\right]\right]|^2\]
Trình thu nhỏ
\[M=\left[\Sigma_i\left[\begin{array}{c} \hat{a}_i \
\[W_i=\left[ \begin{array}{cc} \delta_i^{00} & \delta_i^{01} \\ \delta_i^{01} & \delta_i^{11} \\ \end{array} \right] \] where \[\delta_i^{00}=\int_0^1w_i[t][1-t]^2dt\]
\[\delta_i^{01}=\int_0^1w_i[t][1-t]tdt\] and \[\delta_i^{11}=\int_0^1w_i[t]t^2dt\]
Deformation
\[f_a[v]=\Sigma_jA_j\left[\begin{array}{c} \hat{c}_i \\ \hat{d}_i \end{array}\right]+q_*\]
\[A_j=[v-p_*]\left[\Sigma_i\left[\begin{array}{c} \hat{a}_i \\ \hat{b}_i \end{array}\right]^TW_i\left[\begin{array}{c} \hat{a}_i \\ \hat{b}_i \end{array}\right]\right]^{-1}\left[\begin{array}{c} \hat{a}_j \\ \hat{b}_j \end{array}\right]^TW_j\]

2 dòng tương tự

Hàm chi phí
\[\Sigma_i\int_0^1. \left[ \begin{array}{cccc} 1-t & 0 & t & 0 \\ 0 & 1-t & 0 & t \\ \end{array} \right]\left[\begin{array}{ . ^2\]
Trình thu nhỏ
\[M=\frac{1}{\mu_s}\Sigma_j\left[\begin{array}{c} \
where \[\mu_s=\Sigma_i\hat{a}_i\hat{a}_i^T\delta_i^{00}+2\hat{a}_i\hat{b}_i^T\delta_i^{01}+\hat{b}_i\hat{b}_i^T\delta_i^{11}\]
\[W_j=\left[ \begin{array}{cccc} \delta_j^{00} & 0 & \delta_j^{01} & 0 \\ 0 & \delta_j^{00} & 0 & \delta_j^{01} \\ \delta_j^{01} & 0 & \delta_j^{11} & 0 \\ 0 & \delta_j^{01} & 0 & \delta_j^{11} \\ \end{array} \right]\]
Deformation
\[f_s[v]=\Sigma_j[\hat{c}_j,\hat{d}_j][\frac{1}{\mu_s}A_j]+q_*\]
\[\mu_s=\Sigma_i\hat{a}_i\hat{a}_i^T\delta_i^{00}+2\hat{a}_i\hat{b}_i^T\delta_i^{01}+\hat{b}_i\hat{b}_i^T\delta_i^{11}\]
\[A_j=W_j\left[\begin{array}{c} \hat{a}_i \\ -\hat{a}_i^\perp \\ \hat{b}_i\\ -\hat{b}_i^\perp \end{array}\right]\left[\begin{array}{c} v-p_* \\ -[v-p_*]^\perp \\ \end{array}\right]^T\]

3 dòng cứng nhắc

Xuất phát từ các đường tương tự
\[\mu_r=. \Sigma_j\left[ \begin{array}{cccc} \hat{a}_j^T & -\hat{a}_j^{\perp T} & \hat{b}_j^T & -\hat{b . \]
Biến dạng
\[f_r[v]=. v-p_*. \frac{\overrightarrow{f}_r[v]}{. \overrightarrow{f}_r[v]. }+q_*\]
\[\overrightarrow{f}_r[v]=\Sigma_j\left[ \begin{array}{cc} \hat{c}_j & -\hat
\[A_j=W_j\left[\begin{array}{c} \hat{a}_i \\ -\hat{a}_i^\perp \\ \hat{b}_i\\ -\hat{b}_i^\perp \end{array}\right]\left[\begin{array}{c} v-p_* \\ -[v-p_*]^\perp \\ \end{array}\right]^T\]

4 Kết quả thí nghiệm

Dòng Affine Image gốcDòng ImageRigid tương tự

Thật không may, việc triển khai biến dạng phân đoạn đường của tôi tạo ra một số hình thái không hài hòa trên hình ảnh với một số hiện vật kỳ lạ ở . Trong biến dạng đường cứng, mặt cắt của tháp pisa bị uốn cong quá mức. Tôi nghĩ lý do là định nghĩa của các phân đoạn dòng. Đây thực sự là một phần khó khăn sẽ ảnh hưởng đến kết quả.

Chủ Đề