Skip to content

2025-capstone-gimsongi/prototype

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🖐️ Dual-hand Sign Language Recognition

이 프로젝트는 양손 한국 수어를 실시간으로 인식하여 텍스트로 변환하는 시스템입니다. 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

📌 기능

  1. 데이터 수집 – save_sequence_data.py

    • 웹캠을 통해 30프레임 단위의 양손 랜드마크를 CSV로 저장

    • 샘플을 여러 번 수집하여 학습 데이터 확보

  2. 데이터 전처리 – preprocess_multiple_csv_lstm.py

    • 수집된 CSV를 불러와 (샘플, 30, 126) 형태의 NumPy 배열로 변환

    • 라벨 인코딩 및 원-핫 인코딩 수행

  3. 모델 학습 – train_lstm_model.py

    • LSTM 기반 모델을 학습하고 .h5로 저장

    • StratifiedSplit을 사용해 클래스별 균형 있는 검증 데이터 생성

  4. 모델 변환 – convert_lstm_to_tflite.py

    • 학습된 모델을 모바일/엣지 디바이스에서 사용 가능한 .tflite로 변환

  5. 문장 생성 – sentence_generator.py

    • Hugging Face 기반 한국어 LLM을 사용하여 인식된 단어들을 문장으로 변환

    • Confidence가 낮거나 반복되는 단어는 자동 필터링하여 문장 품질 향상

    • 단어들이 일정 개수 이상 누적되면 자동으로 문장 생성 후 출력

  6. 실시간 예측 – realtime_predict.py

    • 웹캠에서 양손 랜드마크를 추출하고 LSTM 모델로 단어 예측 • 예측된 단어와 정확도를 화면에 표시 • sentence_generator.py를 통해 LLM 기반 문장 생성 기능과 연동

  7. 전체 자동 실행 – run_all_dual_hand.py

    • 전처리 → 학습 → 실시간 예측까지 한 번에 실행

🚀 사용 방법

1️⃣ 데이터 수집

python save_sequence_data.py

실행 후 라벨명을 지정하면 자동으로 CSV(data/라벨_sequences.csv)에 저장됩니다.

2️⃣ 데이터 전처리

python preprocess_multiple_csv_lstm.py

3️⃣ 모델 학습

python train_lstm_model.py

4️⃣ 실시간 예측 및 문장 생성

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

📱 TFLite 변환

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 사용

• 한국 수어 양손 데이터 기반

• 학습 후 다양한 수어 단어 확장 가능

About

수어 통역 프로토타입

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages