KR20160096473A - 동작 평가 시스템 및 방법 - Google Patents

동작 평가 시스템 및 방법 Download PDF

Info

Publication number
KR20160096473A
KR20160096473A KR1020150018189A KR20150018189A KR20160096473A KR 20160096473 A KR20160096473 A KR 20160096473A KR 1020150018189 A KR1020150018189 A KR 1020150018189A KR 20150018189 A KR20150018189 A KR 20150018189A KR 20160096473 A KR20160096473 A KR 20160096473A
Authority
KR
South Korea
Prior art keywords
joint
user
sensor devices
joint data
coordinate system
Prior art date
Application number
KR1020150018189A
Other languages
English (en)
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 KR1020150018189A priority Critical patent/KR20160096473A/ko
Priority to US14/975,216 priority patent/US9690981B2/en
Publication of KR20160096473A publication Critical patent/KR20160096473A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/23Recognition of whole body movements, e.g. for sport training
    • G06K9/00342
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • 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/30196Human being; Person
    • 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/30241Trajectory

Abstract

동작 평가 시스템 및 방법이 개시된다. 동작 평가 시스템은 사용자를 촬영하여 사용자의 관절 데이터를 획득하는 복수의 센서 장치, 복수의 센서 장치로부터 입력된 관절 데이터의 캘리브레이션 및 동기화를 수행하여 사용자의 스켈레톤을 생성하고, 신체 부위별로 산출하는 자세 벡터를 이용하여 사용자의 자세와 전문가의 자세를 비교하는 분석장치 및 스켈레톤을 이용하여 사용자 동작에 따라 움직이는 사용자 캐릭터를 전문가 캐릭터와 함께 출력하고, 비교에 대한 결과를 출력하는 디스플레이 장치를 포함한다.

Description

