KR102685401B1 - 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치 - Google Patents

스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치 Download PDF

Info

Publication number
KR102685401B1
KR102685401B1 KR1020220187132A KR20220187132A KR102685401B1 KR 102685401 B1 KR102685401 B1 KR 102685401B1 KR 1020220187132 A KR1020220187132 A KR 1020220187132A KR 20220187132 A KR20220187132 A KR 20220187132A KR 102685401 B1 KR102685401 B1 KR 102685401B1
Authority
KR
South Korea
Prior art keywords
data
exercise
movement
skeleton
calculation unit
Prior art date
Application number
KR1020220187132A
Other languages
English (en)
Other versions
KR20240104664A (ko
Inventor
정재훈
Original Assignee
한국신체정보(주)
Filing date
Publication date
Application filed by 한국신체정보(주) filed Critical 한국신체정보(주)
Publication of KR20240104664A publication Critical patent/KR20240104664A/ko
Application granted granted Critical
Publication of KR102685401B1 publication Critical patent/KR102685401B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B5/00Measuring for diagnostic purposes; Identification of persons
    • A61B5/103Detecting, measuring or recording devices for testing the shape, pattern, colour, size or movement of the body or parts thereof, for diagnostic purposes
    • A61B5/11Measuring movement of the entire body or parts thereof, e.g. head or hand tremor, mobility of a limb
    • A61B5/1116Determining posture transitions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B24/00Electric or electronic controls for exercising apparatus of preceding groups; Controlling or monitoring of exercises, sportive games, training or athletic performances
    • A63B24/0003Analysing the course of a movement or motion sequences during an exercise or trainings sequence, e.g. swing for golf or tennis
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B71/00Games or sports accessories not covered in groups A63B1/00 - A63B69/00
    • A63B71/06Indicating or scoring devices for games or players, or for other sports activities
    • A63B71/0619Displays, user interfaces and indicating devices, specially adapted for sport equipment, e.g. display mounted on treadmills
    • A63B71/0622Visual, audio or audio-visual systems for entertaining, instructing or motivating the user
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • G06T5/30Erosion or dilatation, e.g. thinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B2505/00Evaluating, monitoring or diagnosing in the context of a particular type of medical care
    • A61B2505/09Rehabilitation or training
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B71/00Games or sports accessories not covered in groups A63B1/00 - A63B69/00
    • A63B71/06Indicating or scoring devices for games or players, or for other sports activities
    • A63B71/0619Displays, user interfaces and indicating devices, specially adapted for sport equipment, e.g. display mounted on treadmills
    • A63B71/0622Visual, audio or audio-visual systems for entertaining, instructing or motivating the user
    • A63B2071/0625Emitting sound, noise or music
    • A63B2071/063Spoken or verbal instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20036Morphological image processing
    • G06T2207/20044Skeletonization; Medial axis transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30221Sports video; Sports image

Abstract

본 발명은 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치에 관한 것으로, 해결하고자 하는 과제는 스켈레톤 위치정보와 가상의 오브젝트 간의 매칭을 통해 객체의 움직임을 보다 쉽게 산출함으로써 움직임에 대한 정량적인 평가정보를 제공하는데 있다.
일례로, 깊이 카메라를 통해 사용자의 스켈레톤 데이터를 획득하고, RGB 카메라를 통해 사용자의 이미지 데이터를 획득하는 데이터 획득부; 상기 스켈레톤 데이터에 포함된 스켈레톤 좌표값 중 적어도 하나의 지점을 스켈레톤 기준점으로 설정하고, 상기 스켈레톤 기준점이 설정된 좌표계 상에서 고정된 적어도 하나의 좌표범위를 갖는 오브젝트를 설정하는 데이터 설정부; 상기 데이터 획득부로부터 상기 스켈레톤 기준점을 추적하고, 추적되는 기준점 좌표값에 기초하여 사용자의 움직임에 따른 물리 데이터를 산출하는 데이터 산출부; 및 상기 오브젝트의 좌표범위와 상기 기준점 좌표값 간의 비교결과, 및 상기 물리 데이터와 기 설정된 기준 데이터 간의 비교결과에 따른 운동평가결과를 제공하는 운동평가정보 제공부를 포함하는 사용자 운동 평가 장치를 개시한다.

Description

스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치{DEVICE FOR EVALUATING MOVEMENT OF USER USING MATCHING BETWEEN SKELETON INFORMATION AND VIRTUAL OBJECTS}
본 발명의 실시예는 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치에 관한 것이다.
기술혁신과 발전으로 인해 인간의 수명을 증대시키는 결과를 가져오고 있다. 전 산업군의 디지털 전환이 주목 받으면서 기존의 의료와 치료 그리고 운동에도 디지털 기술 기반의 활용이 활발히 진행되고 있다.
특히, 치료와 운동이 주목하는 영역은 인공지능, 가상현실 등의 디지털 기술을 활용하여 질병의 예방과 치료 그리고 관리를 포괄적으로 가능한 디지털치료제(Digital Therapeutics(DTx))가 주목을 받고 있다.
디지털치료제는 디지털 기술로 사람의 상태를 측정하고, 치료까지 가능한 의료형태의 디지털 기술이자 기기를 말한다. 현재 디지털 치료제의 기능은 질병의 예방, 관리, 치료하기 위한 목적을 가지고, 그 형태는 스마트폰 어플리케이션, 웹 서비스, 가상현실, 증강현실, 게임형태로 활용되고 있다. 최근에는 메타버스까지 효능과 용도에 따라 다양한 형태로 개발되고 있다.
인지행동치료와 운동 그리고 생활습관 교정을 기반으로 하는 디지털 치료제는 기존의 투약 중심의 치료를 넘어 건강한 노후를 담보할 예방치료법으로 성장하고 있다.
특히, 고령화에 따른 운동·인지·행동 등의 치료 등이 요구되고 있다. 이중 다양한 산업군에서는 깊이 카메라를 홈 피트니스, 운동재활, 인지게임, 운동처방 등에 적용하고 있다.
그러나, 카메라로 얻은 관절 스켈레톤 정보의 분석방법으로는 인공지능 학습, 벡터 산출, 평면방정식 등을 주요 사용하고 있으나, 카메라의 사양이나 객체의 다양한 사이즈 및 회전 움직임에 대한 제한으로 객체의 다양한 정보를 산출하기는 제한적인 실정이다.
등록특허공보 제10-2320960호(등록일자: 10-2320960호) 등록특허공보 제10-1970687호(등록일자: 2019년04월15일) 공개특허공보 제10-2017-0010157호(공개일자: 2017년01월26일)
본 발명의 실시예는, 스켈레톤 위치정보와 가상의 오브젝트 간의 매칭을 통해 객체의 움직임을 보다 쉽게 산출함으로써 움직임에 대한 정량적인 평가정보를 제공하는 사용자 운동 평가 장치를 제공한다.
본 발명의 실시예에 따른 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치는, 깊이 카메라를 통해 사용자의 스켈레톤 데이터를 획득하고, RGB 카메라를 통해 사용자의 이미지 데이터를 획득하는 데이터 획득부; 상기 스켈레톤 데이터에 포함된 스켈레톤 좌표값 중 적어도 하나의 지점을 스켈레톤 기준점으로 설정하고, 상기 스켈레톤 기준점이 설정된 좌표계 상에서 고정된 적어도 하나의 좌표범위를 갖는 오브젝트를 설정하는 데이터 설정부; 상기 데이터 획득부로부터 상기 스켈레톤 기준점을 추적하고, 추적되는 기준점 좌표값에 기초하여 사용자의 움직임에 따른 물리 데이터를 산출하는 데이터 산출부; 및 상기 오브젝트의 좌표범위와 상기 기준점 좌표값 간을 비교하고, 상기 물리 데이터와 기 설정된 기준 데이터 간을 비교하고, 각각의 비교결과에 따른 운동평가결과를 제공하는 운동평가정보 제공부를 포함한다.
또한, 화면을 통해 상기 이미지 데이터로 구성되는 영상, 상기 스켈레톤 기준점과 상기 오브젝트를 출력하는 영상 출력부를 더 포함할 수 있다.
또한, 사용자의 운동 진행 중에 그래픽, 음성 및 텍스트 중 적어도 하나의 형태로 운동 종류에 따른 움직임 안내정보를 상기 영상 출력부로 제공하는 움직임 안내정보 제공부를 더 포함할 수 있다.
또한, 상기 데이터 설정부는, 상기 오브젝트에 대한 3차원 좌표 변환을 수행하고, 3차원 좌표계 상에서 3차원 좌표 변환된 상기 오브젝트를 상기 스켈레톤 기준점과 함께 배치하거나, 상기 스켈레톤 기준점에 대한 2차원 좌표 변환을 수행하고, 2차원 좌표계 상에서 2차원 좌표 변환된 스켈레톤 기준점을 상기 오브젝트와 함께 배치하고, 인식객체와 상기 깊이 카메라 간의 거리 및 해당 거리에 따라 화면 상에서 해당 인식객체가 차지하는 비율에 기초하여 좌표 간 거리를 설정할 수 있다.
또한, 상기 데이터 산출부는, 상기 스켈레톤 기준점에 대하여 추출된 좌표값 중 상기 오브젝트로부터 가장 먼 지점과, 상기 오브젝트의 좌표범위에 속하게 되는 지점 또는 상기 오브젝트와 가장 가까운 지점 간의 좌표 개수를 각각 산출하고, 산출된 좌표 개수에 따라 상기 스켈레톤 기준점의 움직임 거리 데이터를 각각 산출하는 움직임 거리 데이터 산출부; 상기 스켈레톤 기준점의 이동에 따른 좌표값의 추출 순서를 이용하여 상기 스켈레톤 기준점의 움직임 방향 데이터를 각각 산출하는 움직임 방향 데이터 산출부; 상기 움직임 거리 데이터가 각각 산출되는 시간을 움직임 시간 데이터로 각각 산출하는 움직임 시간 데이터 산출부; 상기 움직임 거리 데이터와 상기 움직임 시간 데이터를 이용하여 상기 스켈레톤 기준점의 움직임 속도 데이터를 각각 산출하는 움직임 속도 데이터 산출부; 상기 스켈레톤 기준점의 이동에 따라 추출된 다수의 좌표값을 연결하여 움직임 범위 데이터를 산출하는 움직임 범위 데이터 산출부; 및 상기 스켈레톤 기준점의 이동에 따라 추출된 다수의 좌표값을 연결하되, 각 좌표값의 추출 순서에 따라 움직임 경로 데이터를 산출하는 움직임 경로 데이터 산출부를 포함할 수 있다.
또한, 상기 운동평가정보 제공부는, 상기 스켈레톤 기준점의 이동에 따라 추출된 좌표값 중에서, 상기 움직임 방향 데이터를 기초로 상기 스켈레톤 기준점의 이동 방향이 전환되는 지점에 해당하는 좌표값이 상기 오브젝트의 좌표범위에 포함되는지 여부와 포함횟수를 산출하고, 산출된 포함횟수에 따라 제1 운동점수를 각각 산출하는 제1 운동점수 산출부; 상기 움직임 거리 데이터와 기 설정된 움직임 기준 거리 데이터를 비교하고, 비교결과에 따른 제2 운동점수를 각각 산출하는 제2 운동점수 산출부; 상기 움직임 방향 데이터와 기 설정된 움직임 기준 방향 데이터를 비교하고, 비교결과에 따른 제3 운동점수를 각각 산출하는 제3 운동점수 산출부; 상기 움직임 시간 데이터와 기 설정된 움직임 기준 시간 데이터를 비교하고, 비교결과에 따른 제4 운동점수를 각각 산출하는 제4 운동점수 산출부; 상기 움직임 속도 데이터와 기 설정된 움직임 기준 속도 데이터를 비교하고, 비교결과에 따른 제5 운동점수를 각각 산출하는 제5 운동점수 산출부; 상기 움직임 범위 데이터와 기 설정된 움직임 기준 범위 데이터를 비교하고, 비교결과에 따른 제6 운동점수를 각각 산출하는 제6 운동점수 산출부; 상기 움직임 경로 데이터와 기 설정된 움직임 기준 경로 데이터를 비교하고, 비교결과에 따른 제7 운동점수를 각각 산출하는 제7 운동점수 산출부; 좌우 움직임이 있는 운동을 진행하는 경우, 좌우 움직임에 대한 물리 데이터 간을 서로 비교하고, 비교결과와 기 설정된 기준 좌우 움직임 오차 데이터를 각각 비교하고, 비교결과에 따른 좌우 운동평가점수를 각각 산출하는 좌우 운동평가점수 산출부; 상하 움직임이 있는 운동을 진행하는 경우, 상기 움직임에 대한 물리 데이터 간을 서로 비교하고, 비교결과와 기 설정된 기준 상하 움직임 오차 데이터를 각각 비교하고, 비교결과에 따른 상하 운동평가점수를 각각 산출하는 상하 운동평가점수 산출부; 및 상기 제1 운동점수, 상기 제2 운동점수, 상기 제3 운동점수, 상기 제4 운동점수, 상기 제5 운동점수, 상기 제6 운동점수 및 상기 제7 운동점수를 가중 평균하여 종합평가점수를 산출하고, 상기 종합평가점수에 따른 운동종합평가결과를 산출하거나, 상기 좌우 운동평가점수 및 상기 상하 운동평가점수를 중 적어도 하나에 따른 운동종합평가결과를 산출할 수 있다.
본 발명에 따르면, 객체의 움직임을 효율적으로 분석하기 위해 스켈레톤 위치정보와 가상의 오브젝트 간의 매칭을 통하여 객체의 움직임을 보다 쉽게 산출함으로써 움직임에 대한 정량적인 평가정보를 제공하는 사용자 운동 평가 장치를 제공할 수 있다.
이러한 사용자 운동 평가 장치를 통하여 기존의 의료체계의 한계를 극복하고, 더 많은 사람들에게 더 빠르고, 쉽고, 저렴한 고도의 혜택을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 사용자 운동 평가 장치의 외관을 나타낸 도면이다.
도 2는 본 발명의 실시예에 따른 사용자 운동 평가 장치의 전체 구성을 나타낸 블록도이다.
도 3은 본 발명의 실시예에 따른 3차원 스켈레톤 정보를 가시화한 일례를 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 스켈레톤 좌표 변환 과정 중 모델 변환을 설명하기 위한 예시를 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 스켈레톤 좌표 변환 과정 중 뷰 변환을 설명하기 위한 예시를 나타낸 도면이다.
도 6은 본 발명의 실시예에 따른 스켈레톤 기준점과 가상의 오브젝트를 나타낸 도면이다.
도 7 내지 도 10은 본 발명의 실시예에 따른 다양한 운동(움직임)에 대한 예시와 그에 따른 스켈레톤 기준점 및 가상의 오브젝트를 나타낸 도면이다.
도 11은 본 발명의 실시예에 따른 데이터 산출부의 구성을 나타낸 블록도이다.
도 12는 본 발명의 실시예에 따른 운동평가정보 제공부의 구성을 나타낸 블록도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나 이상의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 발명의 실시예에 따른 사용자 운동 평가 장치의 외관을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 실시예에 따른 사용자 운동 평가 장치(1000)는 대형 정보 단말기와 같은 형태로 제작되고, 전방에 운동 또는 움직임에 대한 평가 대상인 사용자가 위치하며, 위치한 사용자가 운동 평가를 위한 기본적인 데이터 설정 값을 선택한 후 주어진 운동에 따른 움직임을 출력 영상을 보면서 취할 수 있다. 그리고, 운동 간에 화면을 통하여 그래픽, 텍스트, 음성 등의 형태로 움직인 안내정보를 제공할 수 있으며, 해당 단위 동작이 완료될 때 또는 해당 운동이 종료(세트 종료)될 때 운동평가결과를 제공함으로써, 사용자가 정확한 움직임을 취했는지에 대한 직관적인 이해와 확인이 가능하다.
도 2는 본 발명의 실시예에 따른 사용자 운동 평가 장치의 전체 구성을 나타낸 블록도이고, 도 3은 본 발명의 실시예에 따른 3차원 스켈레톤 정보를 가시화한 일례를 나타낸 도면이고, 도 4는 본 발명의 실시예에 따른 스켈레톤 좌표 변환 과정 중 모델 변환을 설명하기 위한 예시를 나타낸 도면이고, 도 5는 본 발명의 실시예에 따른 스켈레톤 좌표 변환 과정 중 뷰 변환을 설명하기 위한 예시를 나타낸 도면이고, 도 6은 본 발명의 실시예에 따른 스켈레톤 기준점과 가상의 오브젝트를 나타낸 도면이고, 도 7 내지 도 10은 본 발명의 실시예에 따른 다양한 운동(움직임)에 대한 예시와 그에 따른 스켈레톤 기준점 및 가상의 오브젝트를 나타낸 도면이고, 도 11은 본 발명의 실시예에 따른 데이터 산출부의 구성을 나타낸 블록도이며, 도 12는 본 발명의 실시예에 따른 운동평가정보 제공부의 구성을 나타낸 블록도이다.
도 2를 참조하면, 본 발명의 실시예에 따른 사용자 운동 평가 장치(1000)는 데이터 획득부(100), 데이터 설정부(200), 데이터 산출부(300), 운동평가정보 제공부(400), 영상 출력부(500) 및 움직임 안내정보 제공부(600) 중 적어도 하나를 포함할 수 있다.
상기 데이터 획득부(100)는, 깊이 카메라(110)를 통해 사용자의 스켈레톤 데이터를 획득하고, RGB 카메라(120)를 통해 사용자의 이미지 데이터를 획득할 수 있다.
좀 더 구체적으로, 데이터 획득부(100)는 스켈레톤 정보를 획득하기 위한 방법으로 2D 및 3D의 깊이 카메라(110)를 이용할 수 있다. 스켈레톤 정보를 얻기 위해 주로 사용되는 3D 깊이 카메라는 깊이 정보를 추출하기 위해 IR 카메라의 중심점을 원점으로 하여 객체를 3차원 좌표계 상에 표시할 수 있다. 이러한 3D 깊이 카메라의 깊이 센서는 반사된 레이저 빔 포인트로 각 픽셀 간 거리를 측정하여 객체를 인식할 수 있다.
또한, 데이터 획득부(100)는, 깊이 카메라(110)의 IR 센서와 RGB 카메라(120)의 RGB 센서를 이용하여 객체의 움직임 정보가 저장장치에 입력되고, 컬러 데이터 IR 데이터의 포인트 샘플 랜더링을 통해 3차원 객체를 생성하여 표시한다. 여기서, RGB 센서는 컬러 영상을 획득하고, IR 센서는 프로젝트를 통해 송출된 적외선 특정 패턴을 이용하여 깊이 정보를 획득할 수 있다. 깊이 카메라(110)와 RGB 카메라로 얻은 3차원 데이터 정보를 추출하고, RGB 영상, 깊이 정보 및 스켈레톤 데이터를 획득할 수 있다
한편, 3D 스켈레톤 좌표를 획득하기 위한 IR 프로젝터와 깊이 영상에 대한 내용을 설명하면, IR 프로젝터는 스캐터(scatter) 필름을 통해 산포되어 투영되고, 참조영역에서 적외선 패턴은 카메라 메모리에 정보가 변환되는 구간인 객체영역에서 패턴의 변화가 생기는데, 변화된 패턴은 참조영역에서의 패턴과 시차 비교를 통해 깊이 정보를 계산한다. 객체로부터 반사되어 돌아오는 적외선 패턴을 수광 센서로 검출하여 깊이 영상을 생성하며, 깊이 영상은 특정한 적외선 점 패턴을 물체에 투영하여 점 패턴을 분석하여 깊이 정보를 획득할 수 있으며, 객체에 대한 스켈레톤을 생성하여 추적 정보를 제공할 수 있다. 깊이 영상은 IR 센서에서 조사한 적외선 패턴을 IR 카메라를 통해 패턴 매칭 방식으로 생성할 수 있다. 깊이 영상만으로 객체의 식별이 어렵기 때문에 RGB 카메라(120)로부터 얻는 컬러 영상을 동시에 이용하여 특정 픽셀의 깊이 정보를 얻을 수 있으며, 획득된 깊이 정보를 이용하여 생성된 스켈레톤 데이터에 벡터 내적을 적용하여 각 관절의 움직임 벡터를 산출할 수 있다. 이때, 2D의 경우, XY 평면 등 2축을 방향으로 각도를 산출할 수 있고, 3D의 경우, XYZ 등의 3축 방향으로 각도를 산출할 수 있다.
상기 데이터 설정부(200)는, 스켈레톤 데이터에 포함된 스켈레톤 좌표값 중 적어도 하나의 지점을 스켈레톤 기준점으로 설정하고, 스켈레톤 기준점이 설정된 좌표계 상에서 고정된 적어도 하나의 좌표범위를 갖는 가상의 오브젝트를 설정할 수 있다. 예를 들어, 도 6에 도시된 바와 같이 사용자의 골반 중앙 부분을 스켈레톤 기준점(A)으로 설정하고, 무릎 사이의 특정 좌표영역을 오브젝트(B)로 설정할 수 있다.
본 실시예에서 스켈레톤 기준점은 스켈레톤 상에서 적어도 한 지점(예를 들어 골반, 무릎 또는 손목 등)을 의미하는 것으로 최초 설정 시 특정한 스켈레톤 좌표값을 가지며, 해당 좌표값은 사용자가 움직이게 되면서 바뀌게 된다. 다만, 해당 스켈레톤 기준점에 대한 위치 추적을 통해 해당 기준점에 대하여 바뀌는 좌표값을 지속적으로 추적할 수 있다. 그리고, 오브젝트는 스켈레톤 기준점이 설정된 좌표계 상에서 고정된 좌표범위를 가지며, 이를 위해 스켈레톤 좌표와 오브젝트 좌표가 서로 매칭될 수 있도록 좌표변환을 수행할 수 있다.
오브젝트의 위치 좌표는 3차원 좌표(XYZ-상/하/좌/우/앞/뒤)와 2차원 좌표(XY-상하/좌우)를 이용할 수 있으며, 3차원 좌표계는 상하/좌우/앞뒤의 축을 생성하고, 2차원 좌표는 전면에서의 상하/좌우의 축을 생성한다. 앞서 획득한 스켈레톤 좌표정보를 가상의 오브젝트와 매칭을 하기 위해서는, 좌표변환(Coordinate Transformation)을 사용하는데, 이러한 좌표변환은 다른 좌표 사이에서 좌표를 변환하는 작업의 총칭을 의미한다. 좌표 변환을 적용하면 3차원과 2차원 좌표의 오브젝트와 매칭하는 것이 가능하다. 일례로 2차원의 경우 화면 상의 좌표계에서 Z값(앞뒤 값)을 0을 적용하여 좌표 (XY)를 얻을 수 있다.
스켈레톤 좌표변환의 과정은 크게, 모델변환, 뷰 변환 및 프로젝션 변환이라는 파이프 라인을 거친다. 이는 3차원 공간 상의 오브젝트가 2차원 화면으로 변환되는 과정이다. 좌표변환 파이프 라인은 기하학적인 데이터를 하나의 물체나 장면으로 표현하는 역할을 하며, 그로부터 2차원의 이미지를 만든다. 2D의 경우에도 직교 좌표와는 다른 좌표계가 사용되거나 일정한 법칙에 기초해 변형을 구현할 경우에는 좌표변환으로 대응할 수 있다. 다른 방법으로는 XY평면에서 각도가 아닌 Z축 방향으로 각도를 산출할 경우 계산할 경우 3차원 좌표를 얻을 수 있다.
상기 모델변환은 로컬 좌표 상의 좌표로부터 월드 좌표계 상의 좌표로 변환하는 것이 모델변환이다. 모델변환의 일례는 다음과 같다. 로컬 좌표계와 월드 좌표계의 원점, 좌표축, 길이단위가 다를 수 있으며, 이를 해소하기 위한 방법으로 사용되는 방법이 모델변환이다. 모델변환은 평행이동, 회전, 스케일 등으로 구성된다. 모델변환 이후의 과정으로 뷰 변환이 이루어지는데, 도 5에 도시된 바와 같이 프로그램 월드 공간에서는 화면 영상 안에 자의적으로 놓인 부동의 원점 주위에 좌표계를 배치하였지만, 3차원 공간을 사용자 입장에서 실제로 표기할 때는 시점이 동적으로 변할 수 있기 때문에 프로그램 월드 공간 좌표에서 카메라를 중심으로 카메라 공간좌표로 변환해야 한다. 프로젝션까지는 3차원 정보를 2차원으로 전환하기 위한 스켈레톤 좌표변환 과정 즉 Z축을 0으로 적용한다.
본 실시예에서는 3차원의 스켈레톤 정보를 3차원 좌표를 이용하여 배치한 오브젝트를 화면 상에서 매칭하거나, 3차원의 스켈레톤 정보와 2차원 좌표를 이용해 배치시킨 오브젝트를 화면 상에서 매칭할 수 있다.
상기 프로젝션은 투영을 의미하고 투영변환이라고 한다. 상술한 모델변환 및 뷰 변환 과정을 통해 변환된 클립공간은 뷰 좌표계 중 일부를 클립하는 역할을 한다. 이때, 잘라내는 부분은 카메라에서 보이지 않는 부분에 해당된다. 뷰 공간 상태라면 프로그램 월드 공간에서 시점만 변환한 것이므로, 그 상태는 카메라의 뒤쪽과 카메라에서 너머 멀어서 비치지 않는 부분, 그리고 반대로 지나치게 가까운 부분의 오브젝트가 포함된다. 이때, 카메라에서 보이지 않는 부분을 삭제한 육면체 영역을 뷰 프러스텀(시야 절두체, view frustum)이라고 한다. 시야 바깥쪽의 정점 정보를 버리고, 뷰 프러스텀을 정규 뷰 볼륨(canonical view volume)에 해당하는 각 정점 좌표가 정규화된 정육면체로 변환하는 것이 프로젝션 변환이다.
뷰 프러스텀 중 카메라에 가까운 쪽 평면을 근 평면, 먼 쪽 평면을 원 평면이라 한다. 카메라의 회각, 시야각(field of view,FOV)이 크면 클수록 근 평면과 원 평면의 크기 비율 측면에서는 원 평면이 더 커진다. 뷰 프러스텀을 무리하게 정육면체 모양으로 만든다면 정규 뷰 볼륨에서는 원 평면에 가까워지면 가까워질수록 오브젝트의 응축도가 높아진다. 반대로 근 평면에 가까워 질수록 비율적으로는 커진다. 멀리 있는 것일수록 작게 보이는 일반적인 3차원의 다운 원근법 효과가 시뮬레이트되는데, 이러한 프로젝션 변환방법을 원근투영이라고 한다. 카메라 프로젝션(Camera Projection)을 원근법(Perspective)으로 한 경우, 시야각(Field of view)은 수직방향 화각, 클리핑 플랜(Clipping Planes)은 근 평면과 원 평면 각각의 시점으로부터 거리를 나타낸다. 뷰 프로스텀 바깥쪽의 오브젝트를 그리는 대상에서 제거하여 부하를 줄이는 방법은 프러스텀 컬링이다.
또한, 프러스텀 컬링은 시야 밖의 오브젝트를 생략하지만 화면 내 오브젝트에서 불필요한 거쳐진 부분의 그리기 처리를 생략할 수 없다. 그러나 오클루전 컬링 방법을 적용하면 가능하다. 카메라 컴포넌트의 프로젝션(Projection)에는 원근법(Perspective) 이외에 정사형법(Orthographic)도 지정할 수 있다. 정사형법(Orthographic)은 직교투영에 의한 프로젝션 변환이다. 직교투영의 뷰 프로스텀은 직육면체 모양으로 근 평면과 원 평면 크기에 차이가 없다. 이에, 원근법(Perspective)의 효과는 나타나지 않고 시야각도 없다. 정사형법(Orthographic)을 선택하면 FOV 프로퍼티가 무시되고, 'Orthographicsize' 프로퍼티로서 직육면체의 수직방향으로 세로절반의 크기를 지정할 수 있다.
상술한 파이프 라인(모델변환, 뷰 변환, 프로젝션 변환)을 거치며, 변환된 스켈레톤 좌표에 오브젝트를 설정하기 위한 방법으로, 윈도우 좌표계(Screen Space)방법을 적용한다. 정규환된 장치 좌표계를 실제 화면 상의 XY좌표로 변환해야 하는데, 이를 뷰 포트(View Port)변환이라 한다. 정규화된 장치 좌표계에서 임의로 설정한 뷰 포트의 크기를 곱하여 실제 윈도우의 (XY좌표를 얻어낸다. 절단 공간의 좌표들을 스크린 좌표계, 즉 화면에 보이는 공간으로 이동시키는 변환이다. -1.0 ~1.0사이에 있었던 점들이 디바이스의 픽셀 화면 비율로 맵핑(Mapping)이 이루어진다.
상술한 프로젝션 변환을 통해 3차원 정보를 2차원 정보로 전환하기 위한 3차원 스켈레톤 좌표변환과정을 적용할 수 있고, 이 중 Z축 값을 0으로 할 경우 2차원 좌표가 될 수 있다. 2차원의 경우에도 직교좌표와는 다른 좌표계가 사용되거나 일정한 법칙에 기초해 변형을 구현할 경우에는 좌표변환으로 대응한다. 다른 방법으로는 XY 평면에서 각도가 아닌 Z축 방향으로 각도를 산출할 경우 3차원이 된다.
상기 데이터 설정부(200)는, 오브젝트에 대한 3차원 좌표 변환을 수행하고, 3차원 좌표계 상에서 3차원 좌표 변환된 오브젝트를 스켈레톤 기준점과 함께 배치하거나, 스켈레톤 기준점에 대한 2차원 좌표 변환을 수행하고, 2차원 좌표계 상에서 2차원 좌표 변환된 스켈레톤 기준점을 상기 오브젝트와 함께 배치할 수 있다. 즉, 3차원 스켈레톤 정보를 3개의 축(XYZ)으로 배치시킨 오브젝트와 매칭하거나, 3차원 스켈레톤 정보를 2개의 축(XY)으로 배치시킨 오브젝트와 매칭할 수 있다.
한편, 데이터 설정부(200)는, 인식객체와 깊이 카메라(110) 간의 거리 그리고, 해당 거리에 따라 화면 상에서 해당 인식객체가 차지하는 비율에 기초하여 좌표 간 거리를 설정할 수 있으며, 오브젝트(B)의 크기 즉 좌표범위를 조정하여 운동 난이도를 조절할 수도 있다.
또한, 데이터 설정부(200)는 운동 종류에 따라 스켈레톤 기준점(A)과 오브젝트(B)의 위치를 기본적으로 각각 설정하여 제공하고, 사용자의 신장, 신체비율 등을 고려해 추가적인 미세 위치 조정이 가능하도록 구성될 수 있다.
상기 데이터 산출부(300)는, 데이터 획득부(200)로부터 사용자의 움직임에 따라 변화하는 스켈레톤 기준점의 좌표값을 추적하고, 추적되는 기준점 좌표값들에 기초하여 운동평가를 위해 필요한 사용자의 움직임에 따른 물리 데이터들을 각각 산출할 수 있다.
이를 위해 데이터 산출부(300)는 도 11에 도시된 바와 같이, 움직임 거리 데이터 산출부(301), 움직임 방향 데이터 산출부(302), 움직임 시간 데이터 산출부(303), 움직임 속도 데이터 산출부(304), 움직임 범위 데이터 산출부(305) 및 움직임 경로 데이터 산출부(306) 중 적어도 하나를 포함할 수 있다.
상기 움직임 거리 데이터 산출부(301)는, 스켈레톤 기준점에 대하여 추출된 좌표값 중 오브젝트로부터 가장 먼 지점과 오브젝트의 좌표범위에 속하게 되는 지점(즉, 매칭 지점) 또는 오브젝트와 가장 가까운 지점 간의 좌표 개수를 각각 산출하고, 산출된 좌표 개수에 따라 스켈레톤 기준점의 거리 데이터를 각각 산출할 수 있다.
예를 들어, 도 7에 도시된 바와 같이 사용자가 서고 앉는 동작을 반복 수행하는 스쿼트 운동을 실시하고 있다고 가정했을 때, 최초 스켈레톤 기준점(A)부터 좌표값이 변하게 되는데, 이때 최초 시작 지점에서의 스켈레톤 기준점(A)의 좌표값은 하나의 단위동작 내에서 오브젝트(B)로부터 가장 먼 지점으로 기록되고, 이후 앉게 되면서 해당 기준점(A)은 오브젝트(B)의 좌표범위에 속하게 되거나(매칭되거나), 가장 가깝게 기록될 수 있는데, 이 둘 중 하나일 때의 좌표값을 추출한 후 두 좌표값(최초 시작 지점에서의 스켈레톤 기준점(A)의 좌표값, 해당 기준점(A)은 오브젝트(B)의 좌표범위에 속하게 되거나(매칭되거나), 가장 가깝게 기록될 때의 좌표 값) 간의 좌표 개수 즉 Y축 상의 좌표 개수를 산출함으로써, 동작 1에서 동작 2을 수행할 때 스켈레톤 기준점(A)이 움직임 거리를 산출할 수 있다.
상기 움직임 방향 데이터 산출부(302)는, 스켈레톤 기준점의 이동에 따른 좌표값의 추출 순서를 이용하여 스켈레톤 기준점의 움직임 방향 데이터를 각각 산출할 수 있다.
예를 들어, 도 7에 도시된 바와 같이 동작 1에서 동작 2가 이루어지는 동안 스켈레톤 기준점(A)에 대한 좌표값을 추출할 때, Y축 좌표값이 점차 감소하는 순서로 추출되면 -Y축 방향의 움직임 방향 데이터를 산출하며, 그와 반대로 동작 2에서 동작 1이 이루어지는 동안 스켈레톤 기준점(A)에 대한 좌표값을 추출할 때, Y축 좌표값이 점차 증가하는 순서로 추출되면 +Y축 방향의 움직임 방향 데이터를 산출할 수 있다.
상기 움직임 시간 데이터 산출부(303)는, 움직임 거리 데이터가 각각 산출되는 시간을 움직임 시간 데이터로 각각 산출할 수 있다.
상기 움직임 속도 데이터 산출부(304)는, 움직임 거리 데이터와 상기 움직임 시간 데이터를 이용하여 스켈레톤 기준점의 움직임 속도 데이터를 각각 산출할 수 있다.
예를 들어, 도 7에 도시된 바와 같이 동작 1에서의 스켈레톤 기준점(A)과 동작 2에서의 스켈레톤 기준점(A) 간의 좌표 거리가 움직임 거리 데이터로 기록되는데, 이러한 동작 1 및 동작 2 각각에서 스켈레톤 기준점(A)의 좌표값이 추출되는 시간차를 동작 1 및 동작 2 간의 움직임 거리로 나누면 동작 1 및 동작 2에 대한 속도를 산출할 수 있다.
상기 움직임 범위 데이터 산출부(305)는, 스켈레톤 기준점의 이동에 따라 추출된 다수의 좌표값을 연결하여 움직임 범위 데이터를 산출할 수 있다.
예를 들어, 도 8에 도시된 바와 같이, 동작 1에서 동작 2가 이루어지면 스켈레톤 기준점(A)도 이동하면서 해당 좌표값이 함께 추출되는데, 추출되는 다수의 좌표값들을 연결하게 되면 삼각형 모양의 움직임 범위에 대한 정보를 얻을 수 있다.
상기 움직임 경로 데이터 산출부(306)는, 스켈레톤 기준점의 이동에 따라 추출된 다수의 좌표값을 연결하되, 각 좌표값의 추출 순서에 따라 움직임 경로 데이터를 산출할 수 있다.
예를 들어, 도 8에 도시된 바와 같이, 동작 1에서 동작 2가 이루어지면 스켈레톤 기준점(A)도 이동하면서 해당 좌표값이 함께 추출되는데, 추출되는 다수의 좌표값들을 추출 순서대로 연결하게 되면 각 라인마다 특정한 이동 방향성을 갖는 삼각형 모양의 움직임 경로에 대한 정보를 얻을 수 있다.
상기 운동평가정보 제공부(400)는, 오브젝트의 좌표범위와 스켈레톤 기준점의 좌표값 간을 비교하고, 데이터 산출부(300)를 통해 산출된 물리 데이터와 기 설정된 기준 데이터 간을 비교하고, 각각의 비교결과에 따른 운동평가결과를 제공할 수 있다.
이를 위해 운동평가정보 제공부(400)는 도 12에 도시된 바와 같이, 제1 운동점수 산출부(401), 제2 운동점수 산출부(402), 제3 운동점수 산출부(403), 제4 운동점수 산출부(404), 제5 운동점수 산출부(405), 제6 운동점수 산출부(406), 제7 운동점수 산출부(407), 좌우 운동평가점수 산출부(408), 상하 운동평가점수 산출부(409) 및 운동종합평가정보 산출부(410) 중 적어도 하나를 포함할 수 있다.
상기 제1 운동점수 산출부(401)는, 스켈레톤 기준점의 이동에 따라 추출된 좌표값 중에서, 움직임 방향 데이터를 기초로 스켈레톤 기준점의 이동 방향이 전환되는 지점에 해당하는 좌표값이 오브젝트의 좌표범위에 포함되는지 여부와 포함횟수를 산출하고, 산출된 포함횟수에 따라 제1 운동점수를 각각 산출할 수 있다.
좀 더 구체적으로, 도 7에 도시된 스쿼트 운동 예시 및 도 8에 도시된 레터럴레이즈(좌우 움직임) 운동 예시에서와 같이 스켈레톤 기준점(A)이 이동하면서 그에 따라 변화하는 좌표값들도 함께 추출되는데, 추출되는 좌표값들 중에서 스켈레톤 기준점(A)의 이동 방향이 전환되는 지점(좌표방향 전환지점)이 검출될 수 있는데, 해당 좌표방향 전환지점의 좌표값이 오브젝트(B)의 좌표범위에 속하는지 여부(매칭여부)를 우선 각 단위동작이 이루어질 때마다 확인하고, 좌표방향 전환지점이 오브젝트(B)(도 7에서는 무릎 사이, 도 8에서는 양쪽 어깨와 각각 수평방향으로 일정거리 떨어진 지점)의 좌표범위에 얼마나 속하는지(매칭되는지)에 대한 횟수 또는 빈도를 계산하여 제1 운동점수를 산출할 수 있다. 즉, 사용자의 구분동작 시마다 스켈레톤 기준점(A)이 오브젝트(B)까지 정확히 도달했는지와 정확한 동작을 얼마나 자주 수행하였는지를 수치적으로 계산하여 제1 운동점수로 산출할 수 있다.
이러한 제1 운동점수 산출부(401)는 하나의 구분동작이 끝날 때마다 해당 운동점수를 실시간 피드백함으로써, 현재 사용자가 해당 운동을 정상적으로 수행하는지를 실시간 확인할 수 있도록 한다.
상기 제2 운동점수 산출부(402)는, 움직임 거리 데이터와 기 설정된 움직임 기준 거리 데이터를 비교하고, 비교결과에 따른 제2 운동점수를 각각 산출할 수 있다.
좀 더 구체적으로, 도 7에 도시된 스쿼트 운동 예시 및 도 8에 도시된 레터럴레이즈(좌우 움직임) 운동 예시에서와 같이 동작 1에서 동작 2를 수행하면서 스켈레톤 기준점(A)의 좌표 추적에 따른 움직임 거리 데이터가 각 단위동작이 수행될 때 마다 산출되는데, 산출된 움직임 거리 데이터가 미리 설정된 기준치에 도달했는지 여부 내지 얼마나 도달했는지를 수치적으로 계산하여 제2 운동점수에 반영할 수 있다. 이는, 사용자의 구분동작마다 움직인 거리도 운동점수에 반영하기 위함이다. 또한, 각 픽셀간 거리를 측정하는 깊이 센서를 이용해 추출된 스켈레톤 기준점(A) 좌표값에 상술한 파이프 라인의 뷰 포트 연산을 수행하여 3차원 축(XYZ) 상에 오브젝트(B)를 배치하고 거리를 계산할 수 있다. 본 실시예에 따른 움직임 거리 데이터는 스켈레톤 기준점(A)이 극점에 위치했을 때와 오브젝트(B) 간의 거리뿐만 아니라, 이동하고 있는 스켈레톤 기준점(A)과 오브젝트(B) 간에 변화하는 실시간 거리 데이터를 포함할 수도 있다.
이러한 제2 운동점수 산출부(402)는 하나의 구분동작이 끝날 때마다 해당 운동점수를 실시간 피드백함으로써, 현재 사용자가 해당 운동을 정상적으로 수행하는지를 실시간 확인할 수 있도록 한다.
상기 제3 운동점수 산출부(403)는, 움직임 방향 데이터와 기 설정된 움직임 기준 방향 데이터를 비교하고, 비교결과에 따른 제3 운동점수를 각각 산출할 수 있다.
좀 더 구체적으로, 도 8에 도시된 레터럴레이즈(좌우 움직임) 운동 예시에서와 같이 동작 1에서 동작 2를 수행하면서 산출된 스켈레톤 기준점(A)의 이동 방향과 미리 설정된 움직임 기준 방향을 비교하여 사용자가 덤벨을 정확한 방향에 따라 이동시키며 운동하였는지를 수치적으로 계산하여 제3 운동점수로 산출할 수 있다.
이러한 제3 운동점수 산출부(403)는 하나의 구분동작이 끝날 때마다 해당 운동점수를 실시간 피드백함으로써, 현재 사용자가 해당 운동을 정상적으로 수행하는지를 실시간 확인할 수 있도록 한다.
상기 제4 운동점수 산출부(404)는, 움직임 시간 데이터와 기 설정된 움직임 기준 시간 데이터를 비교하고, 비교결과에 따른 제4 운동점수를 각각 산출할 수 있다.
좀 더 구체적으로, 도 7에 도시된 스쿼트 운동 예시 및 도 8에 도시된 레터럴레이즈(좌우 움직임) 운동 예시에서와 같이 동작 1에서 동작 2를 수행하면서 걸린 시간과 미리 설정된 기준 시간을 비교해 해당 구분동작 시간이 기준 시간보다 얼마나 긴지 또는 짧은지를 수치적으로 계산하고, 그 오차에 따른 제4 운동점수를 산출할 수 있다.
이러한 제4 운동점수 산출부(404)는 하나의 구분동작이 끝날 때마다 해당 운동점수를 실시간 피드백함으로써, 현재 사용자가 해당 운동을 정상적으로 수행하는지를 실시간 확인할 수 있도록 한다.
상기 제5 운동점수 산출부(405)는, 움직임 속도 데이터와 기 설정된 움직임 기준 속도 데이터를 비교하고, 비교결과에 따른 제5 운동점수를 각각 산출할 수 있다.
좀 더 구체적으로, 도 7에 도시된 스쿼트 운동 예시 및 도 8에 도시된 레터럴레이즈(좌우 움직임) 운동 예시에서와 같이 동작 1에서 동작 2를 수행하면서 산출된 움직임 속도와 미리 설정된 기준 속도를 비교해 해당 구분동작 속다가 기준 속도보다 얼마나 빠른지 또는 느린지를 수치적으로 계산하고, 그 오차에 따른 제5 운동점수를 산출할 수 있다.
이러한 제5 운동점수 산출부(405)는 하나의 구분동작이 끝날 때마다 해당 운동점수를 실시간 피드백함으로써, 현재 사용자가 해당 운동을 정상적으로 수행하는지를 실시간 확인할 수 있도록 한다.
상기 제6 운동점수 산출부(406)는, 움직임 범위 데이터와 기 설정된 움직임 기준 범위 데이터를 비교하고, 비교결과에 따른 제6 운동점수를 각각 산출할 수 있다.
좀 더 구체적으로, 도 8에 도시된 레터럴레이즈(좌우 움직임) 운동 예시에서와 같이 동작 1에서 동작 2를 수행하면서 산출된 움직임 범위와 미리 설정된 기준 범위를 비교하고, 산출된 움직임 범위가 기준 범위를 얼마나 벗어났는지를 수치적으로 계산하고, 그 오차에 따른 제6 운동점수를 산출할 수 있다.
이러한 제6 운동점수 산출부(406)는 하나의 구분동작이 끝날 때마다 해당 운동점수를 실시간 피드백함으로써, 현재 사용자가 해당 운동을 정상적으로 수행하는지를 실시간 확인할 수 있도록 한다.
상기 제7 운동점수 산출부(407)는, 움직임 경로 데이터와 기 설정된 움직임 기준 경로 데이터를 비교하고, 비교결과에 따른 제7 운동점수를 각각 산출할 수 있다.
좀 더 구체적으로, 도 8에 도시된 레터럴레이즈(좌우 움직임) 운동 예시에서와 같이 동작 1에서 동작 2를 수행하면서 산출된 움직임 경로와 미리 설정된 기준 경로를 비교하고, 산출된 움직임 범위가 기준 범위와 일치하는지 여부에 따른 제6 운동점수를 산출할 수 있다.
이러한 제7 운동점수 산출부(407)는 하나의 구분동작이 끝날 때마다 해당 운동점수를 실시간 피드백함으로써, 현재 사용자가 해당 운동을 정상적으로 수행하는지를 실시간 확인할 수 있도록 한다.
상기 좌우 운동평가점수 산출부(408)는, 좌우 움직임이 있는 운동을 진행하는 경우, 좌우 움직임에 대한 물리 데이터 간을 서로 비교하고, 비교결과와 기 설정된 기준 좌우 움직임 오차 데이터를 각각 비교하고, 비교결과에 따른 좌우 운동평가점수를 각각 산출할 수 있다.
좀 더 구체적으로, 도 9에 도시된 레터럴레이즈(좌우 움직임) 운동 예시에서와 같이 좌우 대칭 움직임이 있는 레터럴레이즈 운동을 수행하는 경우 좌측의 스켈레톤 기준점(A1)이 좌측 상부의 오브젝트(B1)을 향해 움직이면서 그에 따른 다양한 제1 물리 데이터들(우측 다리의 움직임 거리, 방향, 시간, 속도, 범위, 경로)을 획득하고, 우측의 스켈레톤 기준점(A2)이 우측 상부의 오브젝트(B2)을 향해 움직이면서 다양한 제2 물리 데이터들(우측 다리의 움직임 거리, 방향, 시간, 속도, 범위, 경로)을 획득하고, 획득한 제1 물리 데이터와 제2 물리 데이터를 각각 서로 비교할 수 있다. 이때, 양 다리 간의 움직임 거리, 방향, 시간, 속도, 범위, 경로에 관한 물리 데이터를 비교하며 이들의 오차를 수치적으로 계산하고, 계산된 오차가 미리 설정된 기준치와 각각 비교하여 그 비교결과에 따른 좌우 운동평가점수를 각각 산출할 수 있다.
이러한 좌우 운동평가점수 산출부(408)는 하나의 구분동작이 끝날 때마다 해당 운동평가점수를 실시간 피드백함으로써, 현재 사용자가 해당 운동을 정상적으로 수행하는지를 실시간 확인할 수 있도록 한다.
상기 상하 운동평가점수 산출부(409)는, 상하 움직임이 있는 운동을 진행하는 경우, 움직임에 대한 물리 데이터 간을 서로 비교하고, 비교결과와 기 설정된 기준 상하 움직임 오차 데이터를 각각 비교하고, 비교결과에 따른 상하 운동평가점수를 각각 산출할 수 있다.
좀 더 구체적으로, 도 10에 도시된 레터럴레이즈(상하 복합 움직임) 운동 예시에서와 같이 상하 움직임이 있는 레터럴레이즈 운동을 수행하는 경우 상체 측의 스켈레톤 기준점(A1)들이 상부에 위치한 오브젝트(B1)을 향해 움직이면서 그에 따른 다양한 제1 물리 데이터들(양 손의 움직임 거리, 방향, 시간, 속도, 범위, 경로)을 획득하고, 하체 측의 스켈레톤 기준점(A2)이 하부에 위치한 오브젝트(B2)을 향해 움직이면서 다양한 제2 물리 데이터들(골반 중심의 움직임 거리, 방향, 시간, 속도, 범위, 경로)을 획득하고, 획득한 제1 물리 데이터와 제2 물리 데이터를 각각 서로 비교할 수 있다. 이때, 상체와 하체 간의 움직임 거리, 방향, 시간, 속도, 범위, 경로에 관한 물리 데이터를 비교하며 이들의 오차를 수치적으로 계산하고, 계산된 오차가 미리 설정된 기준치와 각각 비교하여 그 비교결과에 따른 상하 운동평가점수를 각각 산출할 수 있다.
이러한 상하 운동평가점수 산출부(409)는 하나의 구분동작이 끝날 때마다 해당 운동평가점수를 피드백으로써, 현재 사용자가 해당 운동을 정상적으로 수행하는지를 실시간 확인할 수 있도록 한다.
상기 운동종합평가정보 산출부(410)는, 제1 운동점수, 제2 운동점수, 제3 운동점수, 제4 운동점수, 제5 운동점수, 제6 운동점수 및 제7 운동점수를 가중 평균하여 종합평가점수를 산출하고, 종합평가점수에 따른 운동종합평가결과를 산출할 수 있다.
사용자의 운동 시 산출된 움직임 거리, 방향, 시간, 속도, 범위 및 경로는 운동의 평가를 위해 모두 동일한 중요도를 갖는 것이 아니라, 운동의 종류마다의 중요 포인트가 존재하므로, 이에 따라 움직임 거리, 방향, 시간, 속도, 범위 및 경로 별로 가중치를 적용하여 각 운동점수에서 해당 가중치를 곱한 값들의 평균 값을 계산하여 종합평가점수를 산출할 수 있다. 예를 들어, 본 실시예에서 따른 운동평가요소 중 스켈레톤 기준점(A)과 오브젝트(B) 간의 매칭 여부가 가장 중요한 요소로 설정된 경우에는 매칭 여부와 관련된 제1 운동점수를 산출하기 위한 움직임 요소에 대한 가중치를 가장 높게 설정할 수 있다. 이렇게 산출된 종합평가점수는 점수구간별 평가정보가 저장되어 있어 해당 종합평가점수에 따른 종합평가정보를 사용자에게 피드백함으로써 사용자가 해당 운동을 얼마나 잘 수행했는지, 어떠한 점을 고쳐야 하는지 등에 대한 코칭 정보를 확인할 수 있도록 한다.
한편, 운동종합평가정보 산출부(410)는 움직임 거리, 방향, 시간, 속도, 범위 및 경로 등으로 이루어진 물리 데이터(특히, 스켈레톤 기준점(A)과 오브젝트(B) 간의 매칭 여부)를 기반으로 운동 세트 수, 운동 횟수, 운동 총 소요시간, 운동 강도, 운동 능력 등을 부가적인 정보를 수치적으로 산출할 수도 있다.
또한, 운동종합평가정보 산출부(410)는, 좌우 운동평가점수 및 상하 운동평가점수 중 적어도 하나에 따른 운동종합평가결과를 산출할 수 있다.
즉, 좌우 운동평가점수와 상하 운동평가점수 각각은 상술한 제1 내지 제7 운동점수를 이용하여 산출될 수 있으며, 좌우, 상하 운동평가를 요구하는 운동인 경우에는 좌우 운동평가점수와 상하 운동평가점수 모두를 종합하여 그에 따른 운동종합평가정보가 제공될 수 있다.
상기 영상 출력부(500)는, 화면을 통해 이미지 데이터로 구성되는 영상, 스켈레톤 기준점과 오브젝트를 출력할 수 있다. 여기서, 영상은 RGB 카메라로 사용자를 촬영하여 얻은 일반 영상을 의미하며, 스켈레톤 기준점 및 오브젝트는 해당 영상 위에 그래픽으로 표시될 수 있으며, 스켈레톤 기준점은 사용자를 따라 그 위치가 이동되도록 표시될 수 있다.
상기 영상 출력부(500)는 사용자가 운동하는 동안에 움직임 안내정보를 출력할 수 있다. 여기서, 움직임 안내정보는 그래픽, 음성, 텍스트 중 적어도 하나의 형태로 출력될 수 있다.
상기 영상 출력부(500)는, 화면을 통해 출력되는 별도의 가이드 UI를 통해 화면 상에서 표시되는 움직임 안내정보와 운동점수정보의 위치와 출력 속도를 각각 조정할 수 있을 뿐만 아니라, 운동 난이도 또한 조정할 수 있다.
또한, 영상 출력부(500)는, 화면을 통해 출력되는 별도의 가이드 UI를 통해 움직임 안내정보로 표시되는 그래픽 색상, 타입(모양), 크기를 조정하고, 음성의 크기를 조절할 수 있으며, 텍스트의 크기, 글씨체, 언어 등도 조정할 수 있다.
상기 움직임 안내정보 제공부(600)는, 사용자의 운동 진행 중에 그래픽, 음성 및 텍스트 중 적어도 하나의 형태로 운동 종류에 따른 움직임 안내정보를 영상 출력부(500)로 제공할 수 있다.
상기 움직임 안내정보 제공부(600)는, 구분동작 별로 사용자가 어느 방향으로 움직여야 하는지를 동작 간 타이밍에 따라 그래픽(화살표), 텍스트, 음성 등의 형태로 움직임 안내정보를 영상 출력부(500)로 제공하여 화면 상에서 출력되도록 한다.
이상에서 설명한 것은 본 발명에 의한 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치를 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기 실시예에 한정되지 않고, 이하의 특허청구범위에서 청구하는 바와 같이 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.
1000: 사용자 운동 평가 장치
100: 데이터 획득부
110: 깊이 카메라
120: RGB 카메라
200: 데이터 설정부
A: 스켈레톤 기준점
B: 오브젝트
300: 데이터 산출부
301: 움직임 거리 데이터 산출부
302: 움직임 방향 데이터 산출부
303: 움직임 시간 데이터 산출부
304: 움직임 속도 데이터 산출부
305: 움직임 범위 데이터 산출부
306: 움직임 경로 데이터 산출부
400: 운동평가정보 제공부
401: 제1 운동점수 산출부
402: 제2 운동점수 산출부
403: 제3 운동점수 산출부
404: 제4 운동점수 산출부
405: 제5 운동점수 산출부
406: 제6 운동점수 산출부
407: 제7 운동점수 산출부
408: 좌우 운동평가점수 산출부
409: 상하 운동평가점수 산출부
410: 운동종합평가정보 산출부
500: 영상 출력부
600: 움직임 안내정보 제공부

Claims (6)

  1. 깊이 카메라를 통해 사용자의 스켈레톤 데이터를 획득하고, RGB 카메라를 통해 사용자의 이미지 데이터를 획득하는 데이터 획득부;
    상기 스켈레톤 데이터에 포함된 스켈레톤 좌표값 중 적어도 하나의 지점을 스켈레톤 기준점으로 설정하고, 상기 스켈레톤 기준점이 설정된 좌표계 상에서 고정된 좌표범위를 갖는 오브젝트를 설정하는 데이터 설정부;
    상기 데이터 획득부로부터 상기 스켈레톤 기준점을 추적하고, 추적되는 기준점 좌표값에 기초하여 사용자의 움직임에 따른 물리 데이터를 산출하는 데이터 산출부; 및
    상기 오브젝트의 좌표범위와 상기 기준점 좌표값 간의 비교결과, 및 상기 물리 데이터와 기 설정된 기준 데이터 간의 비교결과에 따른 운동평가결과를 제공하는 운동평가정보 제공부를 포함하고,
    상기 데이터 산출부는, 상기 스켈레톤 기준점의 이동에 따른 좌표값의 추출 순서를 이용하여 상기 스켈레톤 기준점의 움직임 방향 데이터를 각각 산출하는 움직임 방향 데이터 산출부를 포함하고,
    상기 운동평가정보 제공부는, 상기 스켈레톤 기준점의 이동에 따라 추출된 좌표값 중에서, 상기 움직임 방향 데이터를 기초로 상기 스켈레톤 기준점의 이동 방향이 전환되는 지점에 해당하는 좌표값이 상기 오브젝트의 좌표범위에 포함되는지 여부와 포함횟수를 산출하고, 산출된 포함횟수에 따라 제1 운동점수를 각각 산출하는 제1 운동점수 산출부를 포함하고,
    상기 데이터 설정부는, 인식객체와 상기 깊이 카메라 간의 거리 및 해당 거리에 따라 화면 상에서 해당 인식객체가 차지하는 비율에 기초하여 좌표 간 거리를 설정하되, 해당 인식객체가 차지하는 비율이 이전보다 상대적으로 감소되면 상기 오브젝트의 좌표범위가 감소하도록 상기 오브젝트의 크기를 조정하고, 해당 인식객체가 차지하는 비율이 이전보다 상대적으로 증가되면 상기 오브젝트의 좌표범위가 증가하도록 상기 오브젝트의 크기를 조정하는 것을 특징으로 하는 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치.
  2. 제1 항에 있어서,
    화면을 통해 상기 이미지 데이터로 구성되는 영상, 상기 스켈레톤 기준점과 상기 오브젝트를 출력하는 영상 출력부를 더 포함하는 것을 특징으로 하는 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치.
  3. 제2 항에 있어서,
    사용자의 운동 진행 중에 그래픽, 음성 및 텍스트 중 적어도 하나의 형태로 운동 종류에 따른 움직임 안내정보를 상기 영상 출력부로 제공하는 움직임 안내정보 제공부를 더 포함하는 것을 특징으로 하는 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치.
  4. 제1 항에 있어서,
    상기 데이터 설정부는,
    상기 오브젝트에 대한 3차원 좌표 변환을 수행하고, 3차원 좌표계 상에서 3차원 좌표 변환된 상기 오브젝트를 상기 스켈레톤 기준점과 함께 배치하거나,
    상기 스켈레톤 기준점에 대한 2차원 좌표 변환을 수행하고, 2차원 좌표계 상에서 2차원 좌표 변환된 스켈레톤 기준점을 상기 오브젝트와 함께 배치하는 것을 특징으로 하는 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치.
  5. 제1 항에 있어서,
    상기 데이터 산출부는,
    상기 스켈레톤 기준점에 대하여 추출된 좌표값 중 상기 오브젝트로부터 가장 먼 지점과, 상기 오브젝트의 좌표범위에 속하게 되는 지점 또는 상기 오브젝트와 가장 가까운 지점 간의 좌표 개수를 각각 산출하고, 산출된 좌표 개수에 따라 상기 스켈레톤 기준점의 움직임 거리 데이터를 각각 산출하는 움직임 거리 데이터 산출부;
    상기 움직임 거리 데이터가 각각 산출되는 시간을 움직임 시간 데이터로 각각 산출하는 움직임 시간 데이터 산출부;
    상기 움직임 거리 데이터와 상기 움직임 시간 데이터를 이용하여 상기 스켈레톤 기준점의 움직임 속도 데이터를 각각 산출하는 움직임 속도 데이터 산출부;
    상기 스켈레톤 기준점의 이동에 따라 추출된 다수의 좌표값을 연결하여 움직임 범위 데이터를 산출하는 움직임 범위 데이터 산출부; 및
    상기 스켈레톤 기준점의 이동에 따라 추출된 다수의 좌표값을 연결하되, 각 좌표값의 추출 순서에 따라 움직임 경로 데이터를 산출하는 움직임 경로 데이터 산출부를 포함하는 것을 특징으로 하는 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치.
  6. 제5 항에 있어서,
    상기 운동평가정보 제공부는,
    상기 움직임 거리 데이터와 기 설정된 움직임 기준 거리 데이터를 비교하고, 비교결과에 따른 제2 운동점수를 각각 산출하는 제2 운동점수 산출부;
    상기 움직임 방향 데이터와 기 설정된 움직임 기준 방향 데이터를 비교하고, 비교결과에 따른 제3 운동점수를 각각 산출하는 제3 운동점수 산출부;
    상기 움직임 시간 데이터와 기 설정된 움직임 기준 시간 데이터를 비교하고, 비교결과에 따른 제4 운동점수를 각각 산출하는 제4 운동점수 산출부;
    상기 움직임 속도 데이터와 기 설정된 움직임 기준 속도 데이터를 비교하고, 비교결과에 따른 제5 운동점수를 각각 산출하는 제5 운동점수 산출부;
    상기 움직임 범위 데이터와 기 설정된 움직임 기준 범위 데이터를 비교하고, 비교결과에 따른 제6 운동점수를 각각 산출하는 제6 운동점수 산출부;
    상기 움직임 경로 데이터와 기 설정된 움직임 기준 경로 데이터를 비교하고, 비교결과에 따른 제7 운동점수를 각각 산출하는 제7 운동점수 산출부;
    좌우 움직임이 있는 운동을 진행하는 경우, 좌우 움직임에 대한 물리 데이터 간을 서로 비교하고, 비교결과와 기 설정된 기준 좌우 움직임 오차 데이터를 각각 비교하고, 비교결과에 따른 좌우 운동평가점수를 각각 산출하는 좌우 운동평가점수 산출부;
    상하 움직임이 있는 운동을 진행하는 경우, 상기 움직임에 대한 물리 데이터 간을 서로 비교하고, 비교결과와 기 설정된 기준 상하 움직임 오차 데이터를 각각 비교하고, 비교결과에 따른 상하 운동평가점수를 각각 산출하는 상하 운동평가점수 산출부; 및
    상기 제1 운동점수, 상기 제2 운동점수, 상기 제3 운동점수, 상기 제4 운동점수, 상기 제5 운동점수, 상기 제6 운동점수 및 상기 제7 운동점수를 가중 평균하여 종합평가점수를 산출하고, 상기 종합평가점수에 따른 운동종합평가결과를 산출하거나, 상기 좌우 운동평가점수 및 상기 상하 운동평가점수를 중 적어도 하나에 따른 운동종합평가결과를 산출하는 운동종합평가정보 산출부를 포함하는 것을 특징으로 하는 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치.
KR1020220187132A 2022-12-28 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치 KR102685401B1 (ko)

Publications (2)

Publication Number Publication Date
KR20240104664A KR20240104664A (ko) 2024-07-05
KR102685401B1 true KR102685401B1 (ko) 2024-07-17

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102003801B1 (ko) * 2019-01-24 2019-07-26 정재훈 스마트 프리웨이트 트레이닝 동작 인식 장치 및 그 방법
KR102294261B1 (ko) 2020-12-22 2021-08-26 정재훈 근력 운동의 코칭을 위한 운동 동작 평가 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102003801B1 (ko) * 2019-01-24 2019-07-26 정재훈 스마트 프리웨이트 트레이닝 동작 인식 장치 및 그 방법
KR102294261B1 (ko) 2020-12-22 2021-08-26 정재훈 근력 운동의 코칭을 위한 운동 동작 평가 시스템

Similar Documents

Publication Publication Date Title
US7974443B2 (en) Visual target tracking using model fitting and exemplar
US9842405B2 (en) Visual target tracking
US8577084B2 (en) Visual target tracking
US8565476B2 (en) Visual target tracking
US8682028B2 (en) Visual target tracking
US9159134B2 (en) Method and apparatus for estimating a pose
US8577085B2 (en) Visual target tracking
KR20210011985A (ko) 이미지 처리 방법 및 장치, 이미지 디바이스, 및 저장 매체
US8565477B2 (en) Visual target tracking
US20150004581A1 (en) Interactive physical therapy
EP2391988A2 (en) Visual target tracking
KR20160121379A (ko) 골프 동작 분석 장치 및 방법
JP2014137725A (ja) 情報処理装置、情報処理方法及びプログラム
WO2017161734A1 (zh) 通过电视和体感配件矫正人体动作及系统
US20130069939A1 (en) Character image processing apparatus and method for footskate cleanup in real time animation
KR102685401B1 (ko) 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치
JP2010238134A (ja) 画像処理装置及びプログラム
KR20240104664A (ko) 스켈레톤 정보와 가상 오브젝트 간 매칭을 통한 사용자 운동 평가 장치
WO2018207388A1 (ja) モーションキャプチャに関するプログラム、装置および方法
JP7482471B2 (ja) 学習モデルの生成方法
KR20220120731A (ko) 거울형 디스플레이를 활용한 어포던스 헬스케어 콘텐츠 제공방법 및 장치
KR20240104665A (ko) 스켈레톤 정보와 가상 오브젝트 간의 매칭 및 사용자 신체정보에 따른 적응적 운동 평가 장치
JP7147848B2 (ja) 処理装置、姿勢解析システム、処理方法、及び処理プログラム
JP6868875B1 (ja) 姿勢推定学習システム、姿勢推定学習方法及び機械学習用データの作成プログラム
Diller et al. Automatic Viewpoint Selection for Interactive Motor Feedback Using Principle Component Analysis.