오늘 리뷰할 논문은 IEEE에 게재된 산불 탐지 관련 논문이다.
https://ieeexplore.ieee.org/document/11077377
https://ieeexplore.ieee.org/document/11077377
ieeexplore.ieee.org
아래 작성된 내용 및 이미지는 모두 해당 논문에 나와있는 내용이다.
서론
산불은 단순히 숲을 태우는 걸 넘어서, 대기 오염과 호흡기/심혈관 질환까지 유발하는 심각한 재해이다. 따라서 얼마나 빨리 정확하게 화재를 감지하느냐가 핵심 과제가 된다.
기존의 감지 방법들은 육안 순찰, 고정 CCTV, 위성 원격 탐사 등이 있는데 실시간 대응이 어렵거나 정확하지 않다는 한계가 있었다. 따라서 최근에는 UAV와 딥러닝을 결합하여 실시간+고해상도로 앞선 방법들의 단점을 보완할 수 있게 되었다.
그러나 해당 방법도 아직 완벽하지 않고, 다음과 같은 3가지 문제가 있다고 언급한다.
1. 화재와 연기의 특징을 제대로 살리지 못한다.
2. 주변 배경과 헷갈린다.
3. 화재 크기가 너무 다양하다.
이 3가지 문제를 해결하기 위해 해당 모델이 제안되었다.
제안하는 방법

DSHDB : Dual-Stream Hierarchical Detection Backbone
DSHDB는 forest fire/smoke의 특징 추출과 상호작용 문제를 해결하기 위해 설계되었다.
특히 스케일이 다양하고, 배경이 복잡한 상황에서도 잘 동작하도록 만드는게 목표이다.

먼저 기존 백본들과 비교해보자.
1. BiCSNet-48
양방향 cross-scale 구조지만, 다운 샘플링 방식이 고정되어 있어서 산불과 연기처럼 불규칙하고 유동적인 형태를 따라가지 못한다.
2. LSKNet
큰 커널을 분해해서 receptive field를 동적으로 조절하는 방식으로, 일반 객체 탐지에서는 좋은데 초기 단계의 미세한 화재 신호를 복잡한 숲 텍스처와 구분하는 특화 기능은 없다.
3. DPFANet
CNN과 Swin Transformer를 섞은 하이브리드 구조로 로컬+글로벌을 다 보려고 하지만, 대용량 원격탐사 이미지 처리에는 비효율적이다.
결론은 기존 백본들은 산불 탐지에 특화되어 있지 않다는 것이 해당 논문 저자들이 주장하는 문제점이다.
DSHDB의 핵심 아이디어
DSHDB의 구조 철학은 두 개의 스트림이 서로 다른 역할을 맡는다는 것이다.
DSHDB는 이름 그대로 dual-stream 구조이다. 두 흐름이 완전히 분리된 게 아니라 서로 정보를 주고받는게 핵심이다.
1번째 스트림 : Stream 1
초기 특징을 추출하고 attention의 역할을 한다.
연속적인 conv layer와 SFEM(Selective Feature Enhancement Module)을 거치며 단계적으로 다운 샘플링된다.
즉, 이 이미지에서 어디가 중요한 영역인지에 집중하면서 특징을 뽑아내는 것이다.
2번째 스트림 : Stream 2
alignment(정렬)과 aggregation(집계) 역할을 수행한다.
역시 conv layer와 SFEM으로 구성되지만, 여기에 concat 모듈이 추가되어 다단계 특징을 정리 및 통합한다.
즉, 여러 스케일에서 뽑힌 특징들을 가지런히 맞춰서 합치는 역할을 한다.
이 두 스트림이 CSFI라는 메커니즘을 통해 서로 특징을 주고받으면서 결과적으로는 저수준 공간 정보와 고수준 의미 정보를 교환하고, 두 정보가 계속 섞이면서 균형을 잡는 역할을 한다.
CSFI : Cross-Stream Feature Interaction

