Neural Sign Language Translation based on Human Keypoint Estimation
(인간의 키포인트 추정을 기반으로 하는 수화 번역 시스템)
https://arxiv.org/pdf/1811.11436v1.pdf
Abstract
컴퓨터 비전 분야의 많은 문제 : 심층 신경망 모델을 훈련하기 위해 엄청난 양의 데이터 세트가 필요하다는 것
수화 번역 문제는 수준 높은 훈련 자료를 수집하기가 훨씬 더 어렵기 때문에 상황은 훨씬 더 심각하다.
본 논문에서는
고해상도 및 화질의 11,578개의 비디오로 구성된 KETI 수화 데이터 세트를 사용 -> 얼굴, 손 및 신체 부위에서 추출한 인간 키포인트 활용 -> 수화 비디오를 자연어 문장으로 변환하기 위한 신경망 모델 개발
획득한 인간 키포인트 벡터 : 키포인트의 평균 및 표준 편차에 의해 정규화. 시퀀스 투 시퀀스 아키텍처를 기반으로 변환 모델에 대한 입력으로 사용
비상 상황에서 사용할 수 있는 105개의 문장에 대해 validation/test set에서 각각 94.6/60.6(%)의 번역 정확도를 달성한다.
1. Introduction
수화 인식 또는 번역은 독립적인 문법을 가진 시각 언어를 구어로 해석하는 학문이다.
시각 언어는 이 문법에 따라 손과 얼굴 표정에 대한 다양한 정보를 결합하여 정확한 의미를 제시한다.
이 문제는 컴퓨터 비전에 있어서 도전적인 주제이며 청각 장애인들에게 중요한 주제이다.
최근 몇 년 동안, 순환 신경 네트워크(RNN), 장기 단기 메모리(LSTM) 아키텍처 및 게이트 순환 장치(GRU)는 기계 번역 및 이미지 캡션과 같은 시퀀스를 모델링하고 시퀀스를 해결하기 위한 필수 접근법으로 주로 사용되어 왔다.
컨볼루션 신경망(CNN)은 이미지 분류, 객체 감지, 의미 분할 및 동작 인식과 같은 다양한 시각적 작업에서 우수한 성능을 보관한 강력한 모델이다.
독특한 문법을 가진 수화는 손의 모양과 움직임, 게다가 감정과 특정한 의도를 나타내는 얼굴 표정을 통해 언어적 의미를 표현하므로 높은 수준의 공간적, 시간적 지식을 요구하는 수화를 이해하는 것은 현재 수준의 신경망 기반 컴퓨터 비전 기술로는 어렵다.
dataset
- 청각장애인인 11명의 전문 수화인으로부터 수집한 한국 수화
- 419개의 단어와 105개의 문장에 해당하는 한국 수화를 기록한 고해상도 비디오로 구성
- 인간의 손, 포즈, 얼굴의 키포인트를 바탕으로 수화 번역 시스템을 제시
- 크기가 충분히 크지 않다는 점을 고려하면 강력한 성능
2. Related Work
알파벳의 문자를 한 손으로 설명하는 데 사용되는 '손 언어'를 인식하는 많은 접근법이 있어왔다.
일반적으로, 연구원들은 수화를 인식하기 위해 양손의 움직임과 모양에 의존한다.
(스타너 외) 은닉 마르코프 모델(HMM)에 기반한 실시간 시스템을 개발하여 문장 수준의 ASL을 인식하였다.
두 가지 실험 결과 : 첫 번째 실험에서 손의 추적을 더 쉽게 하기 위해 단색의 장갑을 사용했고 두 번째 실험은 장갑 없이 수행되었다. 장갑 기반 시스템의 단어 정확도는 99.2%이지만 장갑을 사용하지 않을 경우 정확도는 84.7%로 떨어진다고 주장했다. 인식 오류를 검토하기 위해 문법과 장갑이 없는 단어 정확도는 74.5%이다.
(Forster 외) 수화와 동시에 제공되는 자막을 사용하여 TV 방송과 같이 주석이 약한 데이터에서 수화를 자동으로 학습하는 접근법이 있었다. 이러한 지시에 따라 독일 공영 TV에서 녹화된 날씨 예보와 광택과 문장 수준에 시간 경계를 표시한 광택과 자연어 문장을 사용하여 수동으로 주석을 달 수 있는 RWTH-PHOENix-Weather 2012 및 확장 버전 RWTH-PHOENix-Weather 2014를 출시했다.
(Koller 외) RWTHHOENIX-Weather 말뭉치를 기반으로, 서로 다른 수화자에 걸쳐 대량의 어휘 연속 수화 인식을 수행하는 통계적 접근법을 제시하였다. 손 모양, 방향 및 위치, 상체 포즈, 입가심, 눈썹, 시선 등 얼굴 표정 등 다양한 정보 흐름을 활용하는 연속 수화 인식 시스템을 개발했다.
최근까지 딥러닝(DL)을 이용해 수화를 인식하고 번역하려는 시도가 많았다.
- sequence-to-sequence (seq2seq) 모델
LSTM 또는 GRU와 같은 RNN 셀이 있는 인코더-디코더 모델이라는 공통 프레임워크에 의존한다.
거의 인간 수준의 성능을 달성함으로써 많은 시퀀스 생성 작업에서 그 효과를 입증했다.
그럼에도, 고정 크기 벡터로 표현되는 다양한 길이의 입력 시퀀스와 먼 파트 간의 장기적 의존성으로 인한 사라지는(vanishing) gradient와 같은 몇 가지 단점이 여전히 있다.
(캠고즈 외) 타겟 시퀀스와 수화 비디오에 대한 단어 및 공간 임베딩으로 기존의 신경 기계 번역(NMT) 프레임워크를 기반으로 수화 번역을 공식화했다. 수화 비디오에서 추출된 비선형 프레임은 2D CNN을 통해 공간 표현으로 변환된 후 토큰화된다.
시퀀스 투 시퀀스(seq2seq) 기반 딥 러닝 방법은 수화의 시공간 표현을 구어 또는 문어로 변환하는 방법을 학습한다.
최근, 연구원들은 주어진 수화 비디오를 미리 결정된 클래스 중 하나로 분류하는 양방향 GRU에 기반한 간단한 수화 인식 시스템을 개발했다.
3. KETI Sign Language Dataset
KETI dataset
1. 청각 장애인이 상황에 대처하기 어렵고 때로는 심각한 상태에 있기 때문에 다양한 응급상황에서 한국 수화를 이해할 수 있도록 구성되었다.
2. 비상 상황에서 일반적인 대화로 많이 사용되는 105개의 문장과 419개의 단어를 선택했다.
3. 초당 30프레임과 전면 및 측면의 두 카메라 각도로 녹화하는 11,578개의 HD 비디오로 구성된다.
4. 설계된 말뭉치에 의해 기록되며 11명의 청각 장애인 수화자가 비장애인의 표현 오류를 제거하기 위해 수행한 문장과 단어를 포함하고 있다. 각 수화인은 데이터 세트에 대해 총 1,048개의 비디오를 녹화한다.
5. train set은 11명의 수화인 중 10명을 선택했고, 각 수화에 대해 9개의 수화 비디오를 선택했다. 나머지 수화 비디오는 val set에 할당했다. test set은 train, val set에 존재하지 않는 단일 수화자로 구성한다.
6. 위급한 상황에서 유용한 문장에 해당하는 105개의 문장을 각각 한국어로 된 5개의 다른 자연어 문장으로 주석을 달았다.
모든 수화 비디오에 해당하는 글로스 순서로 주석을 달았다. 글로스는 수화 단위에 해당하고 수화를 쓰는데 사용되는 고유한 단어이다.
한국 수화 전문가들의 도움을 받아 모든 표기에 글로스를 첨가했다.
글로스는 같은 의미의 다양한 자연스러운 문장이나 단어로 표현될 수 있다.
예) 'A house is on fire' 문장의 글로스인 'HOUSE' , 'FIRE'를 수화에 주석으로 단다.
7. 인공지능 기반 수화 인식기 또는 번역기를 개발하는 데 사용된다.
8. 원치 않는 영향을 최소화하고 데이터가 충분하지 않은 수화를 인식하거나 변환하는 방법을 학습하기 위해 모든 비디오가 블루 스크린 스튜디오에 녹화된다.
4. Our Approach
기존 라이브러리에서 추정하는 인간 키포인트에 기초한 부호 인식 시스템을 제안한다.
실시간 다중 사용자 키포인트 탐지를 위한 오픈 소스 툴킷인 OpenPose를 기반으로 시스템을 개발한다.
OpenPose는 18개의 키포인트가 몸 자세에서, 21개의 키포인트가 양손에서, 70개의 키포인트가 얼굴에서 나오는 총 130개의 키포인트를 추정할 수 있다.
수화 인식을 위한 기능 추출기로 OpenPose를 선택하는 주된 이유는 OpenPose가 많은 유형의 변형에 강하기 때문이다.
4.1 Human Keypoint Detection by OpenPose
첫째, 인식 시스템은 인체만 감지하기 때문에 서로 다른 어수선한 배경에서 견고하다.
둘째, 추출된 키포인트의 분산은 무시할 수 있기 때문에 인간 키포인트 탐지에 기반한 시스템은 수화자에 관계없이 잘 작동한다. 또한, 서명자에 의존하는 분산을 더욱 줄이기 위해 벡터 표준화 기법을 적용한다.
셋째, 우리 시스템은 다용도로 인해 향후 잠재력이 큰 키포인트 감지 시스템 개선의 이점을 누릴 수 있다. 예를 들어, 인간 키포인트 탐지 시스템은 관련 데이터 세트가 보안되어 있는 경우 다양한 인간의 행동과 행동을 인식하는 데 사용될 수 있다.
넷째, 데이터 세트의 규모가 충분하지 않을 경우 고급 기능을 사용해야 한다. 수화 데이터셋의 경우 양질의 수화 동영상 녹화에 전문 수화인을 많이 활용해야 하기 때문에 다른 데이터셋보다 수집하기가 더 어렵다.
4.2 Feature Vector Normalization
훈련 프로세스의 안정성과 속도 향상을 달성하기 위해 다양한 유형의 표준화 방법을 채택하려는 많은 성공적인 시도가 있었다.
작은 데이터 세트를 사용한 수화 번역의 주요 어려움 중 하나는 동일한 수화가 수화자에 따라 매우 다르게 보일 수 있기 때문에 시각적 차이가 크다는 것이다. 인체의 키포인트를 추정하여 얻은 피처 벡터를 활용하더라도 프레임 내 키포인트의 절대 위치나 신체 부위의 척도는 매우 다를 수 있다.
-> 우리는 객체 2D 정규화라는 특별한 정규화 방법을 적용한다. 높은 수준의 인간 키포인트를 추출한 후 벡터의 평균 및 표준 편차를 사용하여 형상 벡터를 정규화하여 데이터의 분산을 줄인다.
- 인간의 단일 키포인트를 나타내는 n개의 각 요소 (vi)로 구성된 2D 피쳐 벡터 V = (v1, ,,, vn)
- 각 원소 vi는 비디오 프레임에서 키포인트 vi의 x-와 y-를 나타내는 vi x , vi y 두 정수로 구성된다.
- 2D 피쳐 벡터 V에서 항상 두 피쳐 벡터를 추출할 수 있다.
- 키포인트의 x좌표와 y좌표를 따로 수집한 후, x 좌표 벡터 Vx를 정규화한다. Vy도 똑같이 계산.
- 마지막으로, 신경망의 입력 벡터로 사용될 최종 피쳐 벡터 V* = [V x * ; V y *] 를 형성하기 위해 정규화된 두 벡터를 연결하는 것이 남아있다.
하체의 키포인트는 수화 인식에 필요하지 않으므로 OpenPose가 감지한 137개의 키포인트에서 양발, 무릎 같은 6개의 하체 키포인트를 제외한 124개의 키포인트만 사용한다.
각 수화 비디오에서 무작위로 10~50개의 키 프레임을 샘플링한다.
따라서, 입력 피쳐 벡터의 차원은 248 × |V|, |V| ∈ {10, 20, 30, 40, 50} 이다.
4.3 Frame Skip Sampling for Data Augmentation
작은 데이터 세트로 신경망을 훈련할 때 가장 큰 여러움은 훈련된 모델이 val/test set의 데이터로 잘 일반화되지 않는다는 것이다.
train 데이터를 증강하기 위해 비디오 분류와 같은 비디오 데이터를 처리하는 데 일반적으로 사용되는 랜덤 프레임 스킵 샘플링을 활용하여 비디오의 여러 가지 대표적인 특징을 무작위로 추출한다.
f1부터 fl까지의 l개의 프레임을 포함하는 수화 비디오 S = (f1, f2, . ., fl)가 주어지면 고정된 프레임 수(예: n)를 무작위로 선택한다. 그런 다음 먼저 프레임 간 간격의 평균 길이를 계산합니다.
먼저 다음 시퀀스 Y = (y, y + Z, y + 2z ,,,,, y + (n - 1)z)에서 지수를 가진 프레임 시퀀스를 추출한다.
임의의 정수 시퀀스 R = (r1, r2, . . rn)을 생성하고 랜덤 시퀀스와 기준 시퀀스의 합을 계산한다.
마지막 인덱스 값은 [1, l] 범위의 값으로 클리핑됩니다.
우리는 수화의 '키' 모멘트를 포함하지 않을 수 있는 프레임의 무작위 시퀀스를 생성하지 않기 위해 길이 l의 임의의 시퀀스를 선택하는 대신 기준 시퀀스에서 시작한다.
4.4 Attention-based Encoder-Decoder Network
LSTM 또는 GRU와 같은 RNN 아키텍처를 기반으로 하는 인코더-디코더 프레임워크는 통계 기계 번역 방법을 성공적으로 대체하면서 신경 기계 번역에 대한 인기를 얻고 있다.
입력 문장 x가 주어지면 인코더 RNN은 LSTM 셀이며 q는 시퀀스 페이퍼에 원래 시퀀스 중 하나의 마지막 hidden state hTx를 반환한다.
y = (y1, y2, . ., yTy )가 훈련 세트의 입력 문장 x에 해당하는 출력 문장이라고 가정한 다음,
디코더 RNN은 이전에 예측한 모든 단어와 인코더 RNN의 context 벡터 (c)에 대해 조건화된 다음 단어를 예측하도록 훈련된다.
다시 말해서, 디코더는 joint 확률을 정렬된 조건부로 분해하여 y의 각 조건부 확률을 계산한다.
si : 시간 i에서 디코더 RNN의 hidden state
g : 어휘 크기 벡터를 출력하는 선형 변환
yi-1 : 이전에 예측한 단어
si-1 : 디코더 RNN의 마지막 hidden state
c : 인코더 RNN에서 계산된 context 벡터
Bahdanau attention.
Bahdananu 바다나우 외
고정 길이 컨텍스트 벡터 c가 번역 모델의 성능을 향상시키는 데 병목 현상이라고 추측
인코더의 hidden state에서 관련 파트를 자동으로 검색하여 컨텍스트 벡터를 계산할 것을 제안했다.
실제로 이 'attention' 메커니즘은 다양한 작업에 유용하지만 기계 번역에 국한되지 않는 것으로 입증되었다.
동적으로 계산된 상황에 따라 시간 i에 각 조건부 확률을 정의하는 새로운 모델을 제안
'score' 함수 : 인코더와 디코더의 두 hidden states가 각각 얼마나 잘 일치하는지 계산하는 정렬 함수
예를 들어, score(si, hj)는 시간 i에서 인코더의 hidden state이고, hj는 시간 j에서 디코더의 hidden state이며, 위치 i를 중심으로 입력 문장의 파트를 정렬할 확률을 의미한다.
Luong attention.
Luong 외. Bahdananu attention 메커니즘과 매우 유사하지만 일부 세부 사항은 다른 새로운 주의 메커니즘을 조사했다.
첫째, 양방향 인코더의 전방 및 후방 hidden state와 단방향 non-stacking 디코더의 hidden state를 연결하는 대신
인코더와 디코더 모두에서 상위 RNN 계층의 hidden state만 사용된다.
둘째, 현재 time step에서 디코더의 hidden state를 계산한 후 attention 매트릭스를 계산하여 계산 경로를 단순화한다.
Concat을 기반으로 한 세 번째 것은 원래 Bahdanau가 제안했다는 점에 유의한다.
Multi-head attention (Transformer).
이전의 인코더-디코더 아키텍처가 RNN 셀을 기반으로 하는 반면, Vaswani 외 연구진들은 어떠한 반복recurrence과 합성convolutions 없이 attention 메커니즘에만 기반을 둔 완전히 새로운 네트워크 아키텍처를 제안했다.
트랜스포머의 가장 중요한 특징은 세 가지 다른 방법으로 사용되는 multi-head attention
1. Encoder-decoder attention : 디코더의 각 위치는 입력 시퀀스의 모든 위치에 걸쳐 있을 수 있습니다.
2. Encoder self-attention : 인코더의 각 위치는 인코더의 이전 계층의 모든 위치에 걸쳐 있을 수 있습니다.
3. Decoder self-attention : 디코더의 각 위치는 디코더의 모든 위치까지 이동할 수 있습니다.
Transformer는 반복recurrence도 합성convolutions도 사용하지 않으므로 모델에는 시퀀스의 순서에 대한 정보가 필요하다. 이 문제를 해결하기 위해 트랜스포머는 사인 및 코사인 함수를 사용하여 시퀀스에서 단어의 상대/절대적 위치에 대한 정보를 포함하는 위치 인코딩을 사용한다.
5. Experimental Results
- PyTorch 사용
- 초기 learning rate 0.001, epoch 50에서 네트워크 가중치와 편향을 훈련시키는 데 Adam optimizer 사용
- train 할 때 learning rate 0.5를 가진 exponential지수적 decay붕괴 scheduler스케줄러에 의해 epoch 20마다 학습률을 변경
- 0.8 확률의 dropout 정규화와 임계값 5의 gradient clipping을 사용
- 딥러닝 훈련을 위해 특화된 다른 데이터셋에 비해, 데이터셋의 크기와 변화가 작기 때문에 dropout 정규화는 반드시 높다.
- 일반적인 seq2seq 모델과 두 attention 기반 모델을 포함한 시퀀스 투 시퀀스 모델의 경우 hidden state의 차원은 256이다.
- 트랜스포머 모델의 경우 256의 입력 및 출력 차원을 사용한다.
- Transformer에 사용되는 다른 하이퍼 파라미터는 원래 모델과 동일하며, 여기에는 자체 설정에서 scheduled Adam 옵티마이저가 포함된다.
- 배치 크기 128, augmentation factor 100, 선택된 프레임의 수 50
객체 2D 정규화는 다음과 같은 특별한 경우를 제외하고 사용된다.
우리의 데이터 세트는 집적 언어인 한국어로 주석을 달기 때문에, 단순히 흰색 공백으로 문장을 나눌 경우 사전의 크기가 임의로 커질 수 있어 주석이 달린 문장에 대한 형태학적 분석이 수행되어야 한다.
이러한 이유로, 우리는 한글의 자연어 처리를 위해 개발된 파이썬 패키지인 KoNLPy 패키지의 Kkma 음성 부분 tagger태그기를 사용하여 문장을 POS 단위로 토큰화하였다.
번역 모델의 성능을 평가하기 위해, 우리는 기본적으로 정확하게 번역된 단어와 문장의 비율을 의미하는 '정확도accuracy'를 계산한다. 또한 BLEU, ROUGE-L, METEOR 및 CIDEr 점수와 같은 기계 번역 모델의 성능 측정에 일반적으로 사용되는 세 가지 유형의 측정 기준을 활용했다.
Sentence-level vs Gloss-level training.
주석의 유형에 따라 번역 성능을 비교하는 실험을 수행 !
각 수화는 여러 자연어 문장과 일치하지만 고유한 Gloss 시퀀스에 해당하기 때문에 Gloss 수준 번역이 더 나은 성능을 보인다는 것을 쉽게 예측할 수 있다.
이것은 또한 일련의 Gloss을 자연어 문장으로 번역하기 위한 미래 작업으로 우리를 이끈다.
수화 번역은 자연어 문장으로 수화 비디오에 주석을 다는 작업을 두 개의 하위 작업으로 분리하여 자연어 문장으로 수화 비디오에 주석을 달고 각 Gloss 시퀀스들에 주석을 달면 더욱 실현 가능한 작업이 될 수 있을 것으로 기대한다.
Effect of feature normalization methods.
OpenPose에서 추정한 키포인트에 대한 피쳐 정규화 방법의 영향을 평가하기 위해 5가지 경우를 비교한다.
1) no normalization : 모든 키포인트의 좌표 값을 연결하여 생성된 키포인트 피쳐에 대해 정규화를 수행하지 않는다.
2) feature normalization : 1)과 같이 키포인트 피쳐를 만들고 전체 피쳐 평균 및 표준 편차로 정규화한다.
3) object normalization : 각각 두 손, 신체 및 얼굴에서 얻은 키포인트 특징을 정규화하고 이들을 연결하여 프레임을 나타내는 피쳐를 생성한다.
4) 2-dimensional (2D) normalization : x좌표와 y좌표를 별도로 정규화한다.
5) object 2D normalization : 본 논문에서 제안한 정규화 방법
본 논문이 제안한 object 2D normalization이 다른 정규화 방법보다 우수한 것으로 밝혀졌다. 1) 결과가 포함되어 있지 않다.
Effect of augmentation factor.
랜덤 프레임 스킵 샘플링에 의한 데이터 확대 효과를 조사하고 표 5에 실험 결과를 요약한다. 우리는 단일 부호 비디오에서 무작위로 샘플링된 훈련 샘플의 수를 증강 요인이라고 부른다.
Effect of attention mechanisms.
Effect of the number of sampled frames.
Effect of batch size.
Effect of augmentation factor.
댓글