重塑视界的倾斜摄影 | 始于一战的拍照建模技术

 

     今天我们聊聊用拍照的方式自动建立3D模型,测绘圈儿里把它称为倾斜摄影,计算机领域则把它称为基于图形的三维重建(image-based modeling)。

如果只是介绍一下这个技术,几乎可以用一两句话来概括:用相机绕着一个场景拍若干张照片,导入到软件里,经过一系列的计算,就能生成一个可以旋转浏览的3D模型。

但我们希望再往前走一步,通过这个技术的发展,来聊一个更大的话题:一项技术是怎样成为技术的,它又是如何与其他技术融合的。

「黑科技」背后的简单原理

如果你不了解倾斜摄影,可能会以为,拍个照片就能建模,这太神奇了,肯定是最近才诞生的黑科技吧?其实还真不是。

和倾斜摄影相对应的是正向摄影,就是从正上方往下拍摄。

倾斜摄影说的是拍照的时候摄像机和被拍摄物体有个倾斜角。

它和正向摄影只有拍摄角度这么一点区别,后来怎么能成为自动建模的黑科技呢?咱们还得从头说起。

第一次世界大战的时候,为了能让指挥官对战场的地形、敌方的部署有清晰的了解,战争双方都会派出侦查机进行侦查。那时候相机还都是大块头,飞行员就把这种叫Graflex的相机扛上飞机,航拍之后冲洗出来给领导使用。

受限于当时的相机技术,只能低空飞行才能拍出足够清晰的照片,而低空飞行就会带来被打下来的风险。所以,手持Graflex相机的飞行员们,只能在很远的地方,偷偷摸摸的拍下照片,然后掉头就跑。

在指挥官心目中,理想的战场侦查影像应该是能够纵览全局,最好能体现出一些地形的三维信息来,就像这张图的样子:

但是飞行员远远拍下来的倾斜影像,挂在指挥官墙上的作战地图成了这样:

指挥官对此当然是很不满。于是人们就开始考虑:能不能通过某种办法,把这种倾斜的影像恢复成真实的三维场景呢?

倾斜摄影的故事,就从此拉开了帷幕。

我们知道,在拍照的过程中,三维物体投影在二维影像上,被「压扁」了,有一个维度的信息不可逆的丢失了。

那有没有一种机器,能把这个丢失的信息还原呢?还真有,而且这部机器我们每天都随身携带,那就是我们的大脑和双眼。

我们的眼睛看到的是世界在视网膜上面的二维投影,那么我们为什么能感受到三维空间呢?大脑是怎样通过眼睛来进行三维建模的呢?

物体上下左右的位置我们可以直接从眼睛获得的二维图像加以判断,要建立三维模型,我们还要知道物体距离我们有多远,这叫深度信息。

在上面这张图里,最下方是我们的两只眼睛,中间两条黑线代表了视网膜成像的平面。我们是怎么判断绿色的树距离我们比红色的花要近呢?

你可以看到,我们的左眼和右眼看到的是不一样的图像——在左眼里,树在花的右侧,而在右眼里,树的图像跑到了左侧。

现在你就可以停下来,找一近一远两样东西,先闭上左眼再闭上右眼,是不是它们的位置关系发生变化了?

大脑就是靠这种双眼看到图像不一样的结果,再辅助一套算法,就可以把上面这张图中的光线变化逆向推演,从而得出物体远近的深度坐标。这套算法我们用一张图说明:

假设两只眼睛在一个平面上,只有水平方向的变化。

想知道P点在空间里的深度坐标z,已知数有这么几个:

左视图和右视图光心距离B(也就是我们双眼的距离)

眼睛的焦距f(就是视网膜和光线交点的距离)

两张图上的横坐标视差Xleft-Xright=D(就是P点在两个图像里位置变化了多少)

推导的过程我们不给了,只给出结果:

上面这段数学过程,你看不懂也完全没关系,你只需要知道:想把一个点在三维空间中的位置还原出来,我们必须知道这三个数:

相机的焦距

 两个镜头之间的距离

➤ 同一个点在两张照片上位置的变化

后边说到所有利用照片建模都是基于这样一个最简单的原理。

用机器追赶人脑

当然,大脑在还原三维世界的时候,并没有套用这个公式,我们感受不到大脑进行了计算,只是自然而然的「看到」了三维物体。

算法是人们根据数学和光学知识反推出来的,所以倾斜摄影也被叫做「逆向建模」。有了基本的数学算法,人们就开始想办法来模拟我们的双眼和大脑,来逆向还原三维世界。