CSFI가 하는 일
CSFI는 1번 스트림에서 뽑은 특징을 채널 수 기준으로 잘라서, 2번 스트림의 각 단계에 뿌려주고 거기서 합치게 만드는 메커니즘이다.
DSHDB는 두 스트림으로 나눠져있다. (초기 추출 vs 정렬 및 집계)
근데 두 스트림이 완전히 따로 돌아가면 의미가 없다. 결국 서로 상호작용해야 저수준 디테일과 고수준 semantic이 잘 섞이기 때문이다. CSFI가 바로 이 상호작용을 구체적으로 구현한 부분이다.
1단계 - Stream 1 : 순차적 특징 추출
입력 이미지가 conv layer와 SFEM을 반복해서 거치며 단계적으로 다운 샘플링된다.
각 단계마다(P1~P5) SFEM 출력이 나온다.
2단계 - 채널 기준으로 분할(Split)
각 단계의 SFEM 출력을 채널 수 기준으로 나눈다.
ex) 64, 128, 256, 521, 1024 채널로 서로 다른 크기의 조각들이 만들어진다.
이렇게 채널 수를 맞춰서 자르는 이유는 나중에 2번 스트림에서 concat할 때 정렬이 쉬워지도록 하기 위해서이다.
3단계 - Stream2로 전달 및 Concat
쪼개진 조각들이 화살표처럼 2번 스트림의 해당 단계 concat 모듈로 이동한다.
2번 스트림은 자기 conv + SFEM 결과에 이 조각들을 concat으로 합친다. 합쳐진 결과는 다시 Conv > SFEM을 거쳐 다음 단계로 넘어간다.
4단계 - 반복
이 과정이 P1부터 P5까지 단계마다 반복되면서, 매 단계 두 스트림의 정보가 계속 섞인다.
서로 다른 스케일(깊이)에서 나온 특징은 채널 수가 다 다르다. 이걸 그냥 합치면 정렬이 안 맞는데, 채널 수 기준으로 미리 나눠놓으면 2번 스트렘에서 대응되는 크기끼리 깔끔하게 맞춰서 합칠 수 있다. 즉, 스케일이 다른 특징들을 억지로 맞추지 말고, 채널 수로 나눠서 애초에 맞는 크기로 잘라서 보내주자라는 전략이다.
이 구조로 얻는 효과는 아래와 같다.
1. 낮은 레벨 디테일 + 높은 레벨 추상화의 결합
1번 스트림의 초기 및 저수준 정보가 2번 스트림의 후기 및 고수준 처리 단계까지 직접 전달된다.
2. feature reuse
이미 계산해둔 특징을 다시 계산하지 않고 그대로 넘겨 쓰니까 중복 연산이 줄어든다.
3. 점진적 민감도 향상
각 단계마다 섞이는 과정을 거치면서 미세한 특징에 대한 민감도가 점점 높아져 작은 화재와 연기도 놓치지 않게 된다.
SFEM : Selective Feature Enhancement Module

SFEM이 하는 일
SFEM은 입력 특징을 두 갈래로 나눠 처리한 뒤 다시 합쳐서, 배경 노이즈는 누르고 화재와 연기의 세밀한 디테일은 살리는 모듈이다.
산불 이미지는 배경이 복잡하고 노이즈가 많다. 단순 conv만 쌓으면 이런 잡음에 특징이 묻히기 쉬운데, SFEM은 어디에 집중할지 선택적으로 걸러내는 역할을 한다.
구조 : Dual-branch
입력 tensor X가 들어오면 두 브랜치로 갈린다.

