摄影测量与计算机视觉

(1)光与视觉

1.要有光

137亿年前,婴儿宇宙仅仅存在了三分钟。这是一个核熔炉,空间充满了疯狂的等离子体。电磁力已从超力中分离出来;作为电磁力的信使,光子,随之诞生。然而,在等离子的浓汤里,光子刚发射就被质子和电子弹射,宇宙混沌一片。时间流逝,空间扩展,宇宙渐冷。37万年后,温度降到3000K,质子和电子结合成中性的原子。此时光子才畅通无阻,宇宙间有了第一道光。不过,我们无须回到137亿年前才可体验不透明的宇宙。典型的等离子体近在眼前。站在6000K的太阳表面,你无法望见内部发生的离子风暴。

这是量子场论中的光。只要人们好奇心永存,对于光的本质的研究,将一直持续下去。

2.We come,We see

130亿年后。一颗叫太阳的恒星,此刻正照耀着它的第三颗行星——地球。浅海,一条鱼在温暖的水域徘徊。它的皮肤细胞发生了基因突变,变的对光更加敏感——这,就是原初之眼。然而,这双眼睛,无法聚焦,世界模糊不清。幸好此性状代代遗传,并且进化出晶状体。这是一块凸透镜,犹如镜头调焦,世界景象终于清晰。

图1 鹦鹉螺的眼睛只有一个针孔。达尔文第一次见到时非常迷茫:这家伙为什么5亿年都不进化?

现在,我们将那些感光细胞,称为“受光体”,并分成两类。视椎细胞,对红、绿、蓝三种波段的光敏感,故定义为三原色——事实上,从那条鱼进化而来的人类,只能看到这三种颜色,黄色和棕色等,是大脑用合成的方式“看”到的。虽然整个可见光波段,都属于太阳的最强辐射区;但是人类只用三原色细胞,却能分辨数以千计的彩色,大自然可谓大道至简,鬼斧神工。另外一种受光体称为视杆细胞,对所有的光都敏感,且可分辨只有几个光子的微弱的光,故我等可夜间视物,但不能区分色彩。在眼睛中两寸照片大小的面积里,共有1.25亿视杆细胞和600万视锥细胞——相当于130兆像素的数码相机,比当前普通相机的分辨率高10倍。不过,根据摩尔定律,人眼分辨率即将被数码相机超越。

3.平直宇宙

我们的宇宙一直近乎无限地保持平直(物质和能量的总和,使得空间曲率为零)。因此光,真空中的光,总是沿着直线传播。到了1915年,爱因斯坦发表广义相对论。揭示了在大质量的天体附近,光线将发生弯曲——光的路径变成了测地线。不过,这对住在地球上的人而言不用担心。当然,生活在黑洞附近的几何学家大概会碰到点麻烦,困在曲面鱼缸里面的鱼科学家日子也不太好过。总之,光的直线传播,是几何光学的基础,当然也是摄影测量和计算机视觉的物理基础。

如果硬要钻牛角尖,考虑我们并没有生活在真空中。此时,几何光学的真正基础是:最小光程原理,或者叫费马最小光程原理。没错,就是那个业余数学家费马。说的更直白一点,就是:光的传播时间最短(而非路径最短)。有了最小光程原理,我们就可计算出光是通过哪条路径,从池塘中的鱼,到达眼中的。假定空气的折射率为n1,水的折射率为n2,真空光速为c。我们先得到光在介质中的速度:v1= c/n1,v2= c/n2。那么,从眼睛Q到鱼P的传播时间T就是:

T = (x2+a2)0.5/v1+ (b2+(l-x)2)0.5/v2(1)

这里x(或者说θ1和θ2)是未知数。运用微分法求极值:

dT/dx = x/(v1(x2+a2)0.5)– (l-x)/(v2(b2+(l-x)2)0.5) = 0 (2)

简化得到:

sinθ1/n1= sinθ2/n2(3)

显然,我们在得到入射角和折射角的同时,也顺便推导了初中课本上的斯涅尔折射定律。最后,联立(3)以及tgθ1= x/a、tgθ2= (l – x)/b,得到x和光的路径。

图2如何计算光的路径。(本图取至维基百科)

考虑一个更复杂的例子:从飞机上航拍了埃菲尔铁塔。请计算塔尖到相机的光的路径。假定随高度上升,空气愈加稀薄,折射率相应减小的效应必须考虑。此时,路径将是一条曲线(函数),而非微积分所求之极值,此时你就需要变分法了。我们在后继系列再稍微展开,虽然主流计算机视觉教材不太涉及变分。