这个用机器模拟大脑的工作一直在不停进步,在测量学里,利用照片进行逆向建模称为「摄影测量学」,它的发展分为三个阶段: 模拟摄影测量、解析摄影测量、和数字摄影测量。咱们一个一个来说说。

前面我们说到,一战之后,人们开始希望通过摄影来进行三维地形的重建。

那时候计算机还没有被发明,在无法进行大量计算的时候,人们采用的办法最为简单粗暴:既然双眼成像能建立模型,那我就直接照着双眼的原理造出一台机器来。

一战后,维也纳军事地理研究所率先制成了一台「自动立体测图仪」,后来由德国卡尔蔡司厂进一步发展,把这种制图仪量产化。

它的原理很简单,就是事先按照两只眼睛的距离同时拍摄两张照片,然后用幻灯机把照片投影到桌面上,用金属杆子模拟光线的传输路径,一个个逆向寻找交点的位置,然后在桌面上按比例还原地形模型。

因为没有计算条件,这种方式干脆就不进行计算。你可以想象一下,要建立一个三维模型,要用金属杆模拟多少个点。这个阶段,摄影测量非常耗费人力。这种没有计算,纯靠机械模拟的阶段,就被命名为模拟摄影测量时代。

到了上个世纪50年代,第一台计算机问世,人们终于可以借助机器进行大量的计算,摄影测量也准备迈入下一个时代。

也许你会想,求解三维空间坐标,不就是上面那个z=BF/D的公式吗?用得着惊动计算机来帮忙吗?

要说清楚这个问题,咱们还得先说说人脑的另一项逆天的功能。

前面我们说,人脑通过双眼视差,可以区分物体的远近,但这种方法只能区分比较近的物体。当两个物体都离我们比较远的时候,我们就很难通过视差效应来区分远近了。

回忆一下,你看远处山的时候,是不是很难分辨哪座山离你更远?

不过没关系,人是会动的动物,我们只要随便移动一段距离,或者转一个角度,视野的改变量就远远大于双眼的距离了。

大脑可以通过对比运动前后看到的画面,来重建更复杂的三维模型了。这个过程相当于是通过移动把原来的视差效应放大了。 

另外,通过双眼视差基本上只能看到物体的同一面,而通过移动,我们能看到物体的另一侧,从而在大脑中建立更全面的模型。

你看这张图,树枝交汇在一起,是不是很难分辨哪个近哪个远?

而只要我们稍微旋转一下角度,是不是马上就有强烈的空间感了?

大脑的这项功能,叫运动视觉。对大型场景进行三维重建时,双目测距原理已经不够用了。

进入解析摄影测量时代后,人们不再用两台相对位置固定的相机来模拟两只眼睛了,而是模拟这个运动视觉功能,通过不断改变相机的位置,拍摄物体不同角度的照片,来重建三维模型。

这个工作叫做运动恢复结构(Structure From Motion)。

为什么运动恢复结构会带来大量的计算量呢?

在双目测距法中,两张照片是在一个平面里的,相对距离也始终保持不变。而运动恢复结构中,两张照片不在一个平面里,空间位置和角度都发生了变化。

相当于两张照片分别有自己的三个方向的位置坐标,以及三个方向的角度坐标。

我们最终要得到某个点的坐标信息,不在任何一张照片自己的坐标系里,而是要通过复杂的坐标变换,得到它在真实世界里的坐标。

这些多出来的未知坐标数据,叫做照片的外方位元素。加上我们本来就要求解的某点空间坐标,未知数变得非常多。对这些未知数求解的方法很多,公式一个比一个复杂,你可以感受一下:

你不需要看懂方程,只需要知道:对于照片外方位元素信息知道的越少,计算就越复杂,误差就越大;相反,想要降低运算难度,就要提前把尽可能多的信息告诉计算机,比如在地面上设置控制点,预先定义拍摄相机的坐标。

这些庞大的计算量,靠人力几乎是不可能完成的,必须依靠计算机。

至此,摄影测量的发展出现了两个分支:一是通过发展硬件设备,提前得知更多的相机方位和角度;二是通过发展软件算法,更快速的求解相机的方位和角度。

1957年,美国人海拉瓦发表了解析测图仪原理的论文,70年代中期解析测图仪开始在市场上广泛应用,摄影测量正式进入解析摄影测量时代。

解析摄影测量有两个特点:

一是处理的还是冲洗出来的照片,除了需要进行上述计算,还要对照片本身在曝光、冲洗和老化过程中的变形进行修正计算;

