如何自动处理批量流星雨照片

流星雨照片是很多星空摄影爱好者的重要目标之一,北半球每年的三大流星雨为大家提供了丰富的素材。

不少摄影作品喜欢把多张流星的照片合成一起(一般是针对同一个流星群的照片)。处理得好并且合理的流星合成照片除了有艺术上的体现,也能作为科普材料反映出流星雨的辐射点位置和放射状的透视效果。

 

如下示例:

 

然而这种后期处理是个费时费力的事情。一般做法都是一晚上让相机自动拍下几百张照片,从里面挑出拍到有流星的,用图像处理软件(比如Photoshop) 把流星一个个“抠” 出来叠加到一起。

这种事情小编自己干过两次,每次手动挑几百个图然后 “抠” 上百个流星让我痛苦不已(也是因为小编的P图技术太差)。

痛定思痛小编决定求助于代码。断断续续经过了挺长时间的学习撸代码挑素材训练神经网络优化解决bug,总算有了个能见人的几乎能对流星雨照片 “一键出图” 的程序。

嗯,“一键” 是有点夸张了,理想情况也要三四键......

 

使用说明

 

懒人版:

 

来源:百度网盘 | 提取码:djv4

 

把巨大的压缩文件下载后解压,在解压出来的目录里找到 AutoMeteor.exe 运行即可(不要问我为什么没有 MacOS 的)。

非常不好意思 Python 编出来的代码转成exe 的东东体积一般都很大,加上神经网络的运行支持包和模型文件体积实在惊人,也没精力去优化了。

 

程序界面:

 

处理步骤:

  1. 需要先用第三方软件把待处理的一批图像做好星点对齐 (推荐用PixInsight)
  2. 运行 AutoMeteor.exe,选择图像目录 (注意目录路径不要有中文......发现python 库的一些坑还没填好)
  3. 第一步检测流星(点一下鼠标)
  4. 第二步检查检测结果
  5. 第三步生成流星图像蒙板文件(点一下鼠标)
  6. 第四步检查蒙板文件效果(理想状态下可不做)
  7. 第五步生成最终结果图(点一下鼠标)
  8. 完!

 

步骤说明:

 

一、星点对齐(需要用第三方软件)

星点对齐这个步骤是确保流星雨合成效果合理的需求。持续几个小时的拍摄里由于地球自转星座位置有明显变化。如果没有用赤道仪跟踪,直接从照片提取出来的流星位置无法反映辐射点的效果(我就不说网上的一些神图了)。

另外本软件的流星检测部分也需要前后两张照片做对比 “找不同” 找出可疑目标。所以要自动处理的话,只能要求全部照片都先做好星点对齐。几百张图做星点对齐的确很耗时,很吃CPU。想了很久,暂时没办法。

小编研究了一些开源的星点对齐算法和软件,感觉还是PixInsight 的做得很好。星空摄影经常用的超广角镜头照片都能处理得很不错,因此放弃了自己 做此功能的想法。

如果使用了赤道仪跟踪,并且跟踪得挺不错的话(相邻两张照片之间没有明显位移),可以考虑直接处理。赤道仪是个好东东。

 

二、检测流星

点一下鼠标软件就自动对这批图像检测流星。软件会做如下处理:

  1. 两张两张照片之间 “找不同”, 检测到有长线段的地方就截图留下来,并且会一定程度上尝试排除掉一些人造卫星或飞机(不是所有)。
  2. 检测出来的目标会有流星,人造卫星/飞机,还有地景。用神经网络识别一遍,尽量把流星留下,其它排除。留下的放到一个"good" 目录,要排除的放到一个“removed” 目录。

 

如下例子:

“Good”

"Removed"

 

在实际使用上还是会有不少的人造卫星/飞机被留下来(因为有时候实在太相近),也会有真正的流星被误判,因此留了“人工检测流星过滤结果” 的步骤。点一下按钮这两个目录("good" 和 “removed”)就会被打开。

如果 "good" 目录里面有你认为不是流星的照片,就将其删掉。

如果 “removed” 目录里面有你认为应该是流星的照片,就将其移至 "good" 目录。

