在天文摄影群里面经常看到几个月经问题，天文摄影要不要拍偏置？要不要拍暗场？要不要单帧长曝？上面所提及的这些问题的答案在CCD年代是比较明显的。因为读出噪声大，为了降低读出噪声的影响，大家一般都是采用长曝的方式。同时因为量子效率低，暗电流大，偏置和暗场的纠正也是非常必要的。但到了CMOS，尤其是6200/2600的现代CMOS时代，（峰值）量子效率动不动就90%多，读出噪声降到了CCD的1/10左右，暗电流几乎可以忽略，还没有辉光，这些问题的答案其实不那么显然。这篇文章主要想从实际的角度，通过做实验的方式探索一下，到底怎样才是使用现代CMOS比如6200MM的正确姿势，如果不幸错误地使用了6200MM，到底会有什么后果。对于有好奇心的同学们，在末尾我们也会提供一些理论计算来交叉验证这个实验的结果。

先放懒人包：不拍偏置的话会损失10%的信噪比，不拍暗场的话会损失12%的信噪比，两个都不拍的话校准会挂掉（平场完全不对）；现代CMOS不需要特别长曝。在合理的单帧曝光范围内（60秒或以上），同样的总曝光时间下，没有明显证据表明更长的单帧会带来更高的信噪比。

## 信噪比的测量

这个实验其实很简单，分成两部分。首先我们用一组30小时曝光的M31素材，偏暗平全部使用处理一遍，然后仅去掉偏执处理一遍，仅去掉暗场处理一遍，去掉偏执和暗场处理一遍，最后定量测量一下信噪比。第二部分是我们用不同的单帧时间，对同一个目标[海鸥星云](/shen-kong-she-ying-de-meng-xin-fan-mian-zhi-nan-qi-cai-keng.html)进行拍摄，但保证总的曝光时间是1200s。比如我们会用1个1200s的单帧，和2个600s的单帧叠加出来的结果，或者4个300s叠加出来的结果进行比较，看谁的信噪比更高，高多少。因为叠加都是日常工作了，我们就采用PI的WBPP进行处理。但其中一个未知的问题是如何定量测量信噪比。我一开始以为这是一个很简单的事情，但后来发现其实目前并没有一个可靠的测量信噪比的方法。在介绍我自己摸索出来的方法之前，我想先说一下我是怎么判断一个方法是"可靠"的。

我对信噪比测量方法的测试其实非常简单，由两部分组成。首先我准备了两张图，一张肉眼可见的特别噪，一张信噪比明显好很多。一个可靠的信噪比测量的方法至少应该可以判断出来这两张图一张比另一张好。然后我准备了两个单帧A和B，用PixelMath做了一张图$A \times 0.5+B\times 0.5$，以及另一张图$A\times B$。在$A+B$没有很多像素过曝的前提下，这两张图测量出来的信噪比应当是非常接近的。这个测试主要是怕信噪比和噪声测量搞混了。

然后我就去用这俩测试去找靠谱的信噪比测量方法。PI有一个脚本叫做NoiseEvaluation，算法大致是用小波变换找到图像的背景区域，然后测量它的标准差，最后根据亮度进行归一化。所以不同的图像之间也是可比的。作者的介绍在这个帖子可以看到。这看上去是一个比较靠谱的方法，但我实际测试以后发现，它对上一段第一个测试的两张图完全分不出来，给出的结果非常接近。一种可能的原因是，是不是它测出来的其实是噪音，不是信噪比呢？所以我又看了第二个测试的结果，发现它对$A+B$和$A\times 0.5+B\times 0.5$给出的测量也非常接近。这说明其实它测试的又不是噪声，是信噪比。所以这个脚本看来并不能满足我们的要求。此外，在最新版的PI里，有一个PSFSignal和PSFPower作为叠加的权重。我没有找到这个算法的细节，但从名字来猜测的话，他是用PSF的信号强度来作为叠加权重的，这样如果视宁不好，对焦不准等等，它都可以反映在叠加的权重里。但也正因为如此，我们的实验会受到视宁，对焦等等各种因素的影响，同时还依赖于星点检测算法的精度。所以我也没有采用这个方案。

最终我还是根据信噪比的定义来尝试做了一个非常简陋的工作流程。对一张图，首先我们找到一块信号很强的区域（如图一上图所示），然后用Statistics来看它的均值，作为信号强度。然后我们找到几块完全没有星点的区域（如图一下图所示），用Statistics来看它的标准差，平均之后作为噪声强度。信号强度除以噪声强度就是信噪比了。为了保证比较的公平，对于一组图，我们选取的测量信号的区域和测量噪声的区域都用[StarAlignment](/shen-kong-she-ying-de-meng-xin-fan-mian-zhi-nan-qi-cai-keng.html)和DynamicCrop保证是完全一致的区域。这个方法可以蛮好地通过上面的测试，对于明显肉眼可见的信噪比差异，它测量出来的结果分别是44和31，差了42%。对于第二个测试，测量出来的信噪比是13和14，也很接近。所以我们下面用这个方法来进行测试。

![Examples on the selected signal regions and noise regions](https://yage.ai/images/6200-wrong-usage-example.png)

图1. 选取的信号区域和噪声区域的示例

## 实验结果

讲完了是怎么做实验的，下面就很简单了，基本就是罗列实验结果。首先是对偏置和暗场的实验，我们选用了一个M31素材，6200MM+ACL200+Ha滤镜在2级远程台拍了30个小时。单帧10分钟，100gain，-10摄氏度制冷。用长曝光是想体现暗场的重要性。测出来的信噪比如下表所示：

<table class="table">
<tr><th>方法</th><th>信号强度</th><th>噪声强度</th><th>信噪比</th></tr>
<tr><td>偏置+暗场</td><td>4.398e-4</td><td>8.951e-6</td><td>49</td></tr>
<tr><td>不拍偏置 </td><td>4.485e-4</td><td>1.014e-5</td><td>44 (-10%)</td></tr>
<tr><td>不拍暗场 </td><td>4.407e-4</td><td>1.019e-5</td><td>43 (-12%)</td></tr>
<tr><td>不拍偏置不拍暗场</td><td>校准失败</td><td>N/A</td><td>N/A</td></tr>
</table>

其中不拍偏置不拍暗场那一行，校准失败指的是出来的图有很明显的亮圈，就是俗称的平场挂了。这个实验结果还是蛮意外的，我原来以为不拍偏置不拍暗场其实无所谓。因为如果照6200的1.6e-的读出噪声，0.001e-/s的暗电流来算的话，就算是30个小时，影响应当都是忽略不计的。但结果还是出现了10%的信噪比差异，虽然不多，但我也没有太好的解释，欢迎大佬们讨论。

关于是否是要单帧长曝，我做了两组实验。一组月夜H滤镜，一组无月夜O滤镜，出来的结果都是差不多的。如下表所示：

H滤镜
<table class="table">
<tr><td>单帧曝光</td><td>信号强度</td><td>噪声强度</td><td>信噪比</td></tr>
<tr><td>1200s</td><td>4.034e-3</td><td>2.655e-4</td><td>15</td></tr>
<tr><td>600s</td><td>1.777e-3</td><td>1.366e-4</td><td>13</td></tr>
<tr><td>300s</td><td>9.366e-4</td><td>7.676e-5</td><td>12</td></tr>
<tr><td>60s</td><td>2.004e-4</td><td>1.422e-5</td><td>14</td></tr>
</table>

O滤镜
<table class="table">
<tr><td>单帧曝光</td><td>信号强度</td><td>噪声强度</td><td>信噪比</td></tr>
<tr><td>600s</td><td>2.834e-3</td><td>1.849e-4</td><td>15</td></tr>
<tr><td>300s</td><td>1.403e-3</td><td>1.184e-4</td><td>12</td></tr>
<tr><td>120s</td><td>6.060e-4</td><td>4.278e-5</td><td>13</td></tr>
<tr><td>60s</td><td>.347e-4</td><td>2.148e-5</td><td>15</td></tr>
<tr><td>30s</td><td>.760e-4</td><td>1.248e-5</td><td>14</td></tr>
</table>

都没有特别明显的趋势。这可能说明就算单帧长曝有好处，也藏在拍摄过程中的一些偶然因素造成的测量误差里面了。但15分钟或以上的长曝对[赤道仪](/zwo-am5-review.html)的要求还是蛮高的，所以有了6200MM以后，不妨适当短曝一些，无脑10分钟看起来是个不错的方法，又不用对赤道仪有太大压力，又不至于拍出来一大堆文件，存储和后期压力大。

## 一些理论交叉验证

最后我还想从理论上对单帧长曝的问题进行一些交叉验证。在王为豪博士的《[星野摄影](/star-photography.html)》里面其实有一些相关的公式可以套用。这个公式是：

$$ T \ \frac{\sigma_r^2 \times F^2}{Q_E \times p^2} \times 10^\frac{S-21.24}{2.5} $$

其中，T的意思是，天空背景光污染噪声和读出噪声相等时候的时间。$\sigma_r$是读出噪声，单位是电子，F是焦比，QE是量子效率，p是像素大小，单位是微米，S是天空背景亮度，单位是星等每平方秒。

如果我们用CCD的参数带进去的话，因为QE小，$\sigma_r$大，所以得出来的数往往很大，因此长曝是很有好处的。但如果用CMOS的参数带进去的话，算出来往往是3~10秒（根据具体光学系统和光污染程度不同）。也就是3~10秒内，天空的光噪声就会超过读出噪声，如果我们曝光5分钟，读出噪声占整体噪声的比例就不到3%了。这时候如果曝光10分钟，把它从3%降到1.5%，意义也不太大。所以我觉得上面的实验结果是合理的。

综上所述，6200MM错误的使用方法就是不拍偏置或者不拍暗场，这会损失10%左右的信噪比。当然有时间的话还是拍一下最好，但打野之类万一忘拍了或者懒得拍，也不是特别大不了的事情。至于单帧长曝，一般到5分钟左右，再往上好处就不大了。但目前6200MM的读出噪声还不足以支持1s级别的甚至更短时间的幸运成像性质的应用。Sony/ZWO的改进还任重道远。我非常期待有一天天文相机可以以一秒一帧的速度曝光，还不用担心读出噪声。这样甚至都不需要赤道仪，直接用经纬仪跟踪就可以，盒子实时叠加。这样天文摄影的门槛会进一步降低，大家都可以领略星空的美好。

最后，因为我的水平限制，虽然我已经尽力检查了，但这个文章里面肯定有各种错误。希望各位大佬在评论中讨论指出。

<script async data-uid="49b08a3e73" src="https://yage-ai.kit.com/49b08a3e73/index.js"></script>