二是虽然使用了计算机,但还只是利用它进行大量公式的计算,没有开发专门的处理软件,仍需要大量的人工操作,主要的工作就是靠人眼挑选出两张照片中哪些点是相同的关键点,再输入计算机进行计算。

这个时代并没有持续很久,随着数字技术和软件技术的快速发展,人们很快进入了数字摄影测量时代。

有两项关键技术标志着时代的跨越。

一是数码摄影技术的诞生。

对大型三维场景的还原,需要的照片数量动辄就是上万张,如果一张张冲洗,对照片的形变进行矫正,再一张张人工比对,工作量大的可怕。数码相片的结果直接储存在电脑里,可以更快速的进行处理和分类,这无疑把数据处理的效率提上一个大台阶。

二是专业处理软件的诞生。

前面为了方便你理解,我们一直说的是一组照片上一个点的位置比对。而实际上为了建立一个完整的模型,每组照片上需要处理的点都至少要几百个。

在数字摄影测量时代之前,关键点匹配的工作都是靠人工来完成的。到了这个时期,人们开发出专门的软件,在两张图片中自动找到大量匹配点,这又进一步提高了效率。

技术的爆发与融通

至此,用照片进行三维建模的技术核心已经发展完毕,没有什么本质上的东西需要突破了,但它距离我们今天看到蓬勃发展的倾斜摄影技术还差一大截。我们的故事,也就在这里准备进入高潮。

我们先来梳理一下,用照片建模需要做哪几件事情:

➤ 利用无人机在空中采集大量的照片,每两张照片之间要有一定的重叠,以便后期找到匹配点;

➤ 尽量多的提前获取每张照片的原始数据,比如拍摄坐标、拍摄角度、焦距等,以减少后期的运算量;

➤ 利用软件对大量照片进行整理,自动选出匹配点,反算出没能获取的原始数据;

➤ 计算出每个匹配点的空间坐标,再通过算法补齐其他关键点的坐标,贴上材质,形成模型。

在数字摄影测量时代的初期,这几项工作就都可以完成了,质量也说得过去。但因为成本高、效率低,只能由大型机构来完成这项工作,而很少有机构能从整体上优化这些关键工作。

技术发展到一定程度,当它的基础理论完备之后,再想要大幅度的进步,只有一个方法,我们叫它商业化大爆炸

简而言之,就是构成这项技术的几个分支技术,分别由不同的公司、以不同的商业目的,进行极致的优化。

我们来快速看看这几个分支技术的发展。

无人机支线:

2006年,影响世界消费级无人机格局的大疆无人机公司成立。

2013年量产全世界首款一体化小型无人机,此后不断迭代,把风中悬停、三轴稳定云台、折叠便携、高清图像传输、智能避障、屏幕遥控等技术不断塞进越来越小的机型里。

成本也是一再降低,最新发布的Mavic Air价格跌破了5000元,让无人机真正进入了消费领域。

相机支线:

以尼康、佳能、索尼为代表的制造商,在数码相机领域相互竞争,不断推出更好、更轻的产品。

其中,索尼公司在2010年开辟了微单产品线,主打「在最有限的空间中集成最优秀的性能」,在2015年更是把密集混合快速对焦、大光圈广角蔡司镜头、35毫米全画幅传感器等黑科技塞进了重量只有500克的RX1R2相机里。

定位技术支线:

经过十几年的发展,民用GPS全球定位系统精度已经达到了米级,2016年美国加州研发人员开发了一种全新的GPS算法,可以将精确度提高到厘米级。

GPS定位可以让无人机拍摄的时候无需安排地面控制点,就可以获取相机空间坐标,从而大幅度减少求解方程中的未知数,而其成本到今天几乎已经是全民免费。

软件支线:

以ContextCapture、Street Factory为代表的专业软件,给倾斜摄影的后期处理运算带来了极大的便利。

最重要的就是可以无视相机初始坐标,完全通过自动算法生成超高密度点云。算法优化的结果,就是对初始摄影条件的要求不断降低。

此外,像Altizure、dronedeploy这样的自动飞行路线规划软件,可以直接在手机上选定一个拍摄区域,对无人机自动进行飞行路线规划,完全傻瓜操作就可以实现高重叠、不漏拍的影像获取;单次飞行拍不完,可以自动进行续拍,从而降低了无人机的续航要求。

软件进步最大的成果,就是中小型地区的航拍相机数量需求不断减少,从最早的5镜头,到双镜头,再到现在单镜头就可以完成整个拍摄,大大降低了无人机的负载需求,也进一步降低了硬件成本。

