拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

StarNet拆星工具详解:用神经网络实现星空摄影无星图后期

StarNet拆星工具详解:用神经网络实现星空摄影无星图后期

1. 这工具到底是干啥的:拍星人绕不开的"抠图"难题

如果你拍过银河、拍过星轨、或者尝试过把地景和星空分开做后期,一定遇到过同一个头疼问题:星星和前景混在一起,想单独处理背景山体的细节,结果把满天星也拖泥带水地动了。要么山体噪点磨平了,星星也糊了;要么星星拽出来了,地景又留下了光晕。

StarNet 就是专门干这件事的:把一张图里的恒星"剥离"出来,只留下不含星星的纯背景图层。它最初是天文摄影圈用来做深空后期处理的,后来被风光星野摄影玩家大量用于银河片子的地景分离,因为它能在一个相对可控的时间成本内,把星点从画面里"擦"得干干净净,而不伤及底下的景物细节。

简单说,别人用蒙版手动擦星,擦一晚上还可能翻车;StarNet 用神经网络模型来识别哪些像素是星点、哪些是真正的景物,直接把星点层抽走,生成一张"无星图"。然后你在 Photoshop 里把无星图和原图叠起来,就能只对地景做降噪、做细节增强,再把星点层放回去。银河照样亮,地景干净又扎实。

这篇文章适合谁看?凡是拍星空、星野、深空,并且被 PS 手动擦星折磨过的人。尤其适合刚接触星空后期、第一次听说还有这种"自动拆星"玩法的新手,以及想把自己的后期流程提速的进阶玩家。我尽量把原理、参数、实操、翻车经验一次讲透。

2. 为什么必须用神经网络来拆星:传统手法的死穴

在没有 StarNet 这类工具之前,后期圈最常见的拆星方案有几种,各有各的毛病。

第一种是频率分离。把图像拆成高频和低频,星星属于高频细节,地景细微纹理也属于高频。你强行提取高频层,结果地景的草叶、岩石纹理跟着星星一起被抽走了,后期还得费劲补纹理,弄不好反而把画面弄"脏"。

第二种是缩星后直接压暗。用最小滤镜或者 Median 滤镜把星星削弱,但星点一缩,周边的暗角、彗差、星芒也跟着糊成一片,地景边缘会发虚。尤其对镜头边缘画质不好的片子,缩星之后画面质感明显下降。

第三种是手动蒙版擦除。在亮星区域用套索、快速选择一点点做选区,复杂星场动辄几百上千颗星,光眼里看得见的亮星就够擦半天。而且星点边缘的半透明过渡很难选准,擦完要么留一圈黑边,要么把背景亮度顶出断层。

StarNet 为什么能绕过这些问题?它本质是一个训练好的卷积神经网络,喂给它大量"有星星"和"没星星"的配对图像,让它学会从图像亮度梯度和局部形态上判断哪些是恒星星点、哪些是延伸的景物结构。它能区分"一个高斯状的小亮斑"和"一片细腻的树梢纹理",这正是传统频率域算法做不到的语义理解。

实际用下来,StarNet 最让我服气的一点是背景连续性。手动擦星经常把星点周围的环境亮度一起带掉,因为星点周围本来就有衍射产生的光晕;StarNet 在预测无星图时会把星点连同其周围光晕一起"修复"成平滑背景,不仅看不出拆过的痕迹,连原来星点附近被抬高的背景亮度都被还原了,这对后期整体提亮非常关键。

3. 安装与运行环境:Windows、macOS、Linux 的各自路子

StarNet 不是 Photoshop 插件,它是一个独立运行的小程序,命令行跑图,输出一张无星 TIF。官方提供了 Windows 和 Linux 的预编译版本,macOS 通常从源码编译跑,也不难。

3.1 Windows 用户的使用路径

Windows 版本解压后是一个文件夹,里面有starnet.exe和模型文件。运行方式是打开 CMD 或 PowerShell,切到对应目录,执行:

starnet.exe --input "D:\photos\galaxy.tif" --output "D:\photos\galaxy_nostar.tif"

这个命令的意思是把galaxy.tif里的星星剥掉,生成一张galaxy_nostar.tif。官方默认参数就能跑,不指定其他参数的话,程序会用默认的starnet.pt模型文件,输出结果直接可用。

如果你的图片是 16bit 的 RAW 转出来的 TIF,建议直接喂 TIF,别喂 JPEG。JPEG 压缩会把亮星的星芒边缘搞成块状伪影,神经网络预测时会把伪影带进无星图,后期再拉伸很容易出断层。

3.2 模型选择:经典版和加强版

