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

StarNet去星指南:深空摄影中星云与星点分离的AI新方案

发布时间:2026/9/29 17:49:45

资讯中心
01
ARTICLE

StarNet去星指南:深空摄影中星云与星点分离的AI新方案

StarNet去星指南:深空摄影中星云与星点分离的AI新方案
如果你拍过深空天体大概率遇到过同一张照片里同时存在绚烂星云和满屏恒星的问题——星云本身很漂亮但那些密密麻麻的星星一多反而把云气的明暗细节盖得死死的。近两年圈子里讨论度很高的开源工具StarNet就是专门为了解决这个痛点而生的。它用神经网络把照片里的恒星单独拆出来生成一张无星版本的图像再用各种后期手段把恒星和星云分开处理最后再合回去。这篇文章我会从原理、安装、实战流程、常见坑位到跟传统手法的对比把我跑了大半年星空素材的经验全部摊开讲一遍。适合刚接触StarNet、或者准备改进自己深空后期流程的星友参考。1. 为什么天文摄影需要去掉星星——从星野照片的痛点说起每次处理猎户座大星云、礁湖星云这类目标时总会遇到同一个尴尬明明云气才应该是主角结果画面里最扎眼的是那些亮星和它们的衍射芒。低倍率下还好一旦把照片拉伸到能看到云气暗部的程度周围几颗亮星就已经完全过曝星点肥成一团星云内侧的细节反而被星点抢了注意力。如果你处理过NGC7000北美洲星云你会发现整个星云轮廓其实跟银河背景混在一起只有去掉叠在表面的大量恒星才能真正看出云气的边界在哪里。1.1 恒星遮挡了星云的光深空照片本质上是相机通过望远镜长时间累计的微弱信号恒星和星云在焦平面上是重叠的。面状星云发射星云、反射星云、行星状星云的信号通常散布在很大范围强度却不高而恒星是点状光源信号集中在极小的像素区域内。处理到后期当我们要把星云暗部细节拉伸出来时亮星的像素值冲到顶溢出的辉光还会往周围扩散星云区域哪怕强度足够也会被高动态范围的恒星衬托得又平又灰。就算用HDR多尺度处理也救不回被星点占据的动态范围。更麻烦的是叠加后的星轨照片如果想做大范围银河全景拼接恒星和星云往往处于不同图层。恒星因为大气视宁度和跟踪误差会轻微位移星云却固定在同一位置传统拼接算法很难同时兼顾两种运动特征会出现星点拖线或者星点重影。这时候如果能先摘除恒星只拼星云背景拼完再叠回恒星星点层整个全景图就会干净得多。1.2 传统方法的局限蒙版、克隆、DBE的漫长战役在AI工具普及之前StarNet这种思路没法直接实现大家只能靠后期硬磨。常见手段无非三种窄带调色盘/星点抑制针对Ha、OIII窄带数据可以用PI里的RangeSelection做星点蒙版再把恒星像素压暗。但蒙版边缘总有过渡带疯狂收缩和羽化之后亮星周围会留一圈光晕来回收几次就变成明显的黑洞。克隆盖印PS中用Content-Aware Fill或者手动克隆图章把亮星替换成周围背景。几十颗星还能忍几百上千颗星直接崩溃而且会在云气不均匀区域留下抹布一样的纹理。DBE/ABE背景提取通过多项式拟合背景把恒星视为噪声做剔除但这对大恒星无效拟合函数会在亮星附近产生剧烈下凹把你想要保留的云气都压掉。这些方法都不是不行只是耗时惊人且效果不稳定。我最早处理一张M31的宽场图光去星点就用掉了四五个小时最后还残留了不少瑕疵。直到换用基于神经网络的StarNet整个过程缩到了几分钟精度还远超手工。它并不是什么黑魔法核心就是CNN图像分割。2. StarNet的底层原理一个专为星点训练的分割式神经网络理解了痛点之后自然就会好奇StarNet到底是怎么分辨恒星和星云的它凭什么能比人工蒙版还稳这里我得先把结论写在前头它不是把图像元素识别成恒星而是通过学习预测画面中每一颗恒星的颜色和强度然后直接用原图减去预测星场剩下的就是无星版本。这跟传统的高通滤波或者中值滤波完全不是一个量级。2.1 它的训练数据是怎么造出来的合成星场真实深空背景很多人第一次听说StarNet的训练集是合成的都会觉得不可思议。这里面的关键是因为我们需要的是带星图和无星图严格一一对应的配对数据现实中几乎不可能拍到完全相同的两张图——不过有一种办法可以造出来先拿到一张精确的星表比如GAIA DR2根据望远镜像素尺度和视宁度生成一批恒星的PSF点扩散函数把它们叠加到一张真实的、已经去除恒星的深空背景照片上这样你就得到了同一场景的两个版本。具体一点说训练数据大致按这个流程做的从天文数据库获取一批真实深空原图这些图通常已经基本无星或者经过粗去星。根据星表生成成千上万颗星星位置、亮度、颜色参照真实分布再按仪器的PSF把星点渲染成二维高斯或Moffat形状。把步骤2生成的星场叠加到步骤1的干净背景上形成输入X。干净背景本身作为目标Y。训练一个卷积网络输入X输出尽可能接近Y的图像。网络学到了把这些局部高点抹掉再按周围背景纹理补全的能力。因为合成数据里的星点可以任意调节密度和亮度所以网络见过各种极端情况密集的银河星场、巨大明亮的红色星、饱和过曝后的平顶星点都能学到一定的泛化能力。也正因为训练集是人工合成的网络天生更适应背景相对平滑的天文图像如果在城市光污染里拍出来背景梯度极重效果就会打折扣。2.2 UNet与星点特征为什么它能分清星星和云气StarNet的核心网络结构是类似U-Net的全卷积网络。为什么要用U-Net因为它同时具备看全局和看局部的能力编码器一层层下采样感受野越来越大能识别亮星周围的大范围光晕和云气结构解码器再把低分辨率特征一层层上采样回到原尺寸并且通过跳线连接把浅层细节传给深层。这样网络既不会丢失星点的精确定位又能理解大尺度背景。网络输出的不是一颗颗星点的坐标框而是一个和输入同尺寸的预测星场图。图中每个像素值代表网络认为这里有多少信号来自恒星。最后用输入原图减去预测星场图差值图就是去除恒星后的版本。这里有个小但重要的细节StarNet不是做像素分类星点/不是星点而是做回归直接预测恒星贡献的像素强度所以星云亮部如果被误判成恒星也会被顺带削掉一点但训练数据保证了这种情况不会太频繁。V1版本用了约150万张训练图网络层数较浅V2版本把网络加宽加深、输入输出尺寸增大并针对大星点做了增强鳞状细节保留更多。实测下来V2在处理饱和大星点时明显比V1不容易在星点位置留黑洞。但V2对显存要求也更高我自己的8GB老卡跑全尺寸图偶尔会爆显存。2.3 StarNet V2与V1的核心差异以及StarNet是什么V1用的是单通道灰度图输入V2则改成了RGB三通道输入输出同样三通道。这意味着V2可以直接保留星点的颜色信息分离出的星点层不再只是亮星轮廓还带着星点的色温这在后期做星点增强时很重要。V1得到的星点层基本是黑白的如果想恢复星点色彩还得额外想办法V2省了这一步。StarNet是社区里做的图形前端本质上是把同样的模型封装进一个独立软件免去Python环境的折腾同时还支持批量处理还把配套的TensorFlow版本打包好了。它的操作极其傻瓜打开图片、选模型v1或v2、点Star Removal等待即可。PixInsight里也有人做了插件桥接把StarNet作为外部进程调用来实现一键去星这个我后面会详细讲。3. 实战安装与运行从Python库到StarNet GUI如果你只是想快速得到一张无星图直接下载StarNet的GUI版本最省事。但如果你想把StarNet嵌入自己的批量工作流或者想在脚本里做星点分离后再自动处理那用Python库更灵活。两条路线我都跑通过分别说一下关键步骤和坑。3.1 环境准备TensorFlow版本坑与CUDAStarNet官方仓库的历史比较久早期基于TensorFlow 1.x现在主分支推荐TensorFlow 2.4以上。这里最大的坑是CUDA和cuDNN的版本匹配问题。如果你机器上有其他项目用的TensorFlow可能会互相打架。一个比较稳妥的做法是直接建一个独立的conda环境例如conda create -n starnet python3.9 conda activate starnet pip install starnet注意官方推荐的TensorFlow是tensorflow2.4这类具体版本别装最新的2.16。我就在新版本上遇到过GPU显存分配异常的问题换回2.4就正常了。安装完可以用下面的代码确认版本可用import tensorflow as tf print(tf.__version__) print(tf.test.is_gpu_available())如果你显卡比较新比如RTX 40系列你得用TensorFlow 2.10以上才有对应的CUDA 11.8支持但StarNet对TF版本要求并不严格新版TF理论上也能跑。保险起见用CPU模式跑也完全可行只是慢一些一张2000万像素的图大概要几分钟到十几分钟。我是建议能上GPU就上GPU至少快一个数量级。3.2 用Python API跑通第一张图StarNet的Python调用比我想象的简单官方示例大致如下from starnet import StarNet # 初始化模型指定v1或v2 model StarNet(model_typev2) # 输入图像路径输出无星图像路径 model.remove_stars(input.tiff, output_nostar.tiff)但你要注意这是高度封装的API实际项目里模型加载和推理可能需要你先下载权重文件放到项目目录。GitHub仓库里有个bin文件夹放的是模型权重。如果调用失败多半是权重路径问题你把仓库克隆下来再试就对了git clone https://github.com/starnet-imaging/starnet.git cd starnet python your_script.py处理单张图是最基本的批量处理可以写个循环但内存是硬伤。2000万像素的彩色图v2模型在前向传播时会同时加载原图和中间特征图一张图峰值占用轻松超过6GB显存。如果批量跑建议每张图处理完就释放资源别在一个python进程里不停积累。3.3 StarNet的操作流程图形界面版StarNet完全适合不想碰代码的星友。打开软件后操作流程大概是点击Input选择待处理图像支持TIF、FITS、PNG等常见格式。在Model下拉框选习惯的模型我用下来推荐V2除非你的显卡太老。设置Output目录名字会自动加_nostar后缀。点击Star Removal等待进度条走完。处理完成后输出目录会出现一个无版本星图。这个GUI还带一个Star Mask选项可以额外输出恒星蒙版方便你后续给星点和云气做分区调整。这在PI里拼合图层时特别好用。我个人的习惯是先用StarNet预处理一张大图看看去星效果和整体背景梯度有没有异常确认无误后再用Python批量处理剩下几十张子帧。GUI偶尔会在处理超大图时卡死Python脚本反而更稳当所以各位按需选择。4. 关键参数与工作流如何把StarNet融入PixInsight后期流程StarNet最好的归宿不是单独出个无星版本就这么算了而是嵌入整套PixInsight后期流程中发挥星云与星点分离处理的威力。我这里分享一套我自己跑通的组合拳成功率很高。4.1 先拉伸还是先跑StarNet这是我最常被问的问题。标准答案是在非线性阶段跑。因为StarNet训练数据多是从线性图模拟渲染的但实际上非线性拉伸后的图也完全可以跑而且跑出来的无星背景更平滑。关键在于你要把输入图像处理好先对原图做DBE动态背景提取和色彩校准再拉伸到合适程度。太暗的图神经网络看不出星点和背景的差异严重过曝的图星点和星云都糊在一起去星效果会很脏。我自己的经验是先把原图做了基本的DBE、色彩校准和白平衡然后做一次简单的HistogramTransformation把图像拉到中间调、暗部细节可见这时候再跑StarNet。此时输出无星图可以直接作为星云通道的基础层而原图减去无星图得到的星点层还需要做个星点提取来滤除背景杂讯。4.2 用StarNet做星点分离后的三种玩法拿到无星版本后玩法自由度就大很多。我个人常用三种星云单独强化对无星图做HT、曲线、HDR重组、色彩增强反正星云怎么折腾都不会带动星点也不会出现星点边缘产生黑圈。尤其是在做SHO窄带合成时无星版本可以肆无忌惮地拉伸暗云气整张图的结构层次一下就出来了。星点单独处理用原图减无星图得到含星版也就是星点层对它做星点缩小、饱和提升、色偏校正甚至可以用MorphologicalTransformation把星点压小一圈。处理完再叠加回星云层就能得到星点细小颜色漂亮云气丰富不遮盖的最终结果。多目标拼接很多大面积马赛克拼接需要两层对齐去掉恒星后再拼接背景连续性和色块接缝明显改善。星点层单独拼接后做一次对齐叠加再合成全程不靠蒙版去协调星点。如果你用PixInsight甚至可以配合StarNet插件的Star Mask输出直接生成蒙版然后在PixelMath里实现原图 无星图 星点层这样每次调整时都能保持星点层的独立性。4.3 混合模式与图层蒙版干净星云与自然星点的共存星点分离做久了你会发现一个细节直接原图减去无星图得到的星点层边缘处可能带一点点背景负值叠加回星云层时会导致星点周围发暗。这时候最好用PI或者PS里的Lighten混合模式来叠星点层只让星点亮部叠加空掉的背景区域透明不会影响底下云气。用StarNet输出Star Mask的好处就是能精确控制叠加范围。把星点蒙版做一点羽化和最小值滤波再通过Curves压低星点层边缘的灰阶能显著消除那种AI去星后遗症——就是亮星周围一圈类似抠图痕迹的暗晕。这个问题我在第5节还会细说。另外要提醒一点星点层在叠加前最好先给星点做个反卷积或最小圆否则最终图中星点和云气之间会有一种分离感不像一张自然的天文照片。我的习惯是把星点层单独做一个2像素的gaussian再叠加让星点光晕跟云气融合得自然些。5. 我在实拍中踩过的坑与调优心得工具再好用也有翻车的时候。我用StarNet处理了上百张不同目标的素材踩了不少坑这条单独拎出来讲。5.1 卫星轨迹和星芒的误判StarNet是拿真实星点训练的它对标准星点性能极好但遇到线状目标会翻车。卫星轨迹、流星、飞机灯轨这些图像里网络没法把它当作恒星所以这些线会残留在无星图里。更麻烦的是当图里有非常明显的星芒比如M42的衍射芒、亮星周围长而直的芒线模型会把一部分星芒当成背景纹理保留下来导致最后无星图里出现模糊高光条带星点层又变得残缺。应对方案如果你拍的是行星状星云、星团周围亮星特别多跑StarNet之前最好用PI里的DynamicCrop裁掉边缘星芒或者在处理完无星图后手动再清理一遍星芒。卫星轨迹最好的处理是在叠加阶段就剔除不然留到StarNet是没法自动消除的。5.2 大星点与过曝星点的处理技巧训练数据里虽然包含一定程度的饱和星点但现实拍摄中亮星经常过曝到极点星点中心的像素完全溢出其周围还有一圈电荷溢出竖线在CMOS上表现为垂直亮条。这种极端情况V2模型往往会留下一个火山口状的小凹陷——中心过曝区域被当作云气背景保留而周围真实星云却被删除产生了内外不连续。我试验了几种对策最有效的是在跑StarNet前先对图像做一次范围选择把过曝星点中心区域单独压到次饱和水平再用StarNet跑跑完再把原始的过曝星点层叠回去。或者干脆在跑之前用蒙版把最大那几颗星保护住让模型只处理中等星点然后再手工处理大星。如果你使用的是StarNet有一个参数叫Preserve Star Color之类不同版本字段名略有差异建议勾选否则大星点的色偏很容易被网络强制分类成云气导致最终星点层里出现奇怪的颜色块。5.3 运行时间、内存与图像尺寸的现实考量StarNet在GPU上跑起来速度确实惊艳。拿我自己机器RTX 3060 12GB来说一张4000×6000的彩色TIFFV2模型大概耗时50秒到1分半。但如果你是CPU跑时间直接翻十倍而且内存占用也跟着起飞。处理超过1亿像素的马赛克建议先把大图切瓦片处理或者把分辨率缩到50%~70%。内存方面V2模型对显存的需求很高。我试过用V2处理7000×10000的图在8GB卡的笔记本上直接报OOM后来我就改用V1模型处理大幅面速度差不多但显存占用明显减半。如果你只有6GB显卡建议尺度降为原图的60%再跑最后再在后期里把分辨率拉回来这样并不会损失多少细节因为星云层本身是低频信号为主。另外要注意StarNet对输入图像的位深支持有限16位TIF记得确保它的色彩管理是线性或变换过的。我遇到过输入sRGB JPG时输出偏绿的案例换成16位TIF或者设置正确的色彩配置文件就正常了。6. 横向对比StarNet vs 传统星点去除 vs 其他AI工具我说StarNet好用不代表所有场景都非它不可。为了让你能更客观地决策我把它和传统方法以及其他几个常见的AI/去星工具做个横向对比大家可以按需选择。6.1 速度与精度的对比测试我拿一张M31仙女座星系的素材做过一次对照实验处理目标是得到一张干净的无星版本以下是大概情况工具/方法耗时人工干预效果局限Photoshop克隆印章4~6小时星点去除干净但云气纹理有抹除感工作量大大图几乎不可行PixInsight MorphologicalTransformation15分钟反复调参星点变灰但并未消失云气边缘模糊无法真正去掉恒星DBE背景平滑10分钟只适合低密度星场大星残留背景拟合会牺牲云气StarNet V2GPU1.5分钟星点干净、背景连续几乎无人工痕迹大星点可能带暗晕StarNet GUI2分钟操作简单效果与Python版一致批量处理大图容易卡死从表里能看出StarNet最大的优势不是能去掉星点——传统方法也能去——而是速度快、几乎不需要调参即便自动生成的星点层有些小瑕疵也远好过花几个小时手绘蒙版。尤其处理窄带小幅原图的时候直接跑一遍StarNet就能给后面的HDR和色彩增强铺路效率提升非常明显。6.2 何时不要用StarNet特殊目标与高噪图像任何工具都有适用边界。StarNet训练采用的是自然真实星云背景混合各种发射星云和暗星云所以如果你处理的是非常规目标得提前想清楚。星系图像星系核通常非常亮且呈延伸状神经网络容易把旋臂上的星团误判为恒星直接删掉一部分细节。所以我处理M51、M104这类星系时会先用StarNet去星再手工比对原图把被误删的星团区域补回来。高噪短曝光图像训练数据里的背景比较干净实际中如果你的单张信噪比很差噪声颗粒很容易被网络当成星点结果就是无星图上面麻点遍布。这种图建议先做降噪再跑StarNet或者干脆用原图做蒙版修正。月面/行星拼接这完全不是StarNet的应用领域它的模型是为恒星星点设计的用来去月坑或者行星条纹会得到非常诡异的输出。另外还有个容易忽略的点StarNet对图像的颜色校准有点敏感。如果原图偏绿严重常见于双窄带未校准跑出来的无星图也会偏绿而且去掉星点后星云背景的绿色会更明显。所以我建议至少做一次简单的白平衡再喂给它。最后一个经验是处理完无星图之后用PixelMath把无星图和原图做一次无星图 * 0.9 原图 * 0.1的混合可以消除边缘的AI痕迹。这是我从几个社区帖子里看到的小技巧自己测下来确实能降低那种塑料感而且不会损失锐度。尤其是主星四周的暗区稍微掺点原图信号就自然了。
02
RELATED NEWS

相关资讯

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

03
WHY YAOTU

想打造同款高转化官网?

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

◈

场景化定制

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

◐

营销型架构

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

▲

全周期服务

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

免费获取你的建站方案

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