개발 과정

터널 CCTV 화재 감지 AI 시스템 — 오탐을 줄여, 신뢰를 회복하기까지

화재 탐지에서 가장 위험한 것은 화재 그 자체가 아니라, "또 잘못 울린 경보"일지도 모릅니다.

01

문제 정의

"없는 불을 있다고 우는 것이 더 위험하다"

터널 환경의 특수성과 한계

터널은 AI 화재 탐지에 있어 가장 까다로운 환경 중 하나입니다.
연기 경계가 불분명하고, 차량 전조등·후미등이 화염과 시각적으로 유사하며,
조명과 반사광이 끊임없이 모델을 속입니다.

2022 과천 제2경인고속도로 터널 화재 사고
2022 과천 제2경인고속도로 터널 화재 — CCTV 미확인 및 오탐 누적으로 인한 초기 대응 지연 사례

2022 과천 제2경인고속도로 터널 화재

  • 사망 5명, 부상 56명
  • CCTV 미확인으로 초기 대응 지연
  • 오탐 누적으로 경보 신뢰도 저하가 사고 확대의 한 요인으로 지적

신뢰도 하락의 악순환 구조

False Alarm (오탐) 반복
경보 시스템 신뢰도 하락
진짜 화재 발생 시 묵살
시스템 폐기 및 무용지물화

오탐을 줄이는 것이 곧 가장 빠른 화재 대응이라는 역설.
이것이 본 프로젝트의 출발점이자 모든 설계 결정의 기준이 되었습니다.

02

데이터셋 구성

양보다 품질, 약점은 직접 라벨링 — 오탐 억제의 토대

클래스 설계 및 의도

클래스
역할
설계 의도
fire
즉각 알림 트리거
고대비·고온 색상 탐지 특화
smoke
조기 경보 핵심
경계 불명확, 최고 난이도 — 화재의 전조증상
carlight
오탐 억제 (네거티브 클래스)
차량 등화류 ↔ 화염 혼동을 구조적으로 차단

carlight는 그 자체가 탐지 목적이 아닙니다.
터널 내 전조등·후미등이 fire/smoke로 오인되는 것을 막기 위한 네거티브 보조 클래스로 설계되었으며,
단독 검출 시에는 알림을 발생시키지 않습니다.

데이터 성장 과정 — V1 → V3 → V4

버전
이미지 수
어노테이션
핵심 변화
V1
1,330장
2,513개
베이스라인, 야외 환경 위주
V3
12,853장
21,802개
라벨 정제 + 야간 화재 도메인 보강
V4
14,053장
24,829개
carlight 직접 라벨링 +487%
V1 → V3 → V4 데이터 성장 추이
V1 → V3 → V4 데이터 성장 — 양적 확장보다 도메인 적합성과 약점 보강에 집중

V4 데이터 규모 (현재)

14,053
전체 이미지 장수
train 12,647 / val 1,406
24,829
어노테이션 총합
fire 8,626 / smoke 12,036 / carlight 6,834
+487%
carlight 어노테이션 증가
1,059개 → 6,210개 직접 라벨링 보강

클래스 분포 균형화 (V3 → V4 어노테이션 비중)

V3

SMOKE 55%
FIRE 40%
5%

V4

SMOKE 44.9%
FIRE 31.7%
CARLIGHT 23.4%

carlight 비중을 5% → 23.4%로 끌어올린 것은 단순한 양의 증가가 아닙니다.
모델이 "이것은 화염이 아니다"를 명확히 학습할 수 있도록 의도적으로 만든 균형입니다.

데이터 전략에서 얻은 3가지 교훈

① 데이터의 양보다 품질이 우선이다

초기에 외부 데이터를 단순 추가하는 방식을 검토했으나, 라벨 품질 검증 없이 양만 늘리는 접근은 오히려 성능을 저하시킬 수 있음을 확인했습니다. V3에서는 데이터를 무작정 늘리는 대신 라벨 정제와 도메인 적합 증강에 집중하여 성능을 회복·개선했습니다.

② 약점은 직접 라벨링한 데이터로만 잡힌다

모델의 약점은 자동으로 해결되지 않습니다. V4에서 carlight 클래스의 약점을 발견했을 때, 외부 데이터를 끌어다 쓰는 대신 1,200장을 직접 추가 라벨링하여 어노테이션을 +487% 보강했습니다. 결과적으로 carlight 정확도뿐 아니라 다른 클래스의 오탐까지 동시에 줄었습니다.

③ 평가 데이터셋도 노가다가 필요하다

좋은 데이터는 학습용만 필요한 게 아닙니다. V3 val 셋(133장)으로는 보이지 않던 carlight 약점이, val을 1,406장으로 확장하고 독립 test_300을 구축하고 나서야 드러났습니다. 평가가 부실하면 모델의 약점을 볼 수 없습니다.

03

데이터 증강 파이프라인

두 번의 도메인 보강 — 모두 오탐 억제를 향한 직접 라벨링

증강 기법 파이프라인

터널 CCTV 환경의 다양한 조도, 거리, 각도 변화에 대응하기 위해 체계적인 증강 파이프라인을 구성했습니다.

기법
파라미터
목적
RandomPhotometricDistort
p=0.5
조도·색상 변화 대응
RandomZoomOut
소형 객체 탐지 강화
RandomIoUCrop
p=0.8
부분 가림 상황 대응
RandomHorizontalFlip
좌우 대칭 일반화
Resize
640×640
표준 입력 크기 통일
Multi-scale
480~800
다양한 해상도 대응

두 번의 도메인 보강 — 같은 목표, 같은 방식

단계
보강 내용
목적
V3
야간 화재 63장 × 5배 = 378장
터널 도메인 적응
V4
carlight 전용 1,200장 직접 추가 라벨링
오탐 억제 강화

V3와 V4의 데이터 보강은 다른 클래스에 적용되었지만, 목표는 동일했습니다 — 오탐 억제. 그리고 두 보강 모두 외부 데이터에 의존하지 않고 직접 라벨링한 데이터였습니다.

Multi-scale 증강의 의미

Multi-scale 증강 시각화
Multi-scale 증강 (480/640/800px) — 다양한 거리·크기의 객체에 대한 강건성 확보
480px
근거리 대형 객체
640px
표준 입력 크기
800px
원거리 소형 객체 탐지

부수 효과 — 데이터 균형의 간접적 위력

V4 학습 결과 그래프
V4 학습 곡선 (results.png) — Loss 안정 감소 및 mAP 수렴 양상

V4에서 carlight 데이터만 보강했을 뿐인데, 다음과 같은 부수 효과가 관찰되었습니다:

지표
V3
V4
변화
small 객체 AP (test_300)
0.050
0.2294
× 4.6
background → smoke 오탐
0.82
0.55
-0.27

한 클래스의 정밀한 데이터 보강이 다른 클래스의 오탐까지 줄였습니다.
오탐 억제는 단일 클래스 튜닝이 아닌, 데이터 전체 구성의 문제입니다.

04

모델 선정

연기를 놓치지 않는 구조 — RT-DETRv2 채택

구조적 특성 비교

YOLO 계열
앵커 기반 + NMS, 지역 특징 의존 → 등화류와 화염 혼동에 취약
RT-DETRv2
Hungarian Matching 기반 End-to-End, Transformer 전역 문맥 파악

왜 RT-DETRv2인가 — 연기는 화재의 전조다

화재 탐지에서 가장 중요한 신호는 무엇일까요?
불꽃이 아니라 연기입니다.연기가 보이는 순간이 화재 초기 대응의 골든 타임이며,
이 단계를 놓치면 인명 피해로 직결됩니다.

연기의 특성

  • 경계가 불분명하다
  • 형태가 시시각각 변한다
  • 배경과의 대비가 약하다
  • 광역으로 확산한다

이런 객체를 정확히 탐지하려면 국소적인 특징이 아니라 전역적인 문맥을 봐야 합니다.
이것이 Transformer 기반의 RT-DETRv2를 채택한 핵심 이유입니다.

정량 검증 — RT-DETRv2 V4 클래스별 성능 (test_300 독립 평가)

클래스
AP@50
의미
fire
0.9829
화염은 거의 놓치지 않는다
smoke
0.8931
화재 전조 탐지 — 핵심 강점
carlight
0.9041
오탐 억제 클래스 안정
mAP@50
0.9267
종합 성능
V3 vs V4 mAP@50 비교
test_300 독립 평가 기준 — V3 mAP@50 0.7857 → V4 mAP@50 0.9267 (+0.141)

속도 한계와 운영 전략

RT-DETRv2는 YOLO 대비 추론 속도가 다소 느립니다. 그러나 운영 전략으로 이 한계를 상쇄합니다.

  • 5FPS 다운샘플링 적용
    동시 다채널 CCTV 모니터링 부담 완화
  • 22채널 동시 커버 가능
    48 FPS ÷ 5FPS = 채널 다중화
  • TensorRT FP16 최적화 검토
    향후 추가 속도 개선 및 동시 처리 채널 확대 가능

"속도를 일부 포기하더라도, 연기를 놓치지 않는다."
이것이 본 시스템의 모델 선정 철학입니다.

NMS-free 구조의 현실과 정직한 대응

RT-DETRv2는 이론상 NMS 후처리가 불필요한 End-to-End 구조입니다.
그러나 실제 추론에서는 학습이 완전히 수렴되지 않은 상태에서 동일 객체에 여러 쿼리가 반응해
중복 bbox가 발생하는 현상이 관찰되었습니다.

후처리 설정
역할
score threshold
0.5
confidence 0.5 미만 bbox 선제거
NMS IoU threshold
0.5
동일 클래스 내 50% 이상 중복 bbox 제거

NMS-free의 완전한 장점은 희석되었지만,
쿼리 수가 300개로 제한되어 있어 YOLO 대비 NMS 연산 부담은 여전히 현저히 낮습니다.
이 점은 정직하게 기록합니다.

05

파이프라인 아키텍처

비전 모델 탐지 → VLM 재검증 → 관제센터 보고: 2단 이중 차단 구조

단일 모델 판단에 의존하지 않고, 탐지 결과를 VLM이 재검증하는 2단 구조로 오탐을 이중 차단합니다.

전체 시스템 아키텍처 다이어그램
전체 시스템 아키텍처 — CCTV → RT-DETRv2 → VLM 재검증 → 관제센터 보고

파이프라인 3단계

단계
구성 요소
역할
1단계
RT-DETRv2 (5FPS 샘플링)
CCTV 영상에서 fire/smoke/carlight 1차 탐지
2단계
VLM 재검증 (이벤트 발견 시 트리거)
컨텍스트 기반 재판단 및 오탐 필터링
3단계
관제센터 보고 판단
확정 알림만 전송, 운영자 최종 판단 지원

VLM 게이트 임계값 로직 (test_300 Threshold Sweep 근거)

조건
처리
fire ≥ 0.70 (P 0.946 / R 0.991)
즉시 알림
smoke ≥ 0.70 (P 0.901 / R 0.808)
즉시 알림
fire/smoke 0.30~0.70
VLM 게이트로 이동
carlight + fire/smoke 동시 검출
confidence 무관 VLM 게이트 강제 이동
carlight 단독 검출
무시 (네거티브 클래스 설계 의도)
confidence < 0.30
무시

carlight 단독 검출은 무시되지만, fire/smoke와 동시 검출되는 경우는 confidence와 무관하게 VLM 재검증으로 강제 이동시켜
등화류 혼동발 오탐을 한 번 더 차단합니다.

분기 플로우

CCTV 영상 입력
[1단계] RT-DETRv2 추론 (5FPS)
0.30~0.70 또는 carlight 동시검출
[2단계] VLM 재검증 — 컨텍스트 기반 재판단
확정 판단 시
[3단계] 관제센터 보고 — 운영자 최종 판단