StarNet 有两个常用模型:starnet.pt和starnet2.pt,不同版本效果差异明显。

  • starnet.pt(经典版):对大面积弥散星云和低对比度细星星点识别稍弱,但胜在速度快,适合大图批量测试。
  • starnet2.pt(加强版):训练集更庞大,对密集星场、大小混合星点的拆离效果明显更好,星点多且杂的银河片优先选它。

我用同一张夏季银心片子对比过,经典版会把靠近银心的暗弱星点漏掉一部分,结果无星图里还能看到一堆残留的小亮点,后期处理时要再补一次去除;加强版则是一步到位,星点几乎清光。建议日常出图直接用加强版。

3.3 显存和 CPU 的相关设置

StarNet 跑图时可以选择用 CPU 还是 GPU。默认优先找显卡,没有显卡才走 CPU。我的个人建议是:如果显卡显存小于 4GB,且图片是 5000 万像素级别,老老实实走 CPU,因为显存不够时程序会报错或者直接崩,浪费时间。

指定 CPU 运行的命令参数是:

starnet.exe --input "D:\photos\galaxy.tif" --output "D:\photos\galaxy_nostar.tif" --cpu

CPU 跑图速度看单核性能,大概 4000 万像素的图,主流桌面 CPU 约 30 到 60 秒。GPU 跑的话一般 10 秒内就能出图。

还有一个值得注意的参数是--scale,默认是 1,表示按原分辨率处理。如果你只想快速预览整图效果,可以先用 0.5 跑一张小的,看看无星效果是否满意,再全尺寸出图。这样可以省不少时间。

提示:跑图前先把图片转成 16bit、RGB 色彩模式的 TIF。灰度图、8bit 图也能跑,但背景平滑效果明显弱一截,后期调色余地也小。

4. 拆星的完整实操流程:从 RAW 到分层 PSD

这一步我结合自己出片的标准流程讲,以 Photoshop 为主要后期平台,StarNet 作为预处理中间环节。核心思路是:拆星 → 处理地景 → 合并回星点 → 整体调色。

4.1 第一步:RAW 基础处理

在 Lightroom 或者 Camera Raw 里把 RAW 打开,先做基础镜头校正、白平衡、曝光调整。这里有一个关键要求:不要提前做去噪。StarNet 需要的是原始噪点结构来判断星点形态,如果你先把图像抹得平滑,星点的边缘特征也被抹掉了,拆星时容易把亮星拆成"黑窟窿"。

建议把降噪量留到拆星之后。地景降噪在无星图层上做,星点部分单独降噪,互不干扰,效果比整体降噪好得多。

处理完 RAW 后导出为 16bit TIF,色彩空间建议选 ProPhoto RGB 或者 Adobe RGB,为后续大范围拉伸留足色域空间。

4.2 第二步:运行 StarNet 生成无星图

把导出的 TIF 拖进 StarNet 命令跑一遍,得到无星图。这一步没什么可调整的,重点在于验证输出结果:

  • 无星图里是否还有亮星残留?如果有,检查输入图是不是 JPEG 重新压缩过的,或者拍摄时是否有严重过曝的亮星导致星点中心溢出,神经网络很难恢复溢出区域的背景。
  • 地景纹理是否被误删?如果山体边缘出现明显"涂抹感"或"Halo 光边",说明输入图的星点太大,后期需要先缩星再拆,或者把图缩小一档分辨率再拆。

4.3 第三步:在 Photoshop 里做图层堆叠

打开原图和无星图,把无星图作为原图的上层图层,添加黑色蒙版,然后用白色画笔在蒙版上擦出地景区域。这一步的好处显而易见:地景区域用无星图的干净数据,天空区域保留原图的星点,两半互不干扰。

我还习惯在蒙版上配合"色彩范围"选区辅助处理。用快速选择工具把天空区域大致选出来,加羽化 20 像素左右,反选形成地景选区,再把选区填充到蒙版上,大幅减少手动涂抹时间。

4.4 第四步:分别处理地景和星空

对地景图层做降噪、对比度和细节强化时,不用担心会污染星点,因为蒙版已经隔离了区域。对星点层做星点增强(比如缩小星点、压暗背景、加强银河核心反差)时,也不用担心地景跟着变化。

到了合并之后的整体调色,自由度就很高了。由于地景是无星图层处理出来的,背景亮度非常均匀,拉色阶、做色彩平衡,不会出现"星星跟着背景一起被提亮"的尴尬情况。

4.5 第五步:输出成片

最后拼合图层,做一次整体的锐化和降噪,导出成品。我通常输出两种格式:一张 16bit TIF 用于打印或存档,一张高质量 JPEG 用于网络分享。

