融合新增了源图不存在的边
HDR00282 的五张源曝光都没有刀切状亮区;Custom merge 才生成分离亮块、尖锐内部边界和顶部彩色碎片。这是最直接的反事实证据。
Forensic image audit · 2026-09-01
对 296 张 Custom HDR 最终帧、HDR master 和四组原始包围曝光进行交叉审计。结论是:当前图集存在系统性的月缘拼接伪影,主因是逐像素曝光权重在高反差边界上切换;旧代码修复了“零权重灰块”,却没有解决仍有非零权重的曝光缝,也没有用月缘连续性指标验收。
缺陷不是少数异常帧,也不是最后一次 Lanczos 旋转单独造成。HDR master 中已经出现台阶状轮廓、虚线黑点、彩色锯齿和内部刀切亮块;最终变换主要是保留或轻微放大。
HDR00282 的五张源曝光都没有刀切状亮区;Custom merge 才生成分离亮块、尖锐内部边界和顶部彩色碎片。这是最直接的反事实证据。
HDR00295 的单张源曝光月缘虽有光晕与色噪,但合成后才出现断续黑点和青紫锯齿。逐像素权重从饱和长曝光切换到短曝光,位置和 PSF 不一致。
旧 QC 能检查帧数、平均亮度、p99.7 高光、天空噪声和灰色平台块,却完全没有检查月缘连续性、双边、通道边缘分离、外侧光晕或内部融合缝。
冻结当前 296 张结果,不再把它们作为延时摄影生产素材。下一版必须在真实 RAW 边缘样本上重建融合与配准,并把月缘/阴影边界验收纳入发布门槛。
不是只看用户截图或挑几张最差样本:每一帧都进入逐帧 CSV;最终帧、Custom master 与旧 master 分开测量;同时制作六页时间顺序总览,并对四个代表包围组重新解码原始 ARW。
有 91 张只有不足 10% 的高反差可见月缘,自动几何指标不稳定。它们被明确标成 edge_audit_low_confidence,不使用哨兵值冒充严重度,也不算“通过”。全序列人工扫查因此发现了自动径向外缘指标看不到的 HDR00282–00283 内部阴影边界融合错误。
这是审计限制,不是结果免责条款。
计数为多标签,不应相加。一个帧可以同时有色边、锯齿、双轮廓、光晕和噪声;“严重”是更高阈值或人工确认的子集。
| 问题 | 全部标签数 | 严重帧 | 画面表现 | 主要归因 |
|---|---|---|---|---|
| 色边 | 200 | 107 | 青/紫/红色锯齿沿月缘分布 | AHD 去马赛克、色差、彩噪 + RGB 共用权重 |
| 锯齿/断边 | 190 | 122 | 月缘半径跳动、黑点、虚线、局部缺口 | 曝光权重切换 + 残余亚像素错位 |
| 双轮廓 | 173 | 14 | 亮月缘外再出现一层平行边 | 不同曝光的 PSF/光晕宽度被同时混合 |
| 光晕 | 169 | 72 | 黑天背景中月缘外侧发灰、发亮 | 长曝光 bloom/seeing + tone map 可见度增强 |
| 噪声 | 66 | 31 | 月面颗粒与黑天 RGB 雪花 | 有效堆栈不足、长曝光被运动权重抑制、后期增益 |
| 高光/曝光缝 | 16 | 7 | 亮月牙局部饱和,明暗曝光之间出现硬边 | 0.68–0.92 高光门控和 fallback 的局部源选择 |
| 内部融合错误 | 2 | 1 | 阴影边界出现刀切亮块或彩色碎片 | 一致性权重自确认 + 无空间连续性约束 |
每个对照表按有效曝光从短到长排列,最后一行为 Custom merge;每行先给整月,再给上、右、下、左四处月缘局部。所有源图用同一 tone mapping 便于比较。
这排除了“月面真实地形”“用户截图缩放”“最终旋转”作为 HDR00282 主因。错误已经存在于线性 HDR master,是逐像素融合权重在阴影边界上选择不同曝光造成。
| HDR00295 源曝光 | 有效曝光 | 月面饱和比例 | mean_final_weight | 结果解释 |
|---|---|---|---|---|
| DSC1710 | 2.5 | 0.58% | 0.000675 | 高光最安全,但全局逆方差权重极低。 |
| DSC1709 | 20 | 28.94% | 0.002829 | 亮区开始大面积饱和。 |
| DSC1711 | 160 | 40.85% | 0.054882 | 暗侧 SNR 较好,亮缘必须局部退出。 |
| DSC1713 | 1280 | 52.29% | 0.408680 | 权重尺度占绝对优势,直到高光门控在月缘附近迫使其切换。 |
mean_final_weight 是当前实现输出的未归一化空间平均权重,只用于比较同组曝光的权重尺度,不等同于最终图像的线性贡献百分比。
代码思路本身合理:在线性辐亮度空间按噪声、曝光、高光与运动可靠性加权。但它把“每个像素独立选择最佳曝光”当成了充分条件,没有约束曝光来源在空间上的连续性,也没有保证不同曝光的边缘几何一致。
Rᵢ(x) = Iᵢ(x) / exposureᵢ
wᵢ(x) = shadowᵢ(x)
× highlightᵢ(x) # sensor peak 0.68 → 0.92 时降到 0
× inverse_varianceᵢ # 由月外环的标量噪声估计得到
× motionᵢ
× consistencyᵢ(x) # 与 preliminary luma 的一致性
HDR(x) = Σ wᵢ(x)Rᵢ(x) / Σ wᵢ(x)
噪声只在月外环估计成每张曝光一个标量,再除以曝光得到 radiance noise。长曝光因此常获得数量级优势,即使它在亮月缘已有 bloom、饱和或不同 PSF。
highlight = 1 - smoothstep(peak, 0.68, 0.92) 对单张曝光连续,但多曝光竞争时,主导源会在几像素内突然换人。边缘位置只差 0.5–2 px,就会变成台阶和双边。
preliminary 本身由同一套偏向长曝光的权重生成;随后每张曝光与 preliminary 比较。主导曝光更容易被判为一致,正确但较短的高光曝光反而可能被压低。
红、绿、蓝通道的去马赛克边缘和镜头色差位置不同。共用权重不能对齐通道边缘,只会把不同通道的锯齿一起保留下来。
每张源曝光只做一次 warp_translation。它不能校正曝光期间的局部 seeing、月球运动、长曝光 PSF 扩散和不同通道的亚像素位置。
融合前没有构建稳定月盘、亮月牙、阴影区和天空的连续 mask,也没有形态学清理、引导滤波或 Laplacian pyramid。孤立像素可以自由切换曝光来源。
最终帧相对 Custom master 的月缘抖动比中位数为 1.00,p90 为 1.247;只有 11 张达到 ≥1.35。若旋转是主因,中位数应显著大于 1。源曝光对照也直接显示坏边已在 merge 行出现。
| 阶段 | 当前实现 | 解决了什么 | 未解决什么 |
|---|---|---|---|
| RAW 解码 | AHD + 固定白平衡 | 获得线性 RGB 和统一色彩基线 | 月缘去马赛克伪色、通道色差、长曝光 bloom |
| 配准 | 全局亚像素平移 | 月心大体重合 | 局部形变、PSF 差异、通道边缘错位 |
| HDR 融合 | 逆方差 × 高光 × 运动 × 一致性 | 大多数普通月面像素的动态范围 | 高反差边缘的空间连续性和 source ownership |
| 零权重回退 | 选择最不饱和可靠源 | 消除灰色/黑色平台块 | 权重很小但非零的缝、双边、斑点;HDR00282 即属此类 |
| Tone mapping | 月盘/天空双增益 + NLM + 色度模糊 | 亮度中心化、限制整体高光、部分降噪 | 不能恢复错误几何;色度模糊可能把色边扩成光晕 |
| 最终稳定 | Lanczos 旋转和平移 | 月心和表面角度稳定 | 只能重采样已有伪影,不能消除融合缝 |
失败并不是“修复完全没生效”,而是修复目标过窄、测试场景过理想、验收指标与人眼关注点错位。代码通过 25 个测试,只能证明这些断言成立,不能证明月缘质量合格。
上一轮修改只在 weight_sum ≤ 1e-12 时触发 fallback,确实消除了 HDR00292/HDR00295 的大块灰岛。但当前大量坏像素的 weight_sum 并不为零,只是不同曝光权重比例在边界急剧变化,因此完全绕过 fallback。
合成测试使用完全共轴、同 PSF、RGB 成比例的圆盘;没有 AHD 色边、曝光间 subpixel 位移、长曝光 bloom、局部饱和边缘或 seeing。均匀 64×64 fallback 测试也没有“边界”,自然无法暴露接缝。
完成验证检查帧数、平均亮度、p99.7、高光帧数、天空噪声与中性灰区域。即使月缘有两条线,只要平均亮度和峰值正常,仍会通过。
audit_hdr_plateaus.py 只寻找接近 1 / effective_exposure 的大连通平台,专门捕捉饱和源 fallback 灰岛。锯齿、双边、色边和细缝不会形成这种平台。
此前最差 10 组评估重点比较亮度/色度噪声中位数和过曝。一个算法可以降低平坦区域噪声,同时把月缘拼成双边;指标仍可能显示“改进”。
先看到灰块消失、高光 p99.7 受控、亮度变化稳定,就把结果视为可用;没有在 100% 最近邻局部检查月缘,也没有做源曝光→master→final 的逐阶段反事实对照。
| 旧检查/测试 | 通过意味着什么 | 不能证明什么 | 本次新增证据 |
|---|---|---|---|
| synthetic radiance error | 完美配准合成场景能恢复平均辐亮度 | 真实月缘无接缝 | 720 角径向连续性 + RAW 对照 |
| highlight fallback test | 全零权重时选择较不饱和源 | 非零权重区域平滑切换 | HDR00282/HDR00295 边缘反例 |
| p99.7 ≤ 0.945 | 绝大部分高光输出不超过目标 | 局部没有剪切或曝光缝 | 月缘饱和比例 + 局部接触表 |
| sky noise / NLM | 背景环高频残差受控 | 月缘没有 RGB 雪花、月面没有纹理损伤 | 亮度/色度噪声分离测量 |
| neutral plateau guard | 没有特定灰岛 | 没有细锯齿、双边和内部刀切块 | 七类多标签缺陷审计 |
| 25/25 单元测试 | 已编码断言没有回归 | 真实 296 帧视觉质量合格 | 全序列视觉页 + 逐帧 CSV |
图像算法的测试必须覆盖“人眼最在意的局部结构”。平均亮度、噪声中位数和全局高光可以同时变好,而一条 2 px 宽的月缘伪影足以让整张天文图失效。
下面是修复方向,不代表本报告已实施。目标是先建立可被真实边缘样本证伪的最小基线,再逐步增加复杂度。
固定至少 HDR00000、00145、00282、00295,并加入前/中/后各阶段代表帧。保存源曝光、线性 master、tone map 与 final 的同位置 crop;任何新增双边、断边或内部切块都直接失败。
在亮月缘优先选最短未饱和曝光作为几何 anchor。长曝光只补充低频暗部辐亮度,不能自由决定边缘位置。
在外月缘和阴影边界单独估计亚像素位移;必要时把较锐曝光匹配到目标 PSF,或在融合 mask 中扩大不可信边界带。
从饱和度、SNR 和月盘几何生成每曝光置信 mask,再做连通域清理、形态学闭运算、引导滤波和距离羽化;禁止棋盘状或单像素 source ownership。
可先以 Mertens/Laplacian pyramid 作为视觉基线;月缘高频来自 anchor,暗侧低频来自长曝光。与 radiance HDR 并行比较,不再假定一种公式能同时最优处理天空、月面和月缘。
至少包括:有效月缘覆盖、RGB 边缘分离、径向跳变、次级轮廓、外侧光晕、内部阴影边界连通性;并保留 100% crop 接触表进行人工签收。
merge 不得生成任何源曝光都不存在的轮廓、缺口、孤岛或刀切边。
可以接受轻微噪声,但不能用局部曝光拼接换取表面“更干净”的假象。
只有 master 边缘通过后,才继续调表面锁定、角度平滑和亮度中心化。
本报告是项目内部实测与代码审计,不依赖外部网络事实。图像均来自用户授权范围内的月食原始数据及其派生结果;公开版本不包含凭据或本机绝对路径。
hdr_remake.py:噪声估计、权重、fallback、tone mapping。hdr_custom.py:RAW 解码、全局平移、master 构建、最终 Lanczos 变换。test_hdr_remake.py / test_hdr.py:合成场景单元测试。verify_custom_hdr_route_one.py:旧完成验收。audit_hdr_plateaus.py:灰岛专项审计。91 张高反差可见月缘不足 10%,自动外缘几何标签置信度有限,已保留低置信标记并通过全序列视觉页补充检查。问题计数是工程阈值下的质量审计结果,不是天文测量或传感器标定结论。
classified_frames.csv,生成于 2026-09-01。classification_summary.json,296 帧。source_group_audit.json 与四张接触表。