4.画家和透视法

西汉文学家匡衡幼时穷困,没钱买蜡烛。他在墙壁上挖了一个小孔,邻居家的光射过来,可供他晚间读书。匡衡可能会注意到,书上会产生蜡烛的倒影。这种由光的直线传播带来的现象称为小孔成像,所对应的,三维世界到二维书面的映射,称为透视变换。这是视觉和摄影中最重要的一类变换。

显然匡衡没有发现透视法。因为直到清朝,在传教士以上帝的名义带来透视法之前,中国的画家不懂透视作图。因此,这些画作都违背了几何直观(当然我们这里不去讨论中国画的艺术价值)。

西方是谁先发现了透视法?有三种职业很有可能。建筑师、画家以及天文学家。他们的共同点是都需要作图,即把三维世界平展至图纸或画布。认知的过程经历了漫长的时代,从希腊时期的艺术直到文艺复兴。希腊的画家懂得远小近大(foreshortening),讲究景深错落,但不懂的严格的比例关系;目前公认是文艺复兴初期的意大利建筑师布鲁内莱斯基(Brunelleschi,1377-1446),真正建立了几何意义上的透视法。他启发了同时代的画家。马萨乔(Masaccio,1401-1428),是第一个运用透视法的画家。从此以后,西方经典画派就摆脱了透视几何的制约。对于用不用透视法的效果,这里放两幅中西方名画,以供参照。

图3a最后的晚餐。 光线会于耶稣的头部(灭点),强烈的空间感

图3b园林清课图。 没有灭点,缺少立体感

好了,知道了透视法,你会画出像照片一样符合透视的画吗?抱歉,对于景深错落的场景,这很难,对于专业画家也一样。因此,许多文艺复兴时代的大画家有他们的“小秘密”,那就是透镜。但在透镜广泛应用之前,画家们不得不借助更简陋的道具。德国画家丢勒(Albrecht Dürer,1471-1528)首先发明了透视窗。准备一块矩形木板,蒙上透明的纱幕,模特的形象透视成像在纱幕上。画家只要临摹纱幕上的对象,就完成了透视法的绘制(用一点数学语言,就是透视变换与平面相似变换的复合(composition),依然是透视变换)。

图4透视窗。从左到右分别是:模特、透视窗、对着透视窗临摹的画家

约半个世纪后,基于镜头的透视作图开始流行,画家们发明了暗室和暗箱。准备两间屋子,一间受阳光照耀,一间保持黑暗。先在墙壁上打个小孔。和匡衡老兄不一样之处在于,在孔上放一个凸透镜。此时,用一个画板来承接模特或景物的倒影。对着画板临摹,几何关系就错不了;然后再照着模特的神情艺术加工吧!大画家维米尔(1632-1675)、卡拉瓦乔(1571-1610)都是个中高手。聪明的你当然想到了,如果把画板换成永久成像设备(卤化银相纸或CCD),那不就是照相机吗?没错,我们下次再详细介绍照相机。

至于天文学家为何没有发现透视法,他们才不介意呢!恒星,距离是那样遥远,几乎亘古不变。它们发出的光,已非透视投影而是平行投影——按比例画在纸上就是了。

下期内容:

相机发展史

转载本文请联系原作者获取授权,同时请注明本文来自季顺平科学网博客。

链接地址:http://blog.sciencenet.cn/blog-520501-984870.html

下一篇:摄影测量与计算机视觉——系列2 相机发展史

