이 프로젝트는 양손 한국 수어를 실시간으로 인식하여 텍스트로 변환하는 시스템입니다. Mediapipe를 이용해 손 관절 데이터를 추출하고, LSTM 모델을 학습해 손동작을 분류합니다. 학습된 모델은 실시간 웹캠 영상에서 양손 동작을 인식하고 결과를 출력합니다.
📦 project
├── convert_lstm_to_tflite.py # 학습된 모델을 TFLite로 변환
├── preprocess_multiple_csv_lstm.py # 수집된 CSV 데이터 전처리
├── realtime_predict.py # 실시간 양손 수어 인식 + 문장 생성
├── requirements.txt # 필요한 패키지 목록
├── run_all_dual_hand.py # 전체 파이프라인(전처리 → 학습 → 예측) 실행
├── save_sequence_data.py # 카메라로 수어 데이터 수집
├── train_lstm_model.py # LSTM 모델 학습
├── sentence_generator.py # LLM 기반 문장 생성 모듈
├── data/ # CSV 원본 데이터 저장
├── processed_lstm/ # 전처리된 NumPy 배열 및 LabelEncoder 저장
└── models/ # 학습된 모델 및 TFLite 파일 저장git clone https://github.com/2025-capstone-gimsongi/prototype.git
cd prototype
# 가상환경 권장
pip install -r requirements.txt-
데이터 수집 – save_sequence_data.py
• 웹캠을 통해 30프레임 단위의 양손 랜드마크를 CSV로 저장
• 샘플을 여러 번 수집하여 학습 데이터 확보
-
데이터 전처리 – preprocess_multiple_csv_lstm.py
• 수집된 CSV를 불러와 (샘플, 30, 126) 형태의 NumPy 배열로 변환
• 라벨 인코딩 및 원-핫 인코딩 수행
-
모델 학습 – train_lstm_model.py
• LSTM 기반 모델을 학습하고 .h5로 저장
• StratifiedSplit을 사용해 클래스별 균형 있는 검증 데이터 생성
-
모델 변환 – convert_lstm_to_tflite.py
• 학습된 모델을 모바일/엣지 디바이스에서 사용 가능한 .tflite로 변환
-
문장 생성 – sentence_generator.py
• Hugging Face 기반 한국어 LLM을 사용하여 인식된 단어들을 문장으로 변환
• Confidence가 낮거나 반복되는 단어는 자동 필터링하여 문장 품질 향상
• 단어들이 일정 개수 이상 누적되면 자동으로 문장 생성 후 출력
-
실시간 예측 – realtime_predict.py
• 웹캠에서 양손 랜드마크를 추출하고 LSTM 모델로 단어 예측 • 예측된 단어와 정확도를 화면에 표시 • sentence_generator.py를 통해 LLM 기반 문장 생성 기능과 연동
-
전체 자동 실행 – run_all_dual_hand.py
• 전처리 → 학습 → 실시간 예측까지 한 번에 실행
1️⃣ 데이터 수집
python save_sequence_data.py실행 후 라벨명을 지정하면 자동으로 CSV(data/라벨_sequences.csv)에 저장됩니다.
2️⃣ 데이터 전처리
python preprocess_multiple_csv_lstm.py3️⃣ 모델 학습
python train_lstm_model.py4️⃣ 실시간 예측 및 문장 생성
python realtime_predict.py예측된 단어와 Confidence가 일정 수준 이상일 때만 단어 리스트에 추가
단어가 일정 개수 이상 쌓이면 자동으로 한국어 문장 생성
5️⃣ 전체 파이프라인 실행
python run_all_dual_hand.py• 입력: (30, 126) → 30프레임, 양손 랜드마크 42개 × 3좌표
• 네트워크: LSTM(64) → Dropout(0.3) → Dense(softmax)
• 출력: 클래스 수만큼 확률 벡터
• 손실 함수: categorical_crossentropy
• Optimizer: Adam
python convert_lstm_to_tflite.py• models/gesture_lstm_model_dual.tflite 생성
• 모바일/엣지 디바이스에서 실행 가능
• sentence_generator.py는 Hugging Face 한국어 LLM(skt/kogpt2-base-v2 또는 Kollama-2) 기반으로 동작
• transformers 라이브러리를 사용하여 단어 → 자연스러운 문장 변환
• 토큰 반복 방지, Confidence 필터링, 반복 단어 제한 로직 적용
• Mediapipe Hands API 사용
• 한국 수어 양손 데이터 기반
• 학습 후 다양한 수어 단어 확장 가능