동작 평가 시스템 및 방법{System and method for motion evaluation}
본 발명은 동작 평가 시스템 및 방법에 관한 것이다.
현재 출시되고 있는 체험형 게임 시스템은 한 대의 센서를 이용하여 전문가의 동작을 따라하는 사용자의 동작을 분석하여 점수화하고 있다. 종래 기술에 따르면, 한 대의 센서를 이용하여 사용자의 동작 데이터를 획득하는 경우, 신체 일부가 가려짐으로 인하여 관절 추적이 안 되는 경우가 발생하므로, 사용자의 캐릭터를 화면에 가시화 할 수 없을 뿐 아니라, 일부 중요 프레임에서 몇몇 관절에 대해서만 비교를 통해 점수화하는 문제점이 있다.
또한, 한 대의 센서를 이용하여 사용자의 동작 데이터를 획득하는 경우, 사용자의 신체 사이즈와 전문가의 신체 사이즈가 다르기 때문에 직접적인 비교가 어렵다는 문제가 있다. 이를 해결하기 위하여 기존 애니메이션 기술 중 모션 리타겟팅 방법이 적용될 수 있으나, 획득한 동작 데이터를 변형해야 하기 때문에 사용자의 동작과 동일하다고 볼 수 없다.
따라서, 기존 한 대의 센서를 이용하여 획득한 사용자의 동작 데이터에서 발생하는 가려짐 등에 의한 관절 추적 실패 문제를 해결하고, 동작의 변형 없이 신체 사이즈가 다른 동작 간 직접적인 비교가 필요하다.
본 발명은 기존 한 대의 센서를 이용하여 획득한 사용자의 동작 데이터에서 발생하는 신체 일부의 가려짐 문제를 해결하기 위하여, 복수의 센서를 이용하여 실시간으로 사용자의 동작 데이터를 획득하고, 신체 사이즈가 서로 다른 전문가와 사용자의 동작을 직접적으로 비교할 수 있는 동작 평가 시스템 및 방법을 제안하는 것이다.
본 발명의 일 측면에 따르면, 동작 평가 시스템이 개시된다.
본 발명의 실시예에 따른 동작 평가 시스템은 사용자를 촬영하여 사용자의 관절 데이터를 획득하는 복수의 센서 장치, 상기 복수의 센서 장치로부터 입력된 관절 데이터의 캘리브레이션 및 동기화를 수행하여 상기 사용자의 스켈레톤을 생성하고, 신체 부위별로 산출하는 자세 벡터를 이용하여 상기 사용자의 자세와 전문가의 자세를 비교하는 분석장치 및 상기 스켈레톤을 이용하여 사용자 동작에 따라 움직이는 사용자 캐릭터를 전문가 캐릭터와 함께 출력하고, 상기 비교에 대한 결과를 출력하는 디스플레이 장치를 포함한다.
상기 분석 장치는, 상기 복수의 센서 장치 중 하나의 센서 장치의 좌표계를 기준 좌표계로 설정하고, 나머지 센서 장치들의 좌표계를 기준 좌표계로 변환하기 위한 좌표 변환 행렬을 산출하는 캘리브레이션부, 상기 복수의 센서 장치가 캡쳐를 시작한 시간을 기록하고, 가장 빠른 캡쳐 시간을 기준으로 상기관절 데이터를 보간하여 상기 복수의 센서 장치의 관절 데이터를 동기화하는 동기화부, 상기 복수의 센서 장치가 분절에 포함된 관절을 추적한 개수에 따라 후보 분절을 생성하고, 상기 후보 분절 중에서 추적 가중치가 가장 높은 분절을 선택하고, 상기 선택한 분절의 관절 데이터를 혼합하여 사용자 동작에 대한 스켈레톤을 생성하는 혼합부, 신체 부위별로 산출하는 자세 벡터를 정의하고, 상기 자세 벡터를 이용하여 서로 다른 신체 비율을 가지고 있는 사용자와 전문가의 자세를 비교하는 비교부 및 캘리브레이션 및 동기화된 관절 데이터를 저장하고, 상기 스켈레톤을 적용한 사용자 캐릭터를 상기 디스플레이 장치를 통해 출력하고, 상기 자세 벡터를 이용한 비교 결과를 생성하여 상기 디스플레이 장치를 통해 표시하는 결과 산출부를 포함한다.
상기 캘리브레이션부는 상기 좌표 변환 행렬을 이용하여 상기 나머지 센서 장치들의 관절 데이터들을 좌표 변환함으로써, 상기 복수의 관절 데이터를 기준 좌표계로 통일한다.
상기 동기화부는 상기 복수의 센서 장치가 현재 시간과 이전 시간에서 캡쳐한 관절 위치값에 대하여 동기화 시간에 따라 조정 가능한 제어점들 사이를 이은 곡선인 스플라인 보간(spline interpolation)을 적용하여 새로운 관절 위치값을 산출한다.
상기 혼합부는 신체를 몸통, 양 팔 또는 양 다리 중 적어도 하나의 분절로 구분하고, 관절별로 상기 복수의 센서 장치의 추적 횟수를 카운트하고, 포함된 모든 관절이 추적된 분절을 후보 분절로 결정하고, 각 관절의 추적 가중치를 추적 횟수에 상응하게 부여하고, 후보 분절들 중 추적 가중치가 가장 높은 분절을 선택한다.
상기 혼합부는 포함된 모든 관절을 추적한 분절이 없는 경우, 각 관절의 추적 가중치에 따라 관절을 선택하고 선택된 관절로 하나의 분절을 이루게 한다.
상기 혼합부는 상기 복수의 센서 장치가 사용자의 지향 방향을 구분하지 못하여 서로 다른 부위의 관절 데이터가 혼합되는 문제를 해결하기 위하여, 상기 관절 데이터가 혼합되기 전에 관절 위치 영역의 산출을 통해 비슷한 위치에 있는 관절 데이터를 찾아 혼합한다.
상기 비교부는 상위 관절의 위치가 틀리더라도 이것이 하위 관절에 영향을 주지 않는 지역 좌표계에서 자세 벡터를 산출한다.
상기 비교부는 상기 지역 좌표계에서 상기 자세 벡터의 방향과 길이를 산출하고, 방향과 길이의 차이에 의하여 유사한 동작인지 또는 잘못된 동작인지를 결정한다.
본 발명의 다른 측면에 따르면, 복수의 센서 장치를 이용하여 분석 장치가 수행하는 동작 평가 방법이 개시된다.
본 발명의 실시예에 따른 동작 평가 방법은 사용자를 촬영하여 획득한 사용자의 관절 데이터를 상기 복수의 센서 장치로부터 입력받는 단계, 상기 복수의 센서 장치로부터 입력된 복수의 관절 데이터의 캘리브레이션을 수행하는 단계, 상기 복수의 관절 데이터의 동기화를 수행하는 단계, 상기 복수의 관절 데이터를 하나의 관절 데이터로 혼합하여 상기 사용자의 스켈레톤을 생성하는 단계, 상기 스켈레톤을 이용하여 사용자 동작에 따라 움직이는 사용자 캐릭터를 전문가 캐릭터와 함께 출력하는 단계, 신체 부위별로 산출하는 자세 벡터를 이용하여 상기 사용자의 자세와 전문가의 자세를 비교하는 단계 및 상기 비교에 대한 결과를 출력하는 단계를 포함한다.
상기 캘리브레이션을 수행하는 단계는, 상기 복수의 센서 장치 중 하나의 센서 장치의 좌표계를 기준 좌표계로 설정하고, 나머지 센서 장치들의 좌표계를 기준 좌표계로 변환하기 위한 좌표 변환 행렬을 산출한다.
상기 캘리브레이션을 수행하는 단계는, 상기 좌표 변환 행렬을 이용하여 상기 나머지 센서 장치들의 관절 데이터들을 좌표 변환함으로써, 상기 복수의 관절 데이터를 기준 좌표계로 통일한다.
상기 동기화를 수행하는 단계는, 상기 복수의 센서 장치가 캡쳐를 시작한 시간을 기록하고, 가장 빠른 캡쳐 시간을 기준으로 상기관절 데이터를 보간하여 상기 복수의 센서 장치의 관절 데이터를 동기화한다.
상기 동기화를 수행하는 단계는, 상기 복수의 센서 장치가 현재 시간과 이전 시간에서 캡쳐한 관절 위치값에 대하여 동기화 시간에 따라 조정 가능한 제어점들 사이를 이은 곡선인 스플라인 보간(spline interpolation)을 적용하여 새로운 관절 위치값을 산출한다.
상기 스켈레톤을 생성하는 단계는, 상기 복수의 센서 장치가 분절에 포함된 관절을 추적한 개수에 따라 후보 분절을 생성하고, 상기 후보 분절 중에서 추적 가중치가 가장 높은 분절을 선택하고, 상기 선택한 분절의 관절 데이터를 혼합하여 사용자 동작에 대한 스켈레톤을 생성한다.
상기 스켈레톤을 생성하는 단계는, 신체를 몸통, 양 팔 또는 양 다리 중 적어도 하나의 분절로 구분하고, 관절별로 상기 복수의 센서 장치의 추적 횟수를 카운트하고, 포함된 모든 관절이 추적된 분절을 후보 분절로 결정하고, 각 관절의 추적 가중치를 추적 횟수에 상응하게 부여하고, 후보 분절들 중 추적 가중치가 가장 높은 분절을 선택한다.
상기 스켈레톤을 생성하는 단계는, 포함된 모든 관절을 추적한 분절이 없는 경우, 각 관절의 추적 가중치에 따라 관절을 선택하고 선택된 관절로 하나의 분절을 이루게 한다.
상기 스켈레톤을 생성하는 단계는, 상기 복수의 센서 장치가 사용자의 지향 방향을 구분하지 못하여 서로 다른 부위의 관절 데이터가 혼합되는 문제를 해결하기 위하여, 상기 관절 데이터가 혼합되기 전에 관절 위치 영역의 산출을 통해 비슷한 위치에 있는 관절 데이터를 찾아 혼합한다.
상기 사용자의 자세와 전문가의 자세를 비교하는 단계는, 신체 부위별로 산출하는 자세 벡터를 정의하고, 상기 자세 벡터를 이용하여 서로 다른 신체 비율을 가지고 있는 사용자와 전문가의 자세를 비교한다.
상기 사용자의 자세와 전문가의 자세를 비교하는 단계는, 상위 관절의 위치가 틀리더라도 이것이 하위 관절에 영향을 주지 않는 지역 좌표계에서 자세 벡터를 산출한다.
본 발명은 기존 한 대의 센서를 이용하여 획득한 사용자의 동작 데이터에서 발생하는 가려짐 문제를 해결하기 위하여, 복수의 센서를 이용하여 실시간으로 사용자의 동작 데이터를 획득하고, 신체 사이즈가 서로 다른 전문가와 사용자의 동작을 직접적으로 비교할 수 있다.
또한, 본 발명은 전문가의 동작뿐만 아니라 사용자의 동작을 동시에 플레이할 수 있으며, 이를 통해 사용자는 자신의 동작을 확인하고 전문가와의 자세 비교 결과를 확인함으로써, 댄스, 스포츠 등의 동작을 학습할 수 있다.
도 1은 동작 평가 시스템의 구성을 개략적으로 예시한 도면.
도 2는 도 1의 분석 장치의 구성을 개략적으로 예시한 도면.
도 3은 캘리브레이션을 설명하기 위한 도면.
도 4는 캘리브레이션 결과를 예시한 도면.
도 5는 데이터 동기화를 설명하기 위한 도면.
도 6은 분절에 포함된 관절 데이터를 예시한 도면.
도 7은 전방 및 후방의 센서 장치가 추적한 관절 위치를 나타내는 도면.
도 8은 참조 모델 기반 관절 위치 영역의 검색을 나타낸 도면.
도 9는 자세 비교를 위하여 정의된 자세 벡터를 예시한 도면.
도 10은 전역 좌표계와 지역 좌표계에서의 팔의 자세 벡터를 예시한 도면.
도 11은 팔의 동작 일치 방법의 예를 나타낸 도면.
도 12 내지 도 14는 관절 데이터 획득 결과를 나타낸 도면.
도 15는 자세 비교 결과를 표시한 예를 나타낸 도면.
도 16은 동작 평가 시스템을 이용하여 체험형 게임의 구현 예시를 나타낸 도면.
도 17은 도 2의 분석 장치에서의 동작 평가 방법을 나타낸 흐름도.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
이하, 본 발명의 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면 번호에 상관없이 동일한 수단에 대해서는 동일한 참조 번호를 사용하기로 한다.
도 1은 동작 평가 시스템의 구성을 개략적으로 예시한 도면이다.
도 1을 참조하면, 동작 평가 시스템은 분석 장치(100), 디스플레이 장치(200) 및 복수의 센서 장치(300)를 포함한다. 예를 들어, 동작 평가 시스템은 사용자의 동작을 분석하는 한 대의 컴퓨터에 동작 데이터를 획득하는 복수의 센서를 연결하여 구성한 형태가 될 수 있다. 여기서, 센서는 마이크로소프트 키넥트(Kinect)와 같은 저가 RGB-D 센서가 될 수 있다.
복수의 센서 장치(300)는 각각 사용자를 촬영하여 사용자의 동작 데이터를 획득한다. 예를 들어, 도 1에 도시된 바와 같이, 복수의 센서 장치(300)는 사용자의 동작을 전 방위(360도)에서 캡쳐하고 신체 일부의 가려짐이 최소화된 동작 데이터를 획득하기 위하여, 사용자를 기준으로 전방, 후방, 좌측 및 우측에 설치되는 4개의 센서 장치(300-1, 300-2, 300-3, 300-4)로 구성될 수 있다. 여기서, 각 센서 장치는 RGB-D 센서를 포함할 수 있다.
분석 장치(100)는 복수의 센서 장치(300)로부터 획득되는 복수의 동작 데이터의 좌표계를 통일하여 표현하기 위하여 복수의 동작 데이터의 캘리브레이션을 수행하고, 시간차를 가지는 동작 데이터의 동기화를 수행한다. 키넥트와 같은 저가 RGB-D 센서는 동기화없이 무조건 순차적으로 촬영하므로, 동작 데이터 획득 시 시간차를 발생시킨다. 이에 따라 획득되는 동작 데이터의 동기화가 필요하게 된다.
이어, 분석 장치(100)는 복수의 동작 데이터를 하나의 동작 데이터로 혼합하여 사용자의 3차원 자세를 복원함으로써, 사용자 자세에 대한 스켈레톤을 생성한다. 그래서, 분석 장치(100)는 생성된 스켈레톤을 이용하여 사용자 동작에 따라 움직이는 사용자 캐릭터를 디스플레이 장치(200)를 통해 출력할 수 있다.
그리고, 분석 장치(100)는 신체 부위별로 산출하는 자세 벡터를 이용하여 사용자의 자세와 전문가의 자세를 비교한 후, 비교 결과를 디스플레이 장치(200)를 통해 출력한다. 예를 들어, 분석 장치(100)는 그래프를 이용하여 비교 결과를 출력할 수 있고, 사용자 동작에 따라 움직이는 사용자 캐릭터에 관한 동영상과 비교 결과를 저장한 후, 네트워크를 통해 사용자 단말로 전송할 수 있다.
디스플레이 장치(200)는 분석 장치(100)로부터 출력되는 화면을 표시한다. 예를 들어, 디스플레이 장치(200)는 사용자 동작에 따라 움직이는 사용자 캐릭터 또는 사용자의 동작과 전문가 동작을 비교한 결과를 표시할 수 있다.
도 2는 도 1의 분석 장치의 구성을 개략적으로 예시한 도면이다.
도 2를 참조하면, 분석 장치(100)는 캘리브레이션부(110), 동기화부(120), 혼합부(130), 비교부(140) 및 결과 산출부(150)를 포함한다. 동작 평가 시스템은 복수의 센서 장치(300)를 활용하므로, 복수의 동작 데이터에 대한 캘리브레이션 및 동기화는 중요하다. 여기서, 동작 데이터는 사람의 관절의 3차원 위치 좌표를 포함하는 관절 데이터가 될 수 있다. 이하에서는, 복수의 센서 장치(300)가 획득하는 동작 데이터를 관절 데이터로 칭하여 설명하기로 한다.
캘리브레이션부(110)는 복수의 센서 장치(300) 중 하나의 센서 장치의 좌표계를 기준 좌표계로 설정하고, 나머지 센서 장치들의 좌표계를 기준 좌표계로 변환하기 위한 좌표 변환 행렬을 산출한다. 그리고, 캘리브레이션부(110)는 산출된 좌표 변환 행렬을 이용하여 나머지 센서 장치들의 관절 데이터들을 좌표 변환함으로써, 복수의 관절 데이터를 기준 좌표계로 통일한다.
예를 들어, 다중 센서의 캘리브레이션을 쉽게 구현하기 위하여, 전방의 센서 장치(300-1)의 좌표계가 기준 좌표계로 설정되고, 나머지 센서 장치(300-2, 300-3, 300-4)의 좌표계를 기준 좌표계로 변환하기 위한 좌표 변환 행렬이 산출될 수 있다. 이때, 캘리브레이션부(110)는 사용자의 관절 데이터를 직접 이용하여 좌표 변환 행렬을 산출할 수 있다.
즉, 도 3은 캘리브레이션을 설명하기 위한 도면이다. 도 3을 참조하면, 사용자는 두 대의 센서 장치(300)에 의하여 전신 관절이 캡쳐될 수 있는 방향(예를 들어, 45도)을 바라보고 서 있는다. 이 상태에서, 캘리브레이션부(110)는 각 센서 장치(300)가 관절 데이터를 획득한 관절(예를 들어, 키넥트의 경우 20개 관절) 중 중심 힙(Center_Hip_Joint) 관절, 왼쪽 힙(Left_Hip_Joint) 관절, 오른쪽 힙(Right_Hip_Joint) 관절의 위치가 형성하는 삼각형을 통해 방향을 산출할 수 있다. 그리고, 각 센서 장치(300)별로 산출된 방향은 기준 좌표계에서 동일한 방향을 가져야 하므로, 캘리브레이션부(110)는 두 노말 벡터(normal vector)의 각도 차이를 이용하여 회전 행렬(3x3)을 산출할 수 있다. 이어, 캘리브레이션부(110)는 전체 관절 데이터에 대하여 회전 행렬을 적용하여 기준 좌표계로 일치시킨 후, 두 센서 장치(300)의 관절 위치 차이를 산출함으로써, 이동 벡터(3x1)를 산출할 수 있다. 결론적으로, 캘리브레이션부(110)는 회전 행렬과 이동 벡터로 구성되는 좌표 변환 행렬을 산출할 수 있다. 캘리브레이션부(110)는 이와 같은 과정을 두 대의 센서 장치(300)마다 반복할 수 있다.
예를 들어, 전방의 센서 장치(300-1)의 좌표계가 기준 좌표계라면, 우측과 좌측의 센서 장치(300-3, 300-2) 각각의 좌표계를 전방의 센서 장치(300-1)의 좌표계로 일치시키기 위한 좌표 변환 행렬을 산출하고, 후방의 센서 장치(300-4)의 좌표계는 우측의 센서 장치(300-3)(또는, 좌측의 센서 장치(300-2))의 좌표계로 변환한 후, 우측의 센서 장치(300-3)(또는, 좌측의 센서 장치(300-2))에서 전방의 센서 장치(300-1)로의 좌표 변환 행렬을 이용하여 전방의 센서 장치(300-1)의 좌표계와 일치시킬 수 있다. 캘리브레이션에 의하여 좌표 변환을 한 결과는 도 4와 같이 나타낼 수 있다. 도 4는 캘리브레이션 결과를 예시한 도면이다. 도 4에서, (a)는 캘리브레이션 전을 나타내고, (b)는 캘리브레이션 후를 나타낸다.
동기화부(120)는 각 센서 장치(300)가 캡쳐를 시작한 시간을 기록하고, 가장 빠른 캡쳐 시간을 기준으로 데이터를 보간하여 복수의 센서 장치(300)의 관절 데이터를 동기화한다.
예를 들어, 도 5를 참조하면, 도 5는 데이터 동기화를 설명하기 위한 도면이다. 즉, 도 5의 좌측 부분은 3개의 센서 장치(300)에 대하여 센서장치번호, 캡쳐 시간(ms), 센서장치간 캡쳐 시간 차이(ms)를 나타낸 것이다. 한 대의 분석 장치(100)에 연결된 복수의 센서 장치(300)는 순차적으로 관절 데이터를 캡쳐하기 때문에, 첫번째 센서 장치(300)에서 캡쳐한 시간과 마지막 센서 장치(300)에서 캡쳐한 시간은 수 십 밀리 세컨드(ms)의 캡쳐 시간 차이가 발생한다. 관절이 빠르게 움직이는 경우, 시간차에 의해 각 센서 장치(300)에서 획득한 관절 위치는 차이가 발생할 수 있다. 마이크로소프트의 키넥트 센서는 동기화에 대한 지원이 없으며, 기존에 다중 센서를 활용한 동작 평가 기술에 관한 연구에서도 동기화에 대한 부분은 부족하다. 본 발명에서는 쉽게 구현이 가능하도록 하드웨어가 아닌 소프트웨어적으로 동기화를 지원한다.
예를 들어, 도 5의 우측 그래프를 참조하면, 동기화부(120)는 각 센서 장치(300)가 현재 시간(ti)과 이전 시간(ti-1)에서 캡쳐한 관절 위치값에 대하여 동기화 시간(t*)에 따라 조정 가능한 제어점들 사이를 이은 곡선인 스플라인 보간(spline interpolation)을 적용하여 새로운 관절 위치값을 산출할 수 있다. 동기화 시간은 가장 빠른 캡쳐 시간이 될 수 있으며, 스플라인 보간 방법으로 퍼거슨 곡선(Ferguson curve)이 사용될 수 있다. 퍼거슨 곡선의 식은 하기의 수학식 1과 같이 나타낼 수 있다.
[수학식 1]
Figure pat00001
퍼거슨 곡선은 관절의 위치(P(0), P(1))와 관절 이동 속도(P'(0), P'(1))를 이용하여 구성될 수 있으므로, 캐릭터 애니메이션에서 유용한 보간법으로 사용될 수 있다. 전술한 바와 같이, 캘리브레이션과 동기화 방법을 이용하면, 보다 정확한 관절 위치 데이터가 산출될 수 있다.
혼합부(130)는 각 센서 장치(300)에서, 분절에 포함된 관절의 추적 개수에 따라 후보 분절을 생성하고, 생성한 후보 분절 중에서 추적 가중치가 가장 높은 분절을 선택하고, 선택한 분절의 관절 데이터를 혼합하여 사용자 동작에 대한 스켈레톤을 생성한다.
예를 들어, 복수의 센서 장치(300)로부터 입력되는 관절 데이터를 하나의 관절 데이터로 혼합하기 위하여, 도 6에 도시된 바와 같이, 전신은 5개의 분절로 구분될 수 있다. 도 6은 분절에 포함된 관절 데이터를 예시한 도면이다. 즉, 5개의 분절은 몸통, 양 팔 및 양 다리가 될 수 있다. 물론, 관절 하나하나를 추적하는 방법도 가능하나, 신체를 분절로 나누는 방법은 노이즈가 작은 관절 데이터를 획득할 수 있는 장점이 있다.
예를 들어, 혼합부(130)는 관절별로 각 센서 장치(300)의 추적 횟수를 카운트하고, 포함된 모든 관절이 추적된 분절을 후보 분절로 결정할 수 있다. 그리고, 혼합부(130)는 각 관절의 추적 가중치를 추적 횟수에 상응하게 부여하고, 후보 분절들 중 추적 가중치가 가장 높은 분절을 선택할 수 있다. 추적 가중치는 추적이 되면 1씩 증가되고, 추적인 안되면 0으로 설정될 수 있으며, 사용자가 설정한 최대값으로 제한될 수 있다.
만약, 센서 장치(300)가 포함된 모든 관절을 추적한 분절이 없는 경우, 혼합부(130)는 각 관절의 추적 가중치에 따라 관절을 선택하고 선택된 관절로 하나의 분절을 이루게 할 수 있다. 예를 들어, 팔 분절은 어깨, 팔꿈치 및 손목 관절로 구성될 수 있으며, 팔 분절의 3개 관절이 모두 추적되지 않은 경우, 혼합부(130)는 추적 가중치가 가장 높은 관절을 선택하여 하나의 분절을 이루게 할 수 있다.
그리고, 사용자가 센서 장치(300)를 바라보는 방향일수록 관절 추적이 정확하므로, 분절의 추적 가중치가 동일한 경우는 사용자의 지향 방향에 따라 후보 분절이 정해질 수 있다. 예를 들어, 사용자는 초기에 전방의 센서 장치(300-1)를 향하도록 서 있으며, 이는 기준 좌표계에서 -Z방향이 된다. 사용자가 회전하는 경우, 관절의 방향 벡터가 산출되어 사용자가 어느 방향으로 회전하고 있는지 매 프레임마다 산출될 수 있다.
키넥트와 같은 저가의 센서 장치(300)는 사용자가 항상 센서 장치(300)를 바라보는 방향으로 서 있다고 가정하고 관절을 추적하므로, 사용자가 실제로 앞을 향하고 있는지 아니면 뒤를 향하고 있는지 구분하지 못한다는 문제가 있다. 예를 들어, 전방의 센서 장치(300-1)를 향해 서 있는 사용자에 대하여, 후방의 센서 장치(300-4)는 사용자가 후방을 바라보고 있다고 가정한다. 각 센서 장치(300)는 사용자가 자신을 바라보고 서 있다고 가정하기 때문에, 도 7에 도시된 바와 같이, 전방의 센서 장치(300-1)에서 오른손 관절로 추적한 관절 위치는 후방의 센서 장치(300-4)에서는 왼손 관절로 나타난다. 도 7은 전방 및 후방의 센서 장치가 추적한 관절 위치를 나타내는 도면이다. 이 관절 데이터가 그대로 혼합되는 경우, 매우 이상한 동작이 나타나게 된다. 이러한 문제를 해결하기 위해 관절 데이터가 혼합되기 전에, 혼합부(130)는 관절 위치 영역의 산출을 통해 비슷한 위치에 있는 관절 데이터를 찾아 혼합할 수 있다.
도 8을 참조하면, 도 8은 참조 모델 기반 관절 위치 영역의 검색을 나타낸 도면이다. 관절 위치 영역을 검색한다는 것은, 메인 센서로부터 생성된 참조 모델의 관절 위치와 가장 가까운 위치에 있는 것이 동일 관절의 관절 데이터가 된다는 것을 의미한다. 도 8에 도시된 바와 같이, 혼합부(130)는 참조 모델을 기반으로 각 검색 영역의 오른쪽 관절과 왼쪽 관절의 거리를 비교하고, 더 가까운 거리에 있는 관절을 선택하여 관절 데이터를 혼합하게 된다. 이때, 참조 모델의 관절이 추적되지 않은 경우, 상위 관절 또는 이전 관절 위치를 기준으로 관절 위치가 예측될 수 있다.
비교부(140)는 동작을 비교하기 위하여 신체 부위별로 산출하는 자세 벡터를 정의하고, 정의된 자세 벡터를 이용하여 서로 다른 신체 비율을 가지고 있는 사용자와 전문가의 자세를 비교한다.
예를 들어, 동일한 관절 구조, 사이즈 및 비율을 가지는 캐릭터의 자세를 비교하는 경우, 관절 위치, 속도 등을 비교함으로써, 자세간 비교가 쉽게 이루어질 수 있다. 그러나, 동작 평가 시스템은 전문가와 사용자의 자세를 비교하는데, 전문가와 사용자는 동일한 관절 구조를 가지고 있으나, 신체 사이즈 및 비율이 다르기 때문에, 관절 위치, 속도 등에 의한 비교는 의미가 없다. 따라서, 신체 사이즈 및 비율이 서로 다른 두 캐릭터의 경우, 두 캐릭터간 자세 비교에 대한 해결 방법이 필요하다. 일반적으로, 캐릭터 애니메이션에서는 사이즈가 다른 캐릭터에 대해서 모션 리타겟팅 기법을 적용하여 문제를 해결한다. 모션 리타겟팅에 관련된 연구는 많이 진행되었으나, 자세 비교를 위해 리타겟팅 방법이 사용되면, 신체 사이즈 및 비율에 따라 동작이 변형되므로, 원래의 자세와 다소 다른 자세가 생성 될 수 있다는 문제가 발생할 수 있다. 그래서, 본 발명에서는 신체 사이즈 및 비율이 서로 다른 캐릭터 간에 자세를 비교할 수 있는 방법을 제시한다.
즉, 도 9는 자세 비교를 위하여 정의된 자세 벡터를 예시한 도면이다. 도 9를 참조하면, 자세 벡터는 몸통, 좌우 팔 및 좌우 다리의 5개 벡터로 표현될 수 있으며, 각각 힙 중심 관절에서 목 관절, 각 어깨 관절에서 각 손목 관절 그리고, 각 왼쪽과 오른쪽 힙 관절에서 각 발목 관절을 연결하는 벡터로 구성될 수 있다. 자세를 비교하는 두 캐릭터의 신체 사이즈가 서로 다르면, 관절의 위치 비교는 의미가 없고, 관절의 각도를 비교하는 경우 역시 신체 비율이 서로 다르면, 동일한 각도라 해도 자세가 달라진다. 그러나, 정의된 자세 벡터를 사용하여 자세를 비교하는 경우, 신체 사이즈 및 비율에 따른 문제가 해결될 수 있다. 이 때, 자세 벡터는 전역 좌표계가 아닌 지역 좌표계에서 산출된다. 지역 좌표계의 사용은 전역 좌표계와 달리, 상위 관절의 위치가 틀리더라도 이것이 하위 관절에 영향을 주지 않는 장점이 있다. 예를 들어, 도 10은 전역 좌표계와 지역 좌표계에서의 팔의 자세 벡터를 예시한 도면이다. 도 10을 참조하면, 사용자가 전문가와 동일한 자세를 취했는데, 허리 관절이 조금 더 왼쪽으로 기울어졌다고 가정하면, 전역 좌표계를 사용한 경우, 상반신의 모든 관절에서 자세 차이가 발생하게 된다. 그러나, 지역 좌표계를 사용한 경우, 허리 부분만 틀리고 팔은 올바른 자세를 취했다는 결과가 획득될 수 있다. 이는 실제 자세 지도에서 잘못된 부분만 지적하는 것과 동일한 효과를 보여준다는 장점이 있다. 그리고, 자세 벡터를 축으로 관절이 회전하는 경우, 예를 들어, 어깨 관절이 회전하는 경우에 대해서도 전역 좌표계에서는 동일한 벡터로 보이나, 지역 좌표계에서는 다른 벡터로 표시되므로 구분이 가능하다.
비교부(140)는 지역 좌표계에서 자세 벡터의 방향과 길이를 산출하고, 방향과 길이의 차이에 의하여 유사한 동작인지 또는 잘못된 동작인지를 결정할 수 있다. 자세 벡터의 방향과 길이가 서로 유사할수록 유사한 동작이 되는데, 비교하는 두 캐릭터의 신체 사이즈와 비율은 서로 다르므로, 비교 시 자세 벡터의 길이는 신체 사이즈에 대한 상대적인 길이로 산출될 수 있다.
예를 들어, 자세 벡터를 이용한 비교 결과는 하기의 수학식 2를 이용하여 산출될 수 있다.
[수학식 2]
Figure pat00002
Figure pat00003
Figure pat00004
Figure pat00005
여기서,
Figure pat00006
는 전문가의 자세 벡터(i번째),
Figure pat00007
는 사용자의 자세 벡터(i번째),
Figure pat00008
는 벡터 각도 비교값,
Figure pat00009
는 벡터 길이 비교값, Score는 최종 자세 비교 결과값을 나타낸다.
도 11은 팔의 동작 일치 방법의 예를 나타낸 도면이다. 도 11을 참조하면, 수학식 2의 자세 벡터를 팔의 자세 벡터라고 가정하면, 팔의 자세 벡터(V)를 팔 전체 길이(|Lu1|+|Lu2|)로 나눈 비율이 벡터 길이로 설정될 수 있다. 그리고, 도 11에서 나타난 바와 같이, 각도값을 일치시키는 경우(a) 또는 역운동학 기법에 의하여 일치시키는 경우(b)에는 사용자와 전문가의 자세가 유사하지 않을 수 있으며, (c)의 경우와 같이 자세 벡터가 일치하는 방향으로 사용자가 자세를 취해야 전문가 자세와 유사한 자세가 될 수 있다.
본 발명에서 제시한 지역 좌표계를 기반으로 자세 벡터를 정의하고 비교하는 방법은 특히, 무용과 같이 자세가 중요한 동작에 적합하며, 구현이 쉬우면서도 신체 사이즈와 무관하게 비교가 가능하다는 장점이 있다. 각 자세 벡터 간 비교한 결과 값을 알면 어느 시간에 어느 부위가 가장 잘못 되었는지 쉽게 알 수 있으므로, 사용자는 동작 훈련이 가능하게 된다.
결과 산출부(150)는 캘리브레이션 및 동기화된 관절 데이터를 저장하고, 생성한 스켈레톤에 기반하여 사용자 캐릭터를 디스플레이 장치(200)를 통해 출력하고, 자세 벡터를 이용한 비교 결과를 생성하여 디스플레이 장치(200)를 통해 표시한다.
예를 들어, 도 12 내지 도 14는 관절 데이터 획득 결과를 나타낸 도면이다. 도 12는 좌측의 깊이맵 영상을 이용하여 관절 추적에 의한 자세 복원 결과를 우측에 나타낸 것이고, 도 13은 하나의 키넥트와 다수의 키넥트를 이용하여 획득한 관절 데이터를 나타내고, 도 14는 각 센서 장치에서 획득된 관절 데이터를 이용하여 복원한 스켈레톤을 나타낸다.
도 13에 도시된 바와 같이, 한 대의 키넥트는 신체 일부가 가려짐에 따라 관절의 위치를 추적하지 못하는 경우가 많이 발생하며, 결과적으로 신체 일부를 표현하지 못한다. 그에 비해, 다중 키넥트가 사용되는 경우, 사용자 동작의 캡쳐 성능이 훨씬 향상되는 것을 확인할 수 있다. 즉, 사용자 동작을 캡쳐하는 동안 각 키넥트에서 관절 추적 성공률과 다중 키넥트에서 관절 추적 성공률은 다음의 표1과 같이 산출될 수 있다. 하기 표 1은 3000 프레임에서 측정된 관절 추적 성공률을 나타낸다.
Joints Front Right Left Unified
U
P
P
E
R
L Elbow 82.0% 74.6% 83.4% 99.2%
L Wrist 85.7% 74.8% 88.4% 99.1%
R Elbow 81.4% 83.8% 68.3% 99.1%
R Wrist 85.8% 83.7% 70.6% 98.8%
L
O
W
E
R
L Knee 94.7% 87.8% 86.5% 99.7%
L Ankle 84.3% 78.9% 88.2% 99.4%
R Knee 93.6% 83.6% 88.3% 99.9%
R Ankle 80.5% 67.9% 86.7% 99.1%
Average 86.0% 70.0% 82.6% 99.3%
표 1을 참조하면, 기존 한 대의 센서 장치가 사용되는 경우, 최고 86% 정도의 관절 추적 성공률을 보여주는 반면, 다중 센서 장치가 사용되는 경우, 관절 추적 성공률이 평균 99.3%로 올라감을 알 수 있다. 이는 한 대의 센서 장치가 놓친 관절을 다른 센서 장치가 추적하여 복원하게 되므로, 보다 더 정확한 자세를 복원할 수 있다는 의미가 될 수 있다.
도 15는 자세 비교 결과를 표시한 예를 나타낸 도면이다. 도 15를 참조하면, 다른 신체 사이즈를 가지는 전문가와 사용자의 유사한 자세를 비교하기 위하여 스켈레톤을 기반으로 두 캐릭터가 표시될 수 있다. 비교 부위는 몸통, 좌우 팔 및 좌우 다리의 5개이며, 5개 부위의 자세 벡터 비교를 통해 자세의 유사한 정도가 그래프로 표현될 수 있다. 사용자는 그래프를 통해 어느 부위의 자세가 유사한지 여부를 쉽게 알 수 있으므로, 무용을 학습하는데 도움이 될 수 있다.
도 16은 동작 평가 시스템을 이용하여 체험형 게임의 구현 예시를 나타낸 도면이다.
도 16을 참조하면, 센서 장치(300)는 한 대 이상 사용이 가능하며, 두 대 이상 설치됨으로써, 가려지는 관절이 줄어들어 사용자의 관절을 보다 잘 추적할 수 있다. 사용자는 특수한 의상을 착용하거나 마커를 부착하지 않은 상태에서 화면에 표시되는 전문가 캐릭터를 보고 따라 하면, 사용자의 관절은 복수의 센서 장치(300)에 의하여 대부분 추적되어, 획득된 관절 데이터로 사용자의 스켈레톤의 복원이 될 수 있다. 이에 따라, 하나의 화면에 전문가 동작과 함께 사용자 동작이 표시될 수 있으므로, 사용자는 자신의 동작을 보면서 전문가의 동작을 학습할 수 있다. 비교 결과는 전문가와 사용자의 동작에 대한 동영상과 결과 그래프와 같은 형태로 사용자에게 보여지며, 사용자는 모바일 기기 등을 통해 비교 결과를 전송 받을 수 있다.
도 17은 도 2의 분석 장치에서의 동작 평가 방법을 나타낸 흐름도이다.
S1710 단계에서, 분석 장치(100)는 복수의 센서 장치(300)로부터 관절 데이터를 입력받는다.
S1720 단계에서, 분석 장치(100)는 복수의 센서 장치(300)로부터 획득되는 복수의 관절 데이터의 좌표계를 통일하여 표현하기 위하여 복수의 관절 데이터의 캘리브레이션을 수행한다.
S1730 단계에서, 분석 장치(100)는 캘리브레이션된 복수의 관절 데이터의 동기화를 수행한다.
S1740 단계에서, 분석 장치(100)는 복수의 관절 데이터를 하나의 관절 데이터로 혼합하여 사용자의 3차원 자세를 복원함으로써, 사용자 자세에 대한 스켈레톤을 생성한다. 그리고, 분석 장치(100)는 생성된 스켈레톤을 이용하여 사용자 동작에 따라 움직이는 사용자 캐릭터를 디스플레이 장치(200)를 통해 출력한다.
S1750 단계에서, 분석 장치(100)는 신체 부위별로 산출하는 자세 벡터를 이용하여 사용자의 자세와 전문가의 자세를 비교한다.
S1760 단계에서, 분석 장치(100)는 비교 결과를 디스플레이 장치(200)를 통해 출력한다. 예를 들어, 분석 장치(100)는 그래프를 이용하여 비교 결과를 출력할 수 있고, 사용자 동작에 따라 움직이는 사용자 캐릭터에 관한 동영상과 비교 결과를 저장한 후, 네트워크를 통해 사용자 단말로 전송할 수 있다.
한편, 본 발명의 실시예에 따른 동작 평가 방법은 다양한 전자적으로 정보를 처리하는 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 저장 매체에 기록될 수 있다. 저장 매체는 프로그램 명령, 데이터 파일, 데이터 구조등을 단독으로 또는 조합하여 포함할 수 있다.
저장 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 전자적으로 정보를 처리하는 장치, 예를 들어, 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 분석 장치
200: 디스플레이 장치
300: 복수의 센서 장치