Branch 1 : 단순 경로
Conv 하나만 통과하여 저수준 공간 정보를 추출한다.
즉, 원본에 가까운 정보를 그대로 보존하는 역할을 한다.
Branch 2 : 정교한 경로
Conv를 통과하고 Partial Conv(PConv)를 통과한다. PConv를 통과시키면 특징 맵에서 관련 있는 영역만 선택적으로 남기고 배경 노이즈는 억제한다. 이게 노이즈가 많은 배경에서 오는 특징 손상을 완화하는 핵심 단계이다.
Pconv에 대한 정보는 아래 블로그에 정리해두었다.
https://dbwls-log.tistory.com/125
PConv : Partial Convolution
PConv란 ? PConv는 Chen et al., "Run, Don't Walk: Chasing Higher FLOPS for Faster Neural Networks" (CVPR 2023)에서 처음 제안된 개념이다. FasterNet라고 부르기도 한다. 논문 링크 : https://arxiv.org/abs/2303.03667 Run, Don't Walk: Chas
dbwls-log.tistory.com
그 다음 DWFA(Dual-Weighted Fusion Attention)을 통과시키면 채널과 영역 attention을 동시에 적용해서 중요한 특징을 강조한다.
마지막으로 DropPath를 적용하여 학습 중 일부 경로를 랜덤으로 꺼서 과적합을 방지하고 일반화 성능을 향상시킨다.
합치기
Branch 1의 결과와 Branch 2의 결과를 concat한다.
마지막 Conv Layer 하나로 최종 정리를 하여 원본 정보와 정제된 정보가 함께 유지될 수 있도록 한다.
$Y_{SFEM} = C(concat(C(X), Dp(DWFA(P(C(X))))))$
C = Conv, P = PConv, Dp = droppath
DWFA : Dual-Weighted Fusion Attention

DWFA는 SFEM 안에서 실제로 Attention을 담당하는 서브 모듈로, 총 2단계로 구성되어있다.
1. ChannelBoostingLayer (채널 어텐션)
GAP로 채널별 요약 정보를 뽑는다. 그 후 Conv를 통과 시켜 채널 어텐션 맵을 생성한다.
이를 원본에 곱해서 중요한 채널은 강조하고, 덜 중요한 채널은 억제한다.
2. RegionAttentionLayer (영역/위치 어텐션)
채널 축을 기준으로 평균과 최댓값을 concat한다. 그 후 Conv를 통과시켜 region 어텐션 맵을 생성한다.
이는 이미지 내에서 어느 위치가 중요한지 방향을 제시한다.
최종 합산
채널 어텐션 결과와 지역 어텐션 결과를 더해서 최종 출력을 만든다.
$Y_{DWFA} = (X · σ(fc(pool(X)))) + (X · σ(cv1(concat(mean(X), max(X)))))$
PFIM : Progressive Flow Integration Mechanism
기존 neck 구조들과 비교

해당 논문은 기존 neck(feature fusion) 구조의 한계를 언급하고있다.
Info-FPN은 pixel shuffle 모듈과 feature alignment 모듈로 작은 객체 탐지를 강화했다. 하지만 해당 구조는 숲 환경의 다양한 스케일과 복잡한 텍스처에 대응하기에는 부족하다는 한계가 있다.
HR-FPN은 고해상도 특징을 네트워크 전체에 유지하는 구조이며, 미묘한 화재 신호와 주변 식생을 구분하는 특화 메커니즘이 없다는 한계가 있다.
HS-FPN은 채널 어텐션과 특징 융합으로 스케일 변화에 대응하는 구조이지만, 대규모 원격 탐사 이미지 속 산불의 고유한 스펙트럼 특성을 충분히 잡지 못한다는 한계가 있다.
결론적으로 기존 neck 구조들은 산불탐지에 특화되지 않았다는 문제의식이 반복된다.
PFIM의 핵심 아이디어