同时,以BIM技术为代表的建筑建模技术进入市场,人工和自动相结合的方式快速补足了倾斜摄影拍摄建筑精度不够的短板。

软件领域一旦进入消费级,就会出现更具有颠覆性的产品问世,那就是以云计算为代表的在线后处理工具,它们学习模仿专业软件的核心算法,然后在商业上通过低价甚至免费来获取用户,再通过其他方式获利。

这对于传统专业软件来说是坏消息,但对于民用测量市场来说,无疑是引发「全民倾斜摄影」的好消息。

关于这个话题,我们放到下一期来给你说。

当然,上面说的这几项消费级技术,对于大型地貌的专业级测量建模,还是不能满足需求的,但现在普遍存在的、几平方公里的建模需求,不到万元的成本就完全能满足了。

除了专业软件之外,我们看到的无人机、相机、GPS等技术,全都不是专门为了倾斜摄影这一项技术而研发的,它们各自有着更广阔的用途和商业前景,但就是这种分支散叶的商业化大爆炸,才会先独立、再融通,最终回到一起,促进一个「跨界技术」的不断进步。

技术的下一步:超越人脑

前面我们说的所有技术,都是建立在一个基础上:通过双目视差运算、运动结构恢复,用机器模拟人的大脑进行建模。

而在另一些与倾斜摄影无关的领域,一些更牛的科技正在蠢蠢欲动,准备彻底颠覆掉我们前面讲到的一系列麻烦,和为了解决这些麻烦发展出来的分支技术。

这些科技正在做的事是:别模仿大脑了,让我们超越自己,实现那些人脑不能实现的功能吧。

给你看两个例子。

在自动驾驶和机器人领域,深度相机的发展正在日趋成熟。简单来说,深度相机就是不需要进行多张照片的匹配和坐标计算,而是在拍摄单张照片的同时,就获得每一个点的深度坐标数值,从而直接实现建模。

深度相机技术在民用领域最有代表性的就是iphoneX的3D人脸建模功能。

在游戏和影视制作领域,基于计算机视觉的深度学习技术也在不断发展。诺丁汉大学和金斯顿大学的几名人工智能专家在2017年发布了一个开源算法,只要上传一张照片,就可以自动生成3D人脸模型。 

将网址复制到浏览器可以尝试哦☛https://cvl-demos.cs.nott.ac.uk/vrn/

这背后是通过大量数据进行学习的人工智能技术,让计算机只通过一张照片上的光影变化就能「猜」到实际的3D模型应该怎么建立。

目前国内也有人进行这方面的研究,比如上海交通大学在2015年就通过机器学习,做到单张照片半人工进行三维建模:

在未来,这样的技术很有可能从根本上解决多照片匹配所带来的一些列问题,把三维重建技术带向新的未来。

当然,随之而来的是那些为解决老问题而存在的旧技术逐渐退出舞台。

结语

倾斜摄影的故事到这里就告一段落了。最后我们看看,通过这个故事,能看到技术发展的哪些特点。

技术有自己的生命周期,我们可以把它比喻成一个人。

 任何一个技术都不是生来强悍的,刚刚诞生的时候,它只能笨拙地解决少量问题,有着无数的缺陷,还会带来很多麻烦。就像最早期的模拟摄影测量,甚至比不上如今一个最差劲的建模员纯手工建模的效率。

  进入青年期,它开始四处乱撞,逐渐找到自己的方向,并且慢慢知道,很多事情靠自己解决不了。于是它开始求助于其他成熟的技术,正如摄影测量借助相机、飞机、计算机来发展自己。

●  成年之后,技术终有一天会走出象牙塔,进入商业社会,在那里迎接它的是残酷的商业竞争。那里也会有更多帮助它的朋友,即便那些朋友并不是以帮助它为唯一目的。相机和无人机都是商业竞争下独立发展的典范。

  就像人会结婚生子,技术会和其他技术融合到一起,融合诞生的新技术会重新开始自己的生命周期,并迟早会与父母挥手告别,走上完全不同的路。

  最终,一项技术会随着新技术的诞生而衰老,逐渐无人问津,但被替代或者被淘汰,并不意味着它没有存在的价值,旧技术归于历史的尘埃,终会化为土壤,供未来的技术生根发芽。

今天的话题就聊到这儿,希望能给你一些思考。有态度,有深度,BIMBOX,我们下次再见!

 

 

暂无评论

相关推荐

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

重塑视界的倾斜摄影 | 始于一战的拍照建模技术