5. 参数调节和效果对比:同一个场景,不同跑法差异有多大

很多人问我:StarNet 是不是一键跑完就完事了?其实它的默认参数能解决 80% 的场景,但遇到特殊题材,比如深空窄带、满月下的地景、严重光污染的城郊星空,就得手动调。

我自己常用的对比思路是跑三版:

  • 第一版全默认,出图看全局是否干净。
  • 第二版调整--scale到 0.5,看小图是否有区域性的星点残留。
  • 第三版用加强模型,再看边缘星点去除情况。

三版放一起对比,基本能判断是参数问题还是输入图质量本身有问题。

从效果上讲,StarNet 拆星后的无星图如果用于合成,最容易翻车的点在于背景噪声结构。星点密集区域的背景噪声,在无星图里会被神经网络"脑补"成相对平滑的渐变,而原图里那些区域是布满噪点的小颗粒。如果后期你把无星图拉得很亮,合成后星星层和地景层的颗粒感不一致,画面会显得"一半干净一半脏"。

解决方法是:无星图处理完地景后,给无星图层挂一层轻微噪点,让它和原图的噪声水平接近,再合并。我一般用"添加杂色"滤镜,数量控制在 2 到 4 之间,具体看原图 ISO 和整体比例。

6. 翻车现场与排查速查表:这些坑我都替你踩过

StarNet 看起来只是跑一个命令,但实际操作中翻车概率不低。以下是我觉得最有价值的避坑经验,全部来自真实出片过程。

6.1 拆完图发现地景边缘有黑圈

这通常发生在亮星紧贴山体轮廓线的位置。神经网络判断星点区域时,山体轮廓处的强对比度会干扰它的判断,导致星点背景修复时"补过头",在地景边缘形成一个暗圈。

排查思路:先把地景选区羽化做大一点,让山体边缘在蒙版上过渡更柔和;如果仍不行,把地景区域在 StarNet 之前先用仿制图章把边界的亮星修掉一点,减小模型误判概率。

6.2 无星图整体发灰,对比度下降

StarNet 输出的无星图基本是"褪色"状态,因为神经网络为了生成平滑背景,会自动降低整体反差。这不是 bug,是它的工作方式。

个人经验:不要在无星图上做全局对比度增强,而是用曲线配合蒙版,只对地景主体区域做拉伸。如果全局拉对比度,无星图边缘的伪阴影会被放大,后续合并时一眼就能看出处理痕迹。

6.3 模型跑出来的结果在星点中心留了一个"洞"

星点中心如果是过曝状态(中心纯白,没有任何明暗过渡),神经网络的修复表现会明显变差,容易在星点位置留下一个暗斑。这属于输入图过曝导致的信息丢失,任何算法都救不回来。

解决方法有两个思路:一是拍摄时对亮星区域做短曝光单独记录,后期用 HDR 方式融合;二是拆星前先用 PS 里的"最小值"滤镜把星点中心压成一个更平滑的状态,再跑 StarNet。

6.4 跑图时内存报错

大尺寸图片,尤其是拼接缝合出来的全景星空片,长边超过 12000 像素时,StarNet 默认模型有可能吃满内存。这种情况下,我建议分块处理,把全景图裁剪成几块,分别跑 StarNet,再把无星图拼接回去。注意裁剪时给重叠区域留 100 像素以上,避免接缝处产生不连续感。

以下是速查表,方便存档备查:

现象可能原因对策
无星图残留大量暗弱星点经典模型识别力不足换用加强模型 starnet2.pt
地景边缘出现黑色光晕输入图星点过亮或紧贴地景轮廓增大蒙版羽化,或先修边界亮星
无星图对比度明显低于原图StarNet 默认生成平滑背景局部曲线增强,不做全局对比度
星点位置出现暗斑星点中心过曝导致信息丢失拍摄时多档曝光明度参考或先缩星
接近星空的树梢纹理被误删复杂高频纹理被模型当作星点降低输出分辨率,或换用更精细蒙版
内存不足程序崩溃单张图片分辨率过大裁剪分块处理,保留重叠区域

7. 进阶操作:StarNet 和缩星、降噪、拼接流程的联动

StarNet 并不只是"拆一颗星"那么简单,它在完整的星空后期流水线里可以承担好几个不同的角色。

7.1 用无星图做降噪基准

星空摄影降噪最麻烦的地方在于,星点和背景噪声的频率过于接近,稍微降噪过头,星系细节就跟着毁掉了。有了无星图之后,操作逻辑变成:先对无星图做强力降噪,因为无星图已经没有星点,怎么抹都不会伤星;然后对原图做保守降噪,只去掉最明显的星点周边光环;最后两图层合一。

