中心透视投影和鱼眼投影的区别(Central perspective projection vs. fisheye projection)
前言
panoramic images(全景圖像)以及Fisheye圖像都不滿足中心透視投影(Central perspective projection),不能使用collinearity equation(共線性方程)
中心透視投影
其中中心透視投影數學模型建立的假設是:
物體點入射線和光軸的夾角和在像平面上的成像點和光軸的夾角相同,如上圖所示
魚眼透視投影
魚眼圖像希望在有限的平面內獲取更大的視角(幾乎接近90度),然而按照中心透視投影的假設來說,在像平面上的像點會位于無窮遠的地方,因此,我們需要修改投影模型,采用折射的方法將入射線沿光軸方向折射得到像點。魚眼透鏡系統的透鏡類型和配置實現的。
魚眼投影模型
位于頭頂的魚眼圖像實際上監控著位于其下方的整個半球中的場景,需要將物體坐標投影到相機坐標系下(這里我覺得是對應著我之前的一篇博客中所說的4種圖像坐標系,從世界坐標系變換到相機坐標系下),這不過不同的是這里的變換增加了投影中心的坐標(也是在物體坐標系下的),沒有了平移量,得到了如下的轉換公式:
XC=r11?(X?X0)+r21?(Y?Y0)+r31?(Z?Z0)YC=r12?(X?X0)+r22?(Y?Y0)+r32?(Z?Z0)ZC=r13?(X?X0)+r23?(Y?Y0)+r33?(Z?Z0)\begin{array}{l} X_{C}=r_{11} \cdot\left(X-X_{0}\right)+r_{21} \cdot\left(Y-Y_{0}\right)+r_{31} \cdot\left(Z-Z_{0}\right) \\ Y_{C}=r_{12} \cdot\left(X-X_{0}\right)+r_{22} \cdot\left(Y-Y_{0}\right)+r_{32} \cdot\left(Z-Z_{0}\right) \\ Z_{C}=r_{13} \cdot\left(X-X_{0}\right)+r_{23} \cdot\left(Y-Y_{0}\right)+r_{33} \cdot\left(Z-Z_{0}\right) \end{array} XC?=r11??(X?X0?)+r21??(Y?Y0?)+r31??(Z?Z0?)YC?=r12??(X?X0?)+r22??(Y?Y0?)+r32??(Z?Z0?)ZC?=r13??(X?X0?)+r23??(Y?Y0?)+r33??(Z?Z0?)?
其中(XC,YC,ZC)(X_C,Y_C,Z_C)(XC?,YC?,ZC?)為相機坐標系中的物體點坐標,(X,Y,Z)(X,Y,Z)(X,Y,Z)為物體坐標系下的物體點坐標,(X0,Y0,Z0)(X_0,Y_0,Z_0)(X0?,Y0?,Z0?)是在物體坐標系下的投影中心坐標,ri,jr_{i,j}ri,j?為旋轉矩陣的元素。
投影過程
從上圖中將90°的物體點的入射線,映射到了圓形像的邊緣位置,由上面定義的魚眼模型,對應的映射關系為:
αr=90°Rwhere?r=x′2+y′2\begin{aligned} &\frac{\alpha}{r}=\frac{90^{\circ}}{R}&\text { where } &r=\sqrt{x'^{2}+y'^{2}} \end{aligned} ?rα?=R90°???where??r=x′2+y′2??
其中α\alphaα是物體點的入射角,rrr是像點的半徑,RRR是圖像的半徑,像點位置P=(x′,y′)P=(x',y')P=(x′,y′),由于物體點P和像點P’都在一個3維y=kxy=kxy=kx的平面上,因此P’和P在各自的Z平面上,和坐標原點(O′,OCO',O_CO′,OC?)之間的連線夾角相同,因此有:
x′y′=XCYC\frac{x^{\prime}}{y^{\prime}}=\frac{X_{C}}{Y_{C}}y′x′?=YC?XC??,這里由相機坐標系到魚眼圖像坐標系下的變換公式為:
論文中給出的公式為:
x′=2?Rπ?atan?[(XC)2+(YC)2ZC](YCXC)2+1+dx+xhy′=2?Rπ?atan?[(XC)2+(YC)2ZC](XCYC)2+1+dy+yh\begin{aligned} &x^{\prime}=\frac{\frac{2 \cdot \mathrm{R}}{\pi} \cdot \operatorname{atan}\left[\frac{\sqrt{\left(\mathrm{X}_{\mathrm{C}}\right)^{2}+\left(\mathrm{Y}_{\mathrm{C}}\right)^{2}}}{\mathrm{Z}_{\mathrm{C}}}\right]}{\sqrt{\left(\frac{\mathrm{Y}_{\mathrm{C}}}{\mathrm{X}_{\mathrm{C}}}\right)^{2}+1}}+\mathrmozvdkddzhkzd \mathrm{x}+\mathrm{x}_{\mathrm{h}}\\ &y^{\prime}=\frac{\frac{2 \cdot \mathrm{R}}{\pi} \cdot \operatorname{atan}\left[\frac{\sqrt{\left(\mathrm{X}_{\mathrm{C}}\right)^{2}+\left(\mathrm{Y}_{\mathrm{C}}\right)^{2}}}{\mathrm{Z}_{\mathrm{C}}}\right]}{\sqrt{\left(\frac{\mathrm{X}_{\mathrm{C}}}{\mathrm{Y}_{\mathrm{C}}}\right)^{2}+1}}+\mathrmozvdkddzhkzd \mathrm{y}+\mathrm{y}_{\mathrm{h}}\\ \end{aligned} ?x′=(XC?YC??)2+1?π2?R??atan[ZC?(XC?)2+(YC?)2??]?+dx+xh?y′=(YC?XC??)2+1?π2?R??atan[ZC?(XC?)2+(YC?)2??]?+dy+yh??
跟推導的公式相比來說查了后面加上的項,其中dy,dx\mathrmozvdkddzhkzd \mathrm{y},\mathrmozvdkddzhkzd \mathrm{x}dy,dx為失真多項式,他們是為了對鏡頭失真進行建模設計的,xh,yh\mathrm{x}_{\mathrm{h}},\mathrm{y} _{\mathrm{h}}xh?,yh?是主點的坐標( coordinates of the principle point ),這一項我也不是很清楚。
參考文獻
E. Schwalbe, “Geometric modelling and calibration of fisheye lens camera systems,” Proc. 2nd Panoramic Photogrammetry Workshop, Int. Archives of Photogrammetry and Remote Sensing, vol. 36, no. Part 5, 2005
總結
以上是生活随笔為你收集整理的中心透视投影和鱼眼投影的区别(Central perspective projection vs. fisheye projection)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信息时代的安全威胁
- 下一篇: 水晶报表for java_水晶报表(cr