PFIM은 수직 융합(vertical fusion) + 수평 전파(horizontal propagation) 두 가지를 결합한 구조이다.
- Vertical fusion : 서로 다른 해상도의 특징들을 lateral conv(옆 경로에서 들어오는 특징의 채널 수를 맞춰주는 1x1 Conv) + 업샘플링으로 공간 크기를 맞춰 통합
- Horizontal propagation : 통합된 특징을 BCFM(Bifurcated Contextual Fusion Module)으로 다듬어 local + global 정보를 함께 반영하고, top-down 방식으로 여러 스케일에 전파한다.
동작 흐름은 아래와 같다.
1. 백본에서 나온 3개의 다른 해상도 스케일 특징이 입력으로 들어온다.
2. Lateral Conv + 업샘플링으로 공간 크기를 통일시킨다. (vertical fusion)
3. 통합된 특징이 BCFM을 거쳐 local detail과 dilated Conv 기반 global contex를 동시에 포착한다.
4. 이 과정이 백본에서 뽑힌 여러 abstraction level마다 반복되면서, top-down 방향으로 정보가 계속 전파된다.
5. 최종적으로 공간적으로 세밀하면서도 의미적으로 풍부한 특징 표현이 만들어져서 detection head로 전달된다.
BCFM : Bifurcated Contextual Fusion Module

PFIM 안에서 실제로 local + global 핵심 서브 모듈이다.
산불 탐지에서 타겟은 주변 환경과 자주 헷갈린다. 예를 들어 연기는 안개나 구름과 비슷하고, 불은 노을이나 조명과 헷갈릴 수 있다.
이 문제를 해결하려면 local detail과 global context를 둘 다 봐야하는데, BCFM이 이 역할을 담당한다.
입력 특징을 $x ∈ R^{C×H×W}$라 할 때, BCFM은 세 갈래로 나뉘어 각각 다른 처리를 한다.
Branch 1 : Local + Global 특징 추출
1. 두 번의 Conv를 거친다.
$X_1 = C_1(X), X_2 = C_2(X_1)$
2. $X_2$를 두 갈래로 다시 나눠서 처리한다.
- Depthwise Separable Conv : 채널별로 독립 연산을 수행하고, 연산량을 절감하며 local feature $X_l$를 추출한다.
- Depthwise Dilated Conv : dilation을 넣어 receptive field를 넓혀 global feature $X_g$를 추출한다.
$X_l = C_l(X_2), X_g = C_g(X_2)$
3. $X_l$과 $X_g$를 concat하고 BN을 거쳐 PReLU를 통과시킨다.
$X_f = A(N(concat(X_l, X_g)))$
4. 이렇게 만든 $X_f$를 DWFA에 통과시켜 채널과 영역 중요도를 다시 가중시킨다.
$X_{at} = X_f ⊙ DWFA(X_f)$
Branch 2 : Skip Connection
처리 없이 원본 입력 X를 그대로 가지고와서, Branch 1의 결과 $X_{at}$와 더한다.
$X_{fi} = X_{at} + X$
이게 residual/skip connection 역할을 한다. 기울기 소실을 막고, 원본 정보를 잃지 않게 해준다.
Branch 3 : 단순 Conv 정제
원본 입력 X에 Conv 하나만 적용해서 추상적인 특징을 다시 뽑는다.
$X_3 = C_3(X)$
최종 결합
Branch 3의 결과 $X_3$와 Branch 1+2 결과 $X_{fi}$를 concat한 뒤, 마지막 Conv $C_4$로 정리한다.
$X_{ot} = C_4(concat(X_3, X_{fi}))$
ERH : Elastic Response Head
PDENet의 마지막 핵심 모듈로 입력 스케일 변화에 탄력적으로 반응하는 detection head이다.

