Skip to content

KOSA-MSAFullStack/Conference_SmartTrafficLight

Repository files navigation

🚦 스마트 신호등

실시간으로 사람의 상태를 감지하고 신호 시간을 조정하는 신호등


📋 소개

횡단 중인 보행자를 실시간으로 카메라로 촬영하고 yolov5 모델을 사용하여 보행자를 감지합니다.

걷기, 넘어짐 2가지 모델을 학습시켜 사람의 상태를 탐지합니다.

보행자가 횡단보도 보행 중일 때 보행시간에 추가시간을 부여하여 녹색 등을 유지하고 사람이 걷고 있다는 신호를 보냅니다. 보행자가 쓰러지면 쓰러졌다고 경고 알림을 소리와 메세지를 홈페이지에서 출력하고 사람이 쓰러졌다는 신호를 보냅니다.

프로젝트 개요

이 프로젝트는 딥러닝 기반의 실시간 영상 분석 기술(YOLOv5)을 웹 애플리케이션과 결합하여, 현실의 교통 문제를 해결하는 것을 목표로 합니다. 보행자의 안전에 초점을 맞춰 '걷기'와 '넘어짐'이라는 구체적인 상태를 탐지하고, 그에 맞춰 신호등을 제어하고 사고 발생 시 신속하게 대처할 수 있도록 지원합니다.

  • 주요 기능:
    • YOLOv5 모델을 활용한 실시간 보행자 상태('걷기', '넘어짐') 감지
    • 보행자 감지 시 녹색 신호등 시간 자동 연장
    • 보행자 낙상 사고 감지 시 웹페이지 및 음성을 통한 경고 알림
    • Firebase 연동을 통한 사고 데이터 기록 및 시각화
  • 핵심 기술 스택:
    • AI/ML: Python, PyTorch, OpenCV, YOLOv5
    • Backend: Flask
    • Database: Firebase
  • 사용 모델: https://github.com/ultralytics/yolov5



🚀 빠른 시작 가이드 (Quick Start Guide)

이 프로젝트를 로컬 컴퓨터에서 설정하고 실행하는 방법입니다.

사전 요구사항

  • Python 3.8+
  • Git

설치 및 실행 순서

  1. 저장소 복제 (Clone Repository)

    git clone https://github.com/KOSA-MSAFullStack/Smart-TrafficLight.git
    cd Smart-TrafficLight
  2. 가상환경 생성 및 활성화 (Create & Activate Virtual Environment)

    # Windows (Git Bash 기준)
    py -m venv .venv
    source .venv/Scripts/activate
    # (venv)가 떠있으면 가상환경 활성화 상태
    # CMD&PowerShell : venv\Scripts\activate
    
    # macOS & Linux
    # python3 -m venv venv
    # source venv/bin/activate
  3. 가상환경 내 의존성 설치 (Install Dependencies in venv)

    중요: 반드시 2번 단계에서 생성한 가상환경이 활성화된 상태에서 아래 명령어 실행

    (venv) C:\...\Smart-TrafficLight> 와 같이 프롬프트 앞에 (venv)가 보여야 함

    pip install -r requirements.txt
  4. 사전 준비

    4-1. 모델 파일 다운로드

    이 프로젝트를 완전히 실행하려면 학습시킨 커스텀 모델(best.pt) 필요

    >> best.pt 다운로드 링크 <<

    위 링크에서 best.zip 파일 다운로드 후, 프로젝트 최상위 경로에 (best/) 저장 (ex: Smart-TrafficLight/best/)

    참고: 표준 모델인 yolov5s.ptapp.py를 처음 실행할 때 자동으로 다운로드 됨


    4-2. 모델 검증 데이터셋

    모델 성능 검증에 사용될 데이터셋(data/) 필요

    >> data/ 다운로드 링크 <<

    위 링크에서 data.zip 파일 다운로드 후, 프로젝트 최상위 경로에 (data/) 저장 (ex: Smart-TrafficLight/valid/)

  5. 애플리케이션 실행 (Run the Application)

    py app.py
  6. 결과 확인 (Check the Result) 웹 브라우저를 열고 http://127.0.0.1:5000 주소로 접속, 실시간 영상 스트림 확인



📚 기능 구현

사람 상태 감지

  1. 걷기

image

  1. 넘어짐

image

사람 넘어짐 통계

보행자 사고를 파이어베이스에서 로그 데이터를 가져와 x축은 날짜를 기준으로 구성, y축은 보행자의 쓰러짐을 감지한 횟수를 나타내는 그래프를 구성하여 보행자 사고를 집계합니다.

image

신호등 기능

  1. 정상 보행일 때

보행자가 있어 보행시간을 확장했을 때의 비교 동영상입니다. 보행자가 신호 변경 버튼을 눌러 신호를 변경하였을 때 보행자가 보행 중에는 보행 시간에 추가시간을 부여하여 녹색 등을 유지하고, 이때 최대 보행 시간은 40초이며, 30초가 되면 세그먼트 타이머가 작동되어 9초부터 1초까지 남은 시간을 안내해 줍니다.

동영상 링크: https://www.youtube.com/watch?v=YyqUL5-E00k

왼쪽 사진은 보행자가 없을떄 신호가 빠르게 바뀌는 사진이고 오른쪽은 보행자가 걷고 있어 보행시간이 늘어난 사진입니다.

image

  1. 보행중 넘어졌을 때

보행자가 횡단보도를 건너는 중에 쓰러지는 위급 상황 발생 시 MP3 모듈을 이용해 사람이 쓰러졌다는 음성을 송출하여 횡단보도 주변에 도움을 요청합니다.

동영상 링크: https://www.youtube.com/watch?v=Msn9IvRIOA4

About

KOSA_MSA FullStack 컨퍼런스 프로젝트

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published