文章目录

  • 同系列链接
  • 1.1. pinhole camera model
  • 1.2. lens-based model (paraxial refraction model)
    • distortion
  • 1.3. digital image space
  • 1.4. an arbitrary world reference system to image plane
  • 1.5. Camera Calibration
  • 1.6. Handling Distortion in Camera Calibration
  • 1.7. Rigid Transformations

同系列链接

1. pinhole camera model【cs231a课程笔记】
2. Single View Metrology【cs231a课程笔记】
3. epipolar geometry【cs231a课程笔记】
4. tereo Systems and Structure from Motion【cs231a课程笔记】
5. Active and Volumetric Stereo【cs231a课程笔记】

1.1. pinhole camera model

数码相机的镜头相当于一个凸透镜 + 小孔成像

理想化的相机模型是线性模型(实际是非线性模型):

retinal plane 视网膜平面
camera coordinate system(camera reference system)摄像机坐标系
camera calibration 相机标定

将三维摄像机坐标系中的P点映射到二维image plane中的P’

pinhole(center of the camera):OOO
focal length: fff
OC′OC'OC′称作optical axis 光轴

P[x,y,z]TP[x, y, z]^TP[x,y,z]T转化到P′[x′,y′]TP'[x', y']^TP′[x′,y′]T

相似三角形P′C′OP'C'OP′C′O和PO(0,0,z)PO(0,0,z)PO(0,0,z)

P′=[x′,y′]T=[f∗x/z,f∗y/z]TP'=[x', y']^T=[f*x/z, f*y/z]^TP′=[x′,y′]T=[f∗x/z,f∗y/z]T

aperture size越大,成像越模糊,越亮

所以 小aperture + lenses(透镜)

1.2. lens-based model (paraxial refraction model)

(凸)透镜相机模型(轴旁折射模型)

只有PPP点所在的平面(焦平面)是清晰的(in focus),有了焦距(景深)的概念

P′=[x′,y′]T=[z′∗x/z,z′∗y/z]TP'=[x', y']^T=[z'*x/z, z'*y/z]^TP′=[x′,y′]T=[z′∗x/z,z′∗y/z]T

上式依据:对于焦平面上的点,PP′PP'PP′过透镜中心OOO点

distortion

radial distortion(径向畸变):
pincushion distortion(枕形畸变) and barrel distortion(桶形畸变)

1.3. digital image space

加上image plane(film)(原点在k轴和平面交点处,一般是图片中心点)和image(原点在图片左下角)之间的关系C

P′=[x′,y′]T=[z′∗x/z+cx,z′∗y/z+cy]TP'=[x', y']^T=[z'*x/z + c_x, z'*y/z + c_y]^TP′=[x′,y′]T=[z′∗x/z+cx​,z′∗y/z+cy​]T

加上现实距离和像素距离之间的关系k,l=pixeks/cmk,l=pixeks/cmk,l=pixeks/cm,若k=lk=lk=l,则相机有正方形像素。

P′=[x′,y′]T=[z′∗k∗x/z+cx,z′∗l∗y/z+cy]T=[α∗x/z+cx,β∗y/z+cy]TP'=[x', y']^T=[z'*k*x/z + c_x, z'*l*y/z + c_y]^T=[\alpha*x/z + c_x, \beta*y/z + c_y]^TP′=[x′,y′]T=[z′∗k∗x/z+cx​,z′∗l∗y/z+cy​]T=[α∗x/z+cx​,β∗y/z+cy​]T

homogeneous coordinate system 齐次坐标系

我们认为欧式空间中的(x,y,z)等价于齐次坐标系中的(x,y,z,1),所以我们认为齐次坐标系(v1,...,vn,w)(v_1,...,v_n,w)(v1​,...,vn​,w)等价于欧式空间(v1/w,...,vn/w)(v_1/w,...,v_n/w)(v1​/w,...,vn​/w)

III 是 3×3
KKK 是camera matrix
上式中不包含skewness(倾斜)和dissortion(畸变)

下图中加入skewness,其中θ\thetaθ是坐标系夹角与90度的差

大多数本课程讲述的方法忽略了distortion,故最终final camera matrix有5个自由度:
2个关于focal length: α,β\alpha, \betaα,β
2个关于offset: cx,cyc_x, c_ycx​,cy​
1个关于skewness: θ\thetaθ

1.4. an arbitrary world reference system to image plane

before:将三维摄像机坐标系映射到二维image plane

加入选择矩阵 rotation matirx R和平移向量 tranlation vector T

与之前结合化简

M中包含了intrinsic和extrinsic参数,K是内参,[R, T]是外参。

M有11个自由度,5个内参自由度,3个外参(旋转),3个外参(平移)

1.5. Camera Calibration

用images推断内参

deduce 推断
calibration rig 标定台

pip_ipi​是照片中的i点,PiP_iPi​是3D空间中的点,m1,m2,m3是M的三行(欧式空间和齐次坐标系变换)


对于n个图片,写成矩阵形式:

trivial solution平凡解
overdetermined过定的(含有线性相关的两列)
scalar标量


用SVD(分解奇异值):P=UDVTP=UDV^TP=UDVT,VTV^TVT与m合并为某常数乘M,约束条件变为∣M∣=∣VTm∣=∣VT∣∣m∣=1|M|=|V^Tm|=|V^T||m|=1∣M∣=∣VTm∣=∣VT∣∣m∣=1(单位正交阵的行列式为1或-1)

