“摄像-屏幕自指模拟”的版本间的差异
(→原理) |
(→原理) |
||
第56行: | 第56行: | ||
\end{bmatrix} | \end{bmatrix} | ||
</math> | </math> | ||
+ | <br> | ||
<math> | <math> | ||
\alpha = -\omega x_{0}cos\theta + \omega y_{0}sin\theta + x_{0}, | \alpha = -\omega x_{0}cos\theta + \omega y_{0}sin\theta + x_{0}, |
2020年8月13日 (四) 13:21的版本
简介
摄像机对着电视机照,再把摄得的图像反传给电视会得到什么?答案似乎应该是什么都没有。然而实际的实验却告诉我们,这样的一个自指系统能给我们带来非常丰富的复杂图案!一些奇妙的结构会从电视屏幕中源源不断的飞出来。开始,我发现这一现象是因为看到了《哥德尔、埃舍尔、巴赫——一条永恒的金带》这本书中描写了用摄像机拍摄电视会得到奇妙的图案,于是我就自己动手做起了试验。然而出乎意料的是,当我略微调节电视机的亮度、颜色以及摄像机的焦距等等参数以后,却得到了比书中描述的现象更加丰富的图案。而且运用不同的摄像机转动不同的角度会得到完全不一样的结果。
惊喜之余,我开始认真思考这一现象的本质原因是什么。虽然我不懂得电视机和摄像机的呈像、采集原理,但我相信这个系统无非是一个信息系统,应该能够用计算机模拟出来!也就是说,理论上讲,我们完全有可能在计算机屏幕上再现电视机屏幕里展现的东西。于是,我开始开发计算机模拟程序。经过很长时间的探索,我终于找到了一种能够近似模拟电视机中动态图像的计算机仿真办法。这就是下面的Java仿真程序。
- 源代码:Selfref.zip
操作
真实摄像机—电视系统的操作
相信这是一个非常简单的试验:1、找来一台摄像机和一台电视机。把摄像机的AV输出到电视机的AV端口,调试好,让电视机屏幕中的图像刚好显示摄像机镜头所拍摄的内容;2、将背景光调暗,把电视机的亮度和对比度尽量调小(但是要保证能够分辨出摄像机拍摄的光),色彩度也尽量调小;3、以正常焦距把摄像机调整到正对电视机屏幕的位置。这时候,你能看到电视屏幕中心有一个亮的点或者光球。如果你的背景太黑,有可能在电视机屏幕上得不到任何图像,这时候可以用手电筒或者其他灯光照射电视屏幕,这束灯光将会汇聚到电视屏幕中心。屏幕中心好比一个黑洞会吸收所有屏幕上的光;4、逐渐扩大焦距,保持亮点或者光球在屏幕中心的位置,渐渐的亮点可能会变成一个跳动不堪的混沌的气体,这时应尽量减小摄像机的晃动,继续拉大焦距;5、复杂的结构会突然出现,为了不让这些结构消失,可以调整摄像机的照射点到屏幕上光比较多的位置,复杂的结构会源源不断的在屏幕中产生就好像是星系的爆发;6、旋转摄像机的角度会得到旋转的星系。
Java程序操作
该Java程序模拟了真实的摄像机——电视机自指系统。打开Java仿真程序,会看到上面部分是一个黑色的屏幕,它模拟了电视机屏幕;下面有一个按钮控制面板,它可以模拟摄像机的旋转、变焦距等操作。你可以直接点击Auto按钮,程序会自动选择参数,复杂的结构在屏幕中心产生并向四周扩散。或者可以手动模仿上面讲的真实摄像机——电视机系统中的操作步骤。点击Start按钮,你将会看到一个白色的光球被吸引到中心点,并在中心形成光的汇聚。那个初始的光球就是手电筒照射电视机屏幕的光。点击Off按钮,相当于把手电筒关闭,初始的光球会消失,然而中心的光不会消失。拉动底下的滑块可以变换摄像机扩大、缩小的变焦比例。右边的文本框显示了当前扩缩的比例。点击>和<按钮相当于顺时针或者逆时针旋转摄像机。你可以不停的变换这些参数,上方屏幕中的图案将会不停的变化,展现出类似真实电视机中的复杂图案。
原理
本质上讲,摄像机——电视机自指系统就是一个如下图的反馈系统:
从摄像机拍摄的信息传递给电视机,电视机再把这一信息展现出来反馈给摄像机,该过程循环往复,永不停止。如果从电视机——摄像机的语义角度来看,这将是一个不可能的无限过程:电视机中展现的是摄像机中的电视机的图案,在深一层次的电视机屏幕中会展现更深一层次的电视机图案,……,永无停止。而且假设我们认为电视机屏幕中的空间是对真实物理空间的映射,那么计算机屏幕中将会产生一个无穷的空间距离。因为摄像机到电视机屏幕的距离会被复制到电视屏幕中的虚拟世界中,以及电视机中的电视机中的虚拟世界中,……,那么这些无限的距离之和将会创造一个无穷远的空间,如右下所示
然而我们站在这个自指系统之外看,它无非就是一个不断的跌代过程。也就是说摄像机不断的把电视机屏幕上的点再次映射到电视机屏幕上。如果设t时刻电视机屏幕上的一个点是 [math]\displaystyle{ P_t }[/math],那么在t+1时刻,这个点就变成了[math]\displaystyle{ P_{t+1} }[/math],并且我们假设[math]\displaystyle{ P_{t+1}=f(P_t) }[/math],这个f就是跌代方程,它由摄像机及其电视的呈像原理决定。下面,我们就用计算机仿真的方法找到一个近似的跌代方程f。
考虑在计算机屏幕上模拟这个过程,那么屏幕上的任意一个像素点[math]\displaystyle{ P^t_i }[/math]在t时刻的坐标为[math]\displaystyle{ (x^t_i, y^t_i) }[/math],那么在t+1时刻,它变成了新的位置[math]\displaystyle{ P^{t+1}_i }[/math],新的坐标是[math]\displaystyle{ (x^{t+1}_i, y^{t+1}_i) }[/math],这个变换可以用下面的图表示:
如果是普通的图形变换,那么两时刻的坐标要满足下面的关系:
[math]\displaystyle{ P^{t+1}_{i} = A\cdot P^{t}_{i} }[/math]
其中,[math]\displaystyle{ P^{t}_{i}=(x^{t}_{i},y^{t}_{i},1),P^{t+1}_{i} = (x^{t+1}_{i},y^{t+1}_{i},1) }[/math]
这里[math]\displaystyle{ \omega }[/math]是摄像机的缩放比例,[math]\displaystyle{ \theta }[/math]是摄像机旋转的角度。[math]\displaystyle{ x_0, y_0 }[/math]是摄像机正对屏幕点的坐标。在仿真中,该点一直为屏幕的中心。在上式中,我们用三维的齐次坐标来表示二维点信息。
然而,如果仅仅用上面的方程做为对摄像机——电视系统的仿真不能达到模拟的效果,屏幕上的点将会很快的飞出屏幕并消失。为此,我们必须要对这个线性的变换进行修改:
- 当一个像素点转变成新的像素点的时候,旧有的像素点不会立即消失,而是以一定的概率残留。
- 当多个像素点经变换发生碰撞的时候(汇聚到了一个像素的位置)将会产生溢出现象,也就是说,碰撞产生的多余亮度将会往该碰撞点的边缘膨胀。具体膨胀的方向也是随机的给出。
我们看到,这种经过修改的跌代系统已经不是原始的线性跌代系统了,我们可以把它称作经过干扰的跌代系统。一般的混沌与分形理论仅仅讨论了跌代规则不发生变化的系统,然而这个仿真系统却是一个跌代规则也会发生变化的系统。这种修改后的跌代系统刚好能够产生前面叙述的复杂性。
一些结果
- 下面所列都是一些视频文件,即我用真实的摄像机——电视系统摄出来的图案,有些图像的效果非常美丽。
这段视频展示了当我们一点一点拉大摄像机的焦距的时候所产生的各种可能性。 | 上面的图像是用另一台数字摄像机且把摄像机旋转180度摄出来的。这会在屏幕中心形成一个光带,这个光带还会增长。 | 旋转90度的情况。 | 下面的视频是另一个放大的全过程。我们可以把焦距逐渐放大的图像过程分为明显的三个阶段:“固定点”、“混沌之气”、“复杂图案 |
下面的图像是用另外一台老的摄像机做的,这虽然是一台模拟摄像机,但是它产生的图案更加美丽。旋转45度的时候图片如上。 | 在这次试验中,我们找来一束会发光的花(一种装饰品)放在屏幕前方,我们得到了非常漂亮的图像过程,这些图案是如此的惊人,以至于它的视觉冲击胜过好莱坞的经典大片。 | 另外一些美丽的图案。 | 一个比较长的过程展现优美的图案。 |
- 下面是一些仿真软件做出来的结果(静态图片):
- 通过变换仿真程序的参数,相信你也可以得到这些漂亮的图案
引申
这仅仅是一个绘制令人头晕目眩的计算机动画的小技巧么?我认为不是,至少这个简单的操作给我们揭示了这样一条原理:自指系统能够诞生复杂性。然而这条原理也许是某些更加深刻的科学原理的引子。
自指与层次
前面已经提到,摄像机-电视系统就是一个跌代的反馈系统。然而我们为什么称该系统是一个自指系统呢?那是因为自然界的反馈系统千姿百态、多种多样,但反馈系统并不一定能够构成自指。那么什么是自指呢?所谓的自指就是一种自引用,是一种把一个系统的整体再次包含进自身中的一个更深的层次的过程。比如下面这句话:
一个明显的自指语句。因为“这句话”是该句子的一部分,然而它所指代的含义是整句话本身。所以“这句话是错的”就把自己包含成为了自己的一部分。另外,自指一般都牵扯到层次性。也就是说从语义上看,引用构成了一个新的层次。比如这句话:
就牵扯了两个层次,第一个层次是我认为,它表达了真实世界中的“我”发出了一个动作“认为”。而第二个层次是“明天会下雨”,因为这第二个层次表达的是一个与我们的真实世界完全不同的虚拟世界,它处在另一个层次中。“这句话是错的”也包含了两个层次。我们可以把这句话整体叫做A,那么它的一部分“这句话”所指代的就是A,那么A也可以写为:
我们已经可以清楚地看到它包含了两个层次,第一个层次为“是错的”,第二个层次为“这句话是错的”。那么之所以我们称A是一个悖论,是因为通过自指它把两个不同层次的意思扭缠到了一起。所以我们无从判断“这句话是错的”的对错。
其实,在现实生活中类似的层次现象还有很多很多,比如下面的这些例子:小说中的世界、电脑游戏中的世界、镜子中的世界、电视机显示的世界、人脑中的世界等等。
而在摄像机-电视试验中,电视中的景象就是第一层的虚拟世界,在第一层虚拟世界中的电视就是第二层的虚拟世界,……,所以该试验中嵌套了无穷层次的虚拟世界。而自指就是某个事物在更深一个层次把自身映射了。这样,自指过程就形成了把第N-1层次的世界拉到了第N层次中。通过摄像机的辅助,电视机把自己的影像又拉到了自己屏幕上所展示的世界。
自指与反馈
然而毕竟摄像机-电视系统就是一个反馈系统,那么自指与反馈有什么关系呢?我认为自指必须要通过反馈来实现。因为某事物A要想在它的内部映射其自身必须通过它所处的环境来动态完成一个反馈的过程。比如电视机要完成自指必须要通过摄像机的反馈系统。如果反馈不存在,孤立的电视机不可能形成自指。
但反过来,自指决不等同于普通的反馈。普通的反馈仅仅形成了一个信息的回路,因而我们可以在自然界中找到很多反馈的现象。然而前面已经说了,自指必须要把自身的像在更深一层次映射出来。
针对摄像机--电视系统,可以说如果我们从系统的信息回路角度来看它就是一个平凡的反馈系统。然而如果我们站在电视机中的虚拟世界来看,这就是一个不平凡的自指系统。也就是说我们站在信息所表达的意义上看,自指才会出现!因此自指是出现在语义层面上的。
迭代:一种用有限应对无限的方法
摄像机-电视试验告诉我们,我们可以在一个完全有限的环境下展现一个无限的世界。首先,在空间上电视屏幕中无穷嵌套的世界从语义上具有无穷的空间。正如前面所说,电视机中的虚拟世界在任意两个嵌套的电视屏幕中间都有一段距离。这段“信息意义”的距离是不会经过嵌套而丢失的。所以电视屏中的无穷个电视实际上拥有了无穷的虚拟距离,因而我们一下子拥有了无穷的虚拟空间。
其次,经过跌代,虚拟世界原则上拥有了和我们的宇宙一样长的时间,因而也可以认为虚拟世界中的时间是无限的。只要我们不关闭整个装置,那么虚拟世界就会一直存在下去。因此,通过跌代,我们把这个世界的时间“借”给了虚拟世界。回想现代复杂系统仿真演化程序,无论是细胞自动机还是人工生命都运用了计算机跌代的方法,这些方法都相当于把我们这个宇宙的时间借给了计算机中的虚拟世界。
怪圈和悖论
自指还有一个别名:“怪圈”。然而我认为“怪圈”的范围似乎更广。比如一条想把自己吞掉的蛇就形成了一个怪圈,埃舍尔的很多画都在反映怪圈。怪圈会产生悖论,也就是让人们左右为难的命题。比如上面的那句话:这句话是错的。另外,著名的悖论还有罗素悖论,它直接动摇了集合论的基石。而后来哥德尔通过同样的悖论推理把悖论引到了逻辑中,从而颠覆了希尔伯特的梦想。之后,图灵运用同样的怪圈悖论逻辑证明了图灵停机定理,并指出了计算机的极限。可想而知,怪圈和悖论在经典理论中所起到的深刻作用。然而,人们普遍的一种看法总是认为悖论、怪圈是不好的、矛盾的,所以人们尽量要避免它、消除它。
复杂性的困惑
进入21世纪,复杂性科学越来越受到人们的重视。复杂性科学所带给我们的真正革命意义是用一种综合、演化、生成的世界观。所以从复杂性科学诞生,科学方法就开始了180度大转弯,科学一下子变得和以前不同了。然而,复杂适应系统理论在很多方面很多年来一直没有形成很大的突破。大家似乎仅仅知道做计算机模拟试验,改进改进算法,而真正理论的突破没有完成。回顾复杂性科学的历史,我们不难发现下面几点启示:
混沌边缘的延伸:Langton在研究混沌边缘的细胞自动机的时候,曾明确指出:如果把细胞自动机看作一个计算的过程,那么混沌边缘的细胞自动机所作的运算就相当于正在解决图灵停机这样的不可判定问题!因此,如果把混沌边缘的概念进一步引申就是前面提到的怪圈、悖论等等这些问题; 如何“无中生有”?万事万物的复杂性缘何起源?复杂系统的演化模型尽量强调减少人工的干预,因为每当人们减少一次干预的就一个底层的规则。 究竟什么是计算机模拟?计算机模拟其实就是在机器中获得一个新层次的世界,从而形成对外界世界的映射。
自指与复杂性
摄像机-电视这个简单的试验告诉我们,怪圈并不仅仅是人们所想象的能够招致悖论的不好的东西,翻过来,自指形成的怪圈能够生成复杂性。它是系统真正创造性的来源。
从信息意义上来看,摄像机-电视系统所产生的复杂性是纯粹的无中生有。因为电视机中所反映的自身内部是什么呢?这无非是一连串嵌套的电视机自己,当我们放大的时候,我们看到了摄像机的内部世界,然而从信息语义上讲,它应该是什么都没有!正是这种“无”才创造了复杂性。
起源问题
宇宙、生命、智能是如何起源的?我们还无从得知,但可以肯定的是,这些重大的问题都和怪圈有关。首先,宇宙本身就是一个悖论。因为按照人们的定义,宇宙即为所有的空间和时间,我们必须坚持宇宙之外空无一物,宇宙之前一无所有。所以宇宙在早期必须构成了自己起源的原因,而不能依靠外界。否则根据我们的定义,我们会把宇宙的外界也包含进宇宙这个概念中来。
生命起源目前基本已经被复杂性科学所揭示。然而,生命能够自主运动本身就是一个怪圈。因为生命都是由成千上万的分子构成的,分子的运动是支配这其上的生命的运动的,然而生命为什么还能自发主动的运动呢?生命只有自己构成了自己运动的原因的时候才叫做具有了主动性和“活”性。因此自己构成自己运动原因就形成了一个怪圈。
智能和自由意识更是与怪圈密切相关,因为我们能用我们大脑来分析大脑自己。面对人工智能,我们更是面对了怪圈的困惑:什么是真正的智能?有人说只有和人一样聪明的东西才叫真正的智能。那么,我们创造的人工智能如果满足这一标准的话,那么它们也会创造出属于它们的“人工智能”,接下来,它们创造的AI又会创造新的“AI”……,这个过程便形成了一个类似电视机中套电视机的怪圈。
如果说自指能够诞生复杂性,而且自指能产生怪圈。那么我们如何利用类似摄像机—电视机的跌代系统方法实现真正的“无中生有”呢?也许这会是一个可能带来重大突破、激动人心的课题。
- 作 者:Jake