시각장애인을 위한 AI 기반 실시간 보행 보조 시스템
Vision Contact는 컴퓨터 비전과 AI 기술을 활용하여 시각장애인의 안전한 보행을 돕는 웹 기반 솔루션입니다.
- YOLO + GPT-4o-mini Vision: 교통 표지판, 장애물 실시간 감지
- RAG 기반 설명: 감지된 객체에 대한 상황별 맞춤 안내
- 음성 피드백: OpenAI TTS로 즉각적인 음성 안내
- STT: OpenAI Whisper-1으로 음성 인식
- 경로 안내: TMAP API 기반 실시간 네비게이션
- 날씨/뉴스 조회: 위치 기반 정보 제공
- TTS: 자연스러운 한국어 음성 응답
- 음성 번역: Whisper STT + GPT-4o 번역
- 4개 언어 지원: 한국어, 영어, 일본어, 중국어
- Hallucination 방지: 3단계 검증 로직
- 자동 로깅: 모든 활동 내역 DB 저장
- 리포트 생성: 일별/주별/월별 통계
- 오디오 재생: 저장된 음성 안내 재청취
- Vue 3 (Composition API, TypeScript)
- Vite (빌드 도구)
- Pinia (상태 관리)
- Axios (HTTP 클라이언트)
- 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: 이미지 처리
- TMAP (SK Open API): 경로 안내
- Naver News: 뉴스 조회
- OpenWeather: 날씨 정보
- Kakao: 위치 서비스
- Python 3.11 이상
- Node.js 20.19.0 이상 또는 22.12.0 이상
- OpenAI API 키 (필수)
상세한 설치 가이드는 SETUP_GUIDE.md를 참고하세요.
# .env.example 복사
cp backend/.env.example backend/.env
# .env 파일 편집 (API 키 입력)cd backend
# 가상환경 생성 및 활성화
python3 -m venv venv
source venv/bin/activate # Windows: .\venv\Scripts\Activate.ps1
# 의존성 설치
pip install -r requirements.txt
# 서버 실행
python run.pycd frontend/vision-contact-app
# 의존성 설치
npm install
# 개발 서버 실행
npm run devhttp://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
서버 실행 후 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: 활동 로그 조회
Whisper STT의 오인식을 방지하기 위한 3단계 검증:
- 80개 이상의 비지원 언어 블랙리스트
- 서비스 지원 언어(한/영/일/중) 외 감지 시 차단
- "구독과 좋아요", "Thanks for watching" 등 10개 패턴
- 학습 데이터 편향으로 인한 오인식 방지
- 3자 미만 텍스트 거부
- 무음 또는 극히 짧은 잡음 필터링
결과: 잘못된 번역 요청 95% 이상 사전 차단, GPT-4o 비용 절감
- 카메라 활성화
- 모드 선택 (어린이, 시각장애, 차량)
- 실시간 객체 감지 및 바운딩 박스 표시
- 표지판 감지 시 자동 음성 안내
- 마이크 버튼 클릭
- 명령어 발화:
- "강남역으로 안내해줘" → 경로 안내
- "날씨 알려줘" → 현재 날씨
- "뉴스 들려줘" → 주요 뉴스
- 음성 응답 재생
- 번역 모드 진입
- 목표 언어 선택
- 음성 입력
- 자동 언어 감지 → 번역 → 화면 표시
본 프로젝트는 외부 API를 사용합니다:
- OpenAI API: 유료 (사용량 기반)
- TMAP, Naver, OpenWeather: 무료 (일일 할당량 제한)
이슈 및 Pull Request는 환영합니다!
프로젝트 관련 문의는 GitHub Issues를 이용해주세요.
Made with ❤️ for Accessibility