我做了一个系统,可以给所有飞过我家上空的飞机拍照

我做了一个系统,可以给所有飞过我家上空的飞机拍照

你以为的飞机迷们:

我做了一个系统,可以给所有飞过我家上空的飞机拍照

实际上的飞机迷们:

我做了一个系统,可以给所有飞过我家上空的飞机拍照

你永远也不知道他们脑袋瓜里都在捣鼓些什么。

比如,你能想象,一个飞机迷,为了拍下每架从他家上空飞过的飞机,亲手做了一个小系统skybot追踪拍摄到离地3万多英尺的航空飞机。

我做了一个系统,可以给所有飞过我家上空的飞机拍照

根据这位LukeBerndt推特用户分享,成片大概长这样:

我做了一个系统,可以给所有飞过我家上空的飞机拍照

别看这照片像素啥的都挺一般的,就凭这张照片,系统就能同步更新飞机的基本信息了,比如型号、重量,以及什么时候经过房子上空的等。

我做了一个系统,可以给所有飞过我家上空的飞机拍照

官网链接:

http://skybot.cam/

推特上也有不少网友对此表示绝绝子,有网友调侃道,“这波是无意间给联邦快递打了个广告啊”。

我做了一个系统,可以给所有飞过我家上空的飞机拍照

甚至有人表示,这也太火爆了,“服务器都被挤爆了”。

我做了一个系统,可以给所有飞过我家上空的飞机拍照

如何做一个skybot系统

不知道有多少小伙伴已经开始动心跃跃欲试了。

别急,我们先来看看做一个skybot需要哪些东西:一个树莓派,一个RTL-SDRAxis PTZ安全摄像头

Axis的摄像机提供了一个很棒的API,它可以与他们家的PTZ摄像机一起使用,在这里使用的是m5525,因为摄像机可以360度旋转,完美覆盖天空上方的视野。

同时这里使用的是noelec NESDR SMArt v4 SDR,这款SDR结构紧凑,不会阻塞树莓派上的其他端口。

我做了一个系统,可以给所有飞过我家上空的飞机拍照

那么,要怎么接收飞机信号呢?

其实为了更好地实现跟踪,大多数飞机会发射一种ADS-B信号。该信号为1090MHz,任何低成本SDR都可以轻松接收。同时从ADS-B传输中,我们还可以得到飞机的位置和高度,但如果你想知道飞机和你的相对位置,就还需要一点数学知识。

用相机对准飞机拍照后,收集到数据,就可以使用标记的平面数据构建平面检测器和分类器。

我做了一个系统,可以给所有飞过我家上空的飞机拍照

在了解完系统的工作原理后,我们再来看看这个项目的软件架构。不同组件都被做成了Docker容器,这种模块化使得添加新的数据源或摄像机也变得更加容易。
我做了一个系统,可以给所有飞过我家上空的飞机拍照

  • mikenye/pi+aware:FlightAware的piaware程序的dockerized版本。PiAware实际上只是一个dump1090的包装。Dump1090是一个小程序,可以使用RTL-SDR接收ADS-B传输。该程序利用这些传输来跟踪附近飞机的位置,并将它们显示在网页上,除此之外程序还将在TCP端口上接收到的所有消息输出给其他程序使用。

  • adbs+MQTT:一个小型Python程序,读取Dump1090通过TCP端口收集的信息,并将接收到的所有消息发布到MQTT总线上。

  • Tracker:接收飞机的位置信息,确定每架飞机离摄像头有多远,然后找到最近的飞机。

  • Axis+PTZ:接收要通过MQTT跟踪的平面上的更新,然后将PTZ摄像机对准该平面,同时拍照。

目前该系统已经在GitHub上开源了,链接如下:

https://github.com/IQTLabs/SkyScan

不过Luke表示,目前skybot还只能用于飞机的追踪,要在鸟类身上实现可能还得费一番功夫。

我做了一个系统,可以给所有飞过我家上空的飞机拍照

你可能不知道的ADS-B

说到ADS-B,可能它的复杂程度要远超你的想象。

我们知道,ADS-B全称广播式自动相关监视系统,其实就是飞机发出的广播信号,用明码来对外发送自己的位置、高度、速度、航向等信息,是公开信息。连续接收到一架飞机发出的ADS-B信息后,可以通过其坐标点来描绘出飞机的航行轨迹,并实时获取其飞行状态。这对于现今的民航飞行来说已经是非常普遍的了。

不过由于ADS-B信息时效性比较差,信息不足,往往还需要flightradar24或者其他可以显示飞机ADS-B信息的软件来掌握飞机的动态,以做好准备工作。

我做了一个系统,可以给所有飞过我家上空的飞机拍照

这架飞机在著名ADS-B网站FR24上显示的根据ADS-B信息实时绘制的航线轨迹,实线部分是地面接收到了这飞机的ADS-B信号并且传输回服务器后自动绘制而成的实际航线,虚线部分(红圈)是该区域没有ADS-B接收器信号丢失,系统直接在最后消失点与最新出现点之间拉了条直线以进行示意。从图中判断该飞机目前还在无ADS-B接收器区域飞行,所展示的位置只是预估位置,在地面重新接收到ADS-B信号后会进行修正。

但除了民用飞机外,军用航空器也会安装有ADS-B系统,主要是为了空中防碰撞以某些距离城市及机场非常近的军用机场为例,他们使用的空域会与民用航空器的空域有不少的交集,这就需要开启ADS-B设,便于地面指挥。

不过也不必担心,在正常情况下,执行任务的军用航空器都会关闭ADS-B设备,防止暴露行踪。同时在国内,虽然军用航空器会开启ADS-B,但都会进行一定的处理以消除敏感信息,只显示必要的、满足需求的信息出来,比如高度航向速度等。

因此,在大家对飞过自家头顶的飞机感兴趣的同时,也还需要注意安全问题。嗯,不说了,文摘菌准备动手了,也欢迎大家在评论区分享自己的动手心得呀~

上一篇:优于GAN、带上口罩都能还原,用去噪扩散概率模型极限修复图像,效果「真」极了


下一篇:再见!史上最失败的windows系统!