Skip to content

Vision-Contact/code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vision Contact

시각장애인을 위한 AI 기반 실시간 보행 보조 시스템


프로젝트 개요

Vision Contact는 컴퓨터 비전과 AI 기술을 활용하여 시각장애인의 안전한 보행을 돕는 웹 기반 솔루션입니다.

주요 기능

1. 안전모드 (실시간 객체 탐지)

  • YOLO + GPT-4o-mini Vision: 교통 표지판, 장애물 실시간 감지
  • RAG 기반 설명: 감지된 객체에 대한 상황별 맞춤 안내
  • 음성 피드백: OpenAI TTS로 즉각적인 음성 안내

2. 음성 명령 시스템

  • STT: OpenAI Whisper-1으로 음성 인식
  • 경로 안내: TMAP API 기반 실시간 네비게이션
  • 날씨/뉴스 조회: 위치 기반 정보 제공
  • TTS: 자연스러운 한국어 음성 응답

3. 실시간 통번역

  • 음성 번역: Whisper STT + GPT-4o 번역
  • 4개 언어 지원: 한국어, 영어, 일본어, 중국어
  • Hallucination 방지: 3단계 검증 로직

4. 사용 기록 관리

  • 자동 로깅: 모든 활동 내역 DB 저장
  • 리포트 생성: 일별/주별/월별 통계
  • 오디오 재생: 저장된 음성 안내 재청취

기술 스택

Frontend

  • Vue 3 (Composition API, TypeScript)
  • Vite (빌드 도구)
  • Pinia (상태 관리)
  • Axios (HTTP 클라이언트)

Backend

  • FastAPI (Python 웹 프레임워크)
  • SQLAlchemy (ORM) + SQLite (DB)
  • OpenAI API:
    • GPT-4o: 번역 엔진
    • GPT-4o-mini: Vision 분석
    • Whisper-1: STT (Speech-to-Text)
    • TTS-1: Text-to-Speech
  • YOLOv8: 실시간 객체 탐지
  • OpenCV: 이미지 처리

External APIs

  • TMAP (SK Open API): 경로 안내
  • Naver News: 뉴스 조회
  • OpenWeather: 날씨 정보
  • Kakao: 위치 서비스

빠른 시작

사전 준비

  • Python 3.11 이상
  • Node.js 20.19.0 이상 또는 22.12.0 이상
  • OpenAI API 키 (필수)

설치 및 실행

상세한 설치 가이드는 SETUP_GUIDE.md를 참고하세요.

1. 환경변수 설정

# .env.example 복사
cp backend/.env.example backend/.env

# .env 파일 편집 (API 키 입력)

2. 백엔드 실행

cd backend

# 가상환경 생성 및 활성화
python3 -m venv venv
source venv/bin/activate  # Windows: .\venv\Scripts\Activate.ps1

# 의존성 설치
pip install -r requirements.txt

# 서버 실행
python run.py

3. 프론트엔드 실행 (새 터미널)

cd frontend/vision-contact-app

# 의존성 설치
npm install

# 개발 서버 실행
npm run dev

4. 브라우저 접속

http://localhost:5173

프로젝트 구조

version_2/
├── backend/
│   ├── app/
│   │   ├── api/          # API 엔드포인트
│   │   ├── models/       # DB 모델
│   │   ├── services/     # 비즈니스 로직
│   │   └── database/     # DB 연결
│   ├── requirements.txt
│   ├── run.py
│   └── .env.example
├── frontend/
│   └── vision-contact-app/
│       ├── src/
│       │   ├── components/  # Vue 컴포넌트
│       │   ├── views/       # 페이지
│       │   ├── stores/      # Pinia 스토어
│       │   └── router/      # 라우팅
│       └── package.json
├── instructions/
│   └── YOLO_model/       # YOLO 모델 파일
├── SETUP_GUIDE.md        # 설치 가이드
└── README.md

API 문서

서버 실행 후 Swagger UI에서 확인 가능:

http://localhost:8000/docs

주요 엔드포인트

  • POST /api/voice/command: 음성 명령 처리
  • POST /api/translation/translate: 음성 번역
  • POST /api/detection/analyze: 객체 탐지 및 분석
  • GET /api/reports/summary: 사용 통계
  • GET /api/logs: 활동 로그 조회

AI Hallucination 방지 기술

Whisper STT의 오인식을 방지하기 위한 3단계 검증:

1. 희귀 언어 필터링

  • 80개 이상의 비지원 언어 블랙리스트
  • 서비스 지원 언어(한/영/일/중) 외 감지 시 차단

2. YouTube 자막 패턴 차단

  • "구독과 좋아요", "Thanks for watching" 등 10개 패턴
  • 학습 데이터 편향으로 인한 오인식 방지

3. 최소 길이 검증

  • 3자 미만 텍스트 거부
  • 무음 또는 극히 짧은 잡음 필터링

결과: 잘못된 번역 요청 95% 이상 사전 차단, GPT-4o 비용 절감


주요 기능 데모

안전모드

  1. 카메라 활성화
  2. 모드 선택 (어린이, 시각장애, 차량)
  3. 실시간 객체 감지 및 바운딩 박스 표시
  4. 표지판 감지 시 자동 음성 안내

음성 명령

  1. 마이크 버튼 클릭
  2. 명령어 발화:
    • "강남역으로 안내해줘" → 경로 안내
    • "날씨 알려줘" → 현재 날씨
    • "뉴스 들려줘" → 주요 뉴스
  3. 음성 응답 재생

번역 모드

  1. 번역 모드 진입
  2. 목표 언어 선택
  3. 음성 입력
  4. 자동 언어 감지 → 번역 → 화면 표시

라이선스

본 프로젝트는 외부 API를 사용합니다:

  • OpenAI API: 유료 (사용량 기반)
  • TMAP, Naver, OpenWeather: 무료 (일일 할당량 제한)

⚠️ 경고: API 사용량에 따라 비용이 발생할 수 있습니다.


기여

이슈 및 Pull Request는 환영합니다!


문의

프로젝트 관련 문의는 GitHub Issues를 이용해주세요.


Made with ❤️ for Accessibility

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published