4-VM 인프라 구성

Frontend 서버
관제 대시보드 UI 제공
Backend 서버
API 및 알림 처리
AI·VLM 서버
RT-DETRv2 + VLM 추론 엔진
Python Worker
영상 스트림 처리 및 샘플링
06

반복 개선 과정

V3에서 V4로 — 약점을 발견하고, 직접 라벨링으로 잡다

V3 성과 확인

0.952
mAP@50 (val 1,286장, 50 Epochs)
-57%
학습 손실 감소 (27.6 → 11.8)

약 20에폭 부근 mAP50 조기 수렴 확인

V3 Confusion Matrix
V3 Confusion Matrix — 클래스 간 혼동은 적으나 background → smoke 오탐(0.82)이 잔존

V3에서 드러난 한계 (test_300 독립 평가)

0.050
small 객체 AP — 소형 객체 탐지 취약
0.454
carlight AP — val로는 안 보이던 실제 약점

V3 val(133장, carlight 81개)은 표본 부족으로 carlight 성능을 과대평가하고 있었습니다.
독립 test_300 평가를 통해서야 carlight AP가 실제로는 0.454에 불과하다는 사실이 드러났습니다.

02번 교훈 ③ "평가 데이터셋도 노가다가 필요하다"가 회수되는 순간입니다.

V4 개선 — carlight 정조준 보강

carlight 직접 라벨링 작업
Roboflow에서 carlight 전용 데이터 1,200장 직접 라벨링 — 외부 데이터에 의존하지 않고 약점을 직접 보강
지표
V3
V4
변화
carlight 어노테이션
1,059개
6,210개
+487%
small 객체 AP (test_300)
0.050
0.2294
× 4.6
background → smoke 오탐
0.82
0.55
-0.27
background → carlight 오탐
0.34
신규 발생

carlight 데이터만 보강했는데 small 객체 AP와 background → smoke 오탐까지 함께 개선되었습니다.
클래스 간 데이터 균형이 모델 전체 품질에 영향을 미친다는 점이 입증된 결과입니다.

V4 학습 결과
V4 results.png — Loss 안정 감소, mAP 수렴 양상 (ep20 이후 plateau)

test_300 동일 기준 V3 vs V4 (유일한 공정 비교)

클래스
V3 AP@50
V4 AP@50
변화
fire
0.9857
0.9829
-0.003
smoke
0.9171
0.8931
-0.024
carlight
0.4543
0.9041
+0.450
mAP@50
0.7857
0.9267
+0.141

fire/smoke 성능은 거의 그대로 유지된 채 carlight만 정확히 개선되어, carlight 보강이 기존 클래스 성능을 희생하지 않았음을 확인했습니다.

V4에서 새롭게 드러난 한계 — 정직한 기록

① Underfitting 패턴

ep12 이후 train loss는 계속 감소하지만 val mAP는 정체되는 패턴이 관찰되었습니다.
imgsz=640 기준에서 모델이 학습 가능한 상한에 근접했음을 의미하며, 에폭 추가만으로는 성능 향상이 어렵습니다.
구조적 개선이 필요
합니다.

② 원거리 광범위 연기 미탐

event 21에서 배경에 존재하는 대형 연기 기둥을 V4가 놓치는 사례가 확인되었습니다.
극단적 원거리·저해상도 조건에서의 연기 학습 데이터가 부족했던 것이 원인으로 추정됩니다.
연기 조기 탐지가 본 시스템의 핵심 목적인 만큼, 이 한계는 V5에서 최우선으로 다룰 과제입니다.

원거리 광범위 연기 미탐 예시
V4 신규 한계 사례 — 배경의 대형 연기를 놓친 event 21 케이스
07

확장 로드맵

V4의 한계를 V5의 데이터로 잡는다

버전별 개선 타임라인