这种"分体降噪"的效果非常明显。我实测过一张 ISO 3200 的银河片,单独跑 Topaz 降噪和"无星图加持降噪"相比,后者的地景细节和星点锐度都保留了更多。

7.2 配合缩星流程

深空摄影中,缩星是降低星点对深空目标干扰的常用操作。StarNet 拆星后,给无星图做深空背景增强(比如把暗云气拉出来),再单独给星点层做缩星处理,最后合并。这和传统"先缩星再做背景增强"比,最大的区别是星点不会因为背景拉伸而再次膨胀,最终星点更小、更锐。

7.3 在拼接全景星空图里的使用

拼接全景图时,相邻两张图的星空区域会有重叠,如果每张都带着星点去拼接,软件自动对齐时经常出现"星点重影",因为全景图的星星位置在不同视角下,对齐算法很难做到完全精确。

策略是:每张素材先跑 StarNet 得到无星版本,用无星版本做拼接对齐(选择"仅背景"模式),拼完后再把星点层手动叠加回去。这样拼出来的全景星空图,背景天光过渡平滑,星点位置精准,几乎不需要额外修补。

7.4 暗星云题材的专属用法

拍暗星云(比如巴纳德环、加州星云周边)这类超低反差目标时,星点的干扰是致命的,传统 DDP 拉伸根本不敢拉到太深,因为星点会膨胀成一片亮斑。StarNet 拆掉星点后再做深空背景拉伸,暗云气的微弱信号就敢大胆拉出来,拉伸完再合成星点,出来的暗部细节量完全不是老方法能比的。

8. 和其他拆星工具横向对比:各有哪些长短

除了 StarNet,市面上还有 Starnet++(后续版本)、StarnetV2(社区魔改版)、Star Removal(PixInsight 内置)、以及 GraXpert 这类基于 AI 的背景提取工具。很多新手容易搞混,这里帮大家理一理。

StarNet 原版和新版 StarNet++ 最大的差异在于模型训练集。StarNet++ 在原版基础上扩充了更多的测试场景,在密集星团、双星系统上表现更稳,但运行速度和内存占用也稍微大一点。

PixInsight 里的 StarXTerminator 是目前公认的效果最强、最省心的方案,但它是商业插件,价格不低。如果你已经在用 PixInsight 做后期,且预算允许,StarXTerminator 确实值得考虑,它有更精细的参数调节界面,支持星点大小感知和星点颜色保护。不过对于没有购买 PixInsight、只想快速拆星的用户,StarNet 免费、跨平台、命令行可控,优势仍然非常明显。

GraXpert 是另一个方向的工具,它主要用来做背景提取和梯度消除,不拆星,但可以在 StarNet 拆星之后、背景拉伸之前,先跑一遍 GraXpert 把光污染梯度去掉。它的价值和 StarNet 不冲突,实际使用中甚至能形成互补。

工具费用平台支持输出稳定性适用人群
StarNet免费开源Windows/Linux/macOS好,偶尔大图吃内存不想花钱的绝大多数用户
StarNet++免费开源Windows/Linux更好,速度略慢追求效果上限、能接受稍长等待
StarXTerminator商业插件PixInsight 内最好,参数最灵活PixInsight 深度用户
GraXpert免费开源Windows/Linux/macOS背景提取出色需要消除光污染梯度的用户

这些工具之间不是互斥的,我是 StarNet 和 GraXpert 搭配使用,前者拆星、后者去梯度,然后再进 PS 做地景合成。整个流程成本为零,效果基本能达到专业后期 80% 的水平。

9. 一批多年的实操体会

拆星这件事,本质上是在解决后期流程里"互相干扰"的难题。星点、地景、背景天光三者混在一起时,想对其中任何一个做精细调整都得付出巨大的掩盖成本。StarNet 把这层纠缠解开了,让每个元素都能独立处理,这才是它能成为我主力工具的底层原因。

我个人的建议是:不要只看拆星结果好不好看,而是看它能不能稳定整合进你现有的后期流程。StarNet 最强的好处是它是命令行工具,可以被脚本化、被批量调用,处理成千上百张延时素材也毫无压力。如果你是那种一个月整理一次素材、成组出片的拍星人,学会用 StarNet 跑批处理,能省下整个晚上。

最后分享一个小技巧:在做拆星输出时,把无星图和原图放在同一个文件夹,用相似的文件名前缀,后期在 PS 里加载时就能自动排序,节省大量找图时间。流程越是自动化,你能留给构图和创作的时间就越多。

返回列表