Research/VD-MKDF

4. RGB-D Fusion

ns4A 2026. 2. 11. 19:39

앞선 포스팅에서는 이렇게 정리했습니다.

  • 악천후에서 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