V1
베이스라인 구축. 야외 환경 위주 데이터로 도메인 미스매치 발생 (mAP@50:95 0.695)
V3
라벨 정제 + 야간 화재 증강(63×5)으로 회복 (mAP@50 0.952). 데이터 품질 우선 전략 검증
V4
carlight 데이터 +487% 보강, small AP 4.6배 향상 (test_300 mAP@50 0.927). 직접 라벨링이 약점을 잡는다는 원칙 입증
V5 (계획)
한계 극복을 위한 데이터 구성 전략 — 야간 반사광 hard negative · 고해상도 라벨링 · 검은 연기 도메인 다양화

V5 데이터 구성 전략 — V4 한계와 1:1 매칭

① 원거리·광역 연기 미탐 잡기 — smoke 도메인 다양화

  • 야외 원거리 검은 연기, 광역 확산 연기, 저해상도 입력 케이스 직접 수집
  • 실제 화재 사고 CCTV 영상에서 원거리 연기 프레임 큐레이션
  • V3 야간 화재 증강(63×5)과 같은 방식으로 smoke의 어려운 케이스를 정조준 보강
  • 연기 조기 탐지가 본 시스템의 핵심 목적인 만큼 최우선 과제

② Underfitting 패턴(imgsz=640 상한) 잡기 — 고해상도 라벨링

  • imgsz=1280으로 학습하려면 라벨 좌표도 1280 기준으로 정밀해야 함
  • 기존 640 기준 라벨 단순 스케일업으로는 부족 — 작은 객체의 bbox를 다시 정밀화하는 재라벨링 필요
  • 특히 원거리 화재·연기 초기 발생 케이스의 bbox 정확도 향상에 집중

③ 평가 데이터셋 확장 검토

  • test 셋 확장을 통해 원거리 연기·검은 연기·소형 객체 케이스를 균등 분포로 포함
  • 평가 단계에서 새로운 약점을 조기 발견하는 체계 마련
  • → 02번 교훈 ③(평가 데이터셋 노가다)의 지속적 실천

carlight 클래스 확장 구상 — 오탐 억제에서 교통 관제로

carlight는 V4 보강을 통해 단순 오탐 억제용 네거티브 클래스를 넘어 풍부한 데이터 자산이 되었습니다.
이 자산을 활용해 다음과 같은 기능 확장을 구상 중입니다.

오탐 억제 (현재)
차량 밀집도 분석 (V5 데이터셋 구성 단계에서 병행 수집)
정체·혼잡 탐지 (별도 모델 개발 검토)
사고 감지 (장기 목표)

V5 데이터 구성 단계에서 carlight 데이터를 더 다양한 각도·조도·차량 밀집도 조건으로 확장하면,
오탐 억제 강화와 교통 관제 기능 확장을 한 번에 준비할 수 있습니다.

08

결론 — 오탐을 줄이는 것이 가장 빠른 대응이다

오탐 억제 → 경보 신뢰도 회복 → 실제 화재 대응력 향상

이 프로젝트의 핵심은 단순히 높은 mAP 수치를 달성하는 것이 아닙니다.
운영자가 경보를 믿고 즉각 행동할 수 있는 신뢰받는 AI 시스템을 만드는 것입니다.

오탐이 줄어든다
경보의 신뢰도가 회복된다
진짜 위급 상황에서 더 빠른 대응이 가능해진다

"오탐을 줄이는 것이, 결국 가장 빠른 대응이다."

연기를 놓치지 않는다
화재의 전조증상에 주목, 전역 문맥 파악이 강점인 RT-DETRv2 채택
데이터의 양보다 품질
외부 데이터 의존 대신 라벨 정제와 도메인 적합 증강에 집중
약점은 직접 라벨링한 데이터로만 잡힌다
V4 carlight +487% 직접 보강으로 test_300 mAP +0.141 달성
한계는 정직하게, 다음 단계는 데이터로
V4의 한계를 정직히 드러내고, V5에서 데이터로 잡을 계획 수립

"속도보다 정확도, 정확도보다 신뢰도."

이것이 변하지 않는 본 시스템의 설계 철학입니다.