WBPP 使用全解:界面、主校准帧与运行流程
本文整理自 2021–2024 年的笔记,部分工具或流程已有更新,阅读时请留意;文中提到的部分界面、选项与版本行为(例如 2.1.2、2.5 版)皆为当时状态。至于运行时遇到的错误与已知 Bug,另见〈WBPP 疑难解答〉一篇。
WBPP(WeightedBatchPreprocessing)是 PixInsight 里把“校正、对齐、叠加”一条龙自动跑完的脚本,方便得惊人。这几年它改版频繁,我陆续写过不少零散笔记;这篇把它们整理成一份比较完整的说明,分成三个层次来谈:不太随版本改变的核心观念、现行的运行流程、以及历年版本的一些重要变化。无论你用的是哪一版,先把观念抓稳,界面怎么变都不至于慌。
核心观念一:WBPP 叠出来的成品,只是预览
这是我最想先讲、也最多人忽略的一点。
我自己就踩过坑:某次用 Drizzle Integration 之后,发现星点中心(过饱和处)竟然变黑了。追查下去,原来罪魁祸首是用 WBPP 来叠加造成的。
WBPP 方便归方便,但它自动叠出来的那张主亮场,官方的态度非常明确——那只是一张“可达成效果”的方便预览,用完就该丢弃,不应该拿去当作正式成品。我把官方在讨论区的回复节录如下:
The integrated image generated by WBPP is just a convenience preview of the achievable image, but it should always be deleted/ignored, and the integration should always be done manually with the registered frames. This is the only way to obtain an optimal integrated image with full control over the normalization, pixel rejection and noise reduction tasks.
官方甚至半开玩笑地说要把这句话重复“n+1 次,其中 n 已经趋近无限大”:WBPP 产生的那张主亮场不该用于正式用途,它只是预览,最佳结果得靠手动的 Image Integration 去优化像素剔除与信噪比才能得到。
所以我的习惯是:WBPP 最远只用到“对齐星点”这一步,真正的叠加交还给 Image Integration 手动处理。 正规的分进程作法——校正(交给 WBPP)、对齐(Star Alignment)、叠加(Image Integration)——虽然多几个步骤,但一旦出问题,比较容易弄清楚是哪个环节坏掉的。这也是我后来的定见,早期日本同好那两支很详细的 WBPP 教学视频我也很推荐,但同样要补上这句提醒:叠加结果作为参考就好。
核心观念二:分清楚 Master 文件夹里哪些才是成品
完整跑完 WBPP 后,默认的 Master 文件夹底下会躺着一堆文件,很多朋友分不清哪张才是自己要的。这里说明一下:

- 红框中的图像,才是你要的叠加完成主亮场。
- 黄框中的图像,是 Local Normalization 的参考(Ref)图像,不是主亮场,别搞混。
- 没有框的图像,则是主校准帧,这里包含了主平场、主偏置(bias)与主暗场。
(不过承上一节,这张“主亮场”仍属 WBPP 的预览性质,讲究的话还是要自己重新叠一次。)
现行运行流程:彩色相机的大全套
WBPP 一键到底,实际上背后是一长串按顺序运行的自动化进程。以彩色(OSC)相机为例,完整的运行顺序如下:

- Calibration File Integration:制作主校准帧
- Calibration:校正亮场
- Cosmetic Correction:去除热噪点或坏线
- Debayer:解拜耳(分离 RGB)
- Measurements:测量亮场,给予权重
- Reference frame selection:选定对齐的参考图像
- Plate solving reference frames:对参考图像解析(天测)
- Registration:对齐星点
- LN reference generation:产生 Local Normalization 的参考图像
- Local Normalization:运行 Local Normalization
- Integration:叠加亮场
- RGB Combination:重新组合 RGB 三通道
如果用比较精简的讲法,也可以浓缩成八个步骤:制作校正图像文件 → 图像校正 → Cosmetic Correction → 解拜耳(RGB 三通道分离)→ 星点对齐 → Local Normalization → 图像叠加 → RGB 三通道合并。

这里有两个步骤值得多说几句:RGB 分离是为了克服色散(星点边缘看起来两边颜色不同),代价是要多花时间跑;Drizzle Integration 若有用到,它在这里的目的不是把图像放大,而是避免伪影,因此要在有足够 dither 的张数下才有意义,一般低于 50 张其实可以不做。附带一提实际的时间感受:我曾用 360 张九百万像素的图像,从校正一路做到 Drizzle Integration 1x,也花了一个多小时;像素更高只会更“刺激”。

主校准帧:WBPP 的聪明之处
WBPP 在校准帧(flat、dark、bias 等)的处理上藏了不少贴心设计,值得专门一节来讲。
校准帧最好在 WBPP 里从原始文件重做。 有不少人校正后发现亮场出问题,主因往往是套用了“其他软件或进程制作的 Master 文件”(Master flat/bias/dark)。最保险的做法,是把校正文件的原始文件丢进 WBPP,让它重新制作 Master。
曝光时间有微小误差?交给 Exposure tolerance。 曾有同好在群组问到,他用 Eqmod 信号控制拍暗场,因为延迟问题,5 秒的暗场实际可能落在 4.980–5.02 秒之间,想改用 NINA 拍摄。其实 WBPP 早想好了:一定时间差内的校准帧可以被指定为同一群组,WBPP 会对同群组的校准帧自动做该做的处理,并自动配对亮场。这个容忍值就是 Exposure tolerance。