另外这个步骤也会在原图的拷贝上标识出检测到的目标的情况,需要人工进一步检视的话可以打开一个个文件检测看看有没有漏掉的 —— 但是万一如果真有漏掉的本程序没有提供补上的方法,只能事后手动处理。

 

效果类似这样的:

 

三、生成流星蒙板文件

这个步骤理想情况也基本只需点一下鼠标。

对于留在 "good" 目录的截图文件,软件用神经网络去尽量将流星的形状画出来,生成个黑白单色的蒙板文件。

刚才说了理想情况,已经感觉到大家又要抡起拳头......

这主要还是因为小编炼丹用的的显卡/计算卡太弱了,训练用的图只能是小图而处理的流星图经常都挺大。软件先把大图马赛克分割成若干小图塞进神经网络,生成几张蒙板图再合并回来。流星附近有一些亮星点会造成干扰使得生成的蒙板文件不够 “干净” 有些多余的点点 —— 不过实际上一般对合成效果影响不是太大因为最终图还是会被叠加到星空背景上。需要快速出个草图的一般可以直接往下走。

 

比如这个蒙板图就是被附近的亮星干扰了:

另外有些暗弱的流星可能蒙板会 “画不全” (炼丹数据量还是不够大啊)

 

所以依然需要提供人工检视蒙板的选项进行精修,点一下鼠标打开蒙板文件夹。对于觉得不够理想的蒙板图,用其它图像编辑软件,把流星体位置用白色补全(大致就行),其它不需要的位置用黑色描上

 

四、“抠” 出流星,叠加出最终效果图

这个步骤也基本只需点一下鼠标。

本步骤软件做这些事情:

  1. 用前面步骤生成的蒙板文件,在原图像文件上“抠”  出流星图,结果是个只包含流星本体图像的底色透明的png 文件
  2. 这个流星图是个裁剪图,只包含流星图像的一个正方形区域部分。为了要能把流星叠加到合适位置,需要将其扩展回原图大小和相应位置
  3. 把所有生成的只包含流星体的图像叠加到一起,生成一幅合成了所有流星的透明底色图像 —— 这就是我们需要的结果,将该图像叠加到合适的星空背景就能得到需要的流星雨合成照片

 

直接自动处理处理没经过人工筛选及精修的效果图,有一些地景和人造卫星没有撇除(后期加上个黑背景凸显流星):

 

为何说 “基本只需点一下鼠标” 呢?

  1.  我们在筛选流星的时候有可能还是留下了一些人造卫星 —— 有些肉眼对照真的不容易判别,但是从合成图的方向就能一眼看出(如上图)
  2. 会偶尔有少数几个群外流星(不属于这个流星群的,轨迹方向跟群内流星方向截然不同影响照片效果)

这些我们都希望进一步精修将其撇除。

为方便撇除不需要的流星(或人造卫星),软件除了生成正式结果合成图之外,也同步生成一张带文件名标签的合成图。对着这张标签图我们可以回到前面 “人工检视蒙板质量” 那里,把不要的图像从那个目录直接删掉,然后重做本步骤即可

 

带标签合成图:

 

这样你就能通过点几下鼠标,就得到合成好的流星雨照片了:

 

最后补充一下,整个处理过程中有两个步骤需要用神经网络计算 —— 判别流星照片和生成蒙板文件,只用CPU 跑是比较慢的。

如果自己电脑上有好显卡可以摸索一下装上对应的API库(比如 N 卡可以装 CUDA11)这样 .exe 程序应该可以在这些步骤上用GPU 来跑。不过小编没有多一台电脑来做这个测试了。

本着码农拯救世界的理念,代码开源 (GPLv3):

https://github.com/kenluozhenyu/One_Click_Meteor_Shower

已经修复了不少bug 正常可用了。不过修 Bug 是修不完的,这辈子都不可能的......

不用 Windows 平台的朋友可以直接把代码扒下来,把Python 运行环境装好来跑。

 

整理自:littlePig

 

作者:阿古
链接:https://www.ark.ooo/479/
来源:方舟(ark.ooo)
本文部分内容及数据来源于Wikipedia、NASA等互联网公开资料,意在分享,如有损害您的利益,请联系作者删除。
THE END
分享
二维码
文章目录
关闭
目 录