专栏名称: 量子位
վ'ᴗ' ի 追踪AI行业和技术动态,这里更快一步!关注我们,回复“今天”,更多大新闻等你来发现
目录
相关文章推荐
爱可可-爱生活  ·  晚安~ #晚安# -20250315223720 ·  10 小时前  
51好读  ›  专栏  ›  量子位

我,爆肝17天用600行代码拍到400公里之外的国际空间站

量子位  · 公众号  · AI  · 2022-04-10 12:12

正文

博雯 萧箫 发自 凹非寺
量子位 | 公众号 QbitAI

如何在400公里开外,拍摄这样一张空间站照片?

作为太空中最大人造物体,国际空间站一直是无数天文爱好者心中梦寐以求的拍摄对象。

而大多数人采用的方法,是根据自己所在的经纬度,算好空间站过境的时间 (几秒到几分钟不等) ,然后配合手机或微单进行拍摄,然后啪——得到这样一张 小光点

稍微 进阶 一点的,则会采用“凌日凌月”拍摄法,即在空间站飞过太阳或者月亮之前,以这两个天体为背景源,确定一个范围更小的区域。

然后等在中心线上,把持着几公斤到几十公斤重的大口径、长焦距望远镜进行长时间的稳定跟踪,直到空间站过月或过日的 1秒之内 ,按下快门拍摄。

这种拍摄效果会更加清晰,但致命的问题仍然存在:

空间站平均每90分钟就能绕地球一圈。用知名的星空观测模拟工具Stellarium对比一下,相比空间站,金星和火星简直如同“静物” (实时模拟,没有加速)

简言之,就是空间站跑得太快了。

因此,不仅1秒内拍摄的帧数有限 (无法用多帧叠加克服大气抖动) 、只能拍到轮廓剪影,甚至很可能因为计算错误而错过拍摄的机会。

要是还想拍出 更高精度 的照片,不仅得有非比寻常的耐心,还要有深厚老练的手动操控技术。

例如一旦遇到大风,拍出来的效果就容易“糊成一团”:

图源王卓骁,已授权

于是这时,有人就灵光一动:

没有麒麟臂,用代码 让望远镜 自己动起来 不就好了?

说干就干,这位“业余程序员”当即爆肝17天,搞出了一套 自动跟踪系统

在这套自动跟踪系统的加持下,望远镜不再是只能在特定几秒钟拍摄几张静态图像,而是持续不断地跟了空间站 2分钟

最终,多张图像叠加和后期处理,便合成了一张高精度的立体GIF图像:

(也就是我们开头的那张图)

就是这么一张图像,让网友发出了“直接开启人造天体跟踪摄影的时代”的感叹。

于是,我们找到这位开发者本人,北大天文校友、天体物理博士 刘博洋 聊了聊。

拍摄高精度空间站,到底难在哪?

首先,需要简单了解一下拍摄空间站的“时机”。

虽然空间站移动速度极快,平均每90分钟就能绕地球一圈,而且高度平均距离地球也就400公里左右,属于肉眼可见的范围,但我们并不能随时观测到它。

主要有两个限制条件:视野范围和观测时间。

视野范围 指空间站飞到我们视野可见的范围内,也就是恰好“过境”这段时间;

观测时间 指我们能观测到空间站的时机。空间站自身不会发光,只有在每天日落后两小时、或日出前两小时以内,空间站反射的太阳光最亮,才最适合拍摄。

只有这两个条件同时满足,我们才有机会在地面观测并拍摄到空间站,但效果也还受天气等因素影响 (如图中就是遇到了多云天气)

图源朱一静&徐成城,已授权

然而,目前已有的几种常见天体拍摄方法,对于拍摄 更高精度 的空间站照片,其实都不适合。

第一种方法 ,是直接通过“手摇”望远镜拍摄,也就是推着望远镜跟踪天体。

这种方法有一个缺陷,没办法拍摄非常高清的空间站。由于拍摄时必须靠人工跟踪,因此不能用长焦镜头直接找,否则就像是用显微镜去捕捉一只高速移动的蚂蚁,空间站一不留神就消失在镜头外了。

第二种方法 ,是像“守株待兔”一样,架好各种高清晰度的镜头和设备,在原地等待空间站“路过”。

这种方法不需要移动镜头,而是反过来等空间站自己“经过”。但它又面临一些新的问题,例如空间站“路过”的时间很短,有时候往往只有几秒钟的时间,很可能抓拍不到;即使抓拍到的镜头,由于无法调整角度等原因,效果也无法保证。

所以,为什么不用 望远镜自带的追踪 功能拍摄?

这个功能通常只适用于用于追踪日月、行星、恒星等天体由于地球自转而产生的东升西落,毕竟它们移动的速度不快,基本与地球自转同步。但对于像空间站这种高速移动的天体,望远镜自己就追不上了。

因此,最终还是得靠 程序 辅助,来实现高精度空间站的跟踪拍摄。

第三种方法 ,是利用轨道根数 (即轨道参数) 跟踪,也就是利用在各种天文网站上 (如Heavens-Above等) 找到的天体信息,来调整望远镜的跟踪路径,并进行手动修正:

目前,大部分天文爱好者都是通过这种方法实现跟踪+微调,网上也已经有一些相对成熟的程序,例如这是用电动经纬仪根据轨道参数跟踪空间站的效果:

图源王卓骁,已授权

BUT,你永远不知道这些天文网站更新到底及不及时。有时候空间站临时调整了轨道、但网站没有更新的话,你的程序也就失效了。

利用光学识别,误差控制在4像素以内

上述的所有问题,作为老天文迷的刘博洋不可能不懂。

他一开始的想法,是通过现有的一些软件寻找镜头中的“光点”,基于 光学识别 方法对目标实施识别和跟踪。

然而他在查找合适的程序时却发现,这些程序不是没维护 (连Windows版都太古早没法用) 、就是更新不及时且系统复杂,或者干脆就是闭源收费。

所以,刘博洋最终决定自己上手,写一个光学识别的自动跟踪脚本,手动找到空间站后基于PID控制跟踪。

他的计划一共分为两步:

第一步,编写程序实现望远镜自动识别并跟踪空间站,耗时5天完成。

值得一提的是,光学识别并不是刘博洋的“第一手选择”。

他确实想过用参数+手动微调的方式进行跟踪,包括用摇杆无级控制赤道仪转速,以及用轨道根数进行粗跟、结合游戏手柄无级微调等,但试拍效果并不理想 (微调时手不够稳)

于是,他基于PID控制原理,编写了一种光学跟踪的方法。这是一种非常经典的控制算法,PID分别指比例、积分和微分单元,像让2轮机器小车保持平衡,用的就是这种算法。







请到「今天看啥」查看全文