개발 배경
청각장애 학생들은 일반 교육 환경에서 여러 어려움에 직면합니다. 국립국어원의 2020년 보고서에 따르면, 전체 청각장애 학생 중 50.4%가 '수어 없는 수업의 내용을 이해하지 못한다'고 응답했습니다. 또한, 2023년 특수교육통계에 따르면 농학생 중 80.3%가 일반학교에 재학 중입니다. 이는 수어 교육의 부재와 함께 수업 참여의 어려움을 야기합니다.
이러한 문제를 해결하고자, 우리는 AI 기반 수어 인식 모델을 개발했습니다. 이 프로젝트의 주요 목적은 다음과 같습니다
- 일반학교에서 구어로 진행되는 수업에 대한 이해도 증진
- 수업 내용 중 놓친 부분의 재학습 지원
- 수업 중 자유로운 질문과 토론 참여 촉진
- 조기 수어 교육 환경 조성
기술적 접근
우리의 수어 인식 시스템은 다음과 같은 기술을 사용합니다
- TensorFlow와 Keras: 딥러닝 모델 구현
- MediaPipe: 실시간 손동작 키포인트 검출
- LSTM (Long Short-Term Memory): 시계열 데이터 처리
데이터 수집
수어 영상 (AI hub) : https://aihub.or.kr/aihubdata/data/view.do?currMenu=115&topMenu=100&aihubDataSe=realm&dataSetSn=103
AI-Hub
샘플 데이터 ? ※샘플데이터는 데이터의 이해를 돕기 위해 별도로 가공하여 제공하는 정보로써 원본 데이터와 차이가 있을 수 있으며, 데이터에 따라서 민감한 정보는 일부 마스킹(*) 처리가 되
aihub.or.kr
전처리
def process_hand_landmarks(right_hand_lmList):
joint = np.zeros((42, 2))
for j, lm in enumerate(right_hand_lmList.landmark):
joint[j] = [lm.x, lm.y]
vector, angle_label = Vector_Normalization(joint)
return np.concatenate([vector.flatten(), angle_label.flatten()])
이 함수는 MediaPipe로 검출된 손 랜드마크를 처리하고, 벡터 정규화와 각도 계산을 수행합니다.
모델학습
model = Sequential([
LSTM(64, activation='relu', input_shape=x_train.shape[1:3], kernel_regularizer=keras.regularizers.l2(0.01)),
Dropout(0.3),
Dense(32, activation='relu', kernel_regularizer=keras.regularizers.l2(0.01)),
Dropout(0.3),
Dense(len(actions), activation='softmax', kernel_regularizer=keras.regularizers.l2(0.01))
])
LSTM 층을 사용하여 시계열 데이터를 처리하고, Dense 층을 통해 최종 분류를 수행합니다.
평가 지표 그래프
Accuracy
train loss : 0.7106
val loss : 0.7648
train Ac : 0.8440
vall Acc : 0.8112
F1 Score
Last Epoch
train : 0.8384
val : 0.7856
80% 이상의 정확도를 달성 안정적인 성능, F1-Score도 0.78 이상으로 높은 수준의 정밀도와 재현율 유지
시연
깃허브 링크
https://github.com/Ghoney99/hearing_impaired_helper_make_model
'PYTHON > 딥러닝' 카테고리의 다른 글
[PYTHON] ChatGPT API (0) | 2024.04.28 |
---|---|
[PYTHON] 합성곱 신경망 (Convolutional Neural Network, CNN) (0) | 2024.04.28 |
[PYTHON] 딥러닝 분류 모델 (Classifier Model) (0) | 2024.04.28 |
[PYTHON] 딥러닝 회귀 모델 (Regression Model) (1) | 2024.04.28 |