Claims (20)

  1. 사용자를 촬영하여 사용자의 관절 데이터를 획득하는 복수의 센서 장치;
    상기 복수의 센서 장치로부터 입력된 관절 데이터의 캘리브레이션 및 동기화를 수행하여 상기 사용자의 스켈레톤을 생성하고, 신체 부위별로 산출하는 자세 벡터를 이용하여 상기 사용자의 자세와 전문가의 자세를 비교하는 분석장치; 및
    상기 스켈레톤을 이용하여 사용자 동작에 따라 움직이는 사용자 캐릭터를 전문가 캐릭터와 함께 출력하고, 상기 비교에 대한 결과를 출력하는 디스플레이 장치를 포함하는 동작 평가 시스템.
  2. 제1항에 있어서,
    상기 분석 장치는,
    상기 복수의 센서 장치 중 하나의 센서 장치의 좌표계를 기준 좌표계로 설정하고, 나머지 센서 장치들의 좌표계를 기준 좌표계로 변환하기 위한 좌표 변환 행렬을 산출하는 캘리브레이션부;
    상기 복수의 센서 장치가 캡쳐를 시작한 시간을 기록하고, 가장 빠른 캡쳐 시간을 기준으로 상기 관절 데이터를 보간하여 상기 복수의 센서 장치의 관절 데이터를 동기화하는 동기화부;
    상기 복수의 센서 장치가 분절에 포함된 관절을 추적한 개수에 따라 후보 분절을 생성하고, 상기 후보 분절 중에서 추적 가중치가 가장 높은 분절을 선택하고, 상기 선택한 분절의 관절 데이터를 혼합하여 사용자 동작에 대한 스켈레톤을 생성하는 혼합부;
    신체 부위별로 산출하는 자세 벡터를 정의하고, 상기 자세 벡터를 이용하여 서로 다른 신체 비율을 가지고 있는 사용자와 전문가의 자세를 비교하는 비교부; 및
    캘리브레이션 및 동기화된 관절 데이터를 저장하고, 상기 스켈레톤을 적용한 사용자 캐릭터를 상기 디스플레이 장치를 통해 출력하고, 상기 자세 벡터를 이용한 비교 결과를 생성하여 상기 디스플레이 장치를 통해 표시하는 결과 산출부를 포함하는 것을 특징으로 하는 동작 평가 시스템.
  3. 제2항에 있어서,
    상기 캘리브레이션부는 상기 좌표 변환 행렬을 이용하여 상기 나머지 센서 장치들의 관절 데이터들을 좌표 변환함으로써, 상기 복수의 관절 데이터를 기준 좌표계로 통일하는 것을 특징으로 하는 동작 평가 시스템.
  4. 제2항에 있어서,
    상기 동기화부는 상기 복수의 센서 장치가 현재 시간과 이전 시간에서 캡쳐한 관절 위치값에 대하여 동기화 시간에 따라 조정 가능한 제어점들 사이를 이은 곡선인 스플라인 보간(spline interpolation)을 적용하여 새로운 관절 위치값을 산출하는 것을 특징으로 하는 동작 평가 시스템.
  5. 제2항에 있어서,
    상기 혼합부는 신체를 몸통, 양 팔 또는 양 다리 중 적어도 하나의 분절로 구분하고, 관절별로 상기 복수의 센서 장치의 추적 횟수를 카운트하고, 포함된 모든 관절이 추적된 분절을 후보 분절로 결정하고, 각 관절의 추적 가중치를 추적 횟수에 상응하게 부여하고, 후보 분절들 중 추적 가중치가 가장 높은 분절을 선택하는 것을 특징으로 하는 동작 평가 시스템.
  6. 제5항에 있어서,
    상기 혼합부는 포함된 모든 관절을 추적한 분절이 없는 경우, 각 관절의 추적 가중치에 따라 관절을 선택하고 선택된 관절로 하나의 분절을 이루게 하는 것을 특징으로 하는 동작 평가 시스템.
  7. 제5항에 있어서,
    상기 혼합부는 상기 복수의 센서 장치가 사용자의 지향 방향을 구분하지 못하여 서로 다른 부위의 관절 데이터가 혼합되는 문제를 해결하기 위하여, 상기 관절 데이터가 혼합되기 전에 관절 위치 영역의 산출을 통해 비슷한 위치에 있는 관절 데이터를 찾아 혼합하는 것을 특징으로 하는 동작 평가 시스템.
  8. 제2항에 있어서,
    상기 비교부는 상위 관절의 위치가 틀리더라도 이것이 하위 관절에 영향을 주지 않는 지역 좌표계에서 자세 벡터를 산출하는 것을 특징으로 하는 동작 평가 시스템.
  9. 제8항에 있어서,
    상기 비교부는 상기 지역 좌표계에서 상기 자세 벡터의 방향과 길이를 산출하고, 방향과 길이의 차이에 의하여 유사한 동작인지 또는 잘못된 동작인지를 결정하는 것을 특징으로 하는 동작 평가 시스템.
  10. 복수의 센서 장치를 이용하여 분석 장치가 수행하는 동작 평가 방법에 있어서,
    사용자를 촬영하여 획득한 사용자의 관절 데이터를 상기 복수의 센서 장치로부터 입력받는 단계;
    상기 복수의 센서 장치로부터 입력된 복수의 관절 데이터의 캘리브레이션을 수행하는 단계;
    상기 복수의 관절 데이터의 동기화를 수행하는 단계;
    상기 복수의 관절 데이터를 하나의 관절 데이터로 혼합하여 상기 사용자의 스켈레톤을 생성하는 단계;
    상기 스켈레톤을 이용하여 사용자 동작에 따라 움직이는 사용자 캐릭터를 전문가 캐릭터와 함께 출력하는 단계;
    신체 부위별로 산출하는 자세 벡터를 이용하여 상기 사용자의 자세와 전문가의 자세를 비교하는 단계; 및
    상기 비교에 대한 결과를 출력하는 단계를 포함하는 동작 평가 방법.
  11. 제10항에 있어서,
    상기 캘리브레이션을 수행하는 단계는,
    상기 복수의 센서 장치 중 하나의 센서 장치의 좌표계를 기준 좌표계로 설정하고, 나머지 센서 장치들의 좌표계를 기준 좌표계로 변환하기 위한 좌표 변환 행렬을 산출하는 것을 특징으로 하는 동작 평가 방법.
  12. 제11항에 있어서,
    상기 캘리브레이션을 수행하는 단계는,
    상기 좌표 변환 행렬을 이용하여 상기 나머지 센서 장치들의 관절 데이터들을 좌표 변환함으로써, 상기 복수의 관절 데이터를 기준 좌표계로 통일하는 것을 특징으로 하는 동작 평가 방법.
  13. 제10항에 있어서,
    상기 동기화를 수행하는 단계는,
    상기 복수의 센서 장치가 캡쳐를 시작한 시간을 기록하고, 가장 빠른 캡쳐 시간을 기준으로 상기관절 데이터를 보간하여 상기 복수의 센서 장치의 관절 데이터를 동기화하는 것을 특징으로 하는 동작 평가 방법.
  14. 제13항에 있어서,
    상기 동기화를 수행하는 단계는,
    상기 복수의 센서 장치가 현재 시간과 이전 시간에서 캡쳐한 관절 위치값에 대하여 동기화 시간에 따라 조정 가능한 제어점들 사이를 이은 곡선인 스플라인 보간(spline interpolation)을 적용하여 새로운 관절 위치값을 산출하는 것을 특징으로 하는 동작 평가 방법.
  15. 제10항에 있어서,
    상기 스켈레톤을 생성하는 단계는,
    상기 복수의 센서 장치가 분절에 포함된 관절을 추적한 개수에 따라 후보 분절을 생성하고, 상기 후보 분절 중에서 추적 가중치가 가장 높은 분절을 선택하고, 상기 선택한 분절의 관절 데이터를 혼합하여 사용자 동작에 대한 스켈레톤을 생성하는 것을 특징으로 하는 동작 평가 방법.
  16. 제15항에 있어서,
    상기 스켈레톤을 생성하는 단계는,
    신체를 몸통, 양 팔 또는 양 다리 중 적어도 하나의 분절로 구분하고, 관절별로 상기 복수의 센서 장치의 추적 횟수를 카운트하고, 포함된 모든 관절이 추적된 분절을 후보 분절로 결정하고, 각 관절의 추적 가중치를 추적 횟수에 상응하게 부여하고, 후보 분절들 중 추적 가중치가 가장 높은 분절을 선택하는 것을 특징으로 하는 동작 평가 방법.
  17. 제15항에 있어서,
    상기 스켈레톤을 생성하는 단계는,
    포함된 모든 관절을 추적한 분절이 없는 경우, 각 관절의 추적 가중치에 따라 관절을 선택하고 선택된 관절로 하나의 분절을 이루게 하는 것을 특징으로 하는 동작 평가 방법.
  18. 제15항에 있어서,
    상기 스켈레톤을 생성하는 단계는,
    상기 복수의 센서 장치가 사용자의 지향 방향을 구분하지 못하여 서로 다른 부위의 관절 데이터가 혼합되는 문제를 해결하기 위하여, 상기 관절 데이터가 혼합되기 전에 관절 위치 영역의 산출을 통해 비슷한 위치에 있는 관절 데이터를 찾아 혼합하는 것을 특징으로 하는 동작 평가 방버.
  19. 제10항에 있어서,
    상기 사용자의 자세와 전문가의 자세를 비교하는 단계는,
    신체 부위별로 산출하는 자세 벡터를 정의하고, 상기 자세 벡터를 이용하여 서로 다른 신체 비율을 가지고 있는 사용자와 전문가의 자세를 비교하는 것을 특징으로 하는 동작 평가 방법.
  20. 제19항에 있어서,
    상기 사용자의 자세와 전문가의 자세를 비교하는 단계는,
    상위 관절의 위치가 틀리더라도 이것이 하위 관절에 영향을 주지 않는 지역 좌표계에서 자세 벡터를 산출하는 것을 특징으로 하는 동작 평가 방법.
