- 소개
- 데이터셋 소개 및 배열
- 데이터 전처리 과정
- 시뮬리언션용 영상 데이터
- 주요 기능
- 모델 설계 및 기술 스택
- 하이퍼파라미터 차징화
- 임계값 조정 전략
- 성능 평가
- 실제 CCTV 영상 테스트 방법
- 결단 및 향후 개제
현대 사회에서 도로 안전은 국가 사회의 중요한 가제입니다. 반복되는 교통사고로 인해 규정적인 노력과 가치 평가의 보호가 필요합니다.
본 프로젝트는 도로 교통정보수집카메라가 수집한 영상을 기반으로 YOLOv8 기본 객체 검색 모델을 활용해 도로상의 재난을 실시간으로 탐지하고, 반응할 수 있는 프로젝트입니다.
YOLOv8 모델은 동영상을 최대 60fps로 처리할 수 있으며, 고정도와 저평소 및 다양한 형태의 객체를 고정적으로 검색할 수 있어 현재 것들 가장 효과적인 기술 중 하나입니다.
- 데이터 조합 공간: Roboflow에서 목표 검색을 위한 영상/사진 데이터 구축
- 데이터 유형: YAML 구조의 config 파일, txt에 담긴 라벨, 사진은 복수적 사진 + 유튜브 경우 재난 영상 + 개인 찍은 것 포함
- 라벨 종류: 홍수, 화제, 교통사고, 싱크홀 4가지
- 하드 사평치와 같은 단순 검색에서 힘들게 들어오는 이미지 범위 추가
- 도적적으로 라벨된 CCTV/개인/게임 경로의 영상
- 라벨마다 class, bbox와 함께 모델이 가장 필요한 객체 정보 파일으로 구성
- 도로상의 현재와 재난 상황을 구도하기 위해 실제 CCTV, 자체 찍은 영상, 유튜브 영상 같은 데이터 추가
- 상황을 유지하는 범위 만 캐프처 같이 가공 통합, 캐어, 폼 같은 차징 과정 진행
- 도로의 현재 상황을 실시간 검색 및 예측
- 유튜브와 실제 CCTV 등 각종 데이터에 대한 단순 기반 테스트 수행
- 결과의 이미지가 포함된 다양한 예측/실현/실패 디스크립션
road-disaster-detection/
├── data/ # 원본 및 전처리된 이미지/라벨 데이터
│ ├── images/
│ ├── labels/
│ └── dataset.yaml # YOLO 학습용 데이터 구성 파일
│
├── videos/ # 테스트용 영상 (CCTV, 유튜브, 직접 촬영 등)
│
├── runs/ # 학습 결과 저장 폴더 (YOLOv8 학습 결과 포함)
│
├── models/ # 훈련된 모델 가중치 (.pt 파일)
│
├── scripts/ # 주요 파이썬 스크립트
│ ├── train.py # 학습 실행 스크립트
│ ├── detect.py # 탐지 실행 스크립트 (YOLOv8 기반)
│ └── preprocess.py # 데이터 전처리 스크립트
│
├── config/ # 하이퍼파라미터, 임계값 설정 파일
│ └── optuna_config.yaml # Optuna 관련 설정
│
├── results/ # 탐지 결과 이미지 및 영상 저장 폴더
│
├── requirements.txt # 의존 라이브러리 목록
├── README.md # 프로젝트 설명 파일
└── .gitignore
- YOLOv8 + PyTorch (Ultralytics) 기본
- 도로 CCTV/유튜브 등 개인적 데이터 추가
- GPU 마일이 보통 4GB 이상, RAM 8GB 이상 권장
- Optuna 버전의 Bayesian Optimization을 통해 다양한 트랙지 검색
- 해당 파라미터: LR(1e-4 ~ 1e-1), batch(8 ~ 32), mosaic(0 ~ 1), epoch=50 (fixed)
- Recall이 더 중요한 값이라고 감독 하여 조정
- class 단위로 다른 confidence threshold 적용
- Precision: 0.8825
- Recall: 0.8272
- mAP50: 0.8835
- 지속적인 class 확인 위해 15fps 것만 검색 가능
- 같은 class가 5회 이상 연속 검색될 경우에만 사고 발생으로 감정
- 동영상에서 건치가 고의적으로 보이는 경우 거짓수 만사 이상적
- 시계열 데이터 배우기 등의 최적화가 필요
- 가장 중요한 필요가지 3가지:
- 모델 가설 및 개정
- 데이터 도적적 건설
- 실시간 응답성 가능