摄影测量学和计算机视觉,科学网—摄影测量与计算机视觉——系列1 光与视觉 - 季顺平的博文...相关推荐

  1. MATLAB写UCB算法,科学网—【RL系列】Multi-Armed Bandit问题笔记——UCB策略实现 - 管金昱的博文...

    本篇主要是为了记录UCB策略在解决Multi-Armed Bandit问题时的实现方法,涉及理论部分较少,所以请先阅读Reinforcement Learning: An Introduction ( ...

  2. MATLAB马尔科夫决策过程遗传,科学网—【RL系列】马尔可夫决策过程与动态编程笔记 - 管金昱的博文...

    推荐阅读顺序: Reinforcement Learning: An Introduction (Drfit) 本篇 马尔可夫决策过程 马尔可夫决策(MDP)过程为强化学习(RL)提供了理论基础,而动 ...

  3. 计算共形几何是计算机科学和,科学网—《计算共形几何》教程第一章 - 顾险峰的博文...

    [最近老顾等人合著的汉语教程<计算共形几何>已经完成初稿.这里我们将第一章公布,其他章节会在清华暑期课程中讲授.希望大家批评指正,不吝赐教.有兴趣预定者,请联系gu@cmsa.fas.ha ...

  4. 荧光平均值计算matlab,科学网—使用Image J进行自动荧光定量分析 - 陆绮的博文...

    在这里我整理我最近使用ImageJ软件自动数细胞以及定量分析荧光强度的步骤. ImageJ的主面板: 打开文件 File → Open →'.zvi' 先把2D的所有图叠加起来,选项选max inte ...

  5. 计算机专业教育,科学网—中国大学计算机教育路在何方? - 吴军的博文

    硕士研究生毕业的时候,因成都的高校都只要博士,当初又特别想进高校,于是去了重庆的一所三流本科院校应聘.由于我是搞工程实践的,做的东西偏应用,理论研究较少.我发表的第一篇论文没有经过我的导师审核,完全由 ...

  6. linux中硬链接文件,科学网—Linux:文件的符号链接和硬链接 - 刘洋洋的博文

    参考:中国大学MOOC课程<Linux系统管理>,授课教师:颜晨阳. 推荐阅读: t.cn/RLXkhpc 1 符号(symbolic)链接 与Windows的快捷方式很像,这些文件很小, ...

  7. 关联规则算法php,科学网—加权关联规则权值的计算 - 叶文菁的博文

    加权关联规则挖掘(以apriori和fp-tree算法为例)的权值计算. 以下面的数据为例来进行说明,表2中的交易权重和归一化权重只是截图结果,这里的具体数值可不要考虑. 加权支持度的计算为Sup(B ...

  8. python 读grid 数据_科学网—Python_机器学习_总结14:Grid search - 李军的博文

    机器学习中存在两类参数:通过训练数据学习得到的参数:---可认为是辨识得到的参数,例如模型系数: 在学习算法中单独需要优化的参数--超参.调优参数:---算法自身的系数,例如决策树的深度参数: Gri ...

  9. gff3转mysql_科学网-把GFF3文件导入MySQL数据库-闫双勇的博文

    什么是GFF3?这个一种序列注释文件的格式,基因组注释数据常常会用这种格式来记录序列注释信息,关于这种格式的更多信息,可以在这里学习:http://www.sequenceontology.org/g ...

最新文章

  1. 前端基本功—javascript 第三天
  2. [学习笔记]信号与系统
  3. android ViewPager 实现点击小圆点切换页面 案例
  4. RK3288 添加USB转虚拟串口设备
  5. NASM 中 SECTION 的默认对齐
  6. 网站使用CloudFlare
  7. 机器学习基础-多项式回归-03
  8. Xcode工程添加第三方文件的详细分析 Create folder references for any added folders(转)
  9. spark代码连接hive_spark SQL学习(spark连接hive)
  10. Spark SQL join的三种实现方式
  11. 读书笔记-简单叙述对象关系
  12. Linux开机报write same failed manually zeroing错误
  13. MicroBlaze AXI总线 GPIO中断使用(On Atyls Board)
  14. Linux查看分析任务计划命令,Linux任务计划crontab
  15. 广东地区电信官方DNS服务器
  16. 感悟 | 一个 33 岁老程序员的自白:因为那时候我还不懂得…
  17. missing arguments for method toArray in trait Collection
  18. 13G311-1 混凝土结构加固构造 免费下载
  19. php115网盘seo,115网盘禁止影视资源外链 网盘行业路在何方
  20. 黑客教父龚蔚谈公共WiFi该不该连?

热门文章

  1. vector函数输入输出动态二维数组
  2. mysql概念模型中的3种基本联系_在概念模型中,通常用实体联系图表示数据的结构,其 3 个要的元素是( )、( )和( )。_学小易找答案...
  3. 解决Oracle服务端1521端口无法telnet,服务名未开启监听问题
  4. 运维 —— 1521端口不通
  5. git 远端更新合并到本地
  6. 找不到com.sun.beans.introspect.PropertyInfo的类文件问题
  7. 泛型的基础概念,T和?的使用方法和区别
  8. 雷柏 V500PRO Win键失效
  9. 贝叶斯网络、拉普拉斯平滑
  10. spring 配置相关