KR1020150018189A 2015-02-05 2015-02-05 동작 평가 시스템 및 방법 KR20160096473A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150018189A KR20160096473A (ko) 2015-02-05 2015-02-05 동작 평가 시스템 및 방법
US14/975,216 US9690981B2 (en) 2015-02-05 2015-12-18 System and method for motion evaluation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150018189A KR20160096473A (ko) 2015-02-05 2015-02-05 동작 평가 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20160096473A true KR20160096473A (ko) 2016-08-16

Family

ID=56566938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150018189A KR20160096473A (ko) 2015-02-05 2015-02-05 동작 평가 시스템 및 방법

Country Status (2)

Country Link
US (1) US9690981B2 (ko)
KR (1) KR20160096473A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102096476B1 (ko) * 2019-01-04 2020-04-02 주식회사 바이오텍에스알에스 신체 맞춤형 운동 분석 시스템
KR20210089997A (ko) * 2020-01-09 2021-07-19 주식회사 엘지유플러스 다중 영상 재생 방법 및 장치
KR20210118496A (ko) * 2020-03-23 2021-10-01 권세기 영상기반 지능형 푸시-업 판별 방법 및 푸시-업 판별 시스템
KR102412553B1 (ko) * 2021-12-26 2022-06-24 주식회사 큐랩 인공지능 기반 댄스 동작 비교 방법 및 장치
KR20230042779A (ko) 2021-09-23 2023-03-30 권세기 영상기반 지능형 팔굽혀펴기 진단 방법 및 팔굽혀펴기 진단 시스템
WO2023106846A1 (ko) * 2021-12-09 2023-06-15 주식회사 에이치엔에이치 스켈레톤 포인트 기반 서비스 제공 장치 및 방법
KR20230122790A (ko) * 2022-02-15 2023-08-22 공은하 동작교정을 위한 인공지능 코칭 시스템

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018053682A1 (en) * 2016-09-20 2018-03-29 Intel Corporation Animation simulation of biomechanics
KR20180053012A (ko) 2016-11-11 2018-05-21 한국전자통신연구원 표적영역의 변위정보 확인 방법 및 장치, 이를 이용한 대기운동정보 확인방법 및 장치
JP6769859B2 (ja) * 2016-12-19 2020-10-14 株式会社日立エルジーデータストレージ 画像処理装置及び画像処理方法
CN107920203A (zh) * 2017-11-23 2018-04-17 乐蜜有限公司 图像采集方法、装置和电子设备
CN110298218B (zh) * 2018-03-23 2022-03-04 上海史贝斯健身管理有限公司 交互式健身装置和交互式健身系统
CN108921907B (zh) * 2018-07-26 2022-03-08 上海慧子视听科技有限公司 一种运动测试评分的方法、装置、设备及存储介质
CN109190607A (zh) * 2018-10-30 2019-01-11 维沃移动通信有限公司 一种动作图像处理方法、装置和终端
WO2020099369A1 (en) * 2018-11-12 2020-05-22 Mopare Aps A method for movement analysis and related portable electronic device
WO2021100904A1 (ko) * 2019-11-20 2021-05-27 (주)데브언리밋 안무 연습 보조 방법 및 장치
US11282214B2 (en) * 2020-01-08 2022-03-22 Agt International Gmbh Motion matching analysis
JP7216679B2 (ja) * 2020-02-21 2023-02-01 株式会社日立ハイテク 情報処理装置、および判断結果出力方法
CN112288766A (zh) * 2020-10-28 2021-01-29 中国科学院深圳先进技术研究院 运动评估方法、装置、系统及存储介质
US20220277663A1 (en) * 2021-02-26 2022-09-01 Justin A Tehrani Guided Learning Systems, Devices, and Methods
CN117115341B (zh) * 2023-08-03 2024-02-13 广州盘古文化传播有限公司 一种基于传感器的数字动作捕捉系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010095900A (ko) 2000-04-12 2001-11-07 박명수 3차원 모션캡쳐 분석시스템 및 그 방법
US6554706B2 (en) 2000-05-31 2003-04-29 Gerard Jounghyun Kim Methods and apparatus of displaying and evaluating motion data in a motion game apparatus
KR20020011851A (ko) 2001-01-15 2002-02-09 정영균 인공시각과 패턴인식을 이용한 체감형 게임 장치 및 방법.
US8953909B2 (en) 2006-01-21 2015-02-10 Elizabeth T. Guckenberger System, method, and computer software code for mimic training
US8253746B2 (en) 2009-05-01 2012-08-28 Microsoft Corporation Determine intended motions
US9981193B2 (en) * 2009-10-27 2018-05-29 Harmonix Music Systems, Inc. Movement based recognition and evaluation
US8334842B2 (en) 2010-01-15 2012-12-18 Microsoft Corporation Recognizing user intent in motion capture system
US8437506B2 (en) 2010-09-07 2013-05-07 Microsoft Corporation System for fast, probabilistic skeletal tracking
KR20120075858A (ko) 2010-12-29 2012-07-09 육상조 온라인 댄스경연시스템.
US20120293630A1 (en) 2011-05-19 2012-11-22 Qualcomm Incorporated Method and apparatus for multi-camera motion capture enhancement using proximity sensors
US20140188009A1 (en) 2012-07-06 2014-07-03 University Of Southern California Customizable activity training and rehabilitation system
KR102064795B1 (ko) 2013-02-27 2020-01-10 한국전자통신연구원 자세 훈련 시스템 및 자세 훈련 시스템의 동작방법
KR101677559B1 (ko) 2013-03-22 2016-11-18 한국전자통신연구원 영상 정합 장치 및 그것의 동작 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102096476B1 (ko) * 2019-01-04 2020-04-02 주식회사 바이오텍에스알에스 신체 맞춤형 운동 분석 시스템
KR20210089997A (ko) * 2020-01-09 2021-07-19 주식회사 엘지유플러스 다중 영상 재생 방법 및 장치
KR20210118496A (ko) * 2020-03-23 2021-10-01 권세기 영상기반 지능형 푸시-업 판별 방법 및 푸시-업 판별 시스템
KR20230042779A (ko) 2021-09-23 2023-03-30 권세기 영상기반 지능형 팔굽혀펴기 진단 방법 및 팔굽혀펴기 진단 시스템
WO2023106846A1 (ko) * 2021-12-09 2023-06-15 주식회사 에이치엔에이치 스켈레톤 포인트 기반 서비스 제공 장치 및 방법
KR102412553B1 (ko) * 2021-12-26 2022-06-24 주식회사 큐랩 인공지능 기반 댄스 동작 비교 방법 및 장치
KR20230122790A (ko) * 2022-02-15 2023-08-22 공은하 동작교정을 위한 인공지능 코칭 시스템

