KR20210018028A - 손동작 및 팔동작 학습기반 수화 번역 시스템 및 방법 - Google Patents
손동작 및 팔동작 학습기반 수화 번역 시스템 및 방법 Download PDFInfo
- Publication number
- KR20210018028A KR20210018028A KR1020200077915A KR20200077915A KR20210018028A KR 20210018028 A KR20210018028 A KR 20210018028A KR 1020200077915 A KR1020200077915 A KR 1020200077915A KR 20200077915 A KR20200077915 A KR 20200077915A KR 20210018028 A KR20210018028 A KR 20210018028A
- Authority
- KR
- South Korea
- Prior art keywords
- sign language
- hand
- motion
- learning
- arm
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B21/00—Teaching, or communicating with, the blind, deaf or mute
- G09B21/009—Teaching or communicating with deaf persons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- G06K9/00355—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/20—Movements or behaviour, e.g. gesture recognition
- G06V40/28—Recognition of hand or arm movements, e.g. recognition of deaf sign language
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Business, Economics & Management (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Psychiatry (AREA)
- Social Psychology (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
제안기술은 손동작 및 팔동작 학습기반 수화 번역 시스템 및 방법에 관한 것으로, 더욱 상세하게는 인공지능 기술과 콤플렉스 제스처(complex gesture) 기술을 이용하여 두 손으로 표현되는 수화를 번역하기 위한 시스템 및 방법에 관한 발명이다.
Description
제안기술은 손동작 및 팔동작 학습기반 수화 번역 시스템 및 방법에 관한 것으로, 더욱 상세하게는 인공지능 기술과 콤플렉스 제스처(complex gesture) 기술을 이용하여 두 손으로 표현되는 수화를 번역하기 위한 시스템 및 방법에 관한 발명이다.
일반적으로, 수화는 청각 장애인(농아)들이 사용하는 시각적 언어로써 언어적 구조와 규칙을 가지는 손의 움직임, 모양 및 동작 방향 등으로 의사를 표현할 수 있다.
과거와는 달리 청각 장애인들의 사회 참여도가 높아지면서 수화는 청각 장애인들 간의 대화뿐 아니라 일반인(청인)들과의 대화에서도 사용되고 있으나, 그 표현방식이 복잡하여 일반인들이 학습하기에는 어려움이 있다.
따라서, 최근에는 문자를 시각적으로 변환하여 수화로 표시하거나 수화를 인식하여 문자로 표시하는 수화 번역기가 개발되고 있다. 종래에 개발된 수화 번역기는 문자를 수화로 번역하는 단방향 방식이 주를 이루고 있다. 이는 문자를 일정 단위로 인식하여 패턴화된 그래픽 동작으로 표현하는 것은 구현이 용이한 반면, 수화를 시각적으로 인식하여 일반인에게 번역하는 방법은 모션/제스처 인식을 위해 특수한 하드웨어의 구성이 필요하고 기술적으로도 어렵기 때문이다.
예컨대, 종래의 수화 번역을 위해서는 청각 장애인(이하, 수화자라 명명함)이 모션 인식을 위해 특수 장갑을 끼고 수화를 해야 하는 불편함과 특수 장갑의 센서를 인식하는 하드웨어나 소프트웨어가 구비되어야 하는 단점이 있다. 또한, 특수 장갑이 없는 경우, 수화자의 촬영 영상에서 모션 추적을 위한 별도의 특수 모션인식 장비가 요구되어 휴대 및 비용의 증가로 일반인들이 일상적으로 사용하기 어려운 단점이 있다.
이러한 종래 수화 번역기의 단점들은 일반인들이 일상적으로 사용할 수 있는 양방향 수화 번역기의 개발을 어렵게 하는 문제점으로 지적되고 있다.
한편, 수화는 기본적으로 다양한 손모양, 손위치, 팔동작 등으로 단어(보통 명사)를 표현하고, 사람 이름 등의 고유명사는 일일이 단어화시켜 수화로 만들 수 없기 때문에 손가락으로 자음, 모음 표시하는 지화를 이용하여 고유명사를 표현하고 있다.
그러나, 종래의 영상기반 모션 인식 기술을 이용하여 수화를 번역함에 있어서, 수화는 손의 움직임 정보와 모양 정보의 조합으로 표현되고, 지화는 손의 모양 정보로 표현되기 때문에 연속된 동작에서 수화와 지화의 시작점과 끝점을 정확히 인식하는 데에는 기술적으로 한계가 있다.
따라서, 수화를 번역한 단어의 오인식이 발생되는 문제가 있으며, 단어와 단어를 매끄럽게 연결하지 못하기 때문에 문장의 완성도가 떨어져 어색하고, 수화자의 의사 전달에 신뢰도가 떨어지는 문제점이 있다.
본 발명은 상기와 같은 문제를 해결하기 위해 발명된 것으로서, 실시간으로 입력되는 수화 동작을 번역하는데 목적이 있다.
또한, 머신러닝 기법을 이용하여 수화 동작 시의 손동작과 팔동작을 각각 학습한 후 수화 동작을 번역함으로써 기존의 수화 번역 시 발생되던 단어의 오인식 문제를 해결하고, 따라서 문장의 완성도를 높이고자 하는데 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 손동작 및 팔동작 학습기반 수화 번역 시스템에 있어서,
사용자의 수화 동작이 영상으로 입력되는 동작 입력부; 및
수화 동작을 인식하는 수화 학습부;를 포함하고,
수화 학습부에서는 수화 동작을 손모양과 팔동작으로 나누어 인식한 후, 인식 결과를 합하여 재인식하는 것을 특징으로 한다.
상기와 같은 목적을 달성하기 위한 본 발명의 손동작 및 팔동작 학습기반 수화 번역 방법에 있어서,
사용자의 수화 동작이 영상으로 입력되는 영상 입력 단계;
수화 동작이 인식되는 수화 학습 단계;를 포함하며,
수화 학습 단계에서는 수화 동작을 손모양과 팔동작으로 나누어 인식한 후, 인식 결과를 합하여 재인식하는 것을 특징으로 한다.
본 발명에 따르면, 실시간으로 입력되는 수화 동작을 번역할 수 있는 효과가 있다.
또한, 머신러닝 기법을 이용하여 수화 동작 시의 손동작과 팔동작을 각각 학습한 후 수화 동작을 번역함으로써 기존의 수화 번역 시 발생되던 단어의 오인식 문제를 해결하고, 따라서 문장의 완성도를 높일 수 있는 효과가 있다.
도 1은 본 발명에 따른 수화 번역 시스템의 구성도.
도 2는 본 발명에 따른 수화 동작 입력 시 관절 및 얼굴의 위치 정보.
도 3은 본 발명에 따른 팔 동작 전처리 과정의 일 실시예.
도 4는 본 발명에 따른 손모양 전처리 과정의 일 실시예.
도 5는 본 발명에 따른 인공지능 모듈의 구조도.
도 6은 본 발명에 따른 팔의 동작 데이터 추출을 위한 CNN의 구조.
도 7은 본 발명에 따른 손 모양 데이터 추출을 위한 CNN의 구조.
도 8은 본 발명에 따른 손 모양 데이터의 중요도를 학습하는 DNN의 구조.
도 9는 본 발명에 따른 팔 동작 데이터와 손 모양 데이터의 전체적인 특징의 중요도를 학습하는 DNN의 구조.
도 10은 본 발명에 따른 인터페이스 모듈의 실제 화면.
도 2는 본 발명에 따른 수화 동작 입력 시 관절 및 얼굴의 위치 정보.
도 3은 본 발명에 따른 팔 동작 전처리 과정의 일 실시예.
도 4는 본 발명에 따른 손모양 전처리 과정의 일 실시예.
도 5는 본 발명에 따른 인공지능 모듈의 구조도.
도 6은 본 발명에 따른 팔의 동작 데이터 추출을 위한 CNN의 구조.
도 7은 본 발명에 따른 손 모양 데이터 추출을 위한 CNN의 구조.
도 8은 본 발명에 따른 손 모양 데이터의 중요도를 학습하는 DNN의 구조.
도 9는 본 발명에 따른 팔 동작 데이터와 손 모양 데이터의 전체적인 특징의 중요도를 학습하는 DNN의 구조.
도 10은 본 발명에 따른 인터페이스 모듈의 실제 화면.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 출원에서 사용되는 용어는 단지 특정한 실시 예들을 설명하기 위한 것으로, 본 발명을 한정하려는 의도가 아니다.
이하, 본 발명의 바람직한 실시 예를 첨부도면을 참조하여 상세히 설명한다.
본 발명은 손동작 및 팔동작 학습기반 수화 번역 시스템 및 방법에 관한 것으로, 더욱 상세하게는 인공지능 기술과 콤플렉스 제스처(complex gesture) 기술을 이용하여 두 손으로 표현되는 수화를 번역하기 위한 시스템 및 방법에 관한 발명이다.
도 1에는 본 발명에 따른 수화 번역 시스템의 구성도가 도시되어 있다.
본 발명의 수화 번역 시스템은 사용자의 수화 동작이 영상으로 촬영되어 입력되는 동작 입력부와 상기 수화 동작을 인식하는 수화 학습부를 포함하여 구성된다.
본 발명의 일 실시예에서는 상기 영상을 촬영하기 위한 장치로 마이크로소프트사의 카메라(kinetic)를 이용하였지만, 이는 일 실시예에 불과한 것으로 이에 한정되지 않으며 수화 인식이 가능한 영상 장치라면 무엇이든 가능하다.
상기 동작 입력부에서는 상기 카메라(kinetic)를 이용하여 사용자의 수화 동작을 촬영하고 관절 위치 등의 데이터를 수집하게 된다.
상기 동작 입력부로 수화 동작의 영상이 입력되면 상기 수화 학습부에서는 상기 수화 동작이 인식 및 학습하게 된다. 이를 위해 상기 동작 입력부에서 수집된 데이터를 바탕으로 특징 추출 작업 및 머신러닝(Machine Learning) 기법을 사용하게 된다. 즉, 상기 카메라를 이용하여 촬영된 수화 동작 영상을 학습 가능한 데이터로 정제한 후 DNN(Deep Neural Network, 심층신경망)에 학습시키게 된다.
이를 위해 상기 수화 학습부는 상기 수화 동작을 실시간으로 저장하는 골격 추출 모듈(skeleton extract module)과, 상기 수화 동작을 인식하고 실시간으로 입력되는 수화 동작을 분류하는 인공지능 모듈(AI module)과, 상기 골격 추출 모듈로부터 전달된 상기 수화 동작을 상기 인공지능 모듈에 전달하고, 상기 인공지능 모듈에서 분류된 수화 동작이 번역되어 출력되는 인터페이스 모듈(interface module)을 포함하여 구성된다.
상기 수화 학습부에서는 수화 번역의 정확도를 높이기 위해 상기 수화 동작을 팔동작과 손모양으로 나누어 각각 인식 또는 학습한 후 그 결과를 합(merge)하여 재인식 또는 재학습하게 된다.
상기 골격 추출 모듈은 상기 수화 동작을 촬영한 영상에서 관절과 손의 위치를 실시간으로 추적하여 저장하는 것으로, 이를 위해 상기 골격 추출 모듈에서는 상기 수화 동작 중 팔동작과 손모양이 전처리된다.
도 2에는 본 발명에 따른 수화 동작 입력 시 관절 및 얼굴의 위치 정보가 도시되어 있다.
상기 골격 추출 모듈에서의 전처리를 위해 상기 동작 입력부에 입력되는 영상에는 상기 사용자를 중심으로 복수 개의 포인트가 제공된다.
상기 포인트는 상기 사용자의 오른손과 왼손의 중심 위치 정보를 표시하는 특징점인 복수 개의 핸드 포인트와, 상기 사용자의 각 관절의 위치를 표시하는 특징점인 복수 개의 관절 포인트와, 상기 사용자의 신체로부터 일정 간격 이격된 위치에 고정되어 표시되는 복수 개의 추가 포인트를 포함하여 제공된다.
상기 핸드 포인트는 도면상 ‘Hand_Spoint’로 표시된 네모 형상의 포인트로, 상기 사용자의 양측 손 각각에 표시되며, 상기 손의 중심부에 표시되어 상기 수화 동작에 따른 상기 손의 위치 이동에 의해 상기 핸드 포인트의 위치 또한 이동하게 된다.
상기 관절 포인트는 도면상 ‘Kinect_Spoint’로 표시된 원 형상의 포인트로, 본 발명의 일 실시예에서 상기 관절 포인트는 상기 사용자의 머리, 양 눈, 코, 입, 양 볼, 턱, 목, 양 어깨, 양 어깨 사이의 척추, 척추의 길이방향 중심부, 양 엉덩이, 양 엉덩이 사이의 척추, 양 팔꿈치, 양 손목, 양 무릎 및 양 발목을 포함하는 총 24개의 포인트로 구성된다. 상기 수화 동작에 따른 상기 관절의 위치 이동에 의해 상기 관절 포인트의 위치 또한 이동하게 된다. 상기 관절 포인트의 개수는 제작자의 의도에 따라 달라질 수 있다.
상기 추가 포인트는 상기 손의 위치 및 팔의 움직임을 추적하기 위한 추적 정확도를 높이기 위해 추가한 특징점으로, 상기 관절 포인트에서 SpinePx만큼 이격된 위치 정보이다. 도면상 상기 추가 포인트는 ‘ADD_Spoint’로 표시된 삼각 형상의 포인트로, 상기 추가 포인트는 본 발명의 일 실시예에서 상기 추가 포인트는 상기 사용자의 머리 위, 머리 양옆, 어깨 양옆, 척추의 길이방향 중심부 양옆, 엉덩이의 양옆 및 무릎의 양옆을 포함하는 총 11개의 포인트로 구성된다. 상기 추가 포인트의 개수는 제작자의 의도에 따라 달라질 수 있다.
상기 SpinePx는 상기 사용자의 손의 위치에 따른 데이터를 정확하게 파악하기 위해 상기 손의 크기와 비슷한 척추 상단 부분과 척추 중간 부분 사이의 거리를 측정한 정보이다.
도 2의 오른쪽에 도시된 표는 각 포인트의 인덱스(index)와 변수명을 가지며, 왼쪽에 도시된 그림의 점의 위치를 의미하는 표이다.
상기 포인트에 의해 상기 사용자의 관절 및 얼굴의 위치 정보를 확인할 수 있게 된다.
상기 골격 추출 모듈에서는 상기 수화 동작을 실시간으로 저장하는 골격 추출 단계가 진행되며, 상기 골격 추출 단계에서는 상기 포인트를 이용한 팔동작 전처리 단계와 손모양 전처리 단계가 진행된다.
도 3에는 본 발명에 따른 팔동작 전처리 과정의 일 실시예가 도시되어 있다.
먼저, 상기 팔동작의 전처리 단계에 대해 설명하면, 상기 팔동작의 전처리 시 전처리되는 팔동작 데이터는 양측 핸드 포인트 사이의 거리 및 상기 핸드 포인트와 각각의 상기 관절 포인트 사이의 거리로 정의된다.
상기 팔동작 데이터의 수집은 카메라에서 제공되는 프레임마다 시작되며, 상기 사용자의 수화 동작 중 손이 사용자의 허리 위로 올라올 때부터 손이 사용자의 허리 아래로 내려갈 때까지 수집된다.
즉, 상기 팔동작 데이터는 상기 수화 동작 시 상기 사용자의 상기 핸드 포인트 중 어느 하나의 핸드 포인트가 상기 사용자의 양 엉덩이(도 2에 표시된 24, 25번 포인트) 또는 양 엉덩이 사이의 척추(도 2에 표시된 15번 포인트)를 표시하는 상기 관절 포인트 보다 상측에 위치할 때 수집된다.
수집된 상기 팔동작 데이터는 촬영된 시간과 함께 프레임 클래스에 저장되며, 수집이 종료될 때까지 저장되는 프레임 정보를 쌓게 된다.
도 3(a)는 본 발명의 일 실시예에 따른 수화 동작의 예이고, 도 3(b)는 본 발명의 일 실시예에 따른 수화 동작의 왼손과 각 관절 간 거리의 변화 그래프이다.
도 3(a)는 ‘바다’라는 수화 동작으로, 양손을 아래위로 움직이면서 팔을 왼쪽에서 오른쪽으로 움직이는 동작을 나타내고 있다. 이때, 상기 사용자의 ‘바다’ 동작에 따른 왼손과 각 관절 간 거리 변화를 그래프로 나타내면 도 3(b)과 같은 결과를 얻게 된다. 왼쪽 및 오른쪽 손목 관절과 왼손은 가까이 있으므로 거리 변화가 거의 없으며, 왼쪽 및 오른쪽 발목 관절과 왼손의 거리는 왼손이 아래 위로 움직임에 따라 변화가 나타나는 것을 확인할 수 있다.
상기 팔동작 데이터 수집은 표 1과 같은 코드로 나타낼 수 있다.
1: | Kinect_Spoint의 위치 정보를 가져옴 |
2: | Hand_Spoint의 위치 정보를 가져옴 |
3: | SpinePx = 척추 상단부분과 척추 중간부분 사이 3차원 상의 거리 |
4: | Add_Spoint = Kinect_Spoint에서 SpinePx만큼 떨어진 위치 |
Spoint = Kinect_Spoint + Hand_Spoint + Add_Spoint | |
5: | for (i = 0; i < Spoint_SIZE; ++i) |
6: | distanceL[i] = 왼손 위치와 Spoint[i] 사이 3차원 상의 거리 |
7: | distanceR[i] = 오른손 위치와 Spoint[i] 사이 3차원 상의 거리 |
8: | 촬영된 시간과 함께 distanceL, distanceR을 프레임에 저장 |
이후, 프레임 개수의 정규화를 진행하게 된다.
동일한 수화 동작도 사람마다 동작 시간이 다르기 때문에 서로 다른 동작 시간에 대해 동일한 데이터 구조를 만들기 위해 수화 동작의 시간에 상관없이 각 동작의 프레임 개수를 150개로 정규화하게 된다.
일 실시예로 ‘바다’를 수화로 표현할 때, A는 5초가 걸리고 B는 10초가 걸릴 경우, A와 B의 영상 프레임 개수가 서로 달라진다. 따라서 A, B의 프레임 개수를 동일하게 맞추기 위해 수화 동작의 총 촬영 시간을 150으로 나누어 delta값을 계산(A의 경우 delta=5/150, B의 경우 delta=10/150)하여 0에서 총 촬영 시간까지 delta값만큼 증가시키면서 해당 시간에서의 핸드 포인트 간의 거리를 보간법을 통하여 계산하게 된다. 프레임 개수의 정규화에 대해서는 표 2와 같은 코드로 나타낼 수 있다.
1: | collected_frame = 수집된 팔 동작의 프레임 |
2: | result = Lerp한 프레임을 저장할 배열 |
3: | delta = (endTime - startTime) / 150 |
4: | timeLine = startTime; startIdx = 0; endIdx = 0; |
5 | for (i = 1; i < collected_frame.size(); ++i) |
6: | if (collected_frame[i].촬영시간 > timeLine) |
7: | timeLine += delta; |
8: | endIdx = i |
9: | percent = (timeLine - collected_frame[startIdx].촬영시간) / |
(collected_frame[endIdx].촬영시간 - collected_frame[startIdx].촬영시간) | |
10: | lerfFrame = collected_frame[startIdx]에서 collected_frame[endIdx]까지의 percent 만큼의 거리 저장 |
11: | if (timeLine > collected_frame[endIdx].촬영시간) |
12 | startIdx = endIdx |
13: | else |
14: | i-- |
15: | result에 lerfFrame을 추가 |
startTime은 촬영 시작 시간, endTime은 촬영 종료 시간을 나타내며, delta에 한 프레임 당 시간 변화량으로 촬영 시간을 정규화할 단위(150)로 나눈 값을 저장하게 된다. 또한, timeLine에 촬영 시간에 따른 프레임 시간을 저장하고 delta의 시간을 더해주게 된다. timeLine과 startIdx번째 프레임 사이의 시간, endIdx번째 프레임과 startIdx번째 프레임 사이의 시간 비율을 계산하고, startIdx번째 프레임의 거리 데이터에서 endIdx번째 프레임의 거리 데이터들의 percent 만큼의 거리를 계산하여 lerfFrame에 저장하게 된다.
도 4에는 본 발명에 따른 손모양 전처리 과정의 일 실시예가 도시되어 있다.
상기 손모양의 전처리 단계에 대해 설명하면, 상기 손모양의 전처리 시 전처리되는 손모양 데이터는 상기 영상으로부터 추출된 손모양의 이미지로 정의된다.
수화 동작 시 팔동작 만으로는 정확한 수화 인식을 할 수 없으므로, 손모양을 추출하게 된다.
상기 손모양 전처리는 상기 영상 입력 단계에서 제공된 핸드 포인트를 중심으로 일정 영역의 이미지를 추출하는 RGB 이미지 추출 단계, 추출된 이미지에서 뒷 배경을 제거하는 배경 제거 단계 및 손모양의 이미지를 추출하는 손모양 데이터 수집 단계를 포함하여 진행된다.
즉, 상기 핸드 포인트의 위치를 이용하여 왼손 또는 오른손의 이미지를 추출하고, 그 뒷배경을 제거하게 된다. 뒷배경 제거 시 카메라와 상기 핸드 포인트 간의 거리를 확인한 후, 상기 핸드 포인트의 위치에서 뒤로 40cm의 이미지만 남기고 나머지 이미지는 모두 삭제하게 된다. 상기 40cm의 수치는 일 실시예일 뿐이며, 조절 가능하다.
뒷배경이 제거된 이미지에서 거리 값을 기준으로 앞뒤 10cm 범위에 있는 이미지는 흰색으로 변경하고, 나머지는 검정색으로 변경하여 손모양의 이미지를 추출하게 된다.
상기 손모양 데이터는 코드 a와 코드 b를 통해 수집되며, 먼저 코드 a에 대해 설명한다.
상기 코드 a는 RGB 이미지 추출하는 것으로, 상기 핸드 포인트를 중심으로 SpinePx만큼 이미지를 잘라내게 된다.
상기 코드 a는 표 3과 같이 나타낼 수 있다.
1: | Color_width = SpinePx ,Color_height = SpinePx |
2: | for (i = 0; i < 2; ++i) |
3: | i = 0 ? 왼손 위치 : 오른손 위치 |
4: | roi = 손 위치를 중심점으로 width x height 크기의 사각형 영역 지정 |
5: | if (roi 영역이 프레임안에 있을 경우) |
6: | 프레임 이미지에서 사각형 영역을 추출하여 IMAGE_WIDTH, IMAGE_HEIGHT 크기로 스케일링 |
7: | 스케일링된 이미지를 저장 |
그 뒤, 코드 b는 RGB 이미지 추출 후 거리값을 이용하여 뒷 배경을 제거 하게 된다. 손의 거리값을 찾은 후, 그로부터 거리값이 400을 초과한 부분을 흰색으로 칠하여 배경을 제거하게 된다. 손의 거리값은 상기 핸드 포인트에서 카메라까지의 거리를 의미한다. 손을 빨리 움직일 경우 카메라가 손 중심점을 제대로 찾을 수 없기 때문에 카메라가 찾은 중심점을 기준으로 20px 거리의 거리 값 중 가장 앞에 있는 위치를 중심점으로 하게 된다. 이때, 1거리(Depth)는 1mm를 나타내게 된다.
상기 코드 b는 표 4과 같이 나타낼 수 있다.
1: | 깊이 센서 프레임 = Color_width*Color_height |
2: | for (i = 0; i < 2; ++i) |
3: | i = 0 ? 왼쪽 손 위치 : 오른쪽 손 위치 |
4: | roi = 손 위치를 중심점으로 width x height 크기의 사각형 영역 지정 |
5: | if (사각형 영역이 프레임안에 있을 경우) |
6: | handDepth = 손 중심점에서 -20px ~ 20px 범위안에서 가장 작은 깊이 값 |
7: | extractedMat = 컬러 프레임에서 손 영역을 잘라냄 |
8: | for (y = 0; y < extractedMat.rows; ++y) |
9: | for (x = 0; x < extractedMat.cols: ++x) |
10: | if ( (0 <= extractedMat[y, x] 부분의 깊이 센서 값 <= handDepth + 400) ) |
11: | extractedMat[y, x] = 255 |
12: | extractedMat를 IMAGE_WIDTH, IMAGE_HEIGHT 크기로 스케일링 |
13: | 스케일링된 이미지를 저장 |
이후, 손모양의 이미지를 추출하게 되는데, 이때, 거리를 이용하여 손 모양을 추출하게 된다. 즉, 손의 거리값에 대하여, 거리 값이 -100에서 +100범위 안에 있는 부분을 흰색으로, 그 외의 경우에는 검은색으로 처리하여, 손의 모양만을 추출하게 되며, 이에 대한 코드는 표 5과 같이 나타낼 수 있다.
1: | for (i = 0; i < 2; ++i) |
2: | i = 0 ? 왼쪽 손 위치 : 오른쪽 손 위치 |
3: | roi = 손 위치를 중심점으로 width x height 크기의 사각형 영역 지정 |
4: | if (사각형 영역이 프레임안에 있을 경우) |
5: | handDepth = 손 중심점에서 -20 ~ 20 범위안에서 가장 작은 깊이 값 |
6: | extractedMat = 컬러 프레임에서 손 영역을 잘라냄 |
7: | for (y = 0; y < extractedMat.rows; ++y) |
8: | for (x = 0; x < extractedMat.cols: ++x) |
9: | if ( handDepth - 100 <= extractedMat[y, x] 부분의 깊이 센서 값 <= handDepth + 100 ) |
10: | extractedMat[y, x] = 255 |
11: | else |
12: | extractedMat[y, x] = 0 |
13: | extractedMat를 3x3 필터로 침식 후 팽창 연산 |
14: | extractedMat를 3x3 필터로 침식 |
15: | contours = extractedMat에서 외곽선 리스트 검출 |
16: | dst = contours에서 가장 큰 외곽선 내부를 꽉 채운 이미지를 IMAGE_WIDTH, IMAGE_HEIGHT 크기로 스케일링 |
상기 코딩으로 침식 연산으로 이미지의 잡음을 제거 한 뒤, 팽창을 통해, 침식 연산으로 사라진 이미지의 빈 부분을 다시 채우게 된다. 이때, 다시 침식 연산을 통해 제거되지 않은 잡음을 제거하게 된다.
이때, 일 실시예에 따라, 코드 a와 코드 b를 통해 추출된 이미지에 대해 손 모양 데이터를 추출하는 방법 외에, 코드 c를 이용하여 손 모양을 추출할 수 있다. 코드 c를 이용하여 손 모양을 추출할 시, 거리를 이용하는 방법과 이미지 중심점에서 외곽선 거리를 측정하여 손 모양을 추출하는 방법이 있다.
거리를 이용하는 방법을 통하여 추출한 이미지에서, 상기 핸드 포인트에서 외곽선 거리를 측정하여 손 모양을 수치적으로 나타내게 된다.
상기 코드 c는 표 6과 같이 나타낼 수 있다.
1: | size = 120(저장할 총 외곽점의 개수) |
2: | img = 이미지 로드(Code 3 결과) |
3: | distanceList = 중심점과 외곽선 사이 길이를 저장할 배열 |
4: | contours = img에서 추출한 각 외곽선 배열 |
5: | if (contours의 배열 길이가 0일 경우) |
6: | 0을 size만큼 채워서 반환 |
7: | biggest_contour = 가장 큰 외곽선 |
8: | for (point in biggest_contour) |
9: | distanceList에 이미지 중심점과 point사이의 거리를 추가함 |
10: | distanceList의 길이를 size길이만큼 줄임 |
상기 골격 추출 모듈에서 전처리 된 상기 팔동작 데이터와 상기 손모양 데이터는 상기 인터페이스 모듈을 통해 상기 인공지능 모듈로 전달된다.
도 5a에는 본 발명에 따른 인공지능 모듈의 구조도가 도시되어 있고, 도 5b에는 본 발명에 따른 인공지능 모듈의 구조도가 도식화되어 있다.
상기 인공지능 모듈은 팔동작 데이터의 특징을 추출하는 팔동작 학습 모델(A1)과, 손모양 데이터의 특징을 추출하는 손모양 학습 모델(A2)과, 상기 팔동작 데이터의 특징과 상기 손모양 데이터의 특징을 합한 후 전체적인 수화 동작의 특징을 추출하여 분류하는 수화 학습 모델(M1)을 포함하여 구성된다.
도 6에는 본 발명에 따른 팔의 동작 데이터 추출을 위한 CNN의 구조가 도시되어 있다.
상기 팔동작 학습 모델은 수치로 처리된 값을 CNN(Convolutional Neural Networks, 합성곱 신경망)에 입력하여 상기 팔동작 데이터의 특징을 추출 및 훈련하는 팔동작 학습 단계를 진행하게 된다.
상기 팔동작 학습 단계에서는 행을 시간 축으로 하고 열을 각 거리 축으로 하는 2차원 배열을 형성하고, 상기 CNN을 이용하여 수화를 할 때 부분적인 상기 팔동작 데이터의 특징을 추출하여 훈련하게 된다.
도 7에는 본 발명에 따른 손 모양 데이터 추출을 위한 CNN의 구조가 도시되어 있고, 도 8에는 본 발명에 따른 손 모양 데이터의 중요도를 학습하는 DNN의 구조가 도시되어 있다.
상기 손모양 학습 모델은, 상기 손모양 데이터의 특징을 추출하는 손모양 학습 단계를 진행하게 된다.
상기 손모양 학습 단계에서는 전처리된 상기 손모양 데이터를 CNN에 입력하여 35개 이미지마다 상기 손모양 데이터의 특징을 추출하고, 각 이미지별 추출된 특징을 시계열 데이터 학습에 적합한 LSTM(Long-Short term Memory, 머신러닝 중 RNN(Recurrent Neural Network, 순환신경망)의 일종)을 통해 특징 훈련한다. 그 후, DNN을 이용하여 상기 손모양 데이터에서 추출된 특징의 중요도를 학습한다.
상기 손모양 데이터는 각각 촬영 프레임마다 CNN을 통해 특징을 추출 후 특징의 중요도를 학습하고, 시계열 프레임별 추출한 특징을 LSTM, DNN에 연결하여 이전 특징들과 현재 프레임과의 연관 관계 및 중요도를 학습하게 된다.
도 9에는 본 발명에 따른 팔 동작 데이터와 손 모양 데이터의 전체적인 특징의 중요도를 학습하는 DNN의 구조가 도시되어 있다.
상기 수화 학습 모델은, 상기 팔동작 학습 모델과 상기 손모양 학습 모델로부터 인식 및 학습된 상기 수화 동작을 최종적으로 분류하는 수화 학습 단계를 진행하게 된다.
상기 수화 학습 단계에서는 Concat 레이어를 이용하여 상기 팔동작 학습 단계에서 추출된 팔동작 데이터의 특징과 상기 손모양 학습 단계에서 추출된 손모양 데이터의 특징을 이어주게 된다. 이후, DNN을 이용하여 이어진 특징의 중요도를 학습하고, Softmax 레이어를 이용하여 전체적인 수화 동작의 특징을 분류하게 된다.
도 10에는 본 발명에 따른 인터페이스 모듈의 실제 화면이 도시되어 있다.
도 10에서 ①은 상기 골격 추출 모듈에서 전달된 팔동작 데이터 및 손동작 데이터를 출력하는 화면이고, ②는 상기 수화 학습 단계에서 분류된 결과를 출력하는 화면이고, ③은 분류 결과로부터 예측된 결과를 출력하는 화면이다.
즉, 상기 인공지능 모듈에서 분류된 상기 수화 동작은 글자로 번역되어 상기 인터페이스 모듈로 전달되며, 상기 인터페이스 모듈에서는 번역된 글자를 출력하게 된다.
결과적으로, 상기에서 설명한 본 발명의 손동작 및 팔동작 학습기반 수화 번역 시스템 및 방법에서는 상기 수화 동작을 팔동작 데이터와 손모양 데이터로 나누어 인식 및 학습한 뒤, 팔동작 데이터의 특징과 손모양 데이터의 특징을 합하여 재인식함으로써 보다 정확하게 수화 동작을 번역할 수 있게 된다.
앞서 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자 또는 해당 기술 분야에 통상의 지식을 갖는 자라면 후술 될 특허청구범위에 기재된 본 발명의 사상 및 기술영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (16)
- 사용자의 수화 동작이 영상으로 입력되는 동작 입력부; 및
상기 수화 동작을 인식하는 수화 학습부;를 포함하고,
상기 수화 학습부에서는 상기 수화 동작을 손모양과 팔동작으로 나누어 인식한 후, 인식 결과를 합하여 재인식하는 것
을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 시스템. - 제1항에 있어서,
상기 수화 학습부는,
상기 수화 동작을 실시간으로 저장하는 골격 추출 모듈;
상기 수화 동작을 인식하고, 실시간으로 입력되는 수화 동작을 분류하는 인공지능 모듈;
상기 골격 추출 모듈로부터 전달된 상기 수화 동작을 상기 인공지능 모듈에 전달하고, 상기 인공지능 모듈에서 분류된 수화 동작이 번역되어 출력되는 인터페이스 모듈;을 포함하는 것
을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 시스템. - 제2항에 있어서,
상기 골격 추출 모듈에서는 상기 팔동작과 상기 손모양이 전처리되는 것을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 시스템. - 제3항에 있어서,
상기 동작 입력부에 입력되는 영상에는 상기 팔동작과 손모양을 전처리하기 위한 복수 개의 포인트가 제공되는 것을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 시스템. - 제4항에 있어서,
상기 포인트는,
상기 사용자의 양측 손의 위치를 표시하는 복수 개의 핸드 포인트;
상기 사용자의 각 관절의 위치를 표시하는 복수 개의 관절 포인트;
상기 사용자의 신체로부터 일정 간격 이격된 위치에 고정되어 표시되는 복수 개의 추가 포인트;를 포함하는 것
을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 시스템. - 제5항에 있어서,
상기 팔동작의 전처리 시 팔동작 데이터는 상기 핸드 포인트와 각각의 상기 관절 포인트 사이의 거리인 것을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 시스템. - 제6항에 있어서,
상기 팔동작 데이터는 상기 핸드 포인트 중 어느 하나의 핸드 포인트가 상기 사용자의 허리 부분에 위치해 있는 상기 관절 포인트 보다 상측에 위치할 때 수집되는 것을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 시스템. - 제5항에 있어서,
상기 손모양의 전처리 시 손모양 데이터는 상기 영상으로부터 추출된 손모양의 이미지인 것을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 시스템. - 제5항에 있어서,
상기 인공지능 모듈은,
팔동작 데이터의 특징을 추출하는 팔동작 학습 모델;
손모양 데이터의 특징을 추출하는 손모양 학습 모델;
상기 팔동작 데이터의 특징과 상기 손모양 데이터의 특징을 합한 후 전체적인 수화 동작의 특징을 추출하여 분류하는 수화 학습 모델;을 포함하는 것
을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 시스템. - 제1항 내지 제9항 중 어느 한 항의 손동작 및 팔동작 학습기반 수화 번역 시스템을 이용한 수화 번역 방법에 있어서,
사용자의 수화 동작이 영상으로 입력되는 영상 입력 단계;
상기 수화 동작이 인식되는 수화 학습 단계;를 포함하며,
상기 수화 학습 단계에서는 상기 수화 동작을 손모양과 팔동작으로 나누어 인식한 후, 인식 결과를 합하여 재인식하는 것
을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 방법. - 제10항에 있어서,
상기 수화 학습 단계는,
상기 수화 동작을 실시간으로 저장하는 골격 추출 단계;
저장된 상기 수화 동작을 인식하는 수화 동작 인식 단계;
인식된 상기 수화 동작을 최종적으로 분류하는 수화 학습 단계;
분류된 상기 수화 동작이 번역되어 출력되는 출력 단계;를 포함하는 것
을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 방법. - 제11항에 있어서,
상기 골격 추출 단계는,
상기 수화 동작 중 팔동작을 전처리하는 팔동작 전처리 단계;
상기 수화 동작 중 손모양을 전처리하는 손모양 전처리 단계;를 포함하는 것
을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 방법. - 제12항에 있어서,
상기 팔동작 전처리 단계는,
상기 영상의 각 프레임에서 해당 수화 동작에 따른 팔동작 데이터를 수집하는 팔동작 데이터 수집 단계;
상기 팔동작 데이터가 수집되는 상기 프레임의 개수를 정규화하는 단계;를 포함하는 것
을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 방법. - 제12항에 있어서,
상기 손모양 전처리 단계는,
상기 영상 입력 단계에서 제공된 핸드 포인트를 중심으로 일정 영역의 이미지를 추출하는 RGB 이미지 추출 단계;
추출된 이미지에서 뒷 배경을 제거하는 배경 제거 단계;
손모양의 이미지를 추출하는 손모양 데이터 수집 단계;를 포함하는 것
을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 방법. - 제11항에 있어서,
상기 수화 동작 인식 단계는,
상기 팔동작 데이터의 특징을 추출하는 팔동작 학습 단계;
상기 손모양 데이터의 특징을 추출하는 손모양 학습 단계;를 포함하는 것
을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 방법. - 제15항에 있어서,
상기 수화 학습 단계에서는,
Concat 레이어를 이용하여 상기 팔동작 학습 단계에서 추출된 팔동작 데이터의 특징과 상기 손모양 학습 단계에서 추출된 손모양 데이터의 특징을 이어주는 연결 단계;
DNN을 이용하여 상기 연결 단계에서 이어진 특징의 중요도를 학습하는 중요도 학습 단계;
Softmax 레이어를 이용하여 전체적인 수화 동작의 특징을 분류하는 특징 분류 단계;를 포함하는 것
을 특징으로 하는 손동작 및 팔동작 학습기반 수화 번역 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20190095060 | 2019-08-05 | ||
KR1020190095060 | 2019-08-05 |
Publications (3)
Publication Number | Publication Date |
---|---|
KR20210018028A true KR20210018028A (ko) | 2021-02-17 |
KR102377767B1 KR102377767B1 (ko) | 2022-03-23 |
KR102377767B9 KR102377767B9 (ko) | 2022-05-10 |
Family
ID=74731627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200077915A KR102377767B1 (ko) | 2019-08-05 | 2020-06-25 | 손동작 및 팔동작 학습기반 수화 번역 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102377767B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114022958A (zh) * | 2021-11-02 | 2022-02-08 | 泰康保险集团股份有限公司 | 手语识别方法及装置、存储介质及电子设备 |
US20220415093A1 (en) * | 2021-06-29 | 2022-12-29 | Korea Electronics Technology Institute | Method and system for recognizing finger language video in units of syllables based on artificial intelligence |
KR102644927B1 (ko) * | 2023-10-10 | 2024-03-06 | 한규범 | 수어 통역 서비스를 제공하는 온라인 다방향 소통 시스템 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030030232A (ko) * | 2001-10-09 | 2003-04-18 | 한국과학기술원 | 컴퓨터 시각을 기반한 연속적인 수화 인식 방법 및 시스템 |
KR20100026701A (ko) | 2008-09-01 | 2010-03-10 | 한국산업기술대학교산학협력단 | 수화 번역기 및 그 방법 |
KR20160138729A (ko) * | 2015-05-26 | 2016-12-06 | 이화여자대학교 산학협력단 | 영상에서 동작 인식을 위한 특징점 추출 방법 및 골격 정보를 이용한 사용자 동작 인식 방법 |
KR101988037B1 (ko) * | 2018-05-24 | 2019-06-11 | 변재형 | 시각 및 청각 장애인과 일반인 간의 상호소통을 위한 특수행동인식 서비스 제공 방법 |
KR20190121593A (ko) * | 2018-04-18 | 2019-10-28 | 한국전력공사 | 수화 인식 시스템 |
KR102081854B1 (ko) * | 2019-08-01 | 2020-02-26 | 전자부품연구원 | 3d edm을 이용한 수어 또는 제스처 인식 방법 및 장치 |
-
2020
- 2020-06-25 KR KR1020200077915A patent/KR102377767B1/ko active IP Right Grant
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030030232A (ko) * | 2001-10-09 | 2003-04-18 | 한국과학기술원 | 컴퓨터 시각을 기반한 연속적인 수화 인식 방법 및 시스템 |
KR20100026701A (ko) | 2008-09-01 | 2010-03-10 | 한국산업기술대학교산학협력단 | 수화 번역기 및 그 방법 |
KR20160138729A (ko) * | 2015-05-26 | 2016-12-06 | 이화여자대학교 산학협력단 | 영상에서 동작 인식을 위한 특징점 추출 방법 및 골격 정보를 이용한 사용자 동작 인식 방법 |
KR20190121593A (ko) * | 2018-04-18 | 2019-10-28 | 한국전력공사 | 수화 인식 시스템 |
KR101988037B1 (ko) * | 2018-05-24 | 2019-06-11 | 변재형 | 시각 및 청각 장애인과 일반인 간의 상호소통을 위한 특수행동인식 서비스 제공 방법 |
KR102081854B1 (ko) * | 2019-08-01 | 2020-02-26 | 전자부품연구원 | 3d edm을 이용한 수어 또는 제스처 인식 방법 및 장치 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220415093A1 (en) * | 2021-06-29 | 2022-12-29 | Korea Electronics Technology Institute | Method and system for recognizing finger language video in units of syllables based on artificial intelligence |
KR20230001741A (ko) * | 2021-06-29 | 2023-01-05 | 한국전자기술연구원 | 인공지능 기반 음절 단위 지화 동영상 인식 방법 및 시스템 |
CN114022958A (zh) * | 2021-11-02 | 2022-02-08 | 泰康保险集团股份有限公司 | 手语识别方法及装置、存储介质及电子设备 |
KR102644927B1 (ko) * | 2023-10-10 | 2024-03-06 | 한규범 | 수어 통역 서비스를 제공하는 온라인 다방향 소통 시스템 |
Also Published As
Publication number | Publication date |
---|---|
KR102377767B1 (ko) | 2022-03-23 |
KR102377767B9 (ko) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102081854B1 (ko) | 3d edm을 이용한 수어 또는 제스처 인식 방법 및 장치 | |
KR102377767B1 (ko) | 손동작 및 팔동작 학습기반 수화 번역 시스템 및 방법 | |
Akmeliawati et al. | Real-time Malaysian sign language translation using colour segmentation and neural network | |
CN105787442B (zh) | 一种基于视觉交互面向视障人群的穿戴式辅助系统及其使用方法 | |
Madhuri et al. | Vision-based sign language translation device | |
CN110096987B (zh) | 一种基于双路3dcnn模型的哑语动作识别方法 | |
Sosa-Jiménez et al. | Real-time mexican sign language recognition | |
CN112257513A (zh) | 一种手语视频翻译模型的训练方法、翻译方法及系统 | |
CN114333046A (zh) | 舞蹈动作评分方法、装置、设备和存储介质 | |
Escobedo et al. | Dynamic sign language recognition based on convolutional neural networks and texture maps | |
Zheng et al. | Sign language recognition using depth images | |
Wang et al. | Sign language recognition using Mediapipe | |
Orovwode et al. | Development of a Sign Language Recognition System Using Machine Learning | |
Nitta et al. | Finger Character Recognition in Sign Language Using Finger Feature Knowledge Base for Similarity Measure | |
Thanasekhar et al. | Real Time Conversion of Sign Language using Deep Learning for Programming Basics | |
Wei et al. | Three-dimensional joint geometric-physiologic feature for lip-reading | |
Kushwaha et al. | Hand Gesture Based Sign Language Recognition Using Deep Learning | |
Sonekar et al. | Real-Time Sign Language Identification using KNN: A Machine Learning Approach | |
Chandrasekhar et al. | Sign Language Recognition System Using Deep Learning | |
Alves et al. | Enhancing Brazilian Sign Language Recognition through Skeleton Image Representation | |
Savant et al. | Indian sign language recognition system for deaf and dumb using image processing and fingerspelling: A technical review | |
Perera et al. | Finger spelled Sign Language Translator for Deaf and Speech Impaired People in Srilanka using Convolutional Neural Network | |
CN112784631A (zh) | 一种基于深度神经网络进行人脸情绪识别的方法 | |
Pandey et al. | An Improved Hand Sign Recognition using Deep Learning | |
Gomase et al. | Sign Language Recognition using Mediapipe |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
G170 | Re-publication after modification of scope of protection [patent] |