기존의 detection head들은 fire/smoke의 동적인 형태 변화에 대응하는 능력이 없다고 지적하고 있다.
불과 연기는 계속 모양이 바뀌고 커지는데, 고정된 conv 커널로는 이런 변형에 유연하게 대응하기 어렵다는 것이다.
ERH의 핵심 아이디어
ERH의 핵심 아이디어는 "입력 내용에 따라 Conv 커널의 위치와 모양을 동적으로 바꾸자"이다.
이를 위해 두 가지를 계산한다.
- $X_{aff}$ : spatial offset, 공간 위치 이동값
- $X_{mask}$ : importance mask, 중요도 마스크
이 둘을 deformable convolution에 적용해서, 커널이 고정된 격자가 아니라 입력 내용에 맞게 위치를 옮겨가며 연산하도록 만든다.
동작 흐름
1단계 - Elastic Convolution (MDC + GroupNorm)
Modulated Deformable Convolution(MDC)와 GroupNorm을 결합한다.
$X_{mod} = ElasticConv(X, X_{off}, X_{mask})$
- MDC : 입력의 국소적 변화에 따라 커널이 변형되면서 복잡한 구조를 포착한다.
- GroupNorm : 변형 후 특징 맵을 정규화해서 학습 안정성을 확보한다.
2단계 - Adaptive Average Pooling + Conv + ReLU
공간 차원을 압축하면서 전역 정보를 보존한다.
$X_t = ReLU(C(AdaptiveAvgPool2d(X_{mod})))$
3단계 - Hard Sigmoid로 채널 가중치 생성
중요한 채널을 부각시키는 동적 반응을 생성한다.
$X_{dyn} = X_{mod} × h\_sigmoid(X_t)$
4단계 - DYReLU 활성화
GAP 후 학습 가능한 파라미터로 비선형 변환을 수행한다.
$X_t = σ_2(W_2 · ReLU(W_1 · Pool(X_{dyn}) + b_1) + b_2)$
5단계 - 최종 출력
$Y_{ERH} = max(α_1 · X_t + β_1, α_2 · X_t + β_2)$
$\alpha_1, \alpha_2$(기울기), $\beta_1, \beta_2$(절편) 모두 학습 가능한 파라미터를 의미한다.
이 형태는 DYReLU(Dynamic ReLU)라는 활성화 함수로, 입력에 따라 활성화 함수 모양 자체가 바뀌는 것이 특징이다.
실험 결과
정량적 결과

DSHDB를 추가했을 때 mAP50이 1.5%p 향상되었고, ERH를 추가했을 땐 0.6%p, PFIM을 추가했을 때는 0.5%p 향상며 최종적으로 2.6%p 향상되는 모습을 보인다.

PDENet과 YOLOv3부터 YOLOv11까지 총 11개의 YOLO 계열 모델과 비교하였다.
PDENet이 mAP50에서 1등을 차지했고, 2위인 YOLOv9c보다도 1.7%가 높았고 가장 최신 모델인 YOLOv11과 비교해도 2.6% 앞서는 수치이다. 특히 화재 탐지 성능을 보면 PDENet은 $AP_{fire}$가 77.2%로 비교 모델 중 가장 낮은 YOLOv3-tiny보다 무려 19.5%나 높았다.
Precision과 Recall 측면에서도 PDENet이 우수했는데, 특히 recall이 전체 모델 중 가장 높았다. 재현율이 높다는 것은 실제로 존재하는 화재를 놓치지 않고 잡아낸다는 뜻이라 산불 조기 경보 시스템 입장에서는 정확도만큼 중요한 지표이다.
더 인상적인 점은 모든 성능을 훨씬 가벼운 모델로 달성했다는 점이다. 다른 무거운 모델과 비교해봐도 더 좋은 성능을 보인다. 즉, PDENet은 가벼우면서도 정확한 모델이라는 것을 해당 표가 말해주고 있는 것이다.
정성적 평가

해당 그림 전체를 관통하는 메시지는 조명 조건이 나쁠수록 기존 모델에 비해 좋은 성능을 낸다는 것이다.
결론
PDENet은 DSHDB, PFIM, ERH 세 모듈을 결합해, 기존 YOLO계열보다 정확하면서도 훨씬 가벼운 산불 탐지 모델을 제안했다.
다만 극한 기상 대응과 실시간 처리 최적화는 여전히 과제로 남아있다.