Also Published As

Publication number Publication date
US9690981B2 (en) 2017-06-27
US20160232676A1 (en) 2016-08-11

Similar Documents

Publication Publication Date Title
KR20160096473A (ko) 동작 평가 시스템 및 방법
US11967101B2 (en) Method and system for obtaining joint positions, and method and system for motion capture
Fern'ndez-Baena et al. Biomechanical validation of upper-body and lower-body joint movements of kinect motion capture data for rehabilitation treatments
US9378559B2 (en) System and method for motion estimation
CN107330967B (zh) 基于惯性传感技术的骑师运动姿态捕捉及三维重建系统
CN110544302A (zh) 基于多目视觉的人体动作重建系统、方法和动作训练系统
US20220092302A1 (en) Skeleton recognition method, computer-readable recording medium storing skeleton recognition program, skeleton recognition system, learning method, computer-readable recording medium storing learning program, and learning device
JP2015186531A (ja) 動作情報処理装置、及びプログラム
Chun et al. A sensor-aided self coaching model for uncocking improvement in golf swing
JP2021105887A (ja) 3dポーズ取得方法及び装置
Baek et al. Dance experience system using multiple kinects
Yang et al. 3-D markerless tracking of human gait by geometric trilateration of multiple Kinects
US20180070816A1 (en) System and method for capturing spatially and temporally coherent eye gaze and hand data during performance of a manual task
KR20160097430A (ko) 애니메이션 생성 장치 및 방법
JP2019136493A (ja) 運動の採点方法、システム及びプログラム
JP2004265222A (ja) インタフェース方法、装置、およびプログラム
US11682157B2 (en) Motion-based online interactive platform
JP7318814B2 (ja) データ生成方法、データ生成プログラムおよび情報処理装置
US20200406098A1 (en) Techniques for golf swing measurement and optimization
EP3862850A1 (en) Method for locating a center of rotation of an articulated joint
JP2001236505A (ja) 座標推定方法、座標推定装置および座標推定システム
CN107610173A (zh) 一种实时定位方法和装置
US20200320719A1 (en) Determining a kinematic sequence
JP6638194B2 (ja) 3次元画像処理システム、3次元画像処理装置および3次元画像処理方法
KR101962045B1 (ko) 안무 평가 장치 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application