不同日子拍的图像,用 Grouping Keywords 一次搞定。 改版后 WBPP 多了分组功能,即使是不同日期拍的图像,也可以一次丢进去一起处理——只要在 Grouping Keywords 用关键字(例如日期)分类。像我那组文件,每天的平场都不一样,WBPP 仍能自动依日期分别校正,不必手动替不同日期的亮场与平场各做一次设置,非常方便。

只想做主校准帧?不放亮场也行。 这是个很多人不知道的用法:在没有亮场的情况下,把暗场、偏置、平场、平暗场丢进 WBPP,它会聪明地依正确步骤把这些校准帧做成主校准帧,并输出到指定文件夹,省下用各种不同进程手工制作的麻烦。

Light 页面选项与加速技巧
WBPP 的 Light 页面有一排选项,用户可依需求勾选。默认情况下,除了 subframe weighting 之外都是未勾选的。

既然这些步骤可以取舍,就带出一个实用的问题:把不需要的处理关掉,能省多少时间? 我拿一组国外开放下载的数据实测,总共 372 张一千六百万像素图像,剔除掉不需要的处理后,时间快了大约 7 到 8 倍(25 分 03 秒 vs. 03 分 30 秒),而图像质量只有些微减损——本机上大约差 15%,通过网络压缩后几乎看不出来。对于赶进度或先看个大概的场合,这个取舍很划算。

至于哪些步骤最吃时间、关掉哪些最有效,我在〈WBPP 疑难解答〉一篇会再谈。
版本变化:这些是后来才有的
WBPP 这些年加了不少东西,把几个重要的节点整理一下,方便对照你手上的版本:
2.1.2 版的几件事。 这一版起,值得注意三点:其一,校正后亮场出问题常是因为混用了外部制作的 Master 文件(见前述);其二,Dark frame optimization 主要用在亮场与暗场长度不匹配时(例如 20 分钟亮场配 30 分钟暗场),最佳前提是长曝光且有多张图像,选项要点击亮场文件才看得到;其三,用 CCD 的人随着使用会逐渐出现 defect,尤其是 column defect,过去得做 defect map 去除、非常耗时,WBPP 提供了 Linear Pattern Subtraction 来协助处理。

Execution Monitor(运行监视窗口)。 更新到较新版后,WBPP 运行时会弹出一个 WBPP Execution Monitor 窗口,告诉你目前跑到哪一步、做了哪些工作,内容还能上下滚动拖拉。在旧版,用户除了盯着当前 console 之外,根本无从得知进度,只能等全部跑完、或遇到错误停下来,才有办法用 console 确认。

Cache 缓存功能(2.5 版以后)。 这是很关键的一项改进。跑完大全套后若发现有错或不如预期,改了某些设置,难道又要整套重跑?不必。WBPP 的缓存会判断:只要修改的设置不影响图像,就直接沿用上次的缓存结果;只有真正会影响到的那部分图像才会重新处理,第二次运行的时间因此大幅缩短。

log 文件夹里的可重现脚本。 最新版 WBPP 运行后,会在 log 文件夹保留详细 log 与运行脚本。用 PI 的 Script Editor 读取脚本、编译并运行后,会弹出一个 Process Container,里面包含 WBPP 主窗口 Pipeline 子菜单的所有进程 ICON,每一个都能在 PI 中单独打开。这对 Debug 极为方便——例如想查为何 Cosmetic Correction 没正确运行或没效果,就能从这里打开那一步,检查是参数问题还是程序bug。另一种用途是:对预处理不熟的人,可以靠这个方法读出 WBPP 的每一步进程与参数,当作自己手动运行的参考范本。

打开 WBPP 的第一步,其实不是加载文件
最后回到最基本、却最容易做错的地方。打开 WBPP 后的第一步,并不是急着“加载亮、暗、平、偏文件”。
WBPP 是少数会保留上次使用内容的脚本。如果你之前用过,所有设置都还留着。所以第一步应该是清除文件列表;至于其他参数要不要一起清,看需求而定。
而第二步很容易被漏掉,很多教学视频也没提到——按下 Purge Cache。前面说过缓存(2.5 版以后)的好处:只改部分参数时,WBPP 只跑改动的地方,其余沿用缓存。但反过来,当你已经跑过、又不需要这些缓存内容时,就要把它们全部清除,否则运行新文件时可能因为缓存内容重复,出现无法预期的错误。

Windows 用户的环境前置设置
如果你在 Windows 下跑 WBPP,有两个环境设置最好一开始就处理好,能省去后面一堆莫名其妙的错误(相关的错误信息与诊断,详见〈WBPP 疑难解答〉):
打开长路径支持。 某次更新后,Windows 上的 WBPP 常跳出长路径警告,说无法产生超过 256 字符的路径。我就曾因路径过长,导致 WBPP 产出的文件有缺损(因为存不了文件)。解法是在任务栏搜索 regedit 打开注册表编辑器,找到对应位置把 LongPathsEnabled 的数值改成 1,重启 PixInsight 后就不会再出现这个警告。

避免中文(非西欧语系)路径。 这也是我不建议用中文当文件路径的原因。在 Windows 下,若默认打开程序是 PI,双击含中文路径的文件就会弹出错误信息,其中那些乱码就是中文文字。变通方式是:不改路径的前提下,直接把文件用拖拉的方式拖进 PI,就能打开。

把上面这些拼起来,WBPP 的全貌大致就清楚了:它是一个强大的自动化前处理引擎,但你要记得它的叠加成品只是预览、要懂得如何分组校正、如何善用缓存、以及开工前该清什么、该设置什么环境。观念对了,剩下的就是熟练度的问题。