进一步有

解得

退化形态(degeneration configuration):
不是所有情况都能有解,比如图片都在一个平面上(线性无关的方程数量小于未知数数量(11))

1.6. Handling Distortion in Camera Calibration

通常畸变是对称的,以为透镜是对称的,所以用一个isotropic transformation(各向同性变换)表示

变换一下:

但这不是线性的,我们可以寻找其他办法(比如利用比值(不变的))



可以使用SVD求解(类似上面)

求出m1,m2,再用λ\lambdaλ可以求m3,仍然是非线性优化问题,但简单很多

1.7. Rigid Transformations

rotation,translation,sacling

1. pinhole camera model 小孔相机模型【cs231a课程笔记】相关推荐

  1. OpenGL投影矩阵与相机模型(Set Projection Matrix for Pinhole Camera Model)

    出处:http://oliver.zheng.blog.163.com/blog/static/1424115952013349234838/ (转载自"结冰的雪"百度空间) 目的 ...

  2. Pinhole camera model相机模型

    相机模型 数码相机图像拍摄的过程实际上是一个光学成像的过程.相机的成像过程涉及到四个坐标系:世界坐标系.相机坐标系.图像坐标系.像素坐标系以及这四个坐标系的转换. 理想透视模型--针孔成像模型 相机模 ...

  3. 3D Viewing: the Pinhole Camera Model(翻译)

    目录 What Will You Learn in this Lesson? Camera Obscura: How is an Image Formed? How Does Real Camera ...

  4. Coursera吴恩达《序列模型》课程笔记(3)-- Sequence models Attention mechanism

    红色石头的个人网站:redstonewill.com <Recurrent Neural Networks>是Andrw Ng深度学习专项课程中的第五门课,也是最后一门课.这门课主要介绍循 ...

  5. Coursera吴恩达《序列模型》课程笔记(1)-- 循环神经网络(RNN)

    红色石头的个人网站:redstonewill.com <Recurrent Neural Networks>是Andrw Ng深度学习专项课程中的第五门课,也是最后一门课.这门课主要介绍循 ...

  6. Coursera吴恩达《序列模型》课程笔记(2)-- NLP Word Embeddings

    红色石头的个人网站:redstonewill.com <Recurrent Neural Networks>是Andrw Ng深度学习专项课程中的第五门课,也是最后一门课.这门课主要介绍循 ...

  7. 色彩模型--ps课程笔记

    三月,苗苗又开始等待春暖花开了.虽然最近发生了不少伤心事.但是苗苗依然努力的活着.中午订了几盆花.很喜欢花店的名字,努力生长.希望苗苗今年可以做到--努力生长. 三月,苗苗又开始要学习前端了.于是苗苗 ...

  8. CS231A:Pinhole camera model and lenses

    针孔摄像机 模型 针孔摄像机模型针孔摄像机模型针孔摄像机模型 孔洞OOO和图像plane之间的距离就是焦距fff. i,j,ki,j,ki,j,k是相机的参考系,也叫相机的坐标系. kkk是垂直成像平 ...

  9. 【camera】Mtk相机冷启动的拆解笔记

    文章目录 1 概述 2 S0+S1 3 S2 4 S3 5 S4 6 S5 7 S6 8 S7 1 概述 冷启动大致可以分成以下几块内容: S0 (system) 主要是 Activity 的创建耗时 ...

最新文章

  1. java string出现次数_Java String方法获取字符出现次数及字符最大相同部分示例
  2. 用GDB调试程序(一)
  3. OS_CORE.C(总结)
  4. zookeeper的设计猜想-数据同步
  5. uoj#388. 【UNR #3】配对树(线段树合并)
  6. toString、equals方法进阶
  7. LeetCode自我总结(对链表进行插入排序)
  8. mysql drop 权限_MySQL procedure drop权限问题
  9. python 手机自动化脚本_iOS python自动化出包脚本
  10. EF CodeFirst 学习 1 - 用fluent API设置元数据,
  11. iOS WKWebView和JS交互的两种方式
  12. 蓝牙avrcp协议源码分析
  13. 超实用的JavaScript技巧及最佳实践(下)
  14. 冒泡排序——《图解算法》
  15. 基于XC7K325T光纤传输的PCIE光纤卡、2路光纤的资料
  16. 良树机器人_揭开坑王高屋良树不为人知的一面,你看过这部《冥王计划》吗?...
  17. 沪牌软件操作开发说明
  18. 苹果7如何设置手机邮箱服务器,iphone邮箱设置大全
  19. Shellshock Lab
  20. 五子棋-进阶版:C#窗体编写

热门文章

  1. 06-HTML5详解
  2. Linux右键菜单全是英文的,QT下解决QTextEdit的右键菜单是英文的办法
  3. Windows将系统挂载的sata硬盘识别为USB设备的解决方法
  4. 文献密码搜索的方法大全
  5. 最清晰最全的inout类型使用方法
  6. C中snprintf与vsnprintf函数
  7. vsnprintf函数使用
  8. 腾讯数据库TcaplusDB X 大主宰·大千世界|万家决战,谁领风骚
  9. 找靓机AppUI自动化测试延伸
  10. 【大冰:一个孩子的心愿】