Cast and Attached Shadow Detection via Iterative Light and Geometry Reasoning¶
会议: ECCV 2026
Paper: https://eccv.ecva.net/virtual/2026/poster/5072
PDF: https://media.eventhosts.cc/Conferences/ECCV2026/pdfs/8703.pdf
项目: 作者在论文中提供的项目页
领域: 阴影检测 / 图像分割 / 几何与光照推理
关键词: 投射阴影、附着阴影、表面法线、光照估计、迭代细化
一句话总结¶
本文让三类阴影分割与三维光照方向估计在表面法线约束下相互反馈,用三轮细化将自建测试集上的附着阴影 BER 从最佳微调基线的 19.49 降至 12.92,代价是更强的几何与类别监督以及更高的推理成本。
研究背景与动机¶
一张照片里的暗区并不都来自同一种机制:物体挡住光后落在外部接收面上的阴影是投射阴影,而物体自身表面背向光源形成的暗部属于附着阴影。前者经常有连续区域和明显边界,后者则紧贴物体曲面,可能零碎、低对比度,还容易与深色材质混淆。只根据“哪里比较暗”预测一张统一阴影掩码,既容易漏掉附着阴影,也无法告诉后续去阴影系统哪些暗部与物体形状有关。
现有方法并非完全没见过附着阴影。SILT 和 CUHK 相关数据已经涉及这类区域,但通常没有把投射与附着作为独立类别学习。论文先展示仅用已有预训练模型的困难,再用统一阴影监督微调部分基线;即使适应了新数据,附着阴影仍然明显更难。这说明问题不只是训练图像不够,而是统一标签没有显式约束“表面朝向、入射光和阴影类型”之间的关系。
在单一主导方向光下,表面是否背光可以由法线与光线方向直接判断;反过来,哪些区域在阴影中也能约束光从哪里来。本文没有调用语言模型进行文字推理,而是把这个双向关系实现为两个视觉网络的反馈。核心 idea:用当前阴影预测估计光照,再用光照与法线生成不完整的附着阴影先验,反复回送给分割网络,让物理线索与图像证据互相修正。
方法详解¶
整体框架¶
输入是单张 RGB 图像及其法线图,输出是背景、投射阴影和附着阴影三个类别的像素预测。法线不是传感器真值,而是先由 Depth Anything V2 估计相对深度,再转换而来;检测骨干沿用 SILT,光照估计模块使用 ConvNeXt-S。
一次前向先进行三类阴影分割,再依据法线和预测阴影估计一个场景共享的三维光照方向,最后生成局部背光先验,供下一轮检测使用。第一轮的先验全为 1,最终配置运行三轮;这种初始化不是声称所有像素都是真阴影,而是让初次检测在尚无光照估计时启动。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["RGB + 估计法线<br/>首轮先验全为 1"] --> B["三类阴影分割"]
B --> C["阴影条件光照估计"]
A --> C
C --> D["局部背光先验反馈"]
A --> D
D -->|下一轮先验| B
B -->|第三轮输出| E["投射与附着阴影掩码"]
关键设计¶
1. 三类阴影分割:先辨认阴影范围,再分清形成机制
检测器联合接收图像、法线和当前先验,不再只输出阴影与非阴影,而是预测背景、投射、附着三个类别的 logits。图像提供材质、纹理与边界信息,法线提供表面朝向,反馈先验则给出“在当前光照解释下哪些表面应背光”的提示。三者互补的意义在于:黑色但朝向光源的表面不应仅因亮度低就被判为附着阴影,曲面上对比度弱的背光区域也不应被外观模型忽略。
监督也分成两个尺度:整体阴影监督确保两种阴影合起来仍覆盖正确范围,类别监督再要求它们彼此分开。因此模型不能仅靠把某一类全部吞进另一类来得到好的整体掩码。不同于把已有二值结果按物体掩码事后切分,这里的类型预测由网络直接产生;BiRefNet 物体掩码只用于标注和评测,不是本文检测器的必需输入。
2. 阴影条件光照估计:用当前分割反推一个可解释的光线方向
光照模块利用法线和预测阴影估计场景级三维向量。本文的方向约定尤其重要:光线向量从光源指向场景,而不是从表面指向光源。相机坐标中,正 x 向右、正 y 向下、正 z 向场景内部;若忽略这个约定,下一步背光判断的不等号就会被写反。
方向监督并非全部来自精确光照测量。WSRD 有标定的固定光照,作者据此手工计算方向;SOBA 和 CUHK 则用物体质心到投射阴影质心的位移估计图像平面方向,再由物体区域与阴影区域的相对深度推断深度分量的符号,组合并归一化。这一目标依赖方向光和几何近似,是启发式约束,不应被当作所有图像的真实三维光源标定。其作用是防止光照分支只生成对分割有利、却缺少物理解释的任意向量。
3. 局部背光先验反馈:让几何判断提示网络,而不替代完整分割
给定当前光线方向,逐像素计算它与表面法线的点积。按正文解释及图 3 中清晰标出的条件,背光先验可写为:
这里的正号源于光线指向场景:外向法线与光的传播方向同向时,表面朝向远离光源。缓存中的原式排版受损,上式仅整理正文与图中可明确确认的判据,不补写未知实现。这个掩码之所以称为“部分”先验,是因为点积只看局部朝向,没有追踪光线可见性,也不建模一个表面遮挡另一个表面的几何阻挡。即便朝向合理,也不能仅凭它判断完整阴影区域。
下一轮把该先验重新输入检测器,检测器用 RGB 外观和法线补足先验未覆盖的情况;更好的阴影预测又成为下一次光照估计的条件。训练时使用当轮实际预测的光照生成先验,而非始终喂完美先验,因此模型会见到不准确的物理提示。反馈的目标是逐步改善判断,不是保证每轮每个指标都单调上升,五轮实验恰好表明过度细化可能损害类别区分。
一个完整示例¶
考虑一件放在地面上的弯曲物体,这是机制示意而非新增实验案例。它在地上投下投射阴影,自身背光侧还有附着阴影。第一轮凭 RGB、法线和全 1 先验得到粗分割;光照模块结合这些预测估计入射方向,然后用点积标出物体上应背光的表面。
第二轮看到的已不是全 1,而是带有方向信息的局部先验,因此有机会补上物体侧面的低对比度暗部,同时保留地面阴影的投射类别。第三轮继续更新后输出最终掩码。若曲面法线被估计反了,反馈也可能反复强化错误位置,这解释了为什么几何质量是该方法的能力来源,同时又是重要失效点。
损失函数 / 训练策略¶
整体阴影监督先用 log-sum-exp 聚合投射与附着 logits,再与背景 logit 形成二值阴影判别,施加 BCE 和 Dice 正则。类型监督使用三分类交叉熵,并加入类别条件间隔损失:在投射像素上要求投射 logit 高于附着 logit,在附着像素上反向要求,目标间隔为 0.2。这里的间隔惩罚是在类型监督外进一步拉开易混类别,而不是额外引入第四个可预测类别。
光照监督包含三项:用加权 BCE 对齐几何先验与附着阴影标注;用 L1 距离约束预测方向接近目标方向;用单位范数约束保持光线向量的尺度。阴影损失与光照损失共同训练。原文给出的 Dice、间隔、附着对齐、方向和单位范数损失权重依次为 0.1、0.2、0.4、0.5、0.1。
实现使用 PyTorch 和 Adam,学习率为 \(5\times10^{-4}\),训练 20 个 epoch,batch size 为 4。正文没有清楚交代硬阈值先验参与 BCE 时的可微实现,也没有在当前缓存中给出每轮损失聚合及跨轮梯度处理的充分细节;因此不据此虚构 sigmoid 温度、直通估计器或 stop-gradient 配置。多处损失公式抽取缺符号,以上只保留可由正文核实的组成和权重。
数据共 1458 张,其中 WSRD 220 张、SOBA 710 张、CUHK 528 张,划分为 1166 张训练图像和 292 张测试图像。WSRD 先由有阴影与无阴影图像的颜色空间差分取得整体阴影,再人工区分类型;其他来源利用物体掩码人工标注和细化。精细类型标注局限于选定前景物体,无法归属于这些物体的剩余阴影标为 undefined,只参与整体阴影监督与评测,不参与投射或附着类别监督与评测,不能误当背景。
实验关键数据¶
主实验¶
下表摘自原文表 2,BER 越低越好,F1 越高越好;数值沿用原文的百分尺度。为解释指标,使用其标准定义:
TP、TN、FP、FN 为相应二值评测区域内的真阳性、真阴性、假阳性、假阴性。星号表示在本文训练集上用整体阴影监督微调;未标星的 SILT 使用 SBU 预训练权重。所有单掩码基线均借助物体掩码拆分结果,投射评测排除 undefined,附着评测限定在物体区域。因此这是论文指定协议下的比较,而非完全相同监督条件下只替换一个模块。
| 方法 | 整体 BER | 整体 F1 | 投射 BER | 投射 F1 | 附着 BER | 附着 F1 |
|---|---|---|---|---|---|---|
| SILT | 20.20 | 71.51 | 4.64 | 80.39 | 32.70 | 60.23 |
| BDRAR* | 8.15 | 83.95 | 5.18 | 72.86 | 20.75 | 82.69 |
| FSDNet* | 10.17 | 85.10 | 5.82 | 81.94 | 19.49 | 80.57 |
| FDRNet* | 8.62 | 83.00 | 4.65 | 73.27 | 23.11 | 81.42 |
| SILT* | 6.51 | 82.98 | 4.52 | 68.31 | 26.57 | 80.72 |
| 本文 | 6.50 | 86.61 | 5.04 | 85.46 | 12.92 | 86.49 |
附着 BER 相比最强微调基线 FSDNet 降低 6.57 个百分点,相对降低约 33.71%。但不能写成“所有指标全面领先”:本文投射 BER 为 5.04,高于 SILT 的 4.52;整体 BER 的 6.50 对 6.51 也只是极小差异,主要优势集中在附着阴影与 F1。
消融实验¶
下表摘自原文表 3。非迭代模型仍联合学习阴影与光照并使用法线,只是不把部分附着先验反馈给检测器;它不是“不使用光照”的模型。
| 配置 | 整体 BER | 整体 F1 | 投射 BER | 投射 F1 | 附着 BER | 附着 F1 |
|---|---|---|---|---|---|---|
| 无法线 | 7.60 | 85.46 | 7.82 | 79.33 | 20.87 | 77.07 |
| 非迭代 | 7.57 | 85.99 | 6.14 | 87.75 | 15.10 | 83.91 |
| 2 轮 | 6.63 | 87.77 | 5.41 | 86.75 | 13.22 | 85.63 |
| 3 轮,最终模型 | 6.50 | 86.61 | 5.04 | 85.46 | 12.92 | 86.49 |
| 5 轮 | 6.11 | 87.14 | 5.83 | 85.57 | 13.51 | 85.74 |
| 无间隔损失 | 7.19 | 86.25 | 6.16 | 85.69 | 13.45 | 85.38 |
| 无附着对齐损失 | 6.89 | 87.03 | 5.81 | 85.26 | 14.61 | 84.24 |
| 无方向损失 | 7.50 | 86.42 | 4.97 | 85.02 | 15.26 | 83.59 |
关键发现¶
- 法线是最关键的已测组件:去掉后附着 BER 从 12.92 恶化至 20.87,增加 7.95 个百分点。几何并非只提供边缘细节,而是在帮助决定暗部属于哪一种物理机制。
- 反馈带来额外收益:非迭代到三轮,附着 BER 从 15.10 降到 12.92;五轮回升到 13.51,尽管整体 BER 更低。该表不支持“轮数越多越好”,也不支持所有类别指标同步改善。
- 在列出的单项损失消融中,移除方向损失对附着 BER 影响最大,升至 15.26;这支持方向监督的作用,但不能由此证明启发式目标等于真实光照。
- 单图耗时由非迭代的 0.18 秒增至三轮的 0.55 秒,约为 3 倍。缓存正文没有充分交代硬件与预处理计时范围,不宜把这个数字推广成端到端部署速度。
- SBU-TimeLapse 跨数据集实验逐帧独立预测,只展示定性时间一致性,没有提供新的跨数据集 BER。ShadowFormer 去阴影用户研究中,分开使用掩码并细化物体区域获得 80.7% 偏好,统一掩码为 19.3%;正文未交代参与人数和置信区间,不能等价为客观重建指标的提升。
亮点与洞察¶
- 把“阴影是什么”变成了可学习的反馈约束,而非只扩大感受野。局部点积规则给出有解释性的方向提示,网络负责补齐其缺失的可见性与外观信息。
- 将整体范围与细粒度类别分开监督,保留统一阴影任务的可用性,又避免“总掩码正确但内部类型混乱”。这种层级监督思路可用于其他具有父类与子类关系的分割任务。
- undefined 标签明确隔离归属不清的区域,避免将部分标注伪装为完整真值。这一标注策略具有实用价值,但对应的评测范围也必须一起公开。
局限与展望¶
- 作者承认法线误差会传播至阴影预测,方向翻转尤其危险。可考虑给几何先验增加置信度门控或联合细化法线,但这些是后续方向,不是本文已验证模块。
- 单一场景级方向光不适合多灯室内、扩展面光源软阴影和强间接照明的夜景。局部背光不等于完整遮挡判定,若扩展到多光源,还需重新设计先验和监督目标。
- 数据只有 1458 张,类型标注集中于前景对象;正文中的整图泛化展示不等于未标注背景已有定量保证。后续应增加复杂照明、完整场景类型标注和跨数据集量化评测。
- 本文与微调基线的输入、类型标签及方向监督并不完全相同,不能把全部提升都归因于循环。无法线与非迭代消融提供部分解释,但仍缺少更全面的同监督、同输入对照及随机种子方差。
- 硬先验的可微处理、启发式光照目标的完整数值构造、单位范数损失的精确实现均不能从当前受损公式缓存可靠复原。复现时应查原始公式和实现,笔记不补造这些细节。
相关工作与启发¶
- 与 SILT 对比:SILT 通过迭代标签调整处理阴影标注噪声,本文沿用其检测骨干,但迭代对象变成预测阴影与光照条件之间的反馈。两者都叫 iterative,却不是同一训练机制。
- 与 FDRNet、SDCM 对比:前者针对强度偏置分解和重加权特征,后者利用阴影与非阴影分支的互补信息。本文则加入法线和显式光照方向,以形成机制区分两种阴影,而不是仅依赖外观特征组织方式。
- 与早期联合几何和光照推断对比:Panagopoulos 等已经研究联合推断,并非本文首次发现阴影能反推光照。这里的推进是将关系落到学习式双模块循环与细粒度附着阴影评测上。
- 对下游去阴影的启发:ShadowFormer 的用户研究说明不同成因的暗区可能需要不同处理;但实验同时改变了物体区域细化流程,因此不能把偏好差异单独解释成“多输出一个类别”的纯效应。
评分¶
- 新颖性: 4/5。细分阴影类型与几何光照反馈结合得较好,但联合推断的物理思想已有先例。
- 实验充分度: 3/5。主表、几何与轮数及损失消融较齐全,仍缺多光源、统计稳定性及严格匹配监督的对照。
- 写作质量: 4/5。问题、物理直觉与模块关系清晰;复现所需的若干细节无法从当前正文缓存核实。
- 价值: 4/5。提供类型标注和可解释基线,对阴影理解与编辑有意义,应用仍受法线质量和推理成本限制。