尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

StarNet星点分离实战:深空摄影后期从安装到双图层合成全流程

发布时间:2026/9/29 18:17:56

资讯中心
01
ARTICLE

StarNet星点分离实战:深空摄影后期从安装到双图层合成全流程

StarNet星点分离实战:深空摄影后期从安装到双图层合成全流程
深空摄影这块有个老段子拍星云最花时间的往往不是拍而是后期怎么对付满屏的星星。尤其目标本身是暗淡云气的时候密密麻麻的星点会把背景压得又脏又乱星云云气反而成了配角。StarNet就是专门解决这件事的免费软件用神经网络把星点从图中“摘”出去留下干净的星云背景。我在后期流程里测试了相当长时间也从各种失败案例里踩了不少坑这篇把完整心得写出来从安装到出图一条线讲清楚。StarNet 是 Nikita Misiura 开发的开源项目2019 年前后在 APAstro Photography天文摄影圈子里传开2023 年放出 V2 模型后分离速度和细节保真度都上了一个台阶。适合正在做窄带合成、宽带 LRGB 后期想把星点和星云分开处理的人参考也适合科研预处理时批量剥离恒星前景。对比传统手工抠星点的方式它最大的价值不是“省时间”这么简单而是把“画面中恒星和星云云气的关系”从像素层面拆开让后期每个环节都能针对性地工作。1. 为什么后期流程里必须有一道“分离星点”的工序1.1 星点不仅挡画面还挡了云气的动态范围拍深空的时候一个尴尬的事实是传感器上真正占大头信号的往往是恒星不是星云。星点虽然看起来小但峰值亮度极高亮星核的强度很容易超过目标云气的几百倍。一张图里如果同时包含亮星和暗云气做 HistogramTransformation直方图拉伸的时候就有大麻烦拉伸到云气可见时星点早就过曝成了毫无层次的死白压到星点不刺眼时云气又暗得无法看。这个矛盾在我处理 M31 仙女座星系的时候体会特别深。星系中央核球和旋臂的亮度差非常大如果单一做全图层拉伸旋臂里的暗尘埃细节几乎全丢。当时第一次用 StarNet 把星系主体往外摘再对星点层单独做“压缩高光保留颜色”最后重新合成整个画面的信息被彻底释放了。所以分离星点不是“为了画面干净”这种审美问题它直接关系到动态范围利用率。1.2 传统抠星的工作量让人崩溃在 StarNet 出现之前分离星点基本靠土办法。最笨的办法是 PS 里用套索选中星点、羽化、填充背景色大星点还好几百颗小星点选到眼花稍微讲究一点的办法是 PS 里的“最小值”滤镜做星点收缩形态学处理再配合蒙版把星点挖掉。这些方法的通病是遇到密集星场、双星、衍射芒刺、星点饱和溢出的场景很容易留下暗黑边缘或灰白色残留处理一晚上可能只弄干净一小块。另一个思路是用动态范围压缩后再调色差比如DBEDynamic Background Extraction动态背景提取把渐变背景校准后用“ATrousWaveletTransform”小波分层把包含星点的高频层单独压低。这套方法花了很多年仍然是很多人处理星点的核心手段但很难真正做到“把星点从图像中物理移除”高频层里既有星点也有云气的纤维细节一损俱损。1.3 现在的做法让神经网络学会“无星世界”StarNet 的模型底层是一个针对天文图像做过大量训练的卷积网络输入一张图输出的是“如果这张图里没有恒星应该长什么样”。训练时用的是海量成对图一张是真实带星点图一张是对应星空背景图通常由模拟或人工方式生成网络在这个任务上迭代。实际使用的时候它并不理解“什么是恒星”的物理定义而是学会在像素尺度上识别星点局部形态同时保留云气的光滑结构。我第一次看到输出图的感受是“这根本不是滤镜效果而是重新画了一张物理上说得通的星空背景”。云气纹理反而比原来更清楚。这就是它的独到之处先做减法去掉星点后再做增强云气细节就自然浮出来了。2. 动手前把环境准备好模型选型也不必纠结太久2.1 StarNet 的运行条件与安装StarNet 官方提供 Windows x64 和 Linux x64 的二进制文件Mac 用户没有官方包常见做法是在 Linux 虚拟器或 Docker 里跑或者在 Windows 虚拟机里跑。官方版本并不需要安装 TensorFlow 之类大环境解压后直接用但前提是系统里有 .NET 6 运行库。很多朋友卡在这一步症状是运行命令后提示“You must install .NET to run this application”装上对应版本的 runtime 就好了。如果走 PixInsight 插件路线就更省事在 PIPixInsight 的简称的 Resources 里更新即可最新版本已经内置了 StarNet 脚本。安装后出现两个入口一个是 Script StarNet另一个在 Process 菜单下两个入口逻辑基本一样只是弹窗参数略有差异。我自己更习惯用 Process 版本因为可以在 Process Container 里批处理多张图速度也稳定一些。2.2 V2 模型和 V1 模型到底选哪个StarNet 官方主推 V2 模型我刚上手时用的还是 V1两者差别非常明显。V1 模型的特点是原生支持彩色图但网络规模小一些对细密小星点的识别不够彻底如果用短焦镜头拍摄密集星场比如天鹅座一带的富氢区跑完还会留一些“碎星星”没清干净。V2 模型整体采用双分支结构一个分支处理星点形态一个分支处理云气结构参数规模明显加大对碎星点和边缘星点的识别能力好了不少。V2 的代价有两个一是显存和 CPU 算力要求更高老显卡或纯 CPU 跑会明显变慢二是有“伪影问题”在特别亮的大星周围偶尔出现奇怪的暗环或弧线社区里常叫“burn-in”。针对这个问题官方在 V2 模型上增加了一个 anti-burn-in 选项PixInsight 插件界面里也有对应复选框。我建议默认选 V2 anti-burn-in如果目标亮度不高且星点稀疏再考虑关掉抗伪影来换取细节。2.3 命令行与插件的取舍命令行版本叫 starnet_cli它能精确控制线程数和模型版本也方便批处理脚本调用。我最初就是用命令行在测试下面这条命令是最基础的用法./starnet_cli input.tif output.tif -t 8 -n v2其中-t指定线程数一般设成物理核心数上下浮动因为同时在跑其他软件的话需要留点余量-n选模型版本v1或v2都支持。实际运行中 CLI 不提供预览窗口只能看到进度条所以更适合“全流程脚本化”的情况。PixInsight 插件的优势是当前图像窗口里直接出结果而且预览神器小图窗能快速判断是否要调参数。我现在的标准做法是日常处理用插件纯批处理或需要在其他脚本中串联时用 CLI两条路都值得留一份。3. 实操流程从一张素材图到星与云彻底分离3.1 输入图像的正确姿势先拉伸再喂还是直接喂StarNet 的官方文档里明确指出V1 建议输入已经拉伸到接近显示效果的非线性图如果输入纯线性图未做任何拉伸输出的星云背景往往会偏灰、偏暗。V2 虽然整体鲁棒性提升但依然建议先做一个前期拉伸。我在实际测试里把同一张线性图分别用“直接输入”和“先用 HistogramTransformation 拉伸到中等亮度再输入”对比后者的云气纹理明显更连贯伪影也少。PixInsight 插件里专门提供了一个 Linear stretch 复选框勾选后插件会在内部对线性图做一次自动拉伸输出仍然是线性尺度还是非线性尺度要分情况。我做摄取后处理的经验是已经做完全部非线性拉伸的图就别再勾 Linear stretch如果输入的是线性图勾上 Linear stretch 效果通常比不勾好。更高阶的做法是先用 STFScreenTransferFunction预览理想拉伸强度把这组参数应用到一张轻微拉伸图层再交给 StarNet。3.2 跑分离的标准流程具体到 PixInsight 里操作流程是这样走的选中预处理好的图像建议 16 位或 32 位浮点 TIFF不要用 8 位 JPG 直接跑。打开 Process StarNet选择模型版本 V2勾选 anti-burn-in。如果输入是线性图勾选 Linear stretch如果不是保持不勾。点三角形 Apply 到当前窗口。几分钟后输出一张 starless 图这是第一份核心产物。判断这次分离是否成功就看三个地方星点是否彻底消失云气有没有被连带削掉亮星附近有没有出现暗晕或亮弧伪影。如果星点仍有残留可以尝试在跑之前先对图层做一次轻微高斯模糊不我的经验是应该先对星点做过一次膨胀增强让弱星点先显露信号再喂给 StarNet识别率会高很多。具体可以用 PI 的 Convolution 或 MorphologicalTransformation 对图像做微量开运算。第二份核心产物是星点层。在 PixelMath 里用一张很简单的公式实现原始图减去 starless 图$T - starless$T 代表当前激活通道starless 是 StarNet 输出层。注意两张图尺寸、位深必须一致否则 PixelMath 会报错。减法之后得到的就是“只有星点”的图像把这层存起来后面用于星点锐化、颜色饱和、光晕压缩。这一步是整个后期工作流里性价比最高的投资因为星点和云气从此各自为政。3.3 星点层处理的核心参数不少朋友第一次分离完就直接合成出图发现星点层发灰、颜色不够鲜艳或者星点背景有灰边。原因很简单星点层直接保存时它的黑点并不为 0而是保留了一层因原始图拉伸而抬升的背景灰度。所以对星点层必须先做一个“黑点重定义”用 HistogramTransformation 把直方图左端推到背景峰值附近让星点外的区域基本归零。我的参数习惯是打开 STF 自动预览记录 STF 的阴影点位置然后应用到星点层有时再补一次“饱和度提升”比如 SCNR 绿通道降噪后加一个 CurvesTransformation 拉高中间调。这样星点层会被推到背景纯黑、星点亮色拉满的状态再和星云背景层叠加时基本不会出现发灰的情况。3.4 分离后如何重新合成重合成这件事最基础的做法是 PixelMath 里starless star_layer直接加回恢复到“有星的画面”。但既然已经分开了就可以做更多事。如果星层太硬刺眼可以先用 MLTMultiscaleLinearTransform多尺度线性变换对星层的小尺度层做轻微衰减让大星柔和下来。如果想给星点添加颜色偏移可以在星点层上用 LRGBCombination 或 ChannelCombination 分别调整 RGB。我的个人偏好是“分层合成”先把 starless 图层经过丰富的云气增强处理拉高对比度、增加局域对比再用高光压缩把星点层压到每颗星有渐变过渡最后用 Screen 混合模式合成。这样做出来的星点不再是一个个刺眼白点而是带颜色的光点。如果你还没试过可以在这上面花点时间回报非常明显。4. 常见问题与排查技巧实录4.1 输出慢、显存不足、CPU 满载正常吗StarNet 推理过程对算力要求不算低。V2 模型跑一张 4000x4000 的全图在 RTX 3060 级别显卡上通常要一到两分钟如果只在 CPU 上跑可能要三分钟以上老旧笔记本跑十到二十分钟也不稀奇。遇到这种情况先看任务管理器确认是不是有别的进程占着 CPU在命令行里指定合适的线程数不要一味拉满因为模型内部并行度不是线性增长的线程太多反而增加调度开销。显存不足的典型报错是 CUDA out of memory 一类的信息。优先办法是把图像切成小块StarNet 插件处理大图超过某个尺寸时会自动分块但仍建议事先把图缩到合理尺寸比如保留长边在 5000 到 7000 像素范围内超过部分先用 Resample 缩小再跑输出后再恢复尺寸。这样既降低显存占用也避免 V2 在超边界区域产生伪影。4.2 亮星周围的伪影 —— burn-in 和“海鸥翅膀”V2 模型最烦人的问题就是亮星留下的伪影。在特别亮的星点周围跑完后会出现一圈暗环或者一道弧形光带像“海鸥翅膀”。这其实是网络在预测“无星”图像时对高强度像素区域产生了过度响应并不是原始图像里的东西。解决办法有这么几个按优先级排第一在插件里勾选 anti-burn-in 再重跑十次有七次能压住第二如果伪影只集中在集中在某几颗超亮星附近可以在跑之前用 CloneStamp 或 RangeSelection 对超亮星做轻微压暗跑完再接回第三保留原始图用蒙版把伪影区域隔离在星点层上动手修复不影响星云背景。4.3 输出太暗或背景发灰输出太暗通常是输入图动态范围接近纯线性、云气信号低。遇到这种情况先在输入图上做一次模拟拉伸观察 STF 下的正常显示效果再把 STF 应用到一份副本上然后喂给 StarNet。背景发灰则是相反问题拉伸过头导致背景噪声也被当作“星云”输出。判定标准是输出的 starless 图背景均匀度是否和原始图背景一致如果整体都被拉高了很多多半是拉伸过头。另一个常见坑是用 JPG 直接跑。8 位 JPG 丢失了大量暗部细节输出后云气边界粗糙、背景有可见色块强烈建议全程使用 16 位整数或 32 位浮点 TIFF。4.4 快速排查参考表现象最常见原因推荐处理输出仍有小星点残留输入拉伸不足、弱星信号太弱先做轻微拉伸或用膨胀处理增强弱星再跑一遍大星周围出现暗圈/亮弧V2 的 burn-in 伪影勾 anti-burn-in局部压暗超亮星后再跑星云背景太灰/太亮输入拉伸过度降低拉伸强度输出后对背景做 DBE 校准星点层整体发灰星点层保存前未重定黑点对星点层做 HistogramTransformation 拉黑速度特别慢CPU 并行度不足、显存受限指定线程数降采样到长边 5000 像素内输出尺寸不一致导致合成报错两张图层尺寸或位深不同Resample 到一致尺寸都用 32 位浮点保存5. 进阶玩法让分离后的两半真正为最终出图服务5.1 双图层分别做增强再合成分离后最大的优势是“各自处理”。starless 图层专注于云气增强可以做局部对比度提升、去背景渐变、窄带映射调色不用担心星点被误伤星点层则专注锐化、缩星、色彩统一。我早前处理 M16 老鹰星云时用了两套完全不同的流程分别增强两个图层最后合出来中央云气的层状结构和周围星点的色彩都很难得。举个例子starless 图层用 HDRMultiscaleTransform 把云气里的暗尘埃细节拉出来再用 CurvesTransformation 压低中间调让云气厚实星点层用 Convolution 做一个轻微高光压缩再用 Curves 拉高饱和度。合成后星点是柔软的、带颜色的云气有体积感整体提升的质感用单层流程很难做到。5.2 用星点层给窄带图像“点色”窄带图像的星点颜色往往不太正因为 Ha 发射线下星点偏红OIII/SII 偏蓝绿合成后容易显得颜色死板。单层调整色相容易把云气也带跑分离后就可以只调整星点层。我的做法是先对星点层做 SCNR 去除偏绿再用 ColorCalibration 校准到白点最后用 CurvesTransformation 强化蓝白、橙白对比。这样星点看起来更加符合真实恒星颜色而对云气毫无影响。5.3 批处理与脚本化如果手上有一批素材比如双窄带长时间序列StarNet 命令行模式就派上用场了。写一个简单的循环脚本对列表中的文件依次调用 starnet_cli输出全部保存到 starless 文件夹十几分钟的无人值守处理。注意批处理时尽量把所有输入先统一成同一尺寸、同一拉伸状态否则不同帧的分离效果会不稳定因为 StarNet 对输入亮度尺度比较敏感。我自己用 PowerShell 写过一个简单的循环调用效果稳定。伪代码如下$files Get-ChildItem .\raw -Filter *.tif foreach ($f in $files) { .\starnet_cli.exe $f.FullName .\out\$($f.BaseName)_starless.tif -t 4 -n v2 }这样跑完后面的对齐、叠加再也不用担心星点位移问题因为是同一份 starless 图直接合成的。5.4 别忘了“原图优先”原则StarNet 再强也只是辅助工具。分离结果如果出现无法解释的变形云气或者某些本不该消失的云气细节被大量削减这时候千万不要硬套这个图层宁可回到原始图上手工处理。最好养成“分离结果只作为参考/强化层不替代原图”的习惯。我在处理猎户座马头星云的云气细节时StarNet 的一版输出把一部分丝状结构误当作噪声去掉了幸好保留了原始线性数据最后手工合成才对。我的经验是在每一次 StarNet 跑完后都随手把 starless 图与原始图做一次图层叠加对比重点看云气的亮部和暗部细节是否都还健在。做到这一点即使偶尔出现伪影也不会造成灾难性损失。6. 踩过的坑与偏向方向说到整个 StarNet 流程我最大的心得是前期准备比后面调参重要。很多人一开始图省事拿一张线性图直接跑结果输出灰蒙蒙一片就下结论说软件不行。其实只需要先把 STF 预览应用到副本上再做一点拉伸效果立刻天壤之别。这个细节官方文档里只是一笔带过但我个人认为它决定了 80% 的成败。另一个心得是 V2 的 anti-burn-in 选项不要太早关闭。虽然我测试时它在极个别图中会让云气稍微变软但绝大多数场景下对出图质量的提升很实在。跑 StarNet 这几年我在窄带、宽带、彩色相机、单色相机素材上都测过还拿它处理过月球拼接的边缘、行星土星的高倍图效果有好有差。说到底它最适合的依然是一般深空图像尤其是目标云气丰富、星点密集的图。只要正确拉伸、合理选模型、细致检查伪影这工具用起来相当省心。如果你还没尝试过把“双图层流程”引入到自己的后期管线里下次拿一张旧图跑一次你会明显发现星点和云气各自的空间都变大了。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。