문제 정의 : 이미지에서 화재 및 연기 검출
사용 데이터 : 화재 관련 이미지 크롤링
사용 기술 : 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
복사