Skip to content

SwiftEscaper/Integration

Repository files navigation

📹🚗 CCTV 이미지 사고 판단 시스템

본 프로젝트는 CCTV를 통해 차량 추돌 사고화재를 판단하여 서버로 정보를 전송하는 Python 기반의 사고 감지 시스템입니다.
차량 객체 감지 및 사고 판단은 YOLOv8n 모델을 활용하며, 화재 감지는 별도의 추가 로직을 포함합니다.


📂 프로젝트 구조

📁 project-root/
├── 📁 data/                # 데이터 관련 파일 저장 디렉터리
├── 📁 models/              # YOLOv8n 모델 파일 저장 디렉터리
├── 📁 utils/               # 유틸리티 함수 모음
├── .gitignore              # Git 관리에서 제외할 파일 설정
├── accidentEnum.py         # 사고 분류 Enum 정의
├── accidentHandler.py      # 사고 데이터 전송 로직
├── crashDetection.py       # 차량 추돌 사고 감지 로직
├── fireDetection.py        # 화재 감지 로직
├── getFrame.py             # CCTV 영상 프레임 처리
├── main.py                 # 시스템 실행 및 주요 로직
├── export.py               # YOLOv8n 모델 형식 변환
├── yolov8n.pt              # YOLOv8n 모델
├── requirements.txt        # 필요한 라이브러리 목록
└── README.md               # 프로젝트 설명 파일

⚙️ 주요 기능

1️⃣ CCTV 정보 가져오기

  • 'main.py'를 통해 특정 위경도에 대한 CCTV 정보를 요청합니다.
  • 국토교통부 개인 API Key를 사용하여 CCTV 데이터를 수집합니다.

2️⃣ 차량 객체 추출

  • YOLOv8n 모델을 사용하여 CCTV 비디오에서 차량 객체를 감지합니다.

3️⃣ 차량 추돌 사고 감지

  • 'crashDetection.py'를 통해 차량의 좌표 추출을 수행합니다.
  • 특정 차량 객체가 일정 프레임 이상 정지 상태라면 추돌 사고로 판단합니다.

4️⃣ 화재 감지

  • 'fireDetection.py'를 통해 화재 감지 작업을 수행합니다.
  • 화재 전용 YOLOv8n 모델을 사용하며, 신뢰도 기반 2차 판단 로직이 포함되어 있습니다.
  • 차량 헤드라이트를 화재로 오인하는 문제를 방지하기 위해
    • 화재 좌표와 차량 객체 간의 IoU 계산을 수행합니다.
    • 차량 내부에 위치한 화재 좌표는 화재 사고 정보에서 제거합니다.

5️⃣ 사고 정보 서버 전송

  • 추돌 사고 및 화재가 판단되면 해당 사고 정보를 서버로 전송합니다.

🛠️ 설치 및 실행 방법

1️⃣ 필요 라이브러리 설치

pip install -r requirements.txt

2️⃣ 국토교통부 개인 Key 변경

  • 'main.py' 파일 내부에 본인의 CCTV API Key를 변경합니다.

3️⃣ 프로그램 실행

python main.py

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages