앞선 포스팅에서는 이렇게 정리했습니다.
- 악천후에서 RGB-only 세그멘테이션이 무너지는 건, 단순 성능 저하가 아니라 RGB 표현의 신뢰성 붕괴에 가깝습니다.
- 반면 depth는 구조(기하) 단서를 비교적 안정적으로 주지만, 추론 단계에서 depth 입력을 요구하는 모델은 현실 제약이 큽니다.
- 그래서 “depth는 추론 입력이 아니라 teacher가 믿을 기준으로 쓰자”라는 방향으로 갔고,
- 그 과정에서 PCAM/PSAM/CBPG로 “RGB와 depth를 어떻게 믿고 섞을지”를 설계했습니다.
그런데 여기서 한 번은 꼭 짚고 넘어가야 하는게 “depth가 유용하니 그럼 RGB+depth 그냥 concat해서 쓰면 되는 거 아닌가?” 하는 질문이 생깁니다. 결론부터 말하면, naïve fusion RGB-D는 ‘비용 대비 이득’이 거의 없고, 경우에 따라 더 불안정해질 수 있습니다.
| 방법 | mIoU | Pixel Acc |
| RGB only | 74.42 | 92.52 |
| RGB-D (Naïve) | 74.85 | 92.50 |
| RGB-D (Proposed) | 76.60 | 92.84 |
- RGB only: SegFormer-B5 기반 RGB-only
- RGB-D (Naïve): RGB와 depth를 “그냥” 두 브랜치로 두고, 상호작용 없이 결합하는 형태
- RGB-D (Proposed): stage-wise fusion + pixel-wise gating(CBPG)까지 포함한 제안 모델
Naïve RGB-D는 mIoU가 아주 조금 오르지만, Pixel Acc는 오히려 거의 안 오르거나 약간 내려갑니다.
무엇보다, 두 브랜치를 쓰면 계산 비용은 늘었는데 성능 이득이 미미합니다.
해당 표를 “depth를 나이브하게 결합하면 노이즈/모달 충돌이 생겨 성능을 깎을 수 있다”는 취지로 설명했고, 2016년에서의 RGB-D fusion 논문이었던 FuseNet에서도 이런점을 지적합니다.
그렇다고 오해하면 안되는게 depth가 쓸모없어서가 아니라, ‘섞는 방식’을 설계하지 않았기 때문일 가능성이 큽니다.
Naïve RGB-D가 흔들리는 이유
CBPG 파트를 보면, 단순 sum/concat이 왜 위험한지 꽤 직접적으로 말합니다.
- RGB는 조명/산란/색 번짐 등으로 채널 응답 스케일이 크게 흔들릴 수 있고,
- depth는 전역 구조는 안정적이지만 반사면/가림(occlusion) 등에서 국소 불연속이나 outlier가 남을 수 있습니다.
- 이런 상태에서 단순 concat/sum을 하면 서로의 불안정성이 그대로 섞이거나 전이될 수 있습니다.
조금 더 풀어보면, 이런 느낌입니다.
- RGB가 크게 망가진 구간에서 depth가 “구조 단서”를 주길 기대했는데,
- 실제로는 RGB의 과도한 activation이 depth의 안정성을 덮어버리거나,
- 반대로 depth의 국소 노이즈가 RGB 표현까지 오염시켜서
- 결과적으로 “둘 다 애매한 표현”이 되는 상황이 생깁니다.
즉, 문제는 “depth가 있냐 없냐”보다, 이 픽셀/이 스테이지에서 무엇을 더 믿을지를 모델이 스스로 결정할 장치가 있냐 없냐
에 가깝습니다.
여기서 저는 한 가지 트러블슈팅을 더 했습니다.
“그러면 CBPG 같은 게이팅을 넣더라도, 언제(어떤 stage에서) 섞는 게 맞을까” 직관적으로는 두 가지 극단이 떠오릅니다.
- 초반(얕은 stage)에서만 섞자: 엣지/텍스처 같은 low-level 구조를 맞추기 좋을 것 같음
- 후반(깊은 stage)에서만 섞자: 의미(semantic)가 만들어진 뒤에 결합하는 게 더 합리적일 것 같음
| Fuse stages | mIoU | Pixel Acc |
| [0] | 75.46 | 92.61 |
| [3] | 75.66 | 92.63 |
| [0, 1] | 75.90 | 92.69 |
| [0, 1, 2] | 76.41 | 92.81 |
| [0, 1, 2, 3] (proposed) | 76.60 | 92.84 |
그런데 실험 결과에 따르면, fusion stage를 늘릴수록 성능이 꾸준히 좋아지고, 4개 stage 전체에서 fusion 하는 구성이 가장 좋습니다. 다시 정리해보자면,
- 초기 fusion은 엣지/텍스처 같은 low-level 구조 정렬에 도움
- 후기 fusion은 의미적(semantic) 일관성을 강화
- 한쪽만 하면 complementary cue가 제한되고 depth 활용이 불안정해질 수 있음
→ 그래서 multi-stage interaction이 필요
어느정도 이론적으로 납득이 되는게,
- 초반에 구조가 어긋난 채로 후반에 의미만 합치면 “경계가 이미 망가진 의미”가 합쳐지고,
- 후반 의미를 만들기 전에 구조가 한번도 교정되지 않으면, 후반 semantic도 흔들릴 가능성이 큽니다.
CBPG는 신뢰도 기반 스위치
3편에서 CBPG를 “픽셀 단위로 RGB와 depth 중 뭘 더 믿을지 정한다”라고 설명했는데,
- PCAM/PSAM으로 각각의 모달을 정제한 다음에도 분포 갭(scale mismatch)이 남고,
- 그래서 stage마다 1×1 conv projection으로 스케일을 맞춘 뒤,
- 픽셀-wise gate map을 만들어서 위치별로 RGB/depth 기여도를 조절합니다.
특히 “게이트 값이 의미하는 바”를 논문이 아주 명확히 말해줍니다.
- 어떤 위치에서는 RGB가 더 믿을 만하고,
- 어떤 위치에서는 depth가 더 안정적일 수 있으니,
- gate가 그 상대 기여도를 조절한다는 관점입니다.
그렇기에 CBPG는 “중요한 픽셀을 찾는 attention”이라기보다, ‘이 픽셀에서 어느 모달을 더 신뢰할지’를 정하는 스위치에 가깝습니다. 그리고 이 스위치를 한 번만 쓰는 게 아니라, stage-wise로 반복 업데이트하면서 두 표현을 점점 맞춰갑니다.
이번 포스팅의 결론은 깔끔합니다.
- 악천후에서 depth는 확실히 유용한 단서가 될 수 있지만,
- 그냥 RGB 옆에 붙이는 방식(naïve RGB-D)은 비용 대비 이득이 작고 흔들릴 수 있습니다.
- 반대로 pixel gating(CBPG) + multi-stage fusion처럼 모달 신뢰도와 상호 보정을 명시적으로 설계하면 성능이 안정적으로 올라갑니다.
'Research > VD-MKDF' 카테고리의 다른 글
| 6. CamVid-EF / KITTI-EF (0) | 2026.02.11 |
|---|---|
| 5. Fusion-aware KD (0) | 2026.02.11 |
| 3. RGB와 Depth를 어떻게 믿어야 할까 (0) | 2025.12.16 |
| 2. RGB-D main-teacher 셜계 (0) | 2025.12.16 |
| 1. 악천후 환경에서 세그멘테이션 (0) | 2025.12.16 |