-
Neural Sign Language Translation based on Human Keypoint Estimation수화 프로젝트 2021. 9. 13. 12:20
1. Introduction
- Sign language recognition & translation : visual language를 구어로 해석하는 것
* 수화 특징
- 수화는 고유한 문법으로 손의 모양과 움직임을 통해 언어적 의미를 나타냄
- 얼굴의 표현으로 감정과 특정한 의도를 표현함
- 많은 수화는 손과 얼굴 표정의 연속적인 표현으로 구어의 단어와 문장을 표현
- 손(손가락) 언어는 한 손 모양으로 알파벳의 각 문자를 표현
- 즉, 같은 의도여도 수화로 표현하는 것에는 셀 수 없을 정도로 많은 조합 존재
* 문제점
- 수화를 이해하는 것은 높은 수준의 spatial & temporal 지식이 요구됨
- 현재 인공 신경망 기반 컴퓨터 비전 수준으로는 어려운 테스크
- 거기다 인공 신경망을 학습할 데이터의 부족도 문제점
* 본 연구
- 청각 장애를 가진 11명의 전문 signer를 통해 한국어 수화 데이터셋 구축
- 다양한 긴급 상황에 관련된 419 단어, 105 문장의 high-resolution 비디오 포함
- 양 손, 포즈, 얼굴의 사람 키포인트를 기반으로 한 수화 번역 시스템 구축
- 데이터셋의 크기가 충분히 크지 않은 것을 고려했을 때 강건한 성능을 보임
2. Related Work
-
-
3. KETI Sign Language Dataset
- 다양한 긴급 상황에서 청각 장애가 있는 사람들의 한국어 수화를 이해하기 위해 구축됨
- 긴급 상황에 관련된 일반적인 대화를 검토하여 최종적으로 유용한 105개 문장과 419개 단어를 선정함
- 11578 full high definition (HD) 비디오로 구성됨
- 초당 30 프레임, 앞과 옆 2개의 카메라 각도로 녹화
- Dataset is recorede by the designed corpus (?)
- 11명의 청각 장애가 있는 signer로부터 수행
- 각각의 signer는 총 1048개의 비디오를 녹화함
- 학습 데이터 9명, 검증 데이터 1명, 테스트 데이터 1명으로 구성
- 모든 수화 비디오에 해당하는 gloss sequence를 주석으로 달았음
- Gloss : 수화를 기록하기 위해 사용되는 단어 부호에 일치하는 고유한 단어
ex) 'I am burned' -> ('FIRE', 'SCAR')
'A gouse is on fire' -> ('House', 'FIRE')
- Gloss는 같은 의미의 다양한 자연어 문장이나 단어로 표현될 수 있기 때문에 부호에 주석으로 달리는 것이 적절함
- 한국어 수화 전문가들의 도움을 받아 모든 표기에 gloss 주석을 달았음
- KETI 데이터셋은 청각 장애인들과의 의사소통을 위해 인공지능 기반 수화 인식기 또는 번역기를 개발하기 위해 사용
- 원치 않은 영향을 최소화하기 위해 블루 스크린 스튜디오에서 녹화
4. Our Approach
- 사람 키포인트를 기반으로 한 sign recognition 시스템 제안
- 사람 키포인트를 추정하기 위해 pre-existing library인 OpenPose 이용
- OpenPose는 실시간 다인 키포인트 탐지를 위한 오픈소스 툴킷
- OpenPose는 몸 포즈에서 18개, 양 손에서 각각 21개, 얼굴에서 70개, 총 130개의 키포인트를 추정함
4.1. Human Keypoint Detection by OpenPose
- 사람 몸만 감지하기 때문에 다양한 어수선한 배경에서도 강건함
- 추출된 키포인트의 variance가 무시해도 될 정도이기 때문에 signer에 상관없이 잘 작동
- Signer에 의존적인 variance를 줄이기 위해 vector standardization 테크닉 적용
- Keypoint detection 시스템이 발전하면 본 연구의 시스템도 그 이점을 누릴 수 있음
- 데이터셋이 충분히 크지 않을 때 고차원의 feature를 사용하는 것은 필수적
- 특히 수화 데이터셋은 수집하기가 더 어려움
4.2. Feature Vector Noramlization
- 적은 데이터로 수화 번역 할 때 가장 문제점은 signer에 따라 같은 수화여도 다르게 보여 visual variance가 크다는 것
- 이를 해결하기 위해 object 2D normalization 적용
- 키포인트의 x축, y축 벡터를 순서를 유지한 채 따로 수집
- 데이터의 variance를 줄이기 위해 평균과 표준편차를 이용하여 feature vector를 normalize
- 각 축에서 normalized vector를 concatenate하여 최종 feature vector 생성, 이를 neural network의 input으로 넣음
- 몸의 아래부분은 수화 번역에 불필요하므로 OpenPose가 감지한 137개의 키포인트 중 124개 이용
- 각 수화 비디오로부터 10부터 50개의 keyframe을 랜덤하게 샘플링
- input feature vector의 차원은 248 x |V| ( |V|는 10,20,30,40,50 중 하나 )
4.3. Frame Skip Sampling for Data Augmentation
- 학습 데이터를 증가시키기 위해 비디오 데이터를 처리할 때 자주 사용되는 random frame skip sampling 이용
- 비디오에서 multiple representative feature를 랜덤하게 추출함
: 수화 비디오 데이터 / l : 프레임 수
- 고정된 수의 프레임을 랜덤하게 선택
: 프레임 사이 갭의 평균 길이를 계산
- Baseline sequence
- Random sequence
4.4. Attention-based Encoder-Decoder Network
- 기계 번역에서 LSTM, GRU와 같은 RNN 아키텍쳐 기반의 encoder-decoder framework가 주목받고 있음
- Encoder가 input sentence을 처리하면 sequence를 대표하는 고정된 길이의 contect vector를 생성함
- Decoder는 이전에 예측한 단어와 encoder의 context vector를 조건으로 하여 다음 단어를 예측함
* Bahdananu attention
- 고정된 길이의 context vector가 번역 모델의 성능을 향상시키는 데에 bottleneck이라고 추측
- Encoder의 hidden state로부터 관련된 부분을 자동적으로 찾아줌으로써 context vector를 계산하는 것을 제안
- 이러한 attention mechanism은 매우 유용
* Luong attention
- Bahdananu와 거의 유사하지만 몇몇 디테일이 다름
- Encoder, decoder의 top RNN layer의 hidden state만 사용
- computation path 단순화
- Hidden state 사이의 alignment 정도를 계산하기 위한 3가지 scoring function 제안
* Multi-head attention (Transformer)
- 어떠한 recurrence와 convolution도 없는 오로지 attention mechanism에만 기반으로 한 새로운 아키텍처
- 가장 큰 특징은 multi-head attention
1. Encoder-decoder attention
2. Encoder self-attention
3. Decoder self-attention
- Sequence에서 단어의 상대적/절대적인 위치에 대한 정보를 포함하기 위해 positional encoding 이용
5. Experimental Results
- PyTorch 이용
- Dropout regularization 이용
- Vanilla seq2seq model과 2개의 attention-based model의 hidden state 차원은 256로 설정
- Transformer의 input과 output 차원도 256로 설정
- 선택된 frame 수는 50
- 한국어는 교착어이기 때문에 주석 문장에 대한 morpgological 분석이 수행됨
- 한국어 문장을 POS level로 토큰화하기 위해 KoNLPy의 Kkma part-of-speech tagger 이용
- 기본적으로 accuracy 계산
- 기계 번역 모델의 성능을 평가하기 위한 대표적인 metric 이용 : BLEU, ROUGE-L, METEOR, CIDEr
* Sentence-level vs Gloss-level training
- 다양한 타입의 주석을 이용했을 때 번역 성능 비교
- Gloss-level 번역이 더 나은 성능 보임
- 이는 각 수화가 여러개의 자연어 문장과 일치하는 반면, 유일한 하나의 gloss sequence와 일치하기 때문
* Effect of feature normalization methods
- OpenPose에 의해 추정된 사람 키포인트의 효과를 평가하기 위해 5가지 케이스를 비교함
1) no normalization
2) feature normalization
3) object noramlization
4) 2-dimensional normalization
5) object 2D normalization
- feature normalization은 전체 feature의 평균과 표준 편차로 normalize
- object normalization은 양 손, 몸, 얼굴 각각 normalize
- 2D normalization은 x축, y축 각각 normalize
- 본 연구에서 제안한 object 2D normalization method가 가장 우수
* Effect of augmentation factor
- Random frame skip sampling의 data augmentation 효과를 검증
- 하나의 수화 비디오로부터 랜덤하게 샘플링되는 training sample의 수를 augmentation factor라고 부름
- 최적의 augmentation factor는 50
- 하나의 수화 비디오의 평균 frame 수는 200 이상이므로 frame 사이 갭의 평균 길이는 4 이상
- 확률적으로 정확히 같은 training sample을 가질 확률은 굉장히 낮음
* Effect of attention mechanisms
- 4종류의 encoder-decoder 아키텍쳐 비교
- Luong et al.의 attention-based model과 Transformer 사이의 명확한 대조 확인 가능
- Luong et al.의 모델이 validation set에서 더 나은 성능을 보임
- Transformer가 test set에서 더 나은 성능을 보임
* Effect of the number of sampled frames
- 효과적으로 불필요한 frame들을 스킵하여 계산 비용을 줄이기 위하여 최적의 frame 수를 아는 것은 중요
- Variable-length input sequence와도 sequence-to-sequence 모델은 작동하므로 sampled frame수를 고정할 필요 없음
- 그러나 vanishing gradient 문제때문에 번역 성능은 감소하는 경향이 있으므로 최적의 frame 수를 아는 것은 중요
- 실험 결과 최고의 번역 성능을 위한 최적의 frame 수는 validation set에서 30, test set에서 50
* Effect of batch size
- 최근 작은 batch size으로 학습했을 때 test set에 더 잘 일반화 된다는 의견 받아들여지고 있음
- 본 연구에서는 반대 결과
5.1. Ablation study
- 양 손, 몸, 얼굴의 키포인트 정보의 사용의 효과를 연구
- 양 손의 키포인트 정보가 가장 중요함
- 얼굴의 키포인트 정보는 일반적으로 성능 향상에 도움이 되지 않음, 심지어 성능이 하락함
- 이것은 아마 얼굴의 키포인트 수가 70개로 다른 것에 비해 훨씬 커서 불균형하기 때문?
- 몸의 12개의 키포인트가 성능을 boosting up
- 각 파트를 따로따로 normalize 하기 때문에 상대적인 위치에 대한 정보를 잃음
- 하지만 몸의 키포인트로부터 상대적인 위치를 아는 것이 가능함
6. Conclusion
- 한국어 구어로 수동으로 주석이 달린 새로운 수화 데이터셋 도입
- Sequence-to-sequence 번역 모델 기반의 neural sign language translation model 제안
- 저차원의 수화 비디오에서 고차원의 특징을 추출하는 것은 불가피함
- OpenPose에 의해 추정된 사람 키포인트를 기반으로 한 새로운 수화 번역 시스템을 성공적으로 학습시킴
- 비디오의 공간적 특성을 이용한 데이터 확대 기법을 활용하여 수화 번역 시스템을 개선하는 것을 목표로 함
- KETI 수화 데이터셋을 확장하는 것도 중요
본 논문 : Ko, S. K., Kim, C. J., Jung, H., & Cho, C. (2019). Neural sign language translation based on human keypoint estimation. Applied Sciences (Switzerland), 9(13). https://doi.org/10.3390/app9132683
'수화 프로젝트' 카테고리의 다른 글
[논문 리뷰] Spatial-Temporal Multi-Cue Network for Continuous Sign Language Recognition (0) 2021.08.13