我的名字叫高进,曾经在江湖上大家都叫我赌神。我知道你看我这样子觉得不像,人老了都这样,你到我这年纪也会一样。我年轻时很帅的哦,你看这是我那时候的照片。
赌这行当,普通人靠运气,大多数人都被庄家杀得血本无归。但是高手,特别是像我这样的人,当然是靠技术啦。当然也有例外,比如曾经在我在公海上一场大赌局中的对手,新加坡赌王陈金城,他有那么大的名头,却还是想着出老千。
我记得这场赌局,我们两边都下够了本,光是我扔出的瑞士银行的本票,就高达三千万美元。
我那个堂弟高义事先就给了陈金城一副特别的眼镜,让他可以看到牌后面的记号。
很可惜啊,他们这些小动作早就被我识破了。而且,陈金城这副眼镜,不外乎就是个能看到牌后记号的过时产品,只要在牌后面故意做上其他记号,就能把他迷惑住了。
我刚才说过,像我这样的人,赌靠的是技术。不仅仅是牌桌上的技术,还包括我在背后的创新。我在事先就已经和西德专家一起,搞出了一种特殊的隐形眼镜,我不用靠任何牌后面的记号,也能知道对方的底牌!
后面的事也就不用多讲了,总之,高义被陈金城一枪干掉了,而陈金城也因为杀人罪被判了三十年,我只是因为聚赌被罚了三千块,哈哈。
当时所有圈内人都想知道我这个眼镜到底背后是什么技术,很多人找美国、苏联、还有西德的专家想仿制出来。可惜一个都没有成功,一方面我当时找的西德专家收了我一大笔钱,而且一直有我的人盯着,所以他们一个字也不会吐出去。更重要的是,最关键的技术细节一直在我的脑子里面,其他人都不知道。我们圈子里面的人都这样,真正的好东西是不会告诉其他人的。
我本来以为,这种技术的秘密会一直埋在我脑袋里面,直到十几年后我竟然看到到几个美国专家发表了一篇文章。虽然从描述看来,他们的方法还只是个技术原型,但基本上已经把我的技术秘密的核心思想揭露出来了,看来这世界上和我一样聪明的人还是不少的。对,就是下面这一篇,我专门还做了个册子收藏着。我那时候没有留下什么书面的资料,所以看到别人把这技术讲得这么详细,就觉得特别有纪念意义。
我知道你看不懂,毕竟这是很专业的东西。不过我俩也算有缘,我可以花点时间给你大概讲一讲。
我们可以先从这几个专家做的演示视频看起:
你可能已经大概有点模糊的感觉了。对,那张牌反射到书上的光线会再反射到相机上,只要经过这种技术逐渐的扫描解析,就最终能够生成一张清晰的牌面的照片了。但这是怎么做到的呢?这就是秘密所在。我当时没有给这个技术取什么正式的名字,毕竟我忙着准备赌局的事情了,所以我接下来就先用这些美国人起的名字“对偶摄影(Dual Photography)"来称呼这种技术吧。
其实,对偶摄影的核心思想来自于斯托克斯-赫尔姆霍兹反转-互易原理(Stokes–Helmholtz reversion–reciprocity principle),它最早由英国的大科学家Stockes在1849年提出,基尔霍夫和普朗克在融合参考德国大科学家Helmholtz的1856年关于光的偏振原理后进行了详细的引用和描述。
虽然这个理论的数学描述比较复杂,但我一句话就可以给你说清楚:有一束光发射到一个物体上并反射出去,如果我们能够计算出光传输的数学特性(在学术界,这个特性经常被称为光传输矩阵),那么就很容易高效的得到光反向传输时的状态。
我给你看一个我做的小视频,应该可以加深你的理解。
看懂了吧,只要你能够计算出光的传输状态,就可以反过来求出所谓的对偶图像。当然,这里的所谓传输状态,是用光传输矩阵来描述的。你刚才不是说你经常玩知乎吗,上面有篇文章44. Light Stage: 无限真实的人脸三维扫描——忘记幼稚的AI换脸吧就讲了光传输矩阵,你可以再去查一查。
好吧,我把上面这篇论文中的公式拎出来给你捋一捋。你看论文中下面这张图画的很好:
在普通成像时,我们把投影仪投出的画面表示为p',把相机成的像表示为c',而我刚才所说的光传输矩阵表示为T。那么就有:
注意看投影仪发出的是一个pXq的图像,而相机成像则是mXn的图像。这里首先要把c'和p'都表示为一维列向量,所以T就必须是一个mn X pq的矩阵。
现在反过来,在相机位置摆放一个分辨率为mXn的虚拟投影仪,在投影仪位置摆放分辨率为pXq的虚拟相机。把此时投影仪投出的画面表示为p'',把相机成的像表示为c'',那么就有
你看,简单的把T进行转置,就可以用于求得对偶图像了。
你问我T里面元素是什么?看看论文中下面这张图吧:
当我们单独点亮投影仪的第j个像素时,我们将得到一幅完整的图像(它仅由这个源像素所照亮),所以T矩阵的第j列就是这个完整的图像。对投影仪的每一个像素都这样做,就可以得到完整的T矩阵了。注意这里面都假设光源做了归一化处理。
所以你会看到,T是一个尺寸为mn x pq的巨大的矩阵。比如这篇论文的作者用的投影仪是Mitsubishi X480U DLP,分辨率1024x768,相机是Basler的摄像机,分辨率也能到这么大。这样T矩阵将有六千多亿个元素。要想存储它一定是需要一些必要的压缩表示的。当然这里作者采用了更聪明的方式来大大减少存储需求。
同时,就按上述描述获取T这个过程,需要依次点亮投影仪的每一个像素并进行计算,这显然是非常慢的。这几个美国学者的关键贡献就是想出了同时点亮尽可能多的投影仪像素,还让它们相互之间互不干涉的办法。就像下面这张图示意的,确实可以同时点亮不同的光源来成像,然后从中分离出不同光源的像。
其实他们的方法的核心也很简单,就是分而治之。先看一个最简单的方式,就是把投影仪图像划分为N个方块区域,每个区域的尺寸为8x8=64个像素。然后就可以同时点亮每个方块,但每个方块内逐像素依次点亮。这样总共只需要拍64张照片,就可以获得所有需要的信息了。再按照上图所示的思想拆分这些照片可以得到单个像素对应的图像。
当然,实际上的过程要复杂很多,要考虑到大幅度减少存储T所需要的巨大空间,要考虑到块与块之间可能有干扰,要准确的获取投影仪像素和相机像素之间的对应关系,等等。所以你看看,他们花了很多篇幅在讲怎么达到理想的目标。总之你看看下面的视频就能大概看出,他们是采用一种金字塔的迭代式的形式来做到的。
你已经蒙圈了?不要灰心,你能听我这个老头子讲到现在已经比大多数人强了。我上次给人家说我就是赌神还被骂是神经病呢。
你问我为啥进赌行还懂这么多?我说过,我叫高进。我老爸给我取这个名字是让我好好念书,不断进取。所以我读书时就很厉害啊,从小到大都是第一名,我在美国念过大学的啦。不过在那边读书时我跟着高人学会了赌,而且还发现我学的技术可以让我逢赌必赢,所以就干脆辍学专心赌钱了。
好了,今天难得跟你投缘,跟你讲了这么多,你也听我讲了这么久,很不错。这本赌林秘籍我就留给你了,你好好琢磨吧。
——————————————————————————————————
【本故事純屬虛構,如有雷同必是巧合】
我已经编不下去了,我们还是总结下今天的内容吧
给大家再看看论文中Naive方法和作者提出的方法的效率对比。你可以看到一个原本需要10.9天采集合成的图像,用作者提出的自适应的方法只需要136分钟即可搞定,而且所需存储空间从5.4TB降到了272MB。
作者的论文和演示视频中还有一些细节的阐释,限于篇幅以及本文”严肃而活泼“的风格,实在无法细讲了,留给各位自己看吧
今天的参考资料有:
https://www.youtube.com/watch?v=p5_tpq5ejFQ