KR102046707B1 - 관성 측정 유닛을 사용하여 콘볼루션 신경망 기반의 제스처 인식을 수행하는 기법 - Google Patents

관성 측정 유닛을 사용하여 콘볼루션 신경망 기반의 제스처 인식을 수행하는 기법 Download PDF

Info

Publication number
KR102046707B1
KR102046707B1 KR1020180024028A KR20180024028A KR102046707B1 KR 102046707 B1 KR102046707 B1 KR 102046707B1 KR 1020180024028 A KR1020180024028 A KR 1020180024028A KR 20180024028 A KR20180024028 A KR 20180024028A KR 102046707 B1 KR102046707 B1 KR 102046707B1
Authority
KR
South Korea
Prior art keywords
gesture
neural network
layer
data
cnn
Prior art date
Application number
KR1020180024028A
Other languages
English (en)
Other versions
KR20190102924A (ko
Inventor
김형석
배성준
Original Assignee
세종대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 세종대학교산학협력단 filed Critical 세종대학교산학협력단
Priority to KR1020180024028A priority Critical patent/KR102046707B1/ko
Publication of KR20190102924A publication Critical patent/KR20190102924A/ko
Application granted granted Critical
Publication of KR102046707B1 publication Critical patent/KR102046707B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

제스처 인식 시스템이 제공된다. 개시된 제스처 인식 시스템은 제스처에 관한 데이터를 감지하는 적어도 하나의 관성 측정 유닛(Inertial Measurement Unit: IMU)을 포함하는 센서 모듈과, 콘볼루션 신경망(Convolutional Neural Network: CNN)에 기반하여 감지된 데이터를 포함하는 제스처 데이터로부터 제스처를 인식하는 CNN 기반 제스처 인식 모듈을 포함하되, 적어도 하나의 IMU 각각은 가속도계, 자이로스코프 및 지자기 센서를 포함하고, CNN은 적어도 하나의 콘볼루션 층과, 적어도 하나의 풀링 층과, 적어도 하나의 피드포워드 신경망 층과, CNN의 최종 출력을 위한 다른 피드포워드 신경망 층을 포함하며, 적어도 하나의 콘볼루션 층의 활성화 함수는 계단 함수이고, 적어도 하나의 피드포워드 신경망 층의 활성화 함수는 정류화된 선형 유닛(Rectified Linear Unit: ReLU) 함수이다.

Description

관성 측정 유닛을 사용하여 콘볼루션 신경망 기반의 제스처 인식을 수행하는 기법{TECHNIQUES OF PERFORMING CONVOLUTIONAL NEURAL NETWORK-BASED GESTURE RECOGNITION USING INERTIAL MEASUREMENT UNIT}
본 개시는 제스처 인식(gesture recognition)을 위한 기법에 관한 것이다.
최근 정보통신 기술(Information and Communication Technology: ICT)이 고도화되면서, ICT 인프라스트럭처(infrastructure)를 통한 데이터 수집 및 인공 지능을 접목하는 지능 정보 기술이 확산되고 있다.
이와 함께, 모바일 디바이스(mobile device) 기반의 구글 카드보드(Google Cardboard), 개인용 컴퓨터(Personal Computer: PC) 기반의 오큘러스 리프트(Oculus Rift) 등등과 같은 다양한 플랫폼 상에서 호스팅될 수 있는 실감형 콘텐츠에 대한 수요와 관심이 빠르게 늘어나면서, 사용자의 제스처(gesture)를 인식하기 위한 다양한 입력 인터페이스의 연구와 개발이 활발히 진행되고 있다.
종래의 제스처 인식 시스템의 예를 마이크로소프트 사(Microsoft Corporation)에 의해 개발된 키넥트(Kinect)에서 볼 수 있는바, 이는 움직임 감지 입력 디바이스를 포함하는 움직임 제어기(motion controller)이다. Kinect는 카메라(예컨대, RGB 카메라 및 깊이 감지 적외선 카메라)를 구비한 시각 기반 제스처 인식(vision-based gesture recognition)을 수행하는데, 사용자가 별도의 디바이스를 부착할 것을 요구하지는 않는다. 또한, Kinect 기술의 다양한 애플리케이션에서 사용자의 움직임 정보를 획득하는 데에 사용될 수 있는 소프트웨어 개발 키트(Software Development Kit: SDK)가 제공된다. 그러나, 카메라를 이용한 제스처 인식은 벽이나 장애물에 의해 방해를 받고, 사용자 행동의 반경이 카메라의 방향에 따라 제한적일 수 있다.
다른 예로서, 3축 가속도계와 같은 센서를 사용하여 제스처를 인식하기 위한 시스템들이 제안되었다. 그러나, 그러한 시스템은 움직임의 측정이 충분히 정확하지 못하거나, 센서 의존성이 너무 높거나, 동적 제스처의 인식이 곤란하다.
따라서, 제스처를 인식하기 위한 개선된 기법이 필요하다.
관성 측정 유닛(Inertial Measurement Unit: IMU)을 사용하여 콘볼루션 신경망(Convolutional Neural Network: CNN) 기반의 제스처 인식을 수행하기 위한 개선된 기법이 본 문서에 개시된다.
적어도 하나의 실시예에 따르면, 제스처 인식 시스템은, 제스처에 관한 데이터를 감지하는 적어도 하나의 관성 측정 유닛(Inertial Measurement Unit: IMU)을 포함하는 센서 모듈과, 콘볼루션 신경망(Convolutional Neural Network: CNN)에 기반하여 상기 감지된 데이터를 포함하는 제스처 데이터로부터 상기 제스처를 인식하는 CNN 기반 제스처 인식 모듈을 포함하되, 상기 적어도 하나의 IMU 각각은 가속도계, 자이로스코프 및 지자기 센서를 포함하고, 상기 CNN은 적어도 하나의 콘볼루션 층(convolutional layer)과, 적어도 하나의 풀링 층(pooling layer)과, 적어도 하나의 피드포워드 신경망 층(feed-forward neural network layer)과, 상기 CNN의 최종 출력을 위한 다른 피드포워드 신경망 층을 포함하며, 상기 적어도 하나의 콘볼루션 층의 활성화 함수는 계단 함수(step function)이고, 상기 적어도 하나의 피드포워드 신경망 층의 활성화 함수는 정류화된 선형 유닛(Rectified Linear Unit: ReLU) 함수이다.
상기 적어도 하나의 풀링 층은 최대 풀링(max pooling)을 수행할 수 있다.
상기 다른 피드포워드 신경망 층은 상기 제스처를 복수의 제스처 부류 중 하나로 분류하기 위한 출력을 상기 최종 출력으로서 제공하는 소프트맥스(softmax) 층일 수 있다.
상기 감지된 데이터는 상기 IMU 각각을 위한 3개의 직교 축 각각 상의 가속도 값, 각속도 값 및 지자기 값을 포함할 수 있고, 상기 제스처 데이터는 보조 데이터를 더 포함할 수 있되, 상기 보조 데이터는 상기 감지된 데이터에 기반하여 계산된 오일러 각(Euler angles), 상기 감지된 데이터에 기반하여 계산된 쿼터니언(Quaternion), 또는 양자 모두를 포함할 수 있다.
적어도 하나의 실시예에 따르면, 컴퓨팅 장치에 의해 수행되는 제스처 인식 방법은, 적어도 하나의 관성 측정 유닛(Inertial Measurement Unit: IMU)에 의해 제스처에 관해 감지된 데이터를 포함하는 제스처 데이터를 수신하는 단계와, 콘볼루션 신경망(Convolutional Neural Network: CNN)에 기반하여 상기 제스처 데이터로부터 상기 제스처를 인식하는 단계를 포함하되, 상기 적어도 하나의 IMU 각각은 가속도계, 자이로스코프 및 지자기 센서를 포함하고, 상기 CNN은 적어도 하나의 콘볼루션 층과, 적어도 하나의 풀링 층과, 적어도 하나의 피드포워드 신경망 층과, 상기 CNN의 최종 출력을 위한 다른 피드포워드 신경망 층을 포함하며, 상기 제스처를 인식하는 단계는 상기 적어도 하나의 콘볼루션 층의 활성화 함수로서 계단 함수를 사용하는 단계와, 상기 적어도 하나의 피드포워드 신경망 층의 활성화 함수로서 정류화된 선형 유닛(Rectified Linear Unit: ReLU) 함수를 사용하는 단계를 포함한다.
상기 제스처를 인식하는 단계는 상기 적어도 하나의 풀링 층에서 최대 풀링을 수행하는 단계를 더 포함할 수 있다.
상기 제스처를 인식하는 단계는 상기 제스처를 복수의 제스처 부류 중 하나로 분류하기 위한 출력을 상기 최종 출력으로서 제공하기 위해 상기 다른 피드포워드 신경망 층의 활성화 함수로서 소프트맥스 함수를 사용하는 단계를 더 포함할 수 있다.
상기 감지된 데이터는 상기 IMU 각각을 위한 3개의 직교 축 각각 상의 가속도 값, 각속도 값 및 지자기 값을 포함할 수 있고, 상기 제스처 데이터는 보조 데이터를 더 포함할 수 있되, 상기 보조 데이터는 상기 감지된 데이터에 기반하여 계산된 오일러 각, 상기 감지된 데이터에 기반하여 계산된 쿼터니언, 또는 양자 모두를 포함할 수 있다.
적어도 하나의 실시예에 따르면, 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체가 제공되는데, 상기 컴퓨터 실행가능 명령어는 컴퓨팅 장치에 의해 실행되는 경우 상기 컴퓨팅 장치로 하여금 상기 제스처 인식 방법을 수행하게 할 수 있다.
본 발명의 실시예에 따르면, IMU를 구비한 센서 모듈에 의해 감지된 데이터로부터의 신경망 기반의 제스처 인식의 성공률을 개선하는 것이 가능하다.
본 발명의 실시예는 센서 정확도에 덜 의존적이면서도 더욱 정확하고 신속한 오차 갱신이 가능한 제스처 인식 기법을 제공한다.
도 1은 예시적인 CNN의 개략적인 블록도이다.
도 2a 및 도 2b는 본 발명의 실시예에 따라 제스처를 인식하기 위한 예시적인 시스템을 개략적으로 도시한다.
도 3은 본 발명의 실시예에 따라 제스처를 인식하기 위한 예시적인 시스템의 개략적인 블록도이다.
도 4는 본 발명의 실시예에 따른 제스처 인식 시스템에 의해 수행될 수 있는 예시적인 프로세스의 흐름도이다.
도 5 및 도 6은 본 발명의 실시예에 따른 제스처 인식 시스템의 성능을 설명하기 위한 도면이다.
이하에서는, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 본 발명은 여러 가지 실시예를 가질 수 있고, 몇몇 실시예가 본 명세서에 개시된다. 그러나, 이는 본 발명에 대한 한정이 아니라 예시로서 제공되며, 본 발명의 사상 및 범주에 속하는 모든 변환, 균등물 내지 대체물을 망라하는 것으로 이해되어야 한다. 개시된 실시예에 따른 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 다음의 상세한 설명에서 특정한 세부사항이 제공되는데, 몇몇 실시예는 이들 세부사항 중 일부 또는 전부가 없더라도 실시될 수 있다. 또한, 본 발명의 다양한 양상을 불필요하게 모호하게 하지 않도록 공지 기술의 구체적인 설명은 생략될 수 있다.
후술되는 용어는 단지 특정 실시예를 설명하기 위해 사용된 것으로, 한정적 의미로 고려되고자 의도된 것이 아니다. 단수 형태의 표현은 명확하게 달리 사용되지 않는 한, 복수 형태의 의미를 포함한다. 또한, 이 문서에서, "포함하다" 또는 "가지다"와 같은 용어는 어떤 특징, 숫자, 단계, 동작, 구성요소, 정보 또는 이들의 조합이 존재함을 나타내려는 것이며, 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 구성요소, 정보 또는 이들의 조합의 존재 또는 가능성을 배제하지 않는 것으로 이해되어야 한다.
본 개시는 사용자 제스처에 관한 정보를 감지하는 관성 측정 유닛(Inertial Measurement Unit: IMU)을 포함하는 센서 모듈 및 그러한 감지된 데이터로부터 제스처 특징을 추출하는 콘볼루션 신경망(Convolutional Neural Network: CNN)과 같은 인공 신경망이 조합된 효과적인 제스처 인식 기법을 예시한다. 한정이 아니고 예로서, 그러한 센서 모듈은 글러브형 착용가능 디바이스(glove-type wearable device)에 구비될 수 있다. 아래에서, CNN에 대한 개괄적인 설명에 이어서, 본 개시의 제스처 인식 기법의 실시예가 상세히 논의된다.
CNN의 개요
일반적으로, 다층 신경망은 입력 층(input layer)과, 하나 이상의 은닉 층(hidden layer)과 출력 층(output layer)을 포함한다. 신경망의 각각의 층은 하나 이상의 유닛(또는 노드)을 포함한다. 신경망 내의 유닛들, 특히 은닉 층과 출력 층의 유닛 각각은 복수의 입력을 취하여 하나의 출력을 계산한다. 예를 들어, 유닛의 출력은 바로 이전의 층의 유닛으로부터의 출력의 가중화된 합에 (선택적으로 바이어스(bias)를 적용한 후) 활성화 함수(activation function)를 적용함으로써 산출될 수 있다. 한정이 아니라 예로서, 활성화 함수는 시그모이드(sigmoid) 함수, 램프(ramp) 함수, 항등 맵핑(identity mapping), 계단(step) 함수, 맥스아웃(maxout) 함수, 또는 소프트맥스(softmax) 함수일 수 있다. 램프 함수를 사용하는 유닛은 정류화된 선형 유닛(Recitified Linear Unit: ReLU)으로 칭해지기도 하며, 램프 함수는 정류화된 선형 함수(rectified linear function)로 또는 단순히 ReLU 함수로 칭해지기도 한다. 이러한 신경망은 구글 사(Google, Inc.)의 오픈 소스 라이브러리(open-source library)인 텐서플로우(TensorFlow), 또는 다른 소프트웨어 패키지를 통하여 구현될 수 있다.
CNN은 생물의 뇌 안의 시각 피질(visual cortex)을 모방한 것인데, 딥 러닝(deep learning)에서 지도 학습(supervised learning) 방식으로 특징 추출을 수행하는 데에 사용될 수 있다. 도 1은 예시적인 CNN의 개략적인 블록도이다. 도 1에 도시된 바와 같이, 예시적인 CNN(100)은 입력 층(110), 이어서 콘볼루션 층(convolutional layer)(120), 이어서 풀링 층(pooling layer)(130)을 포함한다. CNN(100)에서, 콘볼루션 층 및 후속하는 풀링 층의 추가적인 쌍(예컨대, 콘볼루션 층(140)과 풀링 층(150))이 더 포함될 수 있다. 또한, 비록 도시되지 않았으나, 그러한 콘볼루션-풀링 층 구조에서, 콘볼루션 층(가령, 콘볼루션 층(120))과 풀링 층(가령, 풀링 층(130)) 사이에 적어도 하나의 추가적인 콘볼루션 층이 배치될 수 있고/있거나, 풀링 층(가령, 풀링 층(130)) 뒤에 다른 층(가령, 국소 콘트라스트 정규화(Local Contrast Normalization: LCM) 층)이 추가로 배치될 수 있다. 콘볼루션 층과 풀링 층과 같은 중간 층의 출력 데이터는 특징 맵(feature map) 또는 맵이라 칭해지기도 한다. 예시적인 CNN(100)은 마지막 콘볼루션-풀링 층 구조 뒤에 배치된 적어도 하나의 피드포워드(feed-forward) 신경망 층, 예컨대 인접한 층의 유닛이 모두 서로 연결된 완전 연결 층(fully-connected layer)(가령, 완전 연결 층(160, 170))을 더 포함한다.
콘볼루션 층(가령, 콘볼루션 층(120))의 유닛은 완전 연결 층과 달리, 인접한 층(가령, 입력 층(110))의 특정한 유닛과 연결되고(즉, 국소적 연결), 커널(kernel)로도 불리는 필터(filter)) 및 콘볼루션 층의 입력 데이터 간의 상관(correlation)을 도출한다. 이 필터의 계수는 그러한 국소적 연결의 가중치를 나타내는데, 이는 콘볼루션 층의 유닛에서 동일하다(즉, 가중치 공유). 콘볼루션 층에서 계산된 상관은 입력 데이터와 필터에 대한 콘볼루션(convolution; 합성곱)과 실질적으로 마찬가지이다.
콘볼루션 층에서 필터가 입력 데이터에 대해 움직여지는 거리는 스트라이드(stride)로 칭해진다. 예를 들어, [0, 3, 2, 1, -1, 3, 3]이라는 입력 데이터에 대해 [-1, 0, 1]이라는 커널이 적용되는 위치의 간격이 1인 경우, 곧 스트라이드가 1인 콘볼루션 연산이 수행되는 경우, 그 연산의 결과는 [-1×0 + 0×3 + 1×2, -1×3 + 0×2 + 1×1, -1×2 + 0×1 + 1×(-1), -1×1 + 0×(-1) + 1×3, -1×(-1) + 0×3 + 1×3] = [2, -2, -3, 2, 4]이다. 다른 예에서, 동일한 커널과 동일한 입력 데이터에 대해 스트라이드가 2인 콘볼루션 연산이 수행되는 경우, 그 연산의 결과는 [-1×0 + 0×3 + 1×2, -1×2 + 0×1 + 1×(-1), -1×(-1) + 0×3 + 1×3] = [2, -3, 4]이다. 물론, 이들 예에서 보여지지는 않았으나, 콘볼루션 연산의 결과에 바이어스의 가산이 도입될 수도 있다.
콘볼루션 층의 유닛은 출력을 위해 그러한 연산 결과에 활성화 함수(가령, 시그모이드 함수, ReLU 함수, 계단 함수 또는 유사한 것)를 적용한다. 예시된 바와 같이, 콘볼루션 층의 출력 데이터의 크기는 입력 데이터의 크기, 필터의 크기 및 스트라이드에 따라 정해질 수 있다. 예를 들어, N×N의 크기를 갖는 입력 이미지 데이터에 대해 F×F 커널이 스트라이드 S로 적용되는 경우, C=(N-F)/S+1인 C×C의 크기를 갖는 출력 데이터가 주어질 수 있다. 예시된 바와 같이, 스트라이드의 값이 증가할수록 출력 데이터의 크기는 감소함이 이해될 것이다. 따라서, 스트라이드의 값을 증가시킴으로써 계산량을 줄일 수 있다. 그러나, 과도한 스트라이드 값은 입력 데이터의 특징이 제대로 추출되지 못하게 할 수 있다.
풀링 층(가령, 풀링 층(130))은 계산량을 줄이도록 풀링을 통해 감소된 크기의 특징 맵을 제공한다. 이러한 풀링은 콘볼루션 층에서 추출된 특징의 토폴로지(topology) 특성이나 위치가 변하더라도 풀링 층의 출력이 불변하게 할 수 있다. 풀링 층 역시 인접한 층(가령, 콘볼루션 층(120))과 국소적으로 연결된다. 예를 들어, 풀링 층은 콘볼루션 층으로부터의 특징 맵에 대해, 풀링 윈도우(window) 영역에 걸쳐 평균값을 출력하는 평균 풀링(average pooling)을 수행할 수 있거나(즉, 풀링 층은 평균 풀링 층일 수 있음) 또는 풀링 윈도우 영역 내의 최대값을 출력하는 최대 풀링(max pooling)을 수행할 수 있다(즉, 풀링 층은 최대 풀링 층일 수 있음). 또한, 풀링 층에서도 콘볼루션 층과 유사하게 스트라이드가 설정될 수 있다. 특히, 풀링 층에서는 그 취지에 부합하도록 2 이상의 스트라이드가 사용될 수 있다.
피드포워드(feed-forward) 신경망 층(가령, 완전 연결 층(160, 170))은 어떤 층의 유닛이 오직 인접 층과 연결된 구조를 갖는 신경망이다. 도시된 바와 같이, CNN(100)의 최종적인 출력은 마지막 피드포워드 신경망 층(가령, 완전 연결 층(170))의 출력이다(즉, 마지막 피드포워드 신경망 층이 CNN(100)의 출력 층임). 예를 들어, CNN(100)이 다부류 분류(multi-class classification)에 정향된 경우, CNN(100)의 출력 층에서 소프트맥스 함수가 활성화 함수로서 사용될 수 있고, 그러한 출력 층은 소프트맥스 층으로 칭해질 수 있다.
CNN(100)에서 콘볼루션 층과 피드포워드 신경망 층의 파라미터(가령, 층간 연결의 가중치 및 바이어스)가 학습에 따라 변화할 수 있다는 점이 이해될 것이다. CNN 기반의 학습(가령, 딥 러닝(deep learning)) 알고리즘은 지도 학습(supervised learning)의 일종인데, 지도 학습은 입력 데이터로부터 예측된 값과 정답 레이블(label) 사이의 손실 오차를 오차 함수에 따라 구하고 그 오차를 갱신하는 방식으로 학습하는 일련의 과정을 갖는다. 특히, CNN 기반 학습 알고리즘은 분류 스테이지(stage)뿐만 아니라 특징 추출 스테이지를 수반한다. 그러한 특징 추출은 콘볼루션과 풀링을 통해 국소적인 특징으로부터 전역적인 특징을 얻는 것이다. 이에 따라, CNN 기반 학습 알고리즘은 토폴로지 변화에 강인한 인식 능력을 가능하게 한다.
예시적인 제스처 인식 시스템
도 2a 내지 도 2b는 본 발명의 실시예에 따라 제스처를 인식하기 위한 예시적인 시스템을 개략적으로 도시한다. 도 2a에 도시된 바와 같이, 예시적인 제스처 인식 시스템(200)은 제스처에 관한 데이터를 감지하기 위한 감지 메커니즘(sensing mechanism)인 센서 모듈(220)과, 감지된 데이터를 포함하는 제스처 데이터로부터 해당 제스처를 CNN에 기반하여 인식하기 위한 학습 및 분류 메커니즘인 CNN 기반 제스처 인식 모듈(280)을 포함한다. 몇몇 실시예에서, 센서 모듈(220)은 사용자가 착용할 수 있는 착용가능 디바이스(가령, 사용자의 손에 착용될 수 있는 글러브형 착용가능 디바이스(210))에 구비될 수 있고, CNN 기반 제스처 인식 모듈(280)은 착용가능 디바이스와 통신가능하게 커플링된(communicatively coupled) 컴퓨팅 디바이스(computing device)(가령, 컴퓨팅 디바이스(270))로써 구현될 수 있다.
예를 들어, 도 2a에 도시된 바와 같이, 센서 모듈(220)은 제스처에 관한 데이터를 감지하기 위한 적어도 하나의 IMU(221-1, 221-2, ..., 221-j)(이하에서 개별적으로 참조번호 221로 표기될 수 있음)를 포함할 수 있다. 예시적인 제스처 인식 시스템(200)에서, IMU(221)는 몇몇 관성 센서, 예컨대 물체의 가속도를 측정하기 위한 적어도 하나의 가속도계(accelerometer) 및 물체의 각속도를 측정하기 위한 적어도 하나의 자이로스코프(gyroscope)를 포함할 수 있다. 또한, IMU(221)는 물체를 둘러싼 자기장을 측정하기 위한 적어도 하나의 자력계(magnetometer), 예컨대 지자기 센서(geomagnetic sensor)를 더 포함할 수 있다. 예를 들어, 제스처에 관해 IMU(221)에 의해 감지된 데이터는 IMU(221)에 포함된 가속도계, 자이로스코프 및 지자기 센서에 의해 각각 측정된 가속도 값, 각속도 값 및 지자기 값을 포함할 수 있다. 몇몇 실시예에서, IMU(221)의 가속도계, 자이로스코프 및 지자기 센서는 각각 3축 가속도계, 3축 자이로스코프 및 3축 지자기 센서일 수 있다.
CNN 기반 제스처 인식 모듈(280)은 CNN(281)에 기반하여 제스처 데이터로부터 제스처를 인식할 수 있다. 따라서, 예시적인 제스처 인식 시스템(200)의 성능은 단순히 IMU의 센서의 정확도에 의존하기보다는 인식 성공률의 측면에서 CNN 기반 제스처 인식 모듈(280)로부터 이로움을 얻을 수 있다. CNN(281)은 앞서 언급된 CNN(100)과 마찬가지 방식으로 구현될 수 있다. 예를 들어, 도 2b에 도시된 바와 같이, CNN(281)은 주어진 입력 데이터를 출력하는 입력 층(201), 활성화 함수(292)가 적용된 제1 콘볼루션 층(202), 제1 풀링 층(203), 활성화 함수(294)가 적용된 제2 콘볼루션 층(204), 제2 풀링 층(205), 활성화 함수(296)가 적용된 제1 피드포워드 신경망 층(206), 그리고 CNN(281)의 최종 출력(208)을 위한 활성화 함수(297)가 적용된 제2 피드포워드 신경망 층(207)을 포함할 수 있다. 다만, 본 개시의 범주는 이 점에 한정되지 않고, CNN(281)은 다른 실시예에서 상이한 구성(예를 들어, 콘볼루션 층, 풀링 층 및 피드포워드 신경망 층이 단 하나 있음)을 가질 수 있다는 점에 유의하여야 한다. 또한, 콘볼루션 층(202, 204)과 피드포워드 신경망 층(206, 207) 각각의 활성화 함수로서 임의의 적합한 함수가 사용될 수 있다. 나아가, 풀링 층(203, 205)은 적절한 풀링(예컨대, 최대 풀링)을 수행할 수 있다.
그러한 CNN(281)을 사용함으로써, CNN 기반 제스처 인식 모듈(280)은 제스처에 관해 센서 모듈(220)에 의해 감지된 데이터를 포함하는 제스처 데이터로부터 특징을 추출하여 제스처를 어떤 제스처 부류(class)로 인식하는 방식으로 기계 학습과 이에 따른 제스처 분류를 수행할 수 있다. 예를 들어, CNN 기반 제스처 인식 모듈(280)은 제스처를 CNN(281)으로부터의 출력(208)에 따라 복수의 사전정의된 제스처 부류 중 하나로 분류할 수 있다. 예로서, CNN(281)의 최종 출력(208)을 위한 피드포워드 신경망 층(207)은 n개의 제스처 부류를 각각 나타내는 n개의 유닛을 포함하고, 입력이 xk인 각 유닛의 출력 yk를 위해 다음 식에서 주어진 바와 같이 소프트맥스 함수가 피드포워드 신경망 층(207)의 활성화 함수(297)로 사용될 수 있다(즉, 출력 층(207)은 사용자의 제스처를 복수의 제스처 부류 중 하나로 분류하기 위한 출력을 CNN(281)의 최종 출력으로서 제공하는 소프트맥스 층일 수 있음).
Figure 112018020438088-pat00001
특히, 예시적인 제스처 인식 시스템(200)에서, CNN(281)의 다른 층(가령, 제1 콘볼루션 층(202), 제2 콘볼루션 층(204) 및 제1 피드포워드 신경망(206)(의 유닛들)의 활성화 함수는 이하에서 상술되는 바와 같이 주어질 수 있다.
- 콘볼루션 층(가령, 제1 콘볼루션 층(202) 및 제2 콘볼루션 층(204))의 활성화 함수로서 계단 함수가 사용됨, 그리고
- 다른 피드포워드 신경망 층(가령, 제1 피드포워드 신경망 층(206))의 활성화 함수로서 ReLU 함수가 사용됨.
본 발명자들은 예시적인 제스처 인식 시스템(200)에서 CNN 기반 제스처 인식 모듈(280)은 센서 모듈(220)의 IMU(221)에 의해 감지된 데이터를 사용하여 CNN(281)에 의한 학습과 분류가 수행된다는 특성으로부터 위와 같이 활성화 함수를 적용하는 것(이하에서 "계단-ReLU 구조"로 지칭될 수도 있음)을 착안하였고, 후술되는 바와 같이 예시적인 제스처 인식 시스템(200)의 성능 평가를 통해 계단-ReLU 구조가 유용성을 갖고 있음(가령, 인식 성공률의 향상 및 신속한 오차 갱신이 가능함)을 알게 되었다. 이하에서, 도 3에 도시된 바와 같이 제스처 인식 시스템(200)이 더욱 구체적인 방식으로 구성된 제스처 인식 시스템(300)이 우선 설명되고, 이어서 그러한 제스처 인식 시스템(300)의 일 구현을 사용하여 수행된 성능 평가가 논의될 것이다.
도 3에 도시된 바와 같이, 예시적인 제스처 인식 시스템(300)은 사용자의 손에 착용될 수 있는 글러브형 착용가능 디바이스(210)와, 글러브형 착용가능 디바이스(210)와 통신가능하게 커플링된 컴퓨팅 디바이스(270)를 포함한다.
도 3을 참조하면, 제스처 인식 시스템(300)에서, 센서 모듈(220)은 글러브형 착용가능 디바이스(210)에 포함되는 것으로 예시된다. 예를 들어, 도 3에 도시된 바와 같이, 센서 모듈(220)은 사용자의 손 제스처에 관한 데이터를 감지하기 위해 5개의 손가락 형상 부분에 각각 구비된 5개의 IMU(221-1, 221-2, ..., 221-5)를 포함할 수 있다. 또한, 도시된 바와 같이, 제스처 인식 시스템(300)의 글러브형 착용가능 디바이스(210)는 센서 모듈(220)(특히, IMU(221))과의 통신(가령, I2C(Inter-Integrated Circuit) 버스 통신과 같은 버스 통신)이 되는 제어기(controller)(230)를 더 포함할 수 있다.
몇몇 실시예에서, IMU(221)는 앞서 언급된 바와 같이 글러브형 착용가능 디바이스(210)의 손가락 형상 부분에 구비될 수 있고, 이에 따라 손가락 형상 부분의 가속도, 각속도 및 지자기를 측정할 수 있다. 다만, 본 개시의 실시예는 이 점에 한정되지 않고, IMU(221)는 글러브형 착용가능 디바이스(210)의 다른 부분, 예컨대 손목 부분, 손등 부분, 손바닥 부분 등등에 구비될 수 있음이 이해될 것이다. 예시적인 제스처 인식 시스템(300)은 IMU(221)에 의해 감지된 데이터를 사용하여 글러브형 착용가능 디바이스(210)의 착용자의 손(가령, 손가락, 손목, 손등 및/또는 손바닥 부위)의 방향, 속도, 위치, 기울기 등등과 같은 물리적 양을 계산하는 일련의 프로세스를 수행할 수 있다.
글러브형 착용가능 디바이스(210)가 착용된 초기 지점에서의 센서 모듈(220)의 초기화, 특히 IMU(221)에 의해 사용자 제스처에 관한 데이터를 적절히 감지하는 것을 위해, IMU(221) 주위의 환경에 IMU(221)의 센서들을 맞추는 캘리브레이션(calibration)이 요구될 수 있다. 예를 들어, 지자기 센서가 사용되는 경우 자기 왜곡(magnetic distortion)과 같이 측정 값의 왜곡을 야기하는 여러 가지 요인이 나타날 수 있으므로, 캘리브레이션을 통한 보정이 필요할 수 있다. 몇몇 실시예에서, 그러한 센서 캘리브레이션은 칼만 필터(Kalman filter), 예를 들어 확장 칼만 필터(extended Kalman filter)와 같은 필터를 적용하는 것을 포함할 수 있다. 칼만 필터는 잡음을 포함하는 측정 데이터로부터 동적 시스템(dynamic system)의 상태(state)를 추정하는 재귀적(recursive) 필터이다. 개략적으로 말하면, 칼만 필터의 동작은 다음과 같다. 시스템 상태 및 오차 공분산의 초기 추정치가 주어지면, 상태 전이 모델에 기반하여 상태가 예측되고 그것의 오차 공분산이 예측된다. 측정 모델 및 예측된 오차 공분산에 기반하여, 칼만 이득이 계산되는데, 상태의 추정치와 오차 공분산의 추정치를 갱신하는 데에 사용된다. 상태의 추정치의 갱신에서 측정치가 고려된다. 이러한 예측과 갱신이 반복되어 추정치가 재귀적으로 제공된다.
제어기(230)는 센서 모듈(220)으로부터의 측정 데이터를 수신하고 처리하여 통신 매체(250)를 통해 컴퓨팅 디바이스(270)에 제스처 데이터를 송신하도록 구성될 수 있다. 통신 매체(250)는 직렬 케이블(serial cable)과 같은 유선 매체, 무선 통신을 위한 전자기파(electromagnetic wave)와 같은 무선 매체, 또는 이들의 조합일 수 있다.
몇몇 실시예에서, 제어기(230)는 마이크로제어기 유닛(Micro-Controller Unit: MCU)(231)를 포함할 수 있는데, 이는 IMU(221)에 의해 감지된 데이터를 I2C 프로토콜에 따른 버스 상에서 IMU(221)로부터 수신하고, 그러한 감지된 데이터를 포함하는 제스처 데이터를 통신 매체(250)를 통해 컴퓨팅 디바이스(270)에 제공할 수 있다. 전술된 바와 같이, IMU(221)는 3축 가속도계, 3축 자이로스코프 및 3축 지자기 센서를 포함할 수 있는바, IMU(221)에 의해 감지된 데이터는 IMU(221)를 위한 3개의 직교 축 각각 상의 가속도 값, 각속도 값 및 지자기 값을 포함할 수 있다. 나아가, 제스처 데이터는 추가적인 데이터를 더 포함할 수 있다. 예를 들어, MCU(231)는 IMU(221)에 의해 감지된 데이터에 기반하여 오일러 각(Euler angles)(예컨대, 롤(roll), 피치(pitch), 요(yaw) 값) 및/또는 쿼터니언(Quaternion)을 포함하는 보조 데이터를 계산할 수 있고, 제스처 데이터는 앞서 언급된 감지된 데이터 외에도 그러한 보조 데이터를 포함할 수 있다.
MCU(231)는 이와 같이 IMU(221)에 의해 측정된 데이터를 IMU(221)로부터 수신하는 것, 그러한 데이터를 변환하는 것(가령, 오일러 각 및/또는 쿼터니언의 계산을 위한 좌표계 변환), 컴퓨팅 디바이스(270)로 데이터를 송신하는 것 등등에 더하여, 앞서 언급된 바와 같은 센서 캘리브레이션을 수행할 수 있다. 그러한 캘리브레이션은 제스처 인식 모듈(280)에서 사용되는 CNN(281)을 위한 훈련 데이터 및 테스트 데이터의 수집뿐만 아니라, 실제 제스처 인식에서의 사용을 위한 데이터의 감지를 위해서도 수행될 수 있다.
몇몇 실시예에서, 제어기(230)는 MCU(231)와 여러 IMU(221-1, 221-2, ..., 222-5) 간의 통신을 가능하게 하는 멀티플렉서(multiplexer)(232)를 더 포함할 수 있다. 앞서 언급된 바와 같이, 몇몇 실시예에서 IMU(221)는 I2C 통신을 사용하여 MCU(231)와 통신할 수 있으나, IMU(221-1, 221-2, ..., 221-5)로서 사용될 수 있는 통상적인 상용 IMU는 동일한 주소 값을 갖도록 구성될 수 있다. 이러한 상황에서, I2C 버스 상에서 MCU(231)와 여러 IMU(221-1, 221-2, ..., 221-5)와의 통신을 가능하게 하기 위해서 멀티플렉서(232)는 여러 IMU(221-1, 221-2, ..., 221-5)에 각자의 주소 값을 할당하여 주소 값의 충돌을 피할 수 있다.
예시적인 제스처 인식 시스템(300)에서, 컴퓨팅 디바이스(270)는 제어기(230)로부터의 제스처 데이터를 수신하고 이를 사용하여 글러브형 착용가능 디바이스(210)의 착용자의 손 제스처를 인식하기 위한 CNN 기반 학습 및 분류 메커니즘으로서 CNN 기반 제스처 인식 모듈(280)을 구현하도록 구성된다. CNN 기반 제스처 인식 모듈(280)은 CNN(281)에 기반하여 제스처 데이터로부터 손 제스처를 인식할 수 있다. 예를 들어, CNN 기반 제스처 인식 모듈(280)은 글러브형 착용가능 디바이스(210)를 착용한 사용자의 감지된 손 제스처를 CNN(281)으로부터의 출력(208)에 따라 복수의 사전정의된 손 제스처 부류 중 하나로 분류할 수 있다.
성능 평가
도 4는 본 발명의 실시예에 따른 제스처 인식 시스템에 의해 수행될 수 있는 예시적인 프로세스의 흐름도이다. 예시적인 프로세스(400)에 따르면, 우선 제스처 인식 시스템(300)의 글러브형 착용가능 디바이스(210)를 사용자가 착용한 후, 제스처 인식 시스템(300)의 글러브형 착용가능 디바이스(210)는 동작(410)에서 센서 캘리브레이션을 수행한다. 동작(420)에서, 사용자가 (가령, 평면이나 공중에 숫자나 문자를 쓰는) 제스처를 취하는 동안, 제스처 인식 시스템(300)의 글러브형 착용가능 디바이스(210)는 사용자의 제스처에 관한 감지를 통해 제스처 데이터를 획득한다. 동작(420)은 여러 번 반복될 수 있다. 동작(420)에서 획득된 제스처 데이터는 동작(430)에서 제스처 인식 시스템(300)의 컴퓨팅 디바이스(270)에 의해 CNN(281)을 위한 훈련 데이터로서 사용될 수 있다. 훈련(430) 후에, 제스처 인식 시스템(300)은 다음과 같이 제스처 인식을 수행할 수 있다. 제스처 인식 시스템(300)의 글러브형 착용가능 디바이스(210)는 CNN(281)의 훈련이 완료된 후에 초기화가 다시 필요할 수 있다. 이에 따라, 글러브형 착용가능 디바이스(210)는 동작(440)에서 센서 캘리브레이션을 다시 수행할 수 있다. 동작(450)에서, 제스처 인식 시스템(300)의 컴퓨팅 디바이스(270)는 제스처 데이터를 입력 받는다. 입력 데이터는 글러브형 착용가능 디바이스(210)에 의해 사용자의 제스처에 관해 감지된 데이터를 포함할 수 있다. 동작(460)에서, 제스처 인식 시스템(300)의 컴퓨팅 디바이스(270)는 동작(450)에서 제공된 제스처 데이터로부터 CNN 기반의 제스처 인식을 수행한다.
예시적인 제스처 인식 시스템(300)의 성능을 평가하기 위해, 도 4의 프로세스(400)가 수행될 수 있다. 이를 위해, 동작(460)에서 컴퓨팅 디바이스(270)에 테스트 데이터가 제공되고 그 테스트 데이터로부터의 CNN 기반 제스처 인식이 테스트될 수 있다.
이제, 성능 평가를 위한 예시적인 시나리오(이하에서 "평가 시나리오"로 지칭될 수 있음)에서 제스처 인식 시스템(300)이 어떻게 구현되고 시험되는지 논의된다.
평가 시나리오에서, 글러브형 착용가능 디바이스(210)는 5개의 손가락 형상 부분에 5개의 IMU(221-1, 221-2, ..., 221-5)가 각각 장착된다. 글러브형 착용가능 디바이스(210)의 IMU(221)로는, 3축 자이로스코프 L3G4200D, 3축 가속도계 ADXL345 및 3축 지자기 센서 HMC5883L이 보드 상에 포함된, Arduino 호환가능한 센서 모듈인 GY-80이 사용된다. 표 1은 평가 시나리오에서의 사용을 위한 IMU(221)의 사양을 보여준다.
Figure 112018020438088-pat00002
평가 시나리오에서, 가속도는 가속도계에 의해 100 Hz의 샘플링 레이트(sampling rate)로, 각속도는 자이로스코프에 의해 200 Hz의 샘플링 레이트로, 그리고 지자기는 지자기 센서에 의해 75 Hz의 샘플링 레이트로 측정된다. IMU(221)의 센서들의 신뢰성은 정지된 자세의 제스처에 대한 데이터의 표준 편차로부터 확인될 수 있다.
평가 시나리오에서, 아두이노 나노(Arduino Nano)가 부착되어 MCU(231)로 사용된다. 표 2는 평가 시나리오에서의 사용을 위한 MCU(231)의 사양을 도시한다.
Figure 112018020438088-pat00003
평가 시나리오에서, MCU(231)는 I2C 통신을 사용하여 IMU(221)와 통신하며, 각 IMU(221)로의 주소 할당을 위한 I2C 멀티플렉서가 구비된다.
평가 시나리오에서, MCU(231)는 직렬 통신(serial communication) 방식으로 컴퓨팅 디바이스(270)와 통신한다. 특히, MCU(231)는 IMU(221)로부터의 감지된 데이터에 기반한 제스처 데이터를 직렬 케이블(250) 상에서 컴퓨팅 디바이스(270)에 송신한다. 평가 시나리오에서, 사용자 제스처를 검출하기 위한 각 시점에서, MCU(231)는 각각의 IMU(221)와 관련하여 아래의 표 3과 같이 주 처리 데이터와 보조 처리 데이터를 포함하여 제스처 데이터를 구성한다.
Figure 112018020438088-pat00004
표 3에서 볼 수 있는 바와 같이, 평가 시나리오에서 제스처 데이터는 16개의 출력 변수에 대해 구성되는데, 주 처리 데이터로서 9개의 출력 변수를, 그리고 보조 처리 데이터로서 7개의 출력 변수를 포함한다. 구체적으로, 주 처리 데이터는 3개 축 각각에 대해 IMU(221)에 의해 감지된 지자기, 가속도 및 각속도 값을 나타낸다. 보조 처리 데이터는 주 처리 데이터에 기반하여 계산된 것인데, 3차원 공간에서의 회전을 표현하기 위한 4개의 원소 qx, qy, qz, qw로 이루어진 쿼터니언과, 3개의 오일러 각도(롤, 피치 및 요)를 포함한다.
각각의 IMU(221)와 관련하여, 제스처 데이터는 몇 개의 시점 각각에 대한 출력 변수 값이 취합된 포맷으로 구성될 수 있다. 평가 시나리오에서, MCU(231)는 앞서 언급된 16개의 출력 변수의 값을 획득하는 것을 16개의 시점 각각에서 수행하고, 수신된 출력 변수 값들을 16×16 포맷의 데이터세트로 구성하여 컴퓨팅 디바이스(270)로 송신한다.
평가 시나리오에서, 센서 캘리브레이션 후, 데이터 글로브(210)의 착용자가 자기 손가락을 사용하여 0부터 9까지의 숫자 중 하나를 수기하는(handwriting) 제스처를 취하는 방식으로 각 숫자에 대해 100개의 16×16 훈련 데이터세트와 30개의 16×16 테스트 데이터세트가 생성된다.
평가 시나리오에서, CNN 기반 학습 및 분류 메커니즘(280)은 풀링 층(203, 205)이 최대 풀링 층(즉, 풀링 층(203, 205)은 최대 풀링을 수행함)이고 출력 층(207)이 소프트맥스 층(즉, 출력 층(207)의 활성화 함수(297)는 소프트맥스 함수임)인 CNN(281)을 사용한다. 또한, 평가 시나리오에서, CNN(281)의 피드포워드 신경망 층(206, 207)은 아핀 층(Affine layer)과 같은 완전 연결 층이다. 피드포워드 신경망 층(206, 207)은 깊이가 1이고 노드의 수가 100개이다. CNN(281)의 학습을 위해, 학습 횟수는 총 1,000회이고, 학습률(learning rate)은 0.01로 설정된다.
평가 시나리오에서, 우선적으로 피드포워드 신경망 층(206, 207)의 가중치와 바이어스가 무작위로 주어져 고정된 후, 콘볼루션 층(202, 204)의 활성화 함수로서 계단 함수가 사용된 경우(이하에서 "계단 함수 평가"로 지칭될 수 있음)와, ReLU 함수가 사용된 경우(이하에서 "ReLU 함수 평가"로 지칭될 수 있음)와, 시그모이드 함수가 사용된 경우(이하에서 "시그모이드 함수 평가"로 지칭될 수 있음)가 비교된다. 도 5는 계단 함수 평가, ReLU 함수 평가 및 시그모이드 함수 평가가 내는 정확도 및 오차 갱신을 보여준다. 도 5는 훈련 데이터 및 테스트 데이터에 대해 측정된 정확도를 보여주는데, 정확도가 1.0에 수렴할수록, 그리고 테스트 데이터에 대한 정확도가 훈련 데이터에 대한 정확도에 가까울수록 성능이 우수하다고 볼 수 있다. 또한, 도 5는 교차 엔트로피(cross entropy) 오차를 보여주는데, 오차가 0.0에 수렴할수록 성능이 우수하다고 볼 수 있다. 이에 비추어 볼 때, 계단 함수 평가, ReLU 함수 평가, 시그모이드 함수 평가 순으로 더 우수한 성능을 보인다. 이는 센서 모듈(220)이 IMU(221)를 구비한다는 특성에 따른 것으로 이해되는데, 가속도, 각속도 및 지자기 값의 범위는 대개 0에 가깝고, 움직임이 있을 때에 변화의 양을 측정하다는 점에서 계단 함수가 콘볼루션 층(202, 204)의 활성화 함수로 적절하다고 이해된다. 시그모이드 함수 평가가 기울기 소실(vanishing gradient) 문제로 학습이 제대로 진행되지 않는 결과를 보여주는데, 훈련 데이터 및 테스트 데이터에 대한 정확도가 0.1에 머물러 있다.
이런 점을 고려하여, 평가 시나리오에서, 콘볼루션 층(202, 204)의 유닛들의 활성화 함수로서 계단 함수가 사용되면서 피드포워드 신경망 층(206)의 활성화 함수로서 계단 함수가 사용된 경우(이하에서 "계단-계단 함수 평가"로 지칭될 수 있음)와, ReLU 함수가 사용된 경우(이하에서 "계단-ReLU 함수 평가"로 지칭될 수 있음)가 비교된다. 도 6에서 볼 수 있듯이, 계단-계단 함수 평가는 테스트 데이터에 대해 과적합(overfitting)이 발생하는데, 출력이 0과 1뿐인 계단 함수의 특성상 표현력이 떨어지기 때문이라고 이해된다. 이에 반해, 도 6에 도시된 바와 같이, 계단-ReLU 함수 평가가 우수한 성능을 보여주는데, 필터링을 통한 효과적인 전역 특징 추출에 이어서, 신경망 층에서는 양의 실수 범위 내의 다양한 출력이 가능하기 때문이라고 이해된다.
이와 같이, 예시적인 제스처 인식 시스템(200)은 계단-ReLU 구조를 가져서 높은 정확도를 갖고 오차 갱신이 빠른 CNN을 기반으로 제스처 인식을 수행함으로써, 개선된 제스처 인식을 가능하게 할 수 있다.
예시적인 컴퓨팅 환경
몇몇 실시예에서, 컴퓨팅 디바이스(270) 및/또는 제어기(230)와 같은 처리 장치는 임의의 적합한 유형의 컴퓨터일 수 있는데, 이는 하나 이상의 프로세서, 프로세서에 의해 판독가능한 컴퓨터 판독가능 저장 매체 및 다양한 주변기기를 포함할 수 있다. 예를 들어, 프로세서는 디지털 신호 프로세서(Digital Signal Processor: DSP), 중앙 처리 유닛(Central Processing Unit: CPU), 그래픽 처리 유닛(Graphics Processing Unit: GPU), 프로세서 코어, 마이크로프로세서, 마이크로제어기, 필드 프로그램가능 게이트 어레이(Field-Programmable Gate Array: FPGA), 애플리케이션 특정 집적 회로(Application Specific Integrated Circuit: ASIC), 무선 주파수 집적 회로(Radio-Frequency Integrated Circuit: RFIC), 다른 하드웨어 및 로직 회로, 또는 이의 임의의 적합한 조합을 포함할 수 있다. 컴퓨터 판독가능 저장 매체에는, 프로세서에 의해 실행되는 경우 컴퓨터로 하여금 본 발명의 실시예에 따라 몇몇 동작을 수행하게 하는 컴퓨터 실행가능 명령어가 저장되어 있을 수 있다. 예를 들어, 컴퓨터 판독가능 저장 매체는 판독 전용 메모리(Read-Only Memory: ROM), 랜덤 액세스 메모리(Random-Access Memory: RAM), 휘발성(volatile) 메모리, 비휘발성(non-volatile) 메모리, 착탈가능(removable) 메모리, 비착탈가능(non-removable) 메모리, 하드 디스크, 플래시(flash) 메모리, 자기 디스크 저장 매체, 광 디스크 저장 매체, 다른 저장 디바이스 및 저장 매체, 또는 이의 임의의 적합한 조합을 포함할 수 있다. 예를 들어, 주변기기는 다양한 입출력(Input/Output: I/O) 디바이스, 가령 마우스와 같은 포인팅 디바이스, 키보드, 키패드, 마이크, CD/DVD 플레이어, 액정 디스플레이(Liquid Crystal Display: LCD), 터치 감지 디스플레이(touch-sensitive display), 스피커, 프린터, 통신 인터페이스 카드, 사운드 카드 등등을 포함할 수 있다.
예시적인 실시예는 본 문서에 기술된 동작, 기법, 프로세스, 또는 이의 어떤 양상이나 부분이 체현된 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 저장 매체로서 구현될 수 있다. 이러한 컴퓨터 판독 가능 저장 매체에는 프로그램 명령어, 로컬 데이터 파일, 로컬 데이터 구조 등등이 단독으로 또는 조합되어 포함될 수 있다. 개시된 동작, 기법, 프로세스, 또는 이의 어떤 양상이나 부분을 구현하거나 이용할 수 있는 프로그램은 컴퓨터에 의해 실행될 수 있는 어떤 유형의 (가령, 컴파일형(compiled) 또는 해석형(interpreted)) 프로그래밍 언어, 예컨대, 어셈블리(assembly), 기계어(machine language), 프로시저형(procedural) 언어, 객체지향(object-oriented) 언어 등등으로 구현될 수 있고, 하드웨어 구현과 조합될 수 있다. 용어 "컴퓨터 판독가능 저장 매체"는, 컴퓨팅 장치에 의한 실행을 위한 명령어(실행 시에 컴퓨팅 장치로 하여금 개시된 기법을 수행하게 함)를 저장할 수 있고, 그러한 명령어에 의해 사용되거나 이와 연관된 데이터 구조를 저장할 수 있는 임의의 매체를 포함할 수 있다. 컴퓨터 판독가능 저장 매체의 예는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 그리고 ROM, RAM, 플래시 메모리, 솔리드 스테이트(solid-state) 메모리와 같은 메모리 디바이스를 포함하되, 이에 한정되지 않는다.
이상에서 본 발명의 몇몇 실시예가 상세하게 기술되었으나, 이는 제한적이 아니고 예시적인 것으로 간주되어야 한다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 개시된 실시예의 세부사항에 대해 본 발명의 범주에서 벗어나지 않고서 다양한 변경이 행해질 수 있음을 이해할 것이다. 그러므로 본 발명의 범주는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위 및 그 균등물에 의해 정해져야 한다.
100: 콘볼루션 신경망
200: 제스처 인식 시스템
220: 센서 모듈
280: 콘볼루션 신경망 기반 제스처 인식 모듈

Claims (8)

  1. 제스처 인식 시스템으로서,
    제스처에 관한 데이터를 감지하는 적어도 하나의 관성 측정 유닛(Inertial Measurement Unit: IMU)을 포함하는 센서 모듈과,
    복수의 시점 각각에 대한 복수의 변수 값이 취합된 포맷으로 구성된 제스처 데이터를 입력 받은 콘볼루션 신경망(Convolutional Neural Network: CNN)의 최종 출력에 따라 상기 제스처를 복수의 제스처 부류 중 하나로 분류함으로써 상기 제스처를 인식하는 CNN 기반 제스처 인식 모듈 - 상기 복수의 변수 값은 상기 감지된 데이터를 포함함 - 을 포함하되, 상기 적어도 하나의 IMU 각각은 3축 가속도계, 3축 자이로스코프 및 3축 지자기 센서를 포함하고, 상기 감지된 데이터는 상기 IMU 각각을 위한 3개의 직교 축 각각 상의 가속도 값, 각속도 값 및 지자기 값을 포함하며, 상기 복수의 변수 값은 상기 감지된 데이터에 기반하여 계산된 오일러 각(Euler angles) 및 상기 감지된 데이터에 기반하여 계산된 쿼터니언(Quaternion)을 더 포함하고, 상기 CNN은 적어도 하나의 콘볼루션 층(convolutional layer)과, 적어도 하나의 풀링 층(pooling layer)과, 적어도 하나의 피드포워드 신경망 층(feed-forward neural network layer)과, 상기 최종 출력을 위한 다른 피드포워드 신경망 층을 포함하며, 상기 적어도 하나의 콘볼루션 층의 활성화 함수는 계단 함수(step function)이고, 상기 적어도 하나의 피드포워드 신경망 층의 활성화 함수는 정류화된 선형 유닛(Rectified Linear Unit: ReLU) 함수인,
    제스처 인식 시스템.
  2. 제1항에 있어서,
    상기 적어도 하나의 풀링 층은 최대 풀링(max pooling)을 수행하는,
    제스처 인식 시스템.
  3. 제1항에 있어서,
    상기 다른 피드포워드 신경망 층의 활성화 함수는 소프트맥스(softmax) 함수인,
    제스처 인식 시스템.
  4. 삭제
  5. 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 실행가능 명령어는 컴퓨팅 장치에 의해 실행되는 경우 상기 컴퓨팅 장치로 하여금 제스처 인식 방법을 수행하게 하되, 상기 제스처 인식 방법은,
    복수의 시점 각각에 대한 복수의 변수 값이 취합된 포맷으로 구성된 제스처 데이터를 수신하는 단계 - 상기 복수의 변수 값은 적어도 하나의 관성 측정 유닛(Inertial Measurement Unit: IMU)에 의해 제스처에 관해 감지된 데이터를 포함함 - 와,
    상기 제스처 데이터를 입력 받은 콘볼루션 신경망(Convolutional Neural Network: CNN)의 최종 출력에 따라 상기 제스처를 복수의 제스처 부류 중 하나로 분류함으로써 상기 제스처를 인식하는 단계를 포함하되, 상기 적어도 하나의 IMU 각각은 3축 가속도계, 3축 자이로스코프 및 3축 지자기 센서를 포함하고, 상기 감지된 데이터는 상기 IMU 각각을 위한 3개의 직교 축 각각 상의 가속도 값, 각속도 값 및 지자기 값을 포함하며, 상기 복수의 변수 값은 상기 감지된 데이터에 기반하여 계산된 오일러 각(Euler angles) 및 상기 감지된 데이터에 기반하여 계산된 쿼터니언(Quaternion)을 더 포함하고, 상기 CNN은 적어도 하나의 콘볼루션 층과, 적어도 하나의 풀링 층과, 적어도 하나의 피드포워드 신경망 층과, 상기 최종 출력을 위한 다른 피드포워드 신경망 층을 포함하며,
    상기 제스처를 인식하는 단계는 상기 적어도 하나의 콘볼루션 층의 활성화 함수로서 계단 함수를 사용하는 단계와, 상기 적어도 하나의 피드포워드 신경망 층의 활성화 함수로서 정류화된 선형 유닛(Rectified Linear Unit: ReLU) 함수를 사용하는 단계를 포함하는,
    컴퓨터 판독가능 저장 매체.
  6. 제5항에 있어서,
    상기 제스처를 인식하는 단계는 상기 적어도 하나의 풀링 층에서 최대 풀링을 수행하는 단계를 더 포함하는,
    컴퓨터 판독가능 저장 매체.
  7. 제5항에 있어서,
    상기 제스처를 인식하는 단계는 상기 다른 피드포워드 신경망 층의 활성화 함수로서 소프트맥스 함수를 사용하는 단계를 더 포함하는
    컴퓨터 판독가능 저장 매체.
  8. 삭제
KR1020180024028A 2018-02-27 2018-02-27 관성 측정 유닛을 사용하여 콘볼루션 신경망 기반의 제스처 인식을 수행하는 기법 KR102046707B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180024028A KR102046707B1 (ko) 2018-02-27 2018-02-27 관성 측정 유닛을 사용하여 콘볼루션 신경망 기반의 제스처 인식을 수행하는 기법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180024028A KR102046707B1 (ko) 2018-02-27 2018-02-27 관성 측정 유닛을 사용하여 콘볼루션 신경망 기반의 제스처 인식을 수행하는 기법

Publications (2)

Publication Number Publication Date
KR20190102924A KR20190102924A (ko) 2019-09-04
KR102046707B1 true KR102046707B1 (ko) 2019-11-19

Family

ID=67950421

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180024028A KR102046707B1 (ko) 2018-02-27 2018-02-27 관성 측정 유닛을 사용하여 콘볼루션 신경망 기반의 제스처 인식을 수행하는 기법

Country Status (1)

Country Link
KR (1) KR102046707B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210126354A (ko) * 2020-04-10 2021-10-20 한국항공대학교산학협력단 웨어러블 디바이스 기반 적응형 dtw을 이용한 손동작 인식기 및 인식 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111160114B (zh) * 2019-12-10 2024-03-19 深圳数联天下智能科技有限公司 手势识别方法、装置、设备及计算机可读存储介质
CN111694435B (zh) * 2020-06-16 2024-02-02 石亦磊 一种基于惯性传感单元的可穿戴触摸检测方法
CN111831122B (zh) * 2020-07-20 2023-05-16 浙江财经大学 基于多关节数据融合的手势识别系统及方法
CN116414289B (zh) * 2023-06-12 2023-08-22 上海海栎创科技股份有限公司 一种基于触控芯片的手势识别系统及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101793934B1 (ko) * 2016-09-30 2017-11-06 인천대학교 산학협력단 피트니스 운동의 유형을 자동으로 분류하기 위한 방법 및 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101427365B1 (ko) * 2012-10-23 2014-08-07 이인택 관성 센서를 이용한 모션 캡쳐 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101793934B1 (ko) * 2016-09-30 2017-11-06 인천대학교 산학협력단 피트니스 운동의 유형을 자동으로 분류하기 위한 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
블로그*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210126354A (ko) * 2020-04-10 2021-10-20 한국항공대학교산학협력단 웨어러블 디바이스 기반 적응형 dtw을 이용한 손동작 인식기 및 인식 방법
KR102316556B1 (ko) 2020-04-10 2021-10-22 한국항공대학교산학협력단 웨어러블 디바이스 기반 적응형 dtw을 이용한 손동작 인식기 및 인식 방법

Also Published As

Publication number Publication date
KR20190102924A (ko) 2019-09-04

Similar Documents

Publication Publication Date Title
KR102046707B1 (ko) 관성 측정 유닛을 사용하여 콘볼루션 신경망 기반의 제스처 인식을 수행하는 기법
KR102046706B1 (ko) 착용가능 디바이스를 사용하여 신경망 기반의 제스처 인식을 수행하는 기법
US10572072B2 (en) Depth-based touch detection
US20240013526A1 (en) Depth and motion estimations in machine learning environments
US20210110212A1 (en) Method of training neural network, and recognition method and apparatus using neural network
US10282623B1 (en) Depth perception sensor data processing
Hasan et al. RETRACTED ARTICLE: Static hand gesture recognition using neural networks
KR102526700B1 (ko) 전자 장치 및 그의 3d 이미지 표시 방법
JP7178396B2 (ja) 入力映像に含まれた客体の3次元ポーズの推定のためのデータを生成する方法およびコンピュータシステム
EP3710990A1 (en) Meta-learning for multi-task learning for neural networks
KR102433931B1 (ko) 움직임 인식 방법 및 움직임 인식 장치
US11430124B2 (en) Visual object instance segmentation using foreground-specialized model imitation
Barros et al. A dynamic gesture recognition and prediction system using the convexity approach
KR20180057096A (ko) 표정 인식과 트레이닝을 수행하는 방법 및 장치
US11568202B2 (en) Method and apparatus for determining goodness of fit related to microphone placement
WO2023246819A1 (zh) 一种模型训练方法及相关设备
CN114222986A (zh) 使用社交图网络进行的随机轨迹预测
US20230214458A1 (en) Hand Pose Estimation for Machine Learning Based Gesture Recognition
US20240037187A1 (en) Video domain adaptation via contrastive learning
KR20200080419A (ko) 인공신경망 기반 손동작 인식 방법 및 장치
EP3654205A1 (en) Systems and methods for generating haptic effects based on visual characteristics
US11468270B2 (en) Electronic device and feedback information acquisition method therefor
Sung et al. Motion quaternion-based motion estimation method of MYO using K-means algorithm and Bayesian probability
CN111796663B (zh) 场景识别模型更新方法、装置、存储介质及电子设备
CN116710974A (zh) 在合成数据系统和应用程序中使用域对抗学习的域适应

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant