한국 수어(KSL)를 실시간으로 분석해 여 자연스러운 한국어 문장으로 변환해주는 서비스
이 프로젝트는 청각장애인과 비청각장애인 사이의 언어 장벽을 낮추기 위해 개발되었습니다. 단순히 수어 단어를 나열하는 것에 그치지 않고, 딥러닝 모델로 인식된 단어 시퀀스를 LLM(GPT)이 문맥에 맞는 자연스러운 문장으로 재구성합니다.
[데이터 수집] → [전처리 파이프라인] → [앙상블 모델 학습] → [실시간 인식 및 GPT 문장 생성]
(1,210개 영상) (속도/공간 정규화) (96.69% 정확도) (OpenAI API 연동)
-
고정밀 앙상블 모델: 4가지 서로 다른 아키텍처(CNN, Attention, Transformer, Hybrid)를 결합하여 **96.69%**의 높은 테스트 정확도를 달성했습니다.
-
강건한 전처리 기술:
-
속도 정규화: 사용자마다 다른 수어 속도를 30프레임으로 리샘플링하여 동일하게 인식합니다.
-
공간 정규화: 어깨 너비를 기준으로 거리 데이터를 정규화하여 체격 차이를 보정합니다.
-
실시간 연속 인식: 5프레임 단위의 빠른 예측 스트라이드를 통해 끊김 없는 인식이 가능합니다.
-
자연어 문장 생성:
나→영화→보다와 같은 단어 나열을"나는 영화를 본다."와 같은 완성된 문장으로 변환합니다.
- 언어: Python
- 프레임워크: TensorFlow, Keras
- 컴퓨터 비전: OpenCV, MediaPipe (손 및 포즈 랜드마크 추출)
- 자연어 처리: OpenAI GPT-4o mini API
- 데이터 구성: 67개 수어 클래스, 2,420개 학습 샘플 (미러링 증강 포함)
| 모델 버전 | 아키텍처 특징 | 주요 장점 |
|---|---|---|
| V1 | Multi-scale Temporal CNN | 다양한 시간적 스케일(Dilation) 포착, 속도 변화에 강건 |
| V2 | CNN + Attention | Global Average/Max Pooling 병렬 구조로 중요 피처 강조 |
| V3 | Transformer | Self-attention을 통한 장거리 시퀀스 의존성 학습 (가중치 최대) |
| V4 | Hybrid (CNN + Transformer) | 지역적 패턴(CNN)과 전역적 문맥(Transformer)의 결합 |
# 저장소 클론
git clone https://github.com/soyyoon/Sign2Talk.git
cd Sign2Talk
# 필수 패키지 설치
pip install opencv-python mediapipe tensorflow numpy pillow openai
GPT 문장 생성 기능을 위해 OpenAI API 키가 필요합니다.
export OPENAI_API_KEY='your-api-key-here'
- 단순 단어 인식 모드:
python webcam.py - 연속 인식 및 문장 생성 모드:
python webcam_space.py
Sign2Talk/
├── data_preprocessing.py # 속도/공간 정규화 및 증강 로직
├── training_model.py # 4개 모델 학습 및 앙상블 가중치 최적화
├── webcam_space.py # 실시간 연속 인식 및 GPT 연동 메인 파일
├── models/ # 학습된 .keras 모델 및 가중치 파일
├── mean.npy / std.npy # 데이터 정규화용 통계값
└── class_names.json # 67개 수어 라벨 정보
- 테스트 정확도: 96.69%
- 인식 속도: 약 0.2초 (단어 단위)
- 문장 생성 속도: 1~2초 내외
- 실시간 프레임: 25-30 FPS
- 감정 분석: 표정 인식을 통한 문장의 감정 톤(Tone) 조절
- 양방향 소통: 음성을 수어 애니메이션이나 텍스트로 변환하는 기능 추가
- 데이터셋 확장: 더 다양한 일상 대화 카테고리 추가