Skip to content

qowlgur121/argus

Repository files navigation

Argus - AI 졸음 감시 시스템

라즈베리파이 기반의 실시간 졸음 감지 시스템으로, 웹캠을 통해 사용자의 얼굴과 눈을 추적하여 졸음 상태를 감지하고 경고를 제공합니다.

프로젝트 개요

Argus는 공부나 작업 중 졸음을 방지하기 위한 감시 시스템입니다. OpenCV를 활용한 실시간 얼굴/눈 감지 기술과 GPIO를 통한 하드웨어 제어를 결합하여 효과적인 졸음 방지 솔루션을 제공합니다.

주요 기능

  • 실시간 얼굴 및 눈 감지
  • 6초 이상 눈 감음 시 졸음 경고
  • 부저를 통한 알림
  • LED를 통한 시각적 표시
  • 물리적 스위치로 간편한 제어

🎬 프로젝트 시연

프로젝트 영상

하드웨어 요구사항

필수 구성품

  • 라즈베리파이 4/5 (Raspberry Pi OS 설치)
  • USB 웹캠 (OpenCV 호환)
  • 능동 부저 모듈 (GPIO 20번 핀)
  • LED (GPIO 16번 핀)
  • Tact 스위치 (GPIO 21번 핀)
  • 점퍼 와이어브레드보드

GPIO 핀 연결도

부품 GPIO 핀 물리적 핀 설명
LED GPIO 16 Pin 36 시스템 상태 표시
부저 GPIO 20 Pin 38 졸음 경고음
스위치 GPIO 21 Pin 40 모니터링 시작/정지

🚀 설치 및 실행

1. 레포지토리 클론

git clone https://github.com/qowlgur121/argus.git
cd argus

2. 의존성 설치

# 시스템 패키지 업데이트
sudo apt update && sudo apt upgrade -y

# Python 패키지 설치
pip install opencv-python numpy gpiozero

# 추가 시스템 라이브러리 (필요한 경우)
sudo apt install python3-opencv python3-numpy

3. 권한 설정

# GPIO 접근 권한 부여
sudo usermod -a -G gpio $USER

# 재부팅 또는 로그아웃 후 재로그인
sudo reboot

4. 실행

python argus.py

사용법

기본 조작

  1. 프로그램 시작: python argus.py 실행
  2. 모니터링 시작: Tact 스위치를 눌러 감시 모드 활성화
    • LED가 켜지고 웹캠 창이 나타남
    • 얼굴 인식 시 녹색 사각형 표시
  3. 졸음 감지: 6초 이상 눈을 감으면
    • 부저에서 경고음 발생
    • 화면에 "DROWSINESS DETECTED!" 메시지 표시
    • LED가 빠르게 점멸
  4. 모니터링 종료: Tact 스위치를 다시 눌러 대기 모드로 전환
  5. 프로그램 종료: 웹캠 창에서 'q' 키 입력

상태 표시

  • 대기 모드: LED 꺼짐, 웹캠 창 없음
  • 감시 모드: LED 켜짐, 웹캠 창 활성화
  • 졸음 감지: LED 점멸, 부저 울림

파일 구조

argus/
├── argus.py                           # 메인 프로그램
├── eye_tracking.py                    # 눈 감지 모듈
├── haarcascade_frontalface_default.xml  # 얼굴 인식 cascade
├── haarcascade_eye.xml                # 눈 인식 cascade
└──  README.md                          # 프로젝트 문서

설정 변경

졸음 감지 시간 조정

eye_tracking.py 파일의 13번째 줄에서 감지 시간을 변경할 수 있습니다:

self.drowsiness_threshold = 6.0  # 6초 → 원하는 시간으로 변경

GPIO 핀 변경

argus.py 파일의 16-18번째 줄에서 핀 번호를 변경할 수 있습니다:

self.LED_PIN = 16     # LED 핀 번호
self.BUZZER_PIN = 20  # 부저 핀 번호
self.SWITCH_PIN = 21  # 스위치 핀 번호

기술적 특징

  • 실시간 처리: 20 FPS로 안정적인 얼굴/눈 감지
  • 정확한 감지: Haar Cascade 알고리즘 기반 얼굴 인식
  • 하드웨어 통합: gpiozero 라이브러리를 활용한 안정적인 GPIO 제어

성능 최적화

  • 640x480 해상도로 최적화된 처리 속도
  • 효율적인 눈 감지 알고리즘으로 CPU 사용량 최소화
  • 노이즈 필터링을 통한 오탐지 방지

About

실시간 졸음 감지 시스템

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages