当前位置: 首页>編程日記>正文

计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变

计算机视觉教程0-3:为何拍照会有死亡视角?详解相机矩阵与畸变

目录

  • 0 拍照的死亡角度
  • 1 透视相机模型
  • 2 相机矩阵
  • 3 镜头畸变

0 拍照的死亡角度

拍照死亡角度一般指的是将自己脸盆子拍得特别大,拍出用鼻孔看人的狰狞面目,比如下面这张照片。在拍照的死亡角度下,镜头畸变会产生失真,让你的体态更圆润、厚实,因此部分美颜软件里人像修正中会有“去畸变”这一项功能。本文就从计算机视觉的角度谈一谈镜头畸变原理。

在这里插入图片描述

1 透视相机模型

透视相机模型描述了三维空间中的点与二维图像平面上像素间的映射关系

根据小孔成像原理,透视相机的成像点与空间点之间方向相反,如图所示。为得到与空间点方向相同的成像点,将成像面沿着光轴移动到归一化成像面,接下来的讨论以归一化成像面为准。

在这里插入图片描述
在确定归一化成像面后,从空间点W⁣X~^W\!\tilde{X}WX~到像素点u~\tilde{u}u~的映射可分为两步:

  1. W⁣X~^W\!\tilde{X}WX~映射到归一化成像面的成像点C⁣x~^C\!\tilde{x}Cx~,对应的映射关系称为相机外参(Extrinsic)
  2. C⁣x~^C\!\tilde{x}Cx~映射到像素平面的像素u~\tilde{u}u~,对应的映射关系称为相机内参(Intrinsic)。上述各点均处于投影空间,采用齐次坐标。

在这里插入图片描述

2 相机矩阵

设世界坐标系{W}\left\{ \boldsymbol{W} \right\}{W}相对于透视相机坐标系{C}\left\{ \boldsymbol{C} \right\}{C}的位姿为

WC⁣T=[WC⁣ ⁣ ⁣RC⁣pw001]_{\boldsymbol{W}}^{\boldsymbol{C}}\!\boldsymbol{T}=\left[ \begin{matrix} _{\boldsymbol{W}}^{\boldsymbol{C}}\;\!\!\!\boldsymbol{R}& ^{\boldsymbol{C}}\!\boldsymbol{p}_{w_0}\\ 0& 1\\\end{matrix} \right]WCT=[WCR0Cpw01]

考虑到从三维空间降维到二维平面,设世界坐标值[W⁣⁣XW⁣⁣ ⁣  ⁣ YW⁣⁣Z1]T\left[ \begin{matrix} ^{\boldsymbol{W}\!}\!X& ^{\boldsymbol{W}\!}\!\!\:\!\:Y& ^{\boldsymbol{W}\!}\!Z& 1\\\end{matrix} \right] ^T[WXWYWZ1]T,则

C⁣x~=[100001000010],WC⁣TW⁣ ⁣X~=[C⁣XCYC⁣Z]^{\boldsymbol{C}}\!\tilde{x}=\left[ \begin{matrix} 1& 0& 0& 0\\ 0& 1& 0& 0\\ 0& 0& 1& 0\\\end{matrix} \right] {\color{white} ,}_{\boldsymbol{W}}^{\boldsymbol{C}}\!\boldsymbol{T}^{\,\,\boldsymbol{W}}\!\!\tilde{X}=\left[ \begin{array}{c} ^{\boldsymbol{C}}\!X\\ ^{\boldsymbol{C}}Y\\ ^{\boldsymbol{C}}\!Z\\\end{array} \right]Cx~=100010001000,WCTWX~=CXCYCZ

在上述推导过程中,称

ME=[100001000010],WC⁣T=[WC⁣ ⁣ ⁣RC⁣pw0]\boldsymbol{M}_{\boldsymbol{E}}=\left[ \begin{matrix} 1& 0& 0& 0\\ 0& 1& 0& 0\\ 0& 0& 1& 0\\\end{matrix} \right] {\color{white} ,}_{\boldsymbol{W}}^{\boldsymbol{C}}\!\boldsymbol{T}=\left[ \begin{matrix} _{\boldsymbol{W}}^{\boldsymbol{C}}\;\!\!\!\boldsymbol{R}& ^{\boldsymbol{C}}\!\boldsymbol{p}_{w_0}\\\end{matrix} \right]ME=100010001000,WCT=[WCRCpw0]

