
大约两年前我第一次把一张累计曝光 20 小时的 M31 照片拉进 Photoshop准备处理星系旋臂上的暗尘埃带。结果发现那些看起来很小的星点在图上密密麻麻几乎把旋臂上的云气切得七零八落整个星系核周围就像蒙了一层碎玻璃。我当时还是老办法拿套索工具手工圈选星点再靠周边像素填充“补洞”。一张图补了两百多个星点补到眼睛发花最后出来的旋臂过渡还是能看出处理痕迹。后来朋友推荐我试试 StarNet一个专门用神经网络把恒星从深空照片里剥离出来的工具。说实话我第一次看它跑出来的无星图时是有点懵的——干净得不像真的好像把一片星空的“魂”抽走只剩云气。但真正把去星图和原图叠在一起之后我才意识到这东西不是帮我把星星删掉而是把整条天文后期流程从“修补”变成了“分层管理”。1. 为什么“摘星”这一步这么关键——StarNet 解决的远不只是画面干净1.1 星点对星云处理的三重干扰很多新手拍完深空目标看到原图里密密麻麻的星点第一反应是“哇好多星星挺好看的”。这话没错但等你真正开始后期就会发现问题。星点对星云处理的干扰至少有三层遮挡细节这是最直观的。星系旋臂、暗尘埃带、电离氢云里的纤维结构在密集星场里会被几十颗亮星直接切断。你要是做高分辨率局部裁切一个亮星周围带着十字衍射芒能把目标的三分之一面积都盖住。干扰拉伸和白平衡深空原图是线性图需要大幅拉伸才能让暗部云气显现。但画面里的亮星是绝对的“高光 outlier”它们会把直方图的右端顶得很高你为了不把星点完全曝掉就只能把整张图压暗星云本体的暗部跟着一起遭殃。自动白平衡更是容易被密密麻麻的星点带偏尤其当画面里混着蓝色和橙色恒星时最终色偏会让你怎么校都校不回来。影响降噪和锐化先拉伸再去噪的时候星点边缘的高频细节会污染星云的噪声分布判断模型容易把背景噪声和星点周围的高反差混在一起。锐化时尤其明显星点会被放大成一圈“白边”而真正需要锐化的云气反而因为害怕放大噪声只能保守处理。这三层干扰叠加下来你会发现一个尴尬的事实你花了十几个小时拍回来的目标后期时最大的敌人不是器材、不是光害而是画面里那些好看但捣乱的星点。1.2 老办法为什么让人崩溃在没有 StarNet 这类工具之前天文圈常见的“去星”方案大概有三种我都试过中值滤波法把图像复制一层用超大半径的中值滤波把星点抹掉。思路是对的但问题是中值滤波不认人它会把旋臂上本身就细长的高亮云气也当成噪声一并抹平。等你把处理完的无星图抠出来发现想看的结构也没了就是典型的“把洗澡水和孩子一起倒掉”。手工蒙版填充用 Photoshop 的选区工具把星点圈出来再通过采样周边像素填充。这种方法在小画幅、星点稀疏的图里勉强可用一旦碰上球状星团或者银河中心的密集星场光是圈星点就能圈到手抽筋而且处理完的痕迹在放大后根本遮不住。反卷积对消在 PixInsight 里用去卷积配合星点蒙版把星点“按掉”。这个方法上限高但参数极其敏感星点大小范围、保护量、迭代次数任何一项没调好星点是消了星云的结构也被磨成一个光滑的椭球。这些方法的共同痛点是它们都在“同一个图层上做破坏性操作”。你为了摘星总是要付出云气细节和过渡自然度作为代价。而当 StarNet 一类基于神经网络的工具出来后大家第一时间意识到它解决的不只是“自动抠星”的效率问题而是把去星这件事从“破坏性后期”变成了“无损分层”。1.3 哪些人最需要它如果你只是拍星野、星轨或者流星雨去星需求没那么强。但下面这些场景去星基本是绕不开的深空星系摄影M31、M33、M81 这类目标周围都有大量前景星不把星点分开旋臂细节很难做干净。宽带窄带混合图比如用双窄带滤镜拍发射星云再用 RGB 通道补星点颜色。如果你不把窄带图里的原生星点去掉混色时就会出现“鬼影星点”。彗星摄影彗核是移动的背景星场是静止的两者必须分开对齐才能合成。StarNet 可以把背景星点直接从彗星图中剥出来再独立处理彗星本体和背景。卫星轨迹与流星修复现在低轨卫星越来越多长曝光图里经常混入一条亮线。StarNet 对这类紧凑型高亮物体也有很强的清除能力这个我后面专门展开讲。2. StarNet 的原理与版本选型我终于没再“装个软件瞎跑”2.1 它凭什么能分清恒星和星云StarNet 的底层是一套图像到图像的神经网络模型。你可以把它理解成一个“做过大量无星图练习的美工”输入一张带星点的深空图网络会输出一张同一构图、同一云气结构但没有星点的图。关键是它怎么学会的——靠的是海量真实的深空照片和仿真数据。恒星在望远镜成像里基本都符合点扩散函数PSF的形态一个中心亮核向外能量逐渐衰减形成一个小光晕。而星云、星系是连续的面光源亮度分布在空间上是平滑变化的。这个差异对电脑来说极其明显。网络在训练时不断学习“哪些像素属于点状光源哪些像素属于延伸结构”最后形成一个包含多层卷积的推理模型。推理时模型会先识别出所有点源候选计算它们的大小、亮度、形状然后把星点区域内的“云气猜测”用周围像素信息补出来。很多人好奇去掉星点后被星点盖住的云气怎么办答案是模型会“猜”。它不是简单地从图片上挖掉一块而是根据周围的亮度梯度、纹理特征去重建被星点遮挡的区域。这就是为什么它比中值滤波高出一大截——中值滤波只会把被遮挡区域周围的信息平均化而 StarNet 会利用更远的上下文把暗尘埃带或电离气体结构延展进被遮挡区域。当然这也意味着它有猜错的时候后面我会讲到哪些情况会翻车。2.2 StarNet 和 Python 版选哪个目前大家经常用到的分支主要有两个StarNet作者 ArtiomM 发布的 Windows 图形界面工具基于 TensorFlow 推理。操作最简单双击、选输入文件、选 GPU 或 CPU、点开始几分钟后就能生成无星图。它支持 TIFF、PNG、FITS 等常见格式输出也是适合后期处理的高位深文件。对大多数摄影爱好者来说这是最没有门槛的选择。Python 版本及第三方集成像 Siril 和 PixInsight 里都出现了基于 StarNet 思路的去星模块。这些更适合已经在用脚本做批处理、或者想把去星流程嵌入自己后期流水线的人。Python 版可以自由控制输入尺寸、推理精度和显存分配但你需要自己搭环境对纯摄影玩家来说有点杀鸡用牛刀。我的建议很直接只处理自己拍的二三十张图直接用 StarNet。你没必要为了一次去星专门建一套 Anaconda 环境。但如果你拍的是延时序列、批量处理上百张预览图或者你本来就在用 Siril 做整套堆叠后期那用集成版本能省掉大量来回导文件的时间。2.3 为什么我对它的“奇怪补丁”不再害怕我第一次看到 StarNet 输出的无星图时心里是犯嘀咕的星点是没了但云气的边缘怎么有点糊个别暗区还会有一种很不自然的“补丁”感。后来排查一圈才明白问题不在网络而在输入。StarNet 对输入图像的动态范围是有“舒适区”的。输入太“线性”太黑星点又小又暗网络容易漏检补出来的区域跟周围断层。输入拉伸过度、星点都成了一个大白盘网络会把亮星当成云气的高亮核心直接保留下来导致去星失败。最佳状态是原图完成基本堆叠后做一次轻度拉伸让暗部云气刚刚显现、星点还有清晰边缘然后把图喂给它。这时候网络能准确区分星点和云气边界输出结果最自然。这一点很多教程都没细讲。大家拿到工具的第一反应是“直接喂原图”然后发现效果不好就开始怀疑软件不行。其实是你没把“菜”备到适合它处理的状态。3. 实战用 StarNet 处理一张深空照片的完整流程3.1 输入图怎么备菜叠加完成、轻度拉伸、别压 JPG我以一张用 135mm 镜头拍的猎户座大星云为例梳理一遍完整的去星流程。假设你已经完成了校准、对齐、叠加拿到了一个干净的 TIFF 或 FITS 文件。第一步是“轻度拉伸”。这一步的目的不是把最终效果拉出来而是为了让 StarNet 更好地识别星点。操作上用 Siril 里的直方图变换或者 Photoshop 的曲线工具都行。关键在于程度控制把直方图的波峰从最左侧往右侧推一点让暗云气的轮廓依稀可见但画面看起来还是明显偏暗。宁可拉伸不足也不要拉过。第二步是“色彩昵称”的校正。先做基本白平衡把偏色拉正。StarNet 对颜色本身不敏感敏感的是不同颜色通道里星点的特征差异。如果红色通道里星点特别肥、蓝色通道里星点特别小网络在同一位置处理时会不知所措。统一好三通道的星点形态输出会明显更干净。第三步是格式准备。尽量用 16 位或 32 位的 TIFF 作为输入不要压成 JPG。JPG 的压缩伪影会干扰网络对星点边缘的判断特别是在弱星点区域容易出现一圈圈像“蚊子”一样的伪影。3.2 StarNet 的界面操作与参数设置StarNet 的图形界面非常克制没有一堆需要揣摩的高级选项输入路径选择刚才备好的 TIFF 文件。输出路径一般默认同目录它会自动生成带_starnet后缀的结果文件。处理设备有 NVIDIA GPU 就优先选 GPU速度快得不是一点半点没有的话走 CPU 也能跑只是大图可能要等几分钟。Tile Size这个参数控制图像分块大小默认值就是经过调优的除非你遇到显存不足否则不要动它。工作目录建议改到剩余空间大的 SSD因为处理大图时会生成临时文件堆满 C 盘的情况我遇到过不只一次。点击开始后进度条走完就能看到_starnet.tiff。这个无星图会比原图看起来扁平一些因为最亮的那部分能量被移除了。这是正常现象不要急着去调曲线后面合成时会找回来的。3.3 在 Photoshop 里做减法叠图把星点“分”出来拿到无星图只是起跑线真正的精华在合成。我习惯在 Photoshop 里把原图和无星图叠在一起做成一个可灵活控制的图层结构。具体操作如下同时打开原图和无星图。只要堆叠和 StarNet 输出过程中没有经过缩放两张图的像素位置是严格对齐的。把无星图放到原图的上方图层混合模式改为“差值”Difference。此时画面里会呈现一种类似“底片反相”的效果但注意观察因为云气部分被减掉了画面上剩下的主要就是星点。把这个差值图层反相再加一个“色阶”调整层把反差拉大这样就得到了一张可以单独提取的“星点层”。你可以把它单独存成一个 PSD 文件作为独立素材。另一种更常见也更好控的流程是保持无星图在下方原图在上方给原图层加一个白色蒙版然后用黑色画笔在蒙版上把星点区域涂掉。被涂掉的地方会露出下方的无星图从而自动补齐背景。这个流程适合星点数量不多、希望手动微调的情况。我强烈建议你两种流程都试一下。差值法适合一次性筛出所有星点效率高蒙版法适合精细控制每个星点的保留程度比如你想让某些最有特点的亮星保留在原位。3.4 为什么这套流程比单图处理强单独处理一张带星点的整体图你永远在“委屈求全”为了不把星点炸掉星云对比度不敢拉太狠为了让星点有色彩背景云气的饱和度和色相也跟着被污染。而分层处理等于把问题拆成两个完全独立的子问题无星图可以放心地做多次 HDR 合成、曲线拉伸、局部对比度增强和细腻降噪完全不用考虑星点的感受。处理后的云气是平滑、透明、有质感的。星点层可以单独调整星点的亮度、颜色、大小甚至做成柔焦光晕。你可以在星点层上做极小半径的高反差保留让星点看起来精瘦锐利而这些操作不会对云气产生半点影响。最后把两层叠回一起时用“滤色”混合模式把星点层叠在无星图之上就既有干净深邃的云气又有锐利饱满的星点整体通透感完全不是以前单图层硬磨能比的。4. 我在真实项目里踩过的坑和对应处理办法4.1 星点残留为什么总会剩下一堆半透明小光斑我第一次正式拿 StarNet 处理一张照片时输出结果里还有不少灰灰的半透明小光斑既不亮也不消失盖在云气上非常碍眼。排查半天原因主要有三类输入图里星点过曝成白色圆盘。网络分不清这是一颗亮星还是一个亮星云核自然就把它当成“云气高亮区”保留下来。解决办法是把高光压回来再做去星或者用缩星工具把星点半径缩小。密集星场带来的上下文混乱。比如球状星团中心几百颗星挤在一团网络只能识别出最亮的那层剩下的弱星全被忽略了。我的处理办法是把密集区域局部裁剪出来单独跑一遍 StarNet再把局部无星结果跟原图合并。CPU 推理精度不足。某些 CPU 实现在大图时会自动降低中间层计算精度以提速弱星点检测就会被跳过。如果你用的是 CPU 跑大批量图发现弱星点残留成片可以降一档分辨率再试。总的来说StarNet 不是“一键清零”的神器它需要你根据目标特点调整输入。遇到极密星场时局部单独跑是正常操作不用怀疑软件坏了。4.2 显存不足和临时文件塞满系统盘StarNet 处理 6000x4000 的照片时GPU 显存占用常常飙到数 GB。我遇到过两次运行中途报错一次是显存不足一次是工作目录所在的 C 盘被临时文件塞满。解决办法很朴素关闭浏览器和其他占用显存的后台程序。用 Tile Size 让图像分块处理不要试图“一次吞下整张图”。默认值通常会自己分块你只需要别把它改得太大。把工作目录和输出目录都指向剩余空间充足的 SSD。如果你的显卡实在扛不住就把输入图降到 50% 分辨率先跑一次。对大多数星云照片来说50% 去星后叠回原图的视觉差异并不明显尤其是最终成片还要压缩发社交媒体的情况。4.3 星系核和星团中心被“过度清洗”StarNet 对“高亮紧凑形态”的判断逻辑决定了它会偏爱处理星系核这类超级亮核。M31 的星系核、M104 草帽星系中央的隆起如果去星力度太大会被直接判定为“巨型星点”抹成灰白一片。这个问题不能通过调参数彻底解决因为去星模型本质上对“这个结构到底是不是星点”没有完美答案。我的处理办法是给重点目标做保护蒙版。具体来说在 Photoshop 里画一个椭圆选区覆盖星系核区域填充 50% 灰存储为一张灰度蒙版图。跑 StarNet 之前用这张蒙版把原图的星系核区域先压暗 30%让它不再是最显眼的“高亮紧凑物”去星完成后再把压暗的步骤还原。这样做相当于先欺骗网络让它别盯着星系核下手把注意力放在真正的星点上。虽然多一步操作但这是我在处理 M31 时找到的唯一靠谱办法。4.4 顺序错误带来的悲剧先把星点缩小还是先去星还有一个特别容易犯的顺序错误。很多人习惯先去星然后发现生成的星点层太亮太肥又对星点层做缩星处理。这个流程看起来没问题但实际上 StarNet 输出的星点层是网络“重新猜测”过的星点的边缘信息已经损失了一部分再缩小也找不回那种锐利度。正确的顺序应该是如果原图星点太肥先在原图上做缩星或降亮度再喂给 StarNet如果怕亮星盖住云气先做轻度 HDR 压缩再做去星最后才把处理后的星点层叠回无星图。我也犯过一次“先缩星再去星”的错误结果星云边缘出现了一圈亮边怎么都调不干净最后只好重新跑去星。顺序对了你会发现网上很多抱怨“StarNet 把细节弄丢了”的帖子其实毛病都出在输入图准备阶段。5. 把星星摘下来以后三种更进阶的玩法5.1 把“星点层”单独当成后期素材用差值法得到星点层后它本身就是一张极好用的素材。我给几个具体场景模拟星芒对星点层做一次“最小值”滤镜并配合轻量高斯模糊再用“滤色”混合模式叠回原图可以让最亮的那几颗主星周围出现柔和的漫射光晕营造出长焦或望远镜的视觉质感。星点柔焦把星点层复制一份做较大半径的高斯模糊再把模糊层的透明度降到 30~50%叠回画面。这么做可以给星野照片增加一层柔光效果尤其适合极光背景下的星点处理。分区调整的蒙版来源星点层的亮度信息天然区分了“背景暗区”和“高亮星点”你把它渲染成选区或亮度蒙版后就可以用色阶、曲线、HSL 分别调整星点颜色与背景颜色互不干扰。比如让星点偏冷调而背景偏暖调整张图的层次感会强很多。5.2 用来清理卫星和流星轨迹StarNet 的另一个隐藏用途是修图它不只是摘星点凡是画面里那些“紧凑、高亮、与背景延伸结构明显不同”的物体它都倾向于清除包括卫星轨迹、流星痕和飞机灯线。这个特性救过我一次有次拍加州星云68 分钟的长曝光里混进一条卫星轨迹刚好斜穿整个目标云气。以前只能靠图章工具慢工细活修十几分钟那次我先把图丢进 StarNet 去星发现连那条亮线也被一起“脑补”掉了再手动补一下线条周围的细节就结束了。但要注意卫星轨迹旁边的云气会被网络猜测出一点浅色过渡不是真正被“修复”而是“合成”出来的。使用完一定要放大检查轨迹经过区域必要时用图章工具修补别直接信输出。5.3 星野摄影与深空素材的混合尝试最后一个方向纯属个人探索。城市光害严重的地区想拍清银河本身已经很难但城区还保留着不错的天空条件时你其实可以借用老素材。我之前在乡下拍过一批银河底片云气部分因为天气通透度不够形态一般但星点非常完美。后来我用 StarNet 把这张旧图的星点层剥出来再叠加到一张城郊拍的云气图上通过调整比例和色温竟合成了一张观感相当自然的作品。这种方法严格来说不算“当天真实星空”但用于创意合成、星野接片、或者补全某次失败拍摄的素材复用确实打开了一种新思路。我到现在还是会在正式处理每张深空图之前先跑一版去星预览看看云气结构在“无干扰状态”下长什么样。很多时候你会发现原来目标本体能处理得更干净只是以前被星星遮住了判断力。StarNet 这类工具不是让你偷懒而是把以前耗费在手动修补上的时间省下来花在真正影响画面的对比度、色彩和结构塑造上。它当然会犯错尤其在饱和亮核和密集星场上所以我更愿意把它当成后期流程的一个常规环节而不是一颗万能药丸。照片是你自己拍的细节认不认得出来最终还得靠你的眼睛把关。