시각장애인을 위한 AI 기반 보행 보조 시스템
# macOS (Homebrew 사용)
brew install python@3.11
# Windows
# https://www.python.org/downloads/ 에서 다운로드
# 설치 확인
python3 --version# macOS (Homebrew 사용)
brew install node
# Windows
# https://nodejs.org/ 에서 LTS 버전 다운로드
# 설치 확인
node --version
npm --versioncd version_2/backend# 가상환경 생성
python3 -m venv venv
# 가상환경 활성화
# macOS/Linux
source venv/bin/activate
# Windows (PowerShell)
.\venv\Scripts\Activate.ps1
# Windows (CMD)
.\venv\Scripts\activate.bat가상환경이 활성화되면 터미널 프롬프트에 (venv)가 표시됩니다.
pip install --upgrade pip
pip install -r requirements.txt설치되는 주요 패키지:
- FastAPI: 웹 API 프레임워크
- OpenAI: GPT-4o, Whisper, TTS API
- Ultralytics: YOLOv8 객체 탐지
- OpenCV: 이미지 처리
- SQLAlchemy: 데이터베이스 ORM
.env 파일이 이미 존재하지만, 새로 만들려면:
# .env 파일 생성
touch .env.env 파일 내용 (API 키는 본인의 키로 교체):
# OpenAI API Key (필수)
OPENAI_API_KEY=your_openai_api_key_here
# Database
DATABASE_URL=sqlite+aiosqlite:///./vision_contact.db
# Kakao API Key (선택)
KAKAO_REST_API_KEY=your_kakao_key_here
# T map API (SK Open API) (선택)
TMAP_APP_KEY=your_tmap_key_here
# Naver News API (선택)
NAVER_CLIENT_ID=your_naver_client_id
NAVER_CLIENT_SECRET=your_naver_client_secret
# OpenWeather API (선택)
OPENWEATHER_API_KEY=your_openweather_key_hereAPI 키 발급 :
- OpenAI (필수): https://platform.openai.com/api-keys
- Kakao: https://developers.kakao.com/
- TMAP (SK): https://openapi.sk.com/
- Naver: https://developers.naver.com/
- OpenWeather: https://openweathermap.org/api
# YOLO 모델 파일 위치 확인
ls ../../instructions/YOLO_model/model_file/yolov8n.pt모델 파일이 없으면 자동으로 다운로드됩니다.
cd ../frontend/vision-contact-appnpm install설치되는 주요 패키지:
- Vue 3: 프론트엔드 프레임워크
- Vite: 빌드 도구
- TypeScript: 타입 안정성
- Axios: HTTP 클라이언트
- Pinia: 상태 관리
cd version_2/backend
# 가상환경 활성화
source venv/bin/activate # macOS/Linux
# 또는
.\venv\Scripts\Activate.ps1 # Windows
# 서버 실행
python run.py백엔드 실행 확인:
- 서버 주소: http://localhost:8000
- API 문서: http://localhost:8000/docs
- 터미널에 "Application startup complete" 메시지 표시
cd version_2/frontend/vision-contact-app
# 개발 서버 실행
npm run dev프론트엔드 실행 확인:
- 개발 서버 주소: http://localhost:5173 (또는 터미널에 표시된 주소)
- 브라우저에서 자동으로 열림
# 백엔드 백그라운드 실행
cd version_2/backend
source venv/bin/activate
nohup python run.py > backend.log 2>&1 &
# 프론트엔드 실행
cd ../frontend/vision-contact-app
npm run dev# 백엔드 백그라운드 실행
cd version_2\backend
.\venv\Scripts\Activate.ps1
Start-Process python -ArgumentList "run.py" -NoNewWindow
# 프론트엔드 실행
cd ..\frontend\vision-contact-app
npm run devhttp://localhost:5173
FastAPI Swagger UI를 통해 API를 직접 테스트할 수 있습니다:
http://localhost:8000/docs
- 홈 화면: 모드 선택 (어린이, 시각장애, 차량)
- 안전모드: 실시간 객체 탐지 및 표지판 분석
- 음성 명령: 마이크 버튼으로 경로 안내, 날씨, 뉴스 조회
- 번역 모드: 실시간 음성 번역
- 레포트: 사용 기록 조회
# 가상환경이 활성화되었는지 확인
which python # macOS/Linux
where python # Windows
# 의존성 재설치
pip install -r requirements.txt# .env 파일 확인
cat .env # macOS/Linux
type .env # Windows
# API 키가 올바르게 설정되었는지 확인# macOS/Linux
lsof -ti:8000 | xargs kill -9
# Windows (PowerShell)
Get-Process -Id (Get-NetTCPConnection -LocalPort 8000).OwningProcess | Stop-Process# ultralytics 재설치
pip uninstall ultralytics
pip install ultralytics>=8.0.0
# 모델 수동 다운로드
python -c "from ultralytics import YOLO; YOLO('yolov8n.pt')"# npm 캐시 삭제
npm cache clean --force
# node_modules 삭제 후 재설치
rm -rf node_modules package-lock.json # macOS/Linux
rmdir /s node_modules & del package-lock.json # Windows
npm install# Node.js 버전 확인 (20.19.0 이상 또는 22.12.0 이상 필요)
node --version
# nvm으로 버전 변경 (nvm이 설치되어 있다면)
nvm install 20
nvm use 20# macOS/Linux
lsof -ti:5173 | xargs kill -9
# Windows (PowerShell)
Get-Process -Id (Get-NetTCPConnection -LocalPort 5173).OwningProcess | Stop-Process백엔드 서버가 실행 중인지 확인:
curl http://localhost:8000/docs- 브라우저 설정에서 카메라 권한 허용
- Chrome: 설정 > 개인정보 및 보안 > 사이트 설정 > 카메라
- Safari: 환경설정 > 웹사이트 > 카메라
- 브라우저 설정에서 마이크 권한 허용
- Chrome: 설정 > 개인정보 및 보안 > 사이트 설정 > 마이크
# 터미널에서 Ctrl + C
# 가상환경 비활성화
deactivate# 터미널에서 Ctrl + Ccd version_2/frontend/vision-contact-app
npm run build
# 빌드 결과물은 dist/ 폴더에 생성됨# 백엔드
cd version_2/backend
source venv/bin/activate
uvicorn app.main:app --host 0.0.0.0 --port 8000
# 프론트엔드 (빌드된 파일 서빙)
cd version_2/frontend/vision-contact-app
npm run preview- Python 3.11+
- FastAPI
- OpenAI API (GPT-4o, GPT-4o-mini, Whisper, TTS)
- YOLOv8 (객체 탐지)
- OpenCV (이미지 처리)
- SQLite (데이터베이스)
- Vue 3 (Composition API)
- TypeScript
- Vite
- Pinia (상태 관리)
- Axios (HTTP 클라이언트)
본 프로젝트는 다음 외부 API를 사용합니다:
- OpenAI API: 유료 (사용량 기반 과금)
- Kakao API: 무료 (일일 할당량 제한)
- TMAP API: 무료 (일일 할당량 제한)
- Naver API: 무료 (일일 할당량 제한)
- OpenWeather API: 무료 (일일 할당량 제한)