Home
🚒

CCTV를 이용한 화재 조기 검출

문제 정의 : 이미지에서 화재 및 연기 검출 사용 데이터 : 화재 관련 이미지 크롤링 사용 기술 : Python, Darknet 사용 방법론 : Yolo v3
Python
복사
국민대학교 팀팀Class 프로젝트의 일환으로 진행된 프로젝트입니다.
맡은 역할 : 팀장, 데이터 수집 및 Labelling, 모델링

개요

인공지능을 이용한 공익 증진이 목적인 프로젝트였습니다.
한국의 CCTV 보급률이 높다는 점에서 영감을 받아
동영상을 통한 화재 예측을 주제로 한 프로젝트 입니다.

목표

1. 들어오는 동영상에서 화재 영역을 탐지하기
Python
복사

쟁점

1. 딥러닝으로 해결해야 하는 문제인가 ? (OpenCV 선행연구 존재)

→ 불과 연기는 정해진 형태가 없음, 밝기를 이용할 경우 빛을 오탐할 우려
→ 딥러닝으로 시도해볼 만한 가치가 있다고 판단

2. 인공지능을 이용해 화재를 완벽히 검출해 낼 수 있는가 ?

→ 불가능. 오탐지와 그로 인해 발생하는 손실을 생각하면 결정은 사람이 하는게 합리적이다.

3. 어떤 Task로 접근하는게 더 유용한가 ?

Image Classification + CAM vs Object Detection
Object Dection이 사람이 알아보기 조금 더 편하지 않을까?

4. Object Detection을 위해 어떤 모델을 사용해야 할까?

Faster-R CNN vs Yolo v3
→ 우리는 속도를 고려하는게 맞지 않을까 ? → Yolo v3 선택

주요 아이디어

1. Class 정의

1.
Fire( ) : 우리가 찾아야 하는 것
2.
Smoke( ) : 화재 초기에 쉽게 검출되는건 불보다 연기
3.
Light( ) : 전등 등 가장 쉽게 오탐되는 것이 불빛

2. 데이터 수집

선행 연구들은 대부분 MNIVA Fire Dataset을 이용
→ 별도의 신청을 통해 얻을 수 있었는데, 답장이 오지 않았음
→ 직접 화재 영상과 사진을 수집해 Labeling
결과물 :
Fire,Smoke 가 존재하는 사진 약 5000장 + Bound Box의 좌표 값
Light가 존재하는 사진 약 1000장 +BoundBox의 좌표 값

3. 모델링

Model = 'Yolo_v3' Train_ratio = 0.81 Valid_ratio = 0.09 Train_ratio = 0.10 Batch size = 64, max_batches =6000, classes = 80 , filters = 24 Fire_AP = '86.47%' Smoke_AP = '80.54%' Light_AP = '62.49%' mAP = '76.5%'
Python
복사

결과물

자료