相机外参矩阵。通常令尺度因子C⁣Z=1^{\boldsymbol{C}}\!Z=1CZ=1C⁣x~=[C⁣XC⁣ZCYC⁣Z1]T=[C⁣x^C⁣y^1]T^{\boldsymbol{C}}\!\tilde{x}=\left[ \begin{matrix} \frac{^{\boldsymbol{C}}\!X}{^{\boldsymbol{C}}\!Z}& \frac{^{\boldsymbol{C}}Y}{^{\boldsymbol{C}}\!Z}& 1\\\end{matrix} \right] ^T=\left[ \begin{matrix} ^{\boldsymbol{C}}\!\hat{x}& ^{\boldsymbol{C}}\!\hat{y}& 1\\\end{matrix} \right] ^TCx~=[CZCXCZCY1]T=[Cx^Cy^1]T

C⁣x~^C\!\tilde{x}Cx~到像素u~\tilde{u}u~的映射用三维内参矩阵KKK来表示,即

u~=KC⁣x~=[fuscu0fvcv001]C⁣x~\tilde{u}=\boldsymbol{K}^C\!\tilde{x}=\left[ \begin{matrix} f_u& s& c_u\\ 0& f_v& c_v\\ 0& 0& 1\\\end{matrix} \right] \,\,^C\!\tilde{x}u~=KCx~=fu00sfv0cucv1Cx~

其中

  • 如图(a)所示,参数cuc_ucucvc_vcv用于中心映射——将光轴与归一化成像面的交点,即成像面中心点映射到像素平面中心,其取决于拜耳阵列与光轴如何对齐。
  • 如图(b)所示,参数fuf_ufufvf_vfv用于归一化——将矩形的传感器阵列映射为正方形
  • 如图©所示,参数sss用于正交化——当传感器阵列不正交或传感器平面与光轴不垂直时,需要引入 纠正畸变。

在这里插入图片描述

3 镜头畸变

上述透视相机模型基于针孔无限小的假设,但在现实中,光线通过镜头将使相机内部复杂化,产生明显的径向失真——场景中的线条在图像中显示为曲线。径向畸变(Radial Distortion)有两种类型:

  • 筒体畸变(Barrel Distortion)
  • 枕形失真(Pincushion Distortion)

此外由于相机组装过程中,透镜不能和成像面严格平行,会引入切向畸变(Tangential Distortion)

在这里插入图片描述
针对具有镜头畸变的相机,不能直接应用透视相机模型,通常需要先通过多项式模型修正这种几何偏差,即:

{x^=x(1+κ1r2+κ2r4)+2p1xy+p2(r2+2x2)y^=y(1+κ1r2+κ2r4)+p1(r2+2y2)+2p2xy\begin{cases} \hat{x}=x\left( 1+\kappa _1r^2+\kappa _2r^4 \right) +2p_1xy+p_2\left( r^2+2x^2 \right)\\ \hat{y}=y\left( 1+\kappa _1r^2+\kappa _2r^4 \right) +p_1\left( r^2+2y^2 \right) +2p_2xy\\\end{cases}{x^=x(1+κ1r2+κ2r4)+2p1xy+p2(r2+2x2)y^=y(1+κ1r2+κ2r4)+p1(r2+2y2)+2p2xy

其中r2=x2+y2r^2=x^2+y^2r2=x2+y2κ1\kappa _1κ1κ2\kappa _2κ2称为径向畸变参数p1p_1p1p2p_2p2称为切向畸变参数(x,y)(x,y)(x,y)为畸变坐标,(x^,y^)\left( \hat{x},\hat{y} \right)(x^,y^)为无畸变坐标。

在这里插入图片描述


🚀 计算机视觉基础教程说明

章号                                    内容
  0                              色彩空间与数字成像
  1                              计算机几何基础
  2                              图像增强、滤波、金字塔
  3                              图像特征提取
  4                              图像特征描述
  5                              图像特征匹配
  6                              立体视觉
  7                              项目实战


🔥 更多精彩专栏

  • 《ROS从入门到精通》
  • 《机器人原理与技术》
  • 《机器学习强基计划》
  • 《计算机视觉教程》

👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇


https://www.fengoutiyan.com/post/16236.html

相关文章:

  • 计算机视觉教程第二版答案
  • 计算机视觉教程考试题
  • 算法摄影
  • 拍照死亡角度
  • 计算机视觉理论与方法
  • 计算机视觉基础考试
  • 视觉图像算法
  • OpenCV2计算机视觉编程手册
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機