KR102608196B1 - 비전처리를 활용한 범용 반복 동작 카운팅 시스템 - Google Patents

비전처리를 활용한 범용 반복 동작 카운팅 시스템 Download PDF

Info

Publication number
KR102608196B1
KR102608196B1 KR1020230100371A KR20230100371A KR102608196B1 KR 102608196 B1 KR102608196 B1 KR 102608196B1 KR 1020230100371 A KR1020230100371 A KR 1020230100371A KR 20230100371 A KR20230100371 A KR 20230100371A KR 102608196 B1 KR102608196 B1 KR 102608196B1
Authority
KR
South Korea
Prior art keywords
squat
angle
knee
counting
real
Prior art date
Application number
KR1020230100371A
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 KR1020230100371A priority Critical patent/KR102608196B1/ko
Application granted granted Critical
Publication of KR102608196B1 publication Critical patent/KR102608196B1/ko

Links

Classifications

    • 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/0669Score-keepers or score display devices
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B23/00Exercising apparatus specially adapted for particular parts of the body
    • A63B23/035Exercising apparatus specially adapted for particular parts of the body for limbs, i.e. upper or lower limbs, e.g. simultaneously
    • A63B23/04Exercising apparatus specially adapted for particular parts of the body for limbs, i.e. upper or lower limbs, e.g. simultaneously for lower limbs
    • A63B23/0405Exercising apparatus specially adapted for particular parts of the body for limbs, i.e. upper or lower limbs, e.g. simultaneously for lower limbs involving a bending of the knee and hip joints simultaneously
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/30Noise filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/34Smoothing or thinning of the pattern; Morphological operations; Skeletonisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/49Segmenting video sequences, i.e. computational techniques such as parsing or cutting the sequence, low-level clustering or determining units such as shots or scenes
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B23/00Exercising apparatus specially adapted for particular parts of the body
    • A63B23/035Exercising apparatus specially adapted for particular parts of the body for limbs, i.e. upper or lower limbs, e.g. simultaneously
    • A63B23/04Exercising apparatus specially adapted for particular parts of the body for limbs, i.e. upper or lower limbs, e.g. simultaneously for lower limbs
    • A63B23/0405Exercising apparatus specially adapted for particular parts of the body for limbs, i.e. upper or lower limbs, e.g. simultaneously for lower limbs involving a bending of the knee and hip joints simultaneously
    • A63B2023/0411Squatting exercises
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2220/00Measuring of physical parameters relating to sporting activity
    • A63B2220/80Special sensors, transducers or devices therefor
    • A63B2220/806Video cameras

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 스쿼드 카운팅 시스템에 관한 것으로 본 발명의 일양태에 따르면, 사용자의 스쿼트 동작을 촬영하기 위한 영상 촬영 수단; 및 상기 영상 촬영 수단으로부터 입력되는 사용자의 스쿼트 동작 영상으로부터 스쿼트 횟수를 카운팅하기 위한 스쿼트 카운팅 어플리케이션이 제공된 사용자 단말을 포함하는 비전 기반의 스쿼트 카운팅 시스템이 제공되고, 상기 스쿼트 카운팅 어플리케이션은, 상기 영상 촬영 수단으로부터 촬영되는 영상을 하나의 프레임씩 전송받아 스쿼트 횟수를 카운팅하는 실시간 처리 모듈과; 상기 영상 촬영 수단으로부터 촬영된 영상의 전체 프레임을 전송받아 스쿼트 횟수를 카운팅하는 비실시간 처리 모듈을 포함한다.

Description

비전처리를 활용한 범용 반복 동작 카운팅 시스템{General-Purpose Repetitive Motion Counting System using Vision Processing}
본 발명은 비전처리를 활용한 범용 반복 동작 카운팅 시스템에 관한 것으로 보다 구체적으로는 비전처리를 활용하여 스쿼트, 운몸 일으키기와 같은 반복 동작을 카운팅하기 위한 시스템에 관한 것이다.
성인병, 당뇨병, 지방간 또는 고도비만 등의 질병을 앓고 있는 현대인들의 수가 점차 증가하고 있는 추세이다. 이러한 질병은 현대인들의 수명을 단축시키고, 일상적인 생활에서도 여러 가지 제약이 발생될 수 있다
성인병, 당뇨병, 지방간 또는 고도비만 등의 질병을 앓고 있는 현대인들의 수가 점차 증가하고 있는 추세이다. 이러한 질병은 현대인들의 수명을 단축시키고, 일상적인 생활에서도 여러 가지 제약이 발생될 수 있다
이와 같이, 질병 발생 빈도가 높아짐에 따라 전문가들은 현대인들에게 매주 수회 이상 꾸준하게 운동할 것을 추천하고 있으며, 현대인들의 다수가 운동을 통하여 질병을 예방하고 신체 건강을 관리하고 있다.
스쿼트는 대퇴사두근, 햄스트링, 종아리 근육을 포함한 다리 근육을 만드는 데 도움이 될 뿐만 아니라 몸 전체 근육 구축을 촉진하는 환경을 조성한다. 스쿼트를 통해 테스토스테론과 성장 호르몬이 방출되게 되는데, 이 호르몬들은 근육 성장에 필수적이며, 체내의 다른 부위를 단련할 때 근육량을 향상시키는 데 도움이 된다. 스쿼트를 하면 근육이 만들어짐과 동시에 근육이 보다 효율적으로 작동하는 데 도움을 받을 수 있으며, 이동성과 균형감각을 얻을 수도 있다. 이러한 모든 효능은 실생활에서 효율적으로 움직일 수 있는 몸 상태를 갖추게 된다.
또한 스쿼트는 체액의 펌핑을 일으키기 때문에 장기 및 땀샘에 가득 찬 노폐물을 제거하고, 영양을 공급 받을 수 있도록 도와주고, 결장을 통한 대변의 움직임이 개선되므로, 변비에도 효과를 주는 것으로 알려져 있다.
이와 같이 스쿼트는 성인병의 예방 및 건강 관리에 효과적인 것으로 알려져 있지만 정확한 스쿼트의 자세를 유지하고 운동하는 것이 중요하지만, 현재까지 스쿼트 반복 횟수를 정확하게 측정하고 사용자에게 알려주는 시스템은 존재하지 않는다.
한국특허공 제2018-0060541호(2018.06.07)
본 발명은 전술한 바와 같은 문제점에 기반하여 안출된 발명으로 스쿼트 반복운동 횟수 측정 및 자세 교정의 한계점을 해결하기 위해 비전기반의 실시간 또는 비실시간 스쿼트 카운팅 시스템을 제공하는 것을 목적으로 한다.
전술한 과제를 해결하기 위해 본 발명의 일양태에 따르면, 사용자의 스쿼트 동작을 촬영하기 위한 영상 촬영 수단; 및 상기 영상 촬영 수단으로부터 입력되는 사용자의 스쿼트 동작 영상으로부터 스쿼트 횟수를 카운팅하기 위한 스쿼트 카운팅 어플리케이션이 제공된 사용자 단말을 포함하는 비전 기반의 스쿼트 카운팅 시스템이 제공되고, 상기 스쿼트 카운팅 어플리케이션은, 상기 영상 촬영 수단으로부터 촬영되는 영상을 하나의 프레임씩 전송받아 스쿼트 횟수를 카운팅하는 실시간 처리 모듈과; 상기 영상 촬영 수단으로부터 촬영된 영상의 전체 프레임을 전송받아 스쿼트 횟수를 카운팅하는 비실시간 처리 모듈을 포함한다.
전술한 양태에서, 상기 스쿼트 카운팅 어플리케이션은 입력받은 영상의 프레임에 표출되는 사용자의 관절 좌표를 메디아파이프(MediaPipe)의 인간 자세 검출 및 트래킹 솔루션(Human Pose Detection and Tracking)을 이용하여 추출하고, 추출된 관절 좌표는 브래즈페이스(BlazeFace), 브래즈팜(BlazePalm) 및 코코(Coco)에서 사용되는 33개 관절 좌표로 표현된다.
또한 전술한 어느 하나의 양태에서, 상기 스쿼트 카운팅 어플리케이션은 무릎 각도의 변화로 스쿼트 동작 단계 및 반복 횟수를 파악하도록 구성되고, 상기 33개의 관절 좌표 중 무릎 각도를 계산하기 위해 우측 힙(right hip), 우측 무릎(right knee), 우측 발목(right ankle), 좌측 힙(left hip), 좌측 무릎(left knee) 및 좌측 발목(left ankle)의 관절 좌표를 이용한다.
또한 전술한 어느 하나의 양태에서, 스쿼트 카운팅 어플리케이션은 왼쪽 무릎 각도와 오른쪽 무릎의 평균 각도를 최종 무릎 각도로 이용한다.
또한 전술한 어느 하나의 양태에서, 비실시간 처리 모듈은 영상내 무릎의 흔들림으로 인해 무릎 각도의 시퀸스에 존재하는 불규칙성과 노이즈를 제거하기 위해 푸리에 변환 기법을 통해 시계열 데이터 보정을 수행하도록 구성된다.
또한 전술한 어느 하나의 양태에서, 상기 실시간 처리 모듈은 무릎 최대 각도를 설정하여 서 있을 때 무릎 각도로부터 상대적으로 얼마나 하강했는지 파악한 후 입력된 영상의 프레임별 무릎 굴곡 각도를 측정하여 스쿼트 자세를 인식하고 반복횟수를 측정하도록 구성된다.
또한 전술한 어느 하나의 양태에서, 실시간 처리 모듈은 현재 프레임 i의 각도(anglei)가 해당 반복 주기의 최대 무릎 각도(anglemax)와 임계값 만큼의 차이보다 작아질 때 스쿼트를 시작한다고 판별하여, 스쿼트 진행 단계를 다운(DOWN) 단계로 진행하여 엉덩이가 하강하는 다운 단계 동안 해당 주기의 anglemax로부터 anglei의 차이를 통해 무릎을 굽히는 정도인 무릎 굴곡 각도를 계산하고, 계산한 무릎 굴곡 각도가 스쿼트 기준이 되는 각도 범위의 GLB보다 크거나 같다면, 사용자가 선택한 스쿼트의 최소 깊이까지 내려갔다고 간주하여 진행 단계를 업(UP) 단계로 전환하고, 반대로 엉덩이가 상승하는 업(UP) 단계 동안 anglei 가 해당 주기의 최대 각도 근사 범위인 내에 포함되어 있으면 진행 단계를 다시 DOWN 으로 전환하고, 최종적으로 DOWN과 UP 단계를 파악하여 스쿼트 반복횟수를 계산하도록 구성된다.
본 발명의 양태에 따르면 스쿼트 반복 운동 횟수 측정 및 자세 교정의 한계점을 비전기반의 실시간 또는 비실시간 스쿼트 카운팅 시스템을 제공함으로써 해결할 수 있다. 또한 본 발명에 따르면 카메라 각도에 상관없이 정확한 카운팅 성능을 가지며, 기본적으로 실시간 처리가 가능하지만 하드웨어 스펙이 부족할 경우 비실시간 카운팅으로 전환할수 있다는 이점이 얻어진다. 또한 카메라를 이용한 방식이므로 몸에 센서를 부착하지 않아도 되며 이러한 이점으로 하드웨어적인 비용이 발생하지 않는 효과가 얻어지룻 있다.
도 1은 본 발명의 실시예에 따른 비전처리를 활용한 스쿼트 카운팅 시스템의 일례를 나타내는 도면;
도 2는 본 발명의 스쿼트 카운팅 시스템에서의 실시간 처리 및 비실시간 처리를 설명하기 위한 설명도;
도 3은 스쿼트를 반복 수행하는 각 동작 단계를 전환하는 과정을 나타내는 알고리즘을 설명하는 도면;
도 4는 스쿼트 영상(Squat_video)에 대해서 사용자가 선택한 스쿼트 종류(Squat_type)를 기준으로 반복횟수를 측정하기 위한 수도코드(Pseudo code)를 나타내는 도면;
도 5는 본 발명의 스쿼트 카운팅 시스템에서의 비실시간 처리의 흐름을 나타내는 도면;
도 6은 본 발명의 스쿼트 카운팅 시스템에서의 실시간 처리의 흐름을 나타내는 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되는 실시예를 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이다.
본 명세서에서 본 실시예는 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 그리고 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 따라서, 몇몇 실시예들에서, 잘 알려진 구성 요소, 잘 알려진 동작 및 잘 알려진 기술들은 본 발명이 모호하게 해석되는 것을 피하기 위하여 구체적으로 설명되지 않는다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 그리고, 본 명세서에서 사용된(언급된) 용어들은 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, '포함(또는, 구비)한다'로 언급된 구성 요소 및 동작은 하나 이상의 다른 구성요소 및 동작의 존재 또는 추가를 배제하지 않는다. 다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 정의되어 있지 않은 한 이상적으로 또는 과도하게 해석되지 않는다. 이하 첨부된 도면을 참조하여 본 발명의 실시예에 대해 설명하도록 한다.
도 1은 본 발명의 실시예에 따른 스쿼트 카운팅 시스템 또는 운동 카운팅 시스템의 일례를 나타내는 도면이다. 도 1에 도시된 바와 같이, 스쿼트 카운팅 시스템은 영상 촬영 장치(11); 사용자 단말 장치(12); 및 서비스 제공 서버(30)를 포함하여 구성되고, 영상 촬영 장치(11) 및 사용자 단말 장치(12)는 하나의 장치일 수도 있으며 별개의 장치로 각각 구성될 수도 있다.
본 명세서에서 사용자 단말이라고만 정의하는 경우에는 편의상 단수의 의미로 사용되지만 이는 서비스 제공 서버(30)에서 지원하는 비전기반 스쿼트 카운팅 서비스를 위하여 복수의 단말들이 이용될 수 있는 바 그 경우도 포함하는 의미로 이해될 수 있으며, 그러한 단말은 본 발명에 따른 비전기반 스쿼트 카운팅 어플리케이션 또는 그 이용과 관련된 API(Application Program Interface) 또는 임베디드 소프트웨어(Embaded Software)를 포함할 수 있다.
즉, 이하에서 설명되는 본 발명에 따른 비전기반 스쿼트 카운팅 서비스는, 사용자 단말에 미리 설치된 API 또는 임베디드 소프트웨어를 포함하는 어플리케이션을 통해 이루어질 수도 있다. 사용자 단말 장치(12)의 하드웨어 스펙이 충분하지 않은 경우에는 사용자 단말에 미리 설치된 임베디드 소프트웨어를 통해 비실시간으로 수행되지만 사용자 단말 장치(12)의 하드웨어 스펙이 충분한 경우에는 실시간으로 스쿼트 동작이 카운팅될 수 있다.
이하의 설명에서 사용자 단말 장치(12)에 설치된 비전기반 스쿼트 카운팅 어플리케이션을 통해 스쿼트 카운팅이 영상 입력과 동시에 실시되는 경우 이하에서는 실시간 스쿼트 카운팅 서비스로 언급하고, 이를 대신하여 촬영 및 저장된 전체 영상에 대해 분석이 수행되는 경우 비실시간 스쿼트 카운팅 서비스라고 언급한다.
전술한 바와 같이 사용자 단말 장치(12)로 이용되는 단말은 1개 또는 복수일 수 있다. 이러한 본 발명에 따른 사용자 단말 장치(12)은 자체적으로 상기 서버(30)로 데이터 또는 데이터를 포함한 신호를 송수신할 수 있으며, 상기 기설치된 스쿼트 카운팅 어플리케이션을 통하여 상기 서버(30)로 데이터 또는 신호를 전송하거나 수신할 수 있다.
이러한 상기 단말로는, 단말 장치, 터미널(Terminal), MS(Mobile Station), MSS(Mobile SubscriberStation), SS(Subscriber Station), AMS(Advanced Mobile Station), WT(Wireless terminal), MTC(MachineType Communication) 장치, M2M(Machine-to-Machine) 장치, D2D 장치(Device-to-Device), 스마트 폰, 스마트 패드와 같이 어플리케이션 설치가능한 단말 장치 중 적어도 하나이거나, 웹브라워저를 통해 서비스를 제공할 때 노트북, 랩탑, 데스크 탑 컴퓨터와 같이 웹브라우저를 탑재한 단말이 이용될 수도 있다.
본 발명에서의 단말은 상술한 예시들 이외에도 현재 개발되어 상용화되었거나 또는 향후 개발될 데이터 또는 신호 전송이 가능한 모든 장치를 포함하는 개념으로 해석되어야 한다.
또한, 상기 서비스 시스템 내 사용자 단말들은 반드시 동일한 타입, 종류, 장치 등이거나 동일한 통신 네트워크를 사용하지 않아도 상관없다. 즉, 상기 사용자 단말은 각자의 통신 네트워크를 통하여 상기 서비스 제공 서버(30)와 데이터 커뮤니케이션을 수행할 수 있는 장치이거나, 전용 장치(dedicated apparatus)가 제공될 수도 있다.
다음으로, 서비스 제공 서버(30)는, 유/무선 통신 네트워크를 통하여 적어도 하나 이상의 다른 장치와 데이터 커뮤니케이션을 수행할 수 있는 개체(entity)로, 본 발명에서 서비스 제공 서버(30)는 복수 개일 수 있으며 필요시 사용자 단말로부터 전달된 스쿼트 결과에 기반하여 사용자에게 스쿼트 운동 보고 서비스를 제공하기 위한 프로그램이 설치되어 있을 수 있다.
상기 서비스 제공 서버(30)는, 클라우드(Cloud) 서버, IMS(IP Multimedia Subsystem) 서버, 텔레포니 어플리케이션(Telephony Application) 서버, IM(Instant Messaging) 서버, MGCF(Media Gateway Control Function) 서버, MSG(Messaging Gateway) 서버, CSCF(Call Session Control Function) 서버 등 중 적어도 하나가 선택적으로 이용될 수 있으며, PC(Personal Computer), 노트북 컴퓨터, 태블릿 PC(Tablet Personal Computer) 등 데이터 커뮤니케이션이 가능한 개체를 지칭하는 장치로 구현될 수도 있다.
한편, 유/무선 통신 네트워크는 상기 사용자 단말과 상기 서비스 제공 서버(30) 간의 테스트, 디지털 이미지, 디지털 영상, 디지털 음성 정보 등 다양한 포맷의 데이터 커뮤니케이션을 지원하는 데이터 통신망을 의미하며, 그 종류가 특별히 제한되지 않는다. 예를 들어, 인터넷 프로토콜을 통하여 대용량 데이터 커뮤니케이션을 지원하는 아이피(IP: Internet Protocol)망 또는 서로 다른 IP 망을 통합한 올 아이피(All IP) 망일 수 있다.
또한, 상기 유/무선 통신 네트워크는 유선망, Wibro(Wireless Broadband)망, WCDMA를 포함하는 이동 통신망, HSDPA(High Speed Downlink Packet Access)망 및 LTE(Long Term Evolution) 망을 포함하는 이동 통신망, LTE advanced(LTE-A)를 포함하는 이동 통신망, 위성 통신망 및 와이파이(Wi-Fi)망 중 하나이거나 또는 이들 중 적어도 하나 이상의 결합에 의하여 형성될 수도 있다.
도 2는 전술한 바와 같은 시스템에서의 기본 동작을 나타내는 도면이다. 이와 같은 시스템에서 사용자는 영상 촬영 장치를 통해 스쿼트를 수행하는 모습을 촬영한 후 촬영된 영상은 사용자 단말에 설치된 스쿼트 카운팅 어플리케이션에서 분석을 수행하게 된다.
이때 사용자 단말의 하드웨어 사양이 스쿼트 카운팅 어플리케이션에서의 스쿼트 모션 분석을 실시간으로 수행하기 어려운 경우 스쿼트 카운팅 어플리케이션은 비실시간으로 사용자의 스쿼트 횟수를 카운팅하는 반면 사용자 단말의 하드웨어 사양이 스쿼트 카운팅 어플리케이션에서의 모션 분석을 수행하기 충분한 경우 사용자의 영상이 실시간으로 입력 및 분석되면서 스쿼트 횟수를 카운팅 하게 된다.
영상 촬영 수단(11)은 스쿼트 반복 횟수 측정 및 자세 교정을 위해서 웹캠 또는 사용자 단말에 제공된 카메라와 같은 장비를 이용하여 사용자의 스쿼드 영상을 찍으며, 촬영된 영상 정보는 사용자 단말(12)의 어플리케이션에서 호출된다.
비실실간 처리의 경우 사용자는 스쿼트 촬영 장치를 통해 촬영된 영상에 대한 전체 프레임을 시스템에 전달한다. 이때, 실시간 카운팅 시스템은 실시간으로 영상을 한프레임씩 스쿼트 카운팅 어플리케이션에 전달하며, 실시간 카운팅 시스템은 모든 동작에 대한 영상을 촬영한 후에 전체 프레임을 시스템에 전달한다.
즉 도 2에 도시된 바와 같이 스쿼트 카운티 어플리케이션(20)은 영상을 실시간으로 처리하는 경우 실시간 처리 모듈(21)을 통해 영상을 분석하고, 영상을 비실시간으로 처리하는 경우 비실시간 처리 모듈(21)에서 영상을 분석하게 된다.
본 발명에서읫 스쿼트 카운팅 어플리케이션은 스쿼트 반복 횟수 측정 및 자세 교정을 위해 사람의 관절 좌표를 활용한다. 따라서 입력받은 영상의 각 프레임에 등장하는 사용자의 관절 좌표를 미디어파이프(MediaPipe)로 추출한다. 공지된 바와 같이 미디어파이프는 구글에서 주로 인체를 대상으로하는 비전인식기능들을 AI모델 개발과 기계학습까지 마친 상태로 제공하는 서비스이다. 다양한 프로그램언어에서 사용하기 편하게 라이브러리 형태로 모듈화되어 제공되며 사용방법 또한 풍부하게 제공되기 때문에 몇가지 간단한 단계로 미디어파이프에서 제공하는 AI기능을 활용한 응용 프로그램개발이 가능하다.
사용자의 관절 좌표를 추출하기 위해 미디어파이프의 인체 자세 검출 및 트래킹 솔루션(Human Pose Detection and Tracking Solution)을 이용하였다. 본 발명의 실시예에서 추출한 관절 좌표는 BlazeFace, BlazePalm 및 Coco에서 사용되는 33개 관절 좌표로 나타낸다. 특히, 본 발명에서는 스쿼트 반복횟수 측정 및 자세 교정을 위해서 활용되는 관절 좌표인 골반, 무릎 및 발 뒤꿈치를 추출하여, 이를 데이터로 구성하였다.
이하에서는 본 발명의 실시예에서 추출된 관절 좌표를 이용하여, 스쿼트 자세를 인식하기 위한 무릎 각도 계산 방법을 설명한다. 본 발명의 카운팅 모듈(실시간 또는 비실시간 처리 모듈)은 무릎 각도의 변화로 스쿼트 동작 단계와 반복횟수를 파악한다. 33개의 관절 좌표 중 무릎 각도를 계산하기 위해, 우측 힙(right hip), 우측 무릎(right knee), 우측 발목(right ankle), 좌측 힙(left hip), 좌측 무릎(left knee) 및 좌측 발목(left ankle)의 관절 좌표들을 사용한다. 세 좌표 간의 각도를 구하기 위해서 식 (1)과 식 (2)를 통해 무릎에서 엉덩이로 향하는 벡터(v1)와 무릎에서 발목으로 향하는 벡터(v2)를 구한다. 그리고 두 벡터 사이의 각도를 계산하기 위해 식 (3)과 같이 벡터의 내적을 이용한다.
한편 카메라 촬영 각도에 따라 왼쪽과 오른쪽의 무릎 각도가 다를 수 있다. 예를 들어, 사람을 기준으로 오른쪽 대각선 방향에 있는 카메라로 촬영한 영상은 사람의 왼쪽 무릎 각도가 실제 각도보다 작게 측정되고 오른쪽 무릎 각도가 실제 각도보다 크게 측정된다. 따라서 본 발명의 처리 모듈은 식 (4)와 같이 왼쪽과 오른쪽 각도의 평균을 최종 무릎 각도로 사용한다.
1-1. 비실시간 기법을 적용한 카운팅 알고리즘
도 5는 비실시간 기법을 이용한 카운팅 동작 알고리즘을 나타내느 도면이다. 본 발명은 전술한 바와 같이 계산된 무릎 각도 시퀸스를 비실시간 기법을 적용한 카운팅 알고리즘을 통해 스쿼트 반복횟수를 측정한다. 스쿼트 동작을 하면서 서 있는 상태에서 엉덩이가 내려갈 때, 무릎의 미세한 흔들림으로 인해 무릎 각도의 시퀸스는 불규칙성과 노이즈가 존재한다. 따라서 이러한 문제를 해결하기 위해 1-1-1절에서와 같은 푸리에 변환 기법을 통해 시계열 데이터 보정을 수행한다. 최종적으로 1-1-2 절에서 각 스쿼트 회차마다 자세의 일관성을 유지하기 위해 스케일링 작업을 수행하며, 동작 횟수를 카운팅하는 기준인 민감도를 설정해 스쿼트 반복횟수를 카운팅한다.
1-1-1. 푸리에 변환을 통한 시계열 데이터 보정
무릎의 미세한 흔들림으로 인해 발생하는 노이즈가 시계열 데이터에 포함되어 있으면 미리 설정한 민감도를 기준으로 동작 횟수를 카운팅할 때, 기준선의 안과 밖을 반복하여 드나들 수 있다. 이러한 현상으로 도출된 스쿼트 반복횟수는 실제 값에 대해서 큰 오차가 발생한다. 따라서 본 발명에서는 노이즈가 포함된 데이터를 부드럽고 일관된 패턴으로 변환하기 위해 푸리에 변환 기법을 통해 데이터 평활화를 수행한다.
푸리에 변환(Fourier Transfrom, FT)은 입력된 신호를 다양한 주파수를 갖는 주기함수들의 합으로 분해하여 표현하는 기법이다. FT는 입력 신호를 주파수 영역에서의 사인(sin) 및 코사인(cos) 성분들의 합으로 분해한다. 입력 신호를 주파수 성분으로 분해하여 표현함으로써 신호의 주파수 특성을 파악할 수 있다. 또한, 각 주기함수 성분은 고유의 주파수와 강도를 가지기 때문에 이들을 모두 합치면 원본 입력 신호를 재구성할 수 있다. 따라서 FT를 활용하여 신호의 주파수 성분이 높은 신호들을 추출하거나 필요한 주파수 대역을 강조 및 제거하는 등의 과정을 통해 노이즈를 제거하고 데이터 평활화를 수행할 수 있다.
FT은 입력된 신호를 주파수 성분으로 분해하여 표현하기 위해 식 (5)를 이용하며, 퓨리에 역변환(Inverse Fourier Transform, IFT)은 주파수 성분을 가진 신호를 다시 변환하여 원래의 신호를 복원하기 위해 식 (6)을 이용한다. j는 허수단위, f(x)는 원본 입력 신호, 는 주파수가 u인 주기함수 성분 그리고 F(u)는 해당 주기함수 성분의 계수(강도)를 의미한다. 이때, 오일러 공식(Euler’s formula)을 활용하면 복소지수함수를 삼각함수로 변환할 수 있으며, 이는 식 (7)을 나타낸다. 오일러 공식을 활용했을 때, 식 (6)의 는 실수부분이 , 허수부분이 인 주기함수이므로, 는 주파수가 u인 정현파의 복소지수함수임을 알 수 있다. 따라서, 식 (5)는 원본 입력 신호 f(x)를 주기함수 성분으로 분해했을 때의 해당 주기함수 성분의 강도 F(u)가 주어진다는 것을 의미하며, 식 (6)은 입력 신호 f(x)를 모든 가능한 주파수(u)의 주기함수()들의 결합을 의미한다.
본 발명의 실시예에서 무릎 각도 시퀀스 데이터에 퓨리에 변환 기법을 적용해 주기 성분의 강도가 높은 계수부터 N개까지 추출한다. 그리고 푸리에 역변환 기법을 적용해 추출한 신호 강도들을 결합한다. 결합된 데이터들은 정현파의 결합함수이므로 노이즈가 제거된 신호 데이터를 얻을 수 있다. 최종적으로 스쿼트의 앉았다 일어나는 동작을 수행할 때, 미세한 흔들림에 의해 발생하는 노이즈를 제거하여 데이터를 보정한다.
1-1-2. 스쿼트 반복횟수 계산 알고리즘
1-1-1 절에서 보정한 무릎 각도 시퀸스를 스쿼트 반복 횟수 계산 알고리즘에 적용하기에 앞서, 스쿼트를 시작하고 회차마다 스쿼트 깊이의 일관성을 유지하고 영상을 촬영하는 각도에 제약을 받지 않기 위해 데이터 스케일링 작업을 수행한다. 데이터 스케일링 작업 후, 동작 횟수를 카운팅하는 기준인 민감도(sensitivity)를 미리 설정한다. 본 발명의 실시예에서는 민감도를 기준으로 데이터가 하강하였다가 상승했을 때, 스쿼트 동작을 1회 수행하였다고 판단한다. 따라서 모든 동작 회차 중에서 상대적으로 덜 내려가 민감도 기준 내에 포함되지 않을 때, 해당 회차를 카운팅에서 제외한다. 위와 같은 알고리즘을 전체 무릎 각도 시퀸스에 적용해 스쿼트 반복 횟수를 카운팅한다.
1-2. 실시간 기법을 적용한 카운팅 알고리즘
도 6은 실시간 처리 알고리즘을 나타내는 도면이다. 전술한 바와 같이, 계산된 무릎 각도 시퀸스를 실시간 기법을 적용한 카운팅 알고리즘을 통해 스쿼트 반복횟수를 측정한다. 사람마다 다른 무릎 각도의 범위뿐만 아니라 영상의 각도별로 측정되는 무릎 각도의 범위가 다르다. 이러한 문제를 해결하기 위해 1-2-1 절에서 무릎 최대 각도를 설정하여 서 있을 때 무릎 각도로부터 상대적으로 얼마나 하강했는지 파악한다. 이후, 입력된 영상의 프레임별 무릎 굴곡 각도를 측정하여 스쿼트 자세를 인식하고 반복횟수를 측정한다.
1-2-1. 최대 무릎 각도 설정
전술한 바와 같이, 계산한 무릎 각도는 다각도 영상 혹은 사람마다 무릎각도의 차이가 있다. 따라서 이러한 문제점을 해결하기 위해 무릎의 최대 각도를 설정할 필요성이 있다. 이하는 무릎의 최대 각도를 설정하는 과정을 설명한다.
스쿼트 영상의 특성상 서 있는 상태일 때, 무릎 각도가 최대이기 때문에 제안 시스템은 스쿼트 반복 주기마다 최대 무릎 각도를 통해 서 있는 자세임을 파악한다. 같은 스쿼트 동작임에도 카메라 각도별로 촬영되는 이미지가 다르므로, 이미지에서 추출된 관절 좌표로 계산한 무릎 각도 또한 다르다. 그리고 실제로 반듯하게 서 있는 상태의 무릎 각도는 항상 180°이지만, 인간 자세 추정(Human Pose Estimation) 기술로 추출한 관절 좌표는 신체의 입체적인 면을 표현할 수 없으므로, 관절 좌표로 계산한 무릎 각도는 항상 180°보다 작다. 그러므로 스쿼트 정의에 명시된 실제 무릎 굴곡 각도의 범위를 스쿼트 자세에 대한 판별 기준으로 적용할 수 없다. 따라서 본 발명에서는 스쿼트 반복 주기마다 서 있는 상태임을 파악하고, 서 있는 상태에서 무릎이 얼마나 굽혀지는 지에 대한 정도를 통해서 반복횟수를 측정한다.
본 발명에서는 반복 주기마다 최대 각도를 업데이트하는 알고리즘을 제안한다. 설명하기에 앞서, 제안하는 스쿼트 카운팅 시스템에는 세 가지 동작 단계가 존재한다. 이 세 가지 동작 단계는 스타트(START) 단계(스쿼트를 시작하기 이전 단계), 다운(DOWN) 단계(서있는 상태에서 엉덩이가 내려가는 단계) 및 업(UP) 단계(내려간 상태에서 엉덩이가 올라오는 단계)으로 구성된다. 각 단계는 정해진 변환 조건에 의해 전환되며 이 단계를 구분하기 위해, 무릎 굴곡 각도 범위의 하한(Greatest Lower Bound, GLB), 상한(Least Upper Bound, LUB) 및 미리 설정한 임계값(threshold)을 이용한다.
스타트 단계는 영상에서 스쿼트를 시작하기 이전 프레임들에 대해서 진행되기 때문에, 스쿼트 하강 동작을 시작하였다면 나머지 모든 프레임은 다운 혹은 업 단계이다. 그리고 스타트 단계는 스쿼트를 시작하기 전 단계이므로, 해당 주기의 최대 각도가 없다. 따라서 스타트 단계 동안 프레임마다 계산되는 무릎 각도에 대해서 가장 큰 값을 최대 각도로 업데이트한다. 그리고 최대 각도와 현재 프레임의 각도 차이가 보다 크다면, 스쿼트 하강 단계인 다운 단계로 바뀐다. 다운에서 업으로 순환되는 스쿼트 동작 단계 전환 알고리즘은 1-2-2 절에서 자세히 설명한다.
본 발명의 실시예에 따른 시스템은 프레임 간의 신체 각도를 통해 스쿼트 동작 단계를 인식하고 스쿼트 횟수를 측정하기 때문에, 이전 프레임과의 각도 변화에 대해서 민감하다. 그러므로 최대 각도를 고정하지 않고 스쿼트 주기 마다 최대 각도의 근사범위(해당 주기의 최대 각도)내에 포함되었다면 해당 프레임의 각도를 다음 주기의 각도 리스트에 추가한다. 이때, 최근 프레임의 각도를 반영하기 위해서, 각도 리스트는 선입선출(First In First Out, FIFO)방식으로 최근 10개의 프레임에 대한 각도들로 구성된다. 최종적으로 각도 리스트 중에서 가장 큰 값을 다음 주기의 최대 각도로 업데이트한다.
본 발명의 실시예에 따른 시스템은 이미지를 통해서 스쿼트 자세를 인식하기 때문에 최대 각도 업데이트 과정 중에 이미지에 대한 노이즈 데이터가 발생할 수 있다. 이러한 노이즈가 발생하면 관절 좌표가 잘못 추정되기 때문에 계산된 각도는 이상적으로 발산하는 값이 발생한다. 하지만 본 발명의 실시예에 따른 시스템은 최대 무릎 각도를 설정할 때, 각도의 값이 이상적으로 크거나 작으면 해당 주기의 최대 각도 근사범위 내에 들지 못하기 때문에, 해당 값은 무시되어 이러한 노이즈들을 방지할 수 있다. 그리고 최대 각도 리스트를 생성할 때 신체가 흔들려 임계값의 근사 범위 안과 밖을 반복하여 드나들 수 있다. 따라서 최대 각도를 업데이트하는 시간을 임의로 지연시켜, 해당 주기의 최대 각도 근사범위 내에 속하는 마지막 프레임으로부터 특정 개수만큼의 프레임(updateframe)이 지난 후에 다음 주기의 최대 각도를 업데이트한다.
1-2-2 스쿼트 반복 횟수 계산 알고리즘
스쿼트 카운팅 시스템은 스쿼트 반복 주기마다 최대 무릎 각도를 계산해 서 있는 자세임을 파악하고, 최대 무릎 각도로부터 무릎 굴곡 각도를 계산해 스쿼트 진행 단계와 반복 여부를 파악한다. 이전에 언급한 것처럼, 본 발명은 스쿼트의 반복횟수를 측정하기 위해 먼저 스쿼트 동작 단계 전환 알고리즘으로 스쿼트의 진행 단계를 파악한다. 각 동작의 단계를 파악하기 위해 발명의 실시예는 사전에 정의된 스쿼트에 대한 무릎 굴곡 각도 범위를 제안 시스템의 하한 값과 상한 값으로 설정하였다. 표 1은 하프 스쿼트에 대한 무릎 굴곡 각도 범위의 하한과 상한이다.
[표 1] 스쿼트 무릎 굴곡 각도의 하한 및 상한
스쿼트 동작 단계 전환 알고리즘은 스쿼트 동작 단계를 파악하고 해당 단계를 다음 단계로 전환시키기 위한 알고리즘으로 스쿼트 반복횟수를 측정하기 위해 필요하다. 도 3은 스쿼트를 반복 수행하는 각 동작 단계를 전환하는 과정을 나타내는 알고리즘이다.
영상을 처음 시작할 때, 초기 단계는 스타트(START)이다. 현재 프레임 i의 각도(anglei)가 해당 반복 주기의 최대 무릎 각도(anglemax)와 임계값 만큼의 차이보다 작아질 때, 스쿼트를 시작한다고 판별하며, 스쿼트 진행 단계는 다운(DOWN)으로 넘어간다. 다음, 엉덩이가 하강하는 다운 단계 동안 해당 주기의 anglemax로부터 anglei의 차이를 통해 무릎을 굽히는 정도인 무릎 굴곡 각도를 계산한다.
따라서 계산한 무릎 굴곡 각도가 스쿼트 기준이 되는 각도 범위의 GLB보다 크거나 같다면, 사용자가 선택한 스쿼트의 최소 깊이까지 내려갔다고 간주하여 진행 단계를 업(UP)으로 전환한다. 반대로 엉덩이가 상승하는 업(UP) 단계 동안 anglei 가 해당 주기의 최대 각도 근사 범위인 내에 포함되어 있으면 진행 단계를 다시 DOWN 으로 전환한다. 최종적으로 DOWN과 UP 단계를 파악하여 스쿼트 반복횟수를 계산한다.
도 4는 스쿼트 영상(Squat_video)에 대해서 사용자가 선택한 스쿼트 종류(Squat_type)를 기준으로 반복횟수를 측정하기 위한 수도코드(Pseudo code)를 표현한 것이다. 영상의 프레임 입력이 시작되면 시스템은 스쿼트 동작 단계를 'START'로 초기화하며(line 1), 1-2-1에서 전술한 최대 무릎 각도 설정 알고리즘을 통해 anglemax를 계산한다(line 2).
본 발명에서 제안하는 카운팅 알고리즘에 설정하는 파라미터는 무릎 굴곡 각도 범위 초과를 허용하는 프레임 수(permitframe)와 최대 각도의 근사 범위를 설정하기 위해 사용되는 오차 값이다(line 3-4). 또한, 스쿼트의 무릎 굴곡 각도 범위를 미리 설정한다(line 5-6). 영상이 시작되면 프레임 단위로 무릎 각도를 계산하고 카운팅 알고리즘이 반복된다(line 7-8). 카운팅 알고리즘은 먼저 스쿼트를 시작하기 전 ‘스타트T’ 단계일 때, 서 있는 상태의 각도로부터 일정 거리만큼 내려간 상태이면 ‘다운’으로 단계를 전환시킨다(line 9-11). 그리고 엉덩이를 하강시키는 ‘다운’ 단계일 때, 스쿼트의 무릎 굴곡 각도 범위의 GLB보다 크거나 같다면 ‘업’으로 스쿼트 동작을 전환시킨다(line 12-14).
스쿼트의 반복횟수를 측정하기 위해서, 무릎 굴곡 각도는 각 스쿼트의 무릎 굴곡 각도 범위 내에 있어야 한다. 하지만 올바른 스쿼트의 깊이임에도 몇몇 프레임들의 무릎 굴곡 각도 범위 초과로 인해 스쿼트 자세가 잘못 판단될 수 있다. 따라서 현재 프레임의 무릎 굴곡 각도가 스쿼트 기준의 LUB을 초과할 때, 초과 프레임 수(excessframe)를 계산한다(line 15-17). 최종적으로 현재 스쿼트 동작이 업 단계이고 현재 프레임의 무릎 각도가 해당 주기의 최대 각도 근사범위에 포함되어 있을 때, 다시 ‘다운’ 단계로 전환시키며 동시에 같은 주기의 excessframe가 사전에 설정한 permitframe보다 작거나 같다면 반복횟수를 증가시킨다(line 18-22).
본 발명에서는 앞서 설명한 스쿼트 카운팅 시스템에서 사용자에게 결과를 보여주도록 구성된다. 본 발명에 따른 스쿼트 카운팅 시스템은 스쿼트 횟수와 함께 사용자가 선택한 스쿼트의 무릎 굴곡 각도 범위를 벗어나면 어플리케이션을 통해 사용자에게 경고 메시지를 반환한다. 사용자가 선택한 스쿼트의 무릎 굴곡 각도 범위보다 부족하거나 과하게 내려간다면 스쿼트 효과가 떨어지거나 부상의 위험이 발생할 수 있다. 따라서 사용자는 선택한 스쿼트에 대해 적절한 깊이인지 파악하며 동작을 수행할 필요가 있다. 이를 위해, 사용자의 무릎 각도가 스쿼트 허용 범위의 LUB를 넘어가는 프레임들은 사용자가 선택한 스쿼트에 대해서 더 깊게 내려가는 잘못된 자세이므로, 제안 시스템은 카운팅한 반복횟수와 경고를 해당 프레임 이미지에 출력하여 사용자 단말의 디스플레이에 표시하도록 구성된다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively)처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속하는 것으로 해석되어야만 한다.
11: 영상 촬영 장치 12: 사용자 단말
30: 서비스 제공 서버 20: 스쿼트 카운팅 앱
21: 실시간 처리 모듈 22: 비실시간 처리 모듈

Claims (7)

  1. 사용자의 스쿼트 동작을 촬영하기 위한 영상 촬영 수단; 및
    상기 영상 촬영 수단으로부터 입력되는 사용자의 스쿼트 동작 영상으로부터 스쿼트 횟수를 카운팅하기 위한 스쿼트 카운팅 어플리케이션이 제공된 사용자 단말을 포함하는 비전 기반의 스쿼트 카운팅 시스템에 있어서,
    상기 스쿼트 카운팅 어플리케이션은,
    상기 영상 촬영 수단으로부터 촬영되는 영상을 하나의 프레임씩 전송받아 스쿼트 횟수를 카운팅하는 실시간 처리 모듈과;
    상기 영상 촬영 수단으로부터 촬영된 영상의 전체 프레임을 전송받아 스쿼트 횟수를 카운팅하는 비실시간 처리 모듈을 포함하되,
    상기 스쿼트 카운팅 어플리케이션은 입력받은 영상의 프레임에 표출되는 사용자의 관절 좌표를 메디아파이프(MediaPipe)의 인간 자세 검출 및 트래킹 솔루션(Human Pose Detection and Tracking)을 이용하여 추출하고, 추출된 관절 좌표는 브래즈페이스(BlazeFace), 브래즈팜(BlazePalm) 및 코코(Coco)에서 사용되는 33개 관절 좌표로 표현되는 한편,
    상기 스쿼트 카운팅 어플리케이션은 무릎 각도의 변화로 스쿼트 동작 단계 및 반복 횟수를 파악하도록 구성되고, 상기 33개의 관절 좌표 중 무릎 각도를 계산하기 위해 우측 힙(right hip), 우측 무릎(right knee), 우측 발목(right ankle), 좌측 힙(left hip), 좌측 무릎(left knee) 및 좌측 발목(left ankle)의 관절 좌표를 이용하고,
    상기 비실시간 처리 모듈은 영상내 무릎의 흔들림으로 인해 무릎 각도의 시퀸스에 존재하는 불규칙성과 노이즈를 제거하기 위해 푸리에 변환 기법을 통해 시계열 데이터 보정을 수행하는 것을 특징으로 하는
    비전 기반의 스쿼트 카운팅 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 실시간 처리 모듈은 무릎 최대 각도를 설정하여 서 있을 때 무릎 각도로부터 상대적으로 얼마나 하강했는지 파악한 후 입력된 영상의 프레임별 무릎 굴곡 각도를 측정하여 스쿼트 자세를 인식하고 반복횟수를 측정하도록 구성된 것을 특징으로 하는
    비전 기반의 스쿼트 카운팅 시스템.
  7. 제6항에 있어서,
    상기 실시간 처리 모듈은
    현재 프레임 i의 각도(anglei)가 해당 반복 주기의 최대 무릎 각도(anglemax)와 임계값 만큼의 차이보다 작아질 때 스쿼트를 시작한다고 판별하여, 스쿼트 진행 단계를 다운(DOWN) 단계로 진행하여 엉덩이가 하강하는 다운 단계 동안 해당 주기의 anglemax로부터 anglei의 차이를 통해 무릎을 굽히는 정도인 무릎 굴곡 각도를 계산하고, 계산한 무릎 굴곡 각도가 스쿼트 기준이 되는 각도 범위의 GLB보다 크거나 같다면, 사용자가 선택한 스쿼트의 최소 깊이까지 내려갔다고 간주하여 진행 단계를 업(UP) 단계로 전환하고, 반대로 엉덩이가 상승하는 업(UP) 단계 동안 anglei 가 해당 주기의 최대 각도 근사 범위인 내에 포함되어 있으면 진행 단계를 다시 DOWN 으로 전환하고, 최종적으로 DOWN과 UP 단계를 파악하여 스쿼트 반복횟수를 계산하도록 구성된 것을 특징으로 하는
    비전 기반의 스쿼트 카운팅 시스템.
KR1020230100371A 2023-08-01 2023-08-01 비전처리를 활용한 범용 반복 동작 카운팅 시스템 KR102608196B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230100371A KR102608196B1 (ko) 2023-08-01 2023-08-01 비전처리를 활용한 범용 반복 동작 카운팅 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230100371A KR102608196B1 (ko) 2023-08-01 2023-08-01 비전처리를 활용한 범용 반복 동작 카운팅 시스템

Publications (1)

Publication Number Publication Date
KR102608196B1 true KR102608196B1 (ko) 2023-12-01

Family

ID=89124279

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230100371A KR102608196B1 (ko) 2023-08-01 2023-08-01 비전처리를 활용한 범용 반복 동작 카운팅 시스템

Country Status (1)

Country Link
KR (1) KR102608196B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180060541A (ko) 2016-11-29 2018-06-07 주식회사 와이즈웰니스 모바일 기기를 이용한 운동량 측정 장치 및 방법
JP2020048827A (ja) * 2018-09-26 2020-04-02 Kddi株式会社 情報処理装置、サポート方法、及びサポートシステム
KR20230080938A (ko) * 2021-11-30 2023-06-07 광운대학교 산학협력단 컨볼루션 블록 어텐션 모듈을 이용한 동작 인식 및 분류 방법 및 장치
KR20230087352A (ko) * 2021-12-09 2023-06-16 주식회사 에이치엔에이치 운동 상태 감지 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180060541A (ko) 2016-11-29 2018-06-07 주식회사 와이즈웰니스 모바일 기기를 이용한 운동량 측정 장치 및 방법
JP2020048827A (ja) * 2018-09-26 2020-04-02 Kddi株式会社 情報処理装置、サポート方法、及びサポートシステム
KR20230080938A (ko) * 2021-11-30 2023-06-07 광운대학교 산학협력단 컨볼루션 블록 어텐션 모듈을 이용한 동작 인식 및 분류 방법 및 장치
KR20230087352A (ko) * 2021-12-09 2023-06-16 주식회사 에이치엔에이치 운동 상태 감지 장치 및 방법

Similar Documents

Publication Publication Date Title
US11282298B2 (en) Monitoring the performance of physical exercises
CN110941990B (zh) 基于骨骼关键点进行人体动作评估的方法和装置
CN107551521B (zh) 健身指导方法及装置、智能设备及存储介质
CN110838353B (zh) 动作匹配方法及相关产品
CN110427900B (zh) 一种智能指导健身的方法、装置和设备
US10709374B2 (en) Systems and methods for assessment of a musculoskeletal profile of a target individual
CN107930048B (zh) 一种太空体感识别运动分析系统及运动分析方法
BR112016010408B1 (pt) Dispositivo de usuário e meio legível por computador
CN109344796A (zh) 信息处理方法和装置、电子设备、计算机可读存储介质
EP3786971A1 (en) Advancement manager in a handheld user device
JP6959898B2 (ja) 情報処理装置、サポート方法、及びサポートシステム
US20230241454A1 (en) Multi-input automatic monitoring of motion tracking system and actuation
CN114782497B (zh) 运动功能分析方法和电子设备
KR102608196B1 (ko) 비전처리를 활용한 범용 반복 동작 카운팅 시스템
CN111768474B (zh) 动画生成方法、装置、设备
KR20220058790A (ko) 듀얼 열화상 카메라를 이용한 운동 자세 분석 방법 및 이를 이용한 자세 교정 가이드 방법, 이를 구현한 컴퓨터 프로그램
CN113642531B (zh) 视频图像的识别方法、系统以及计算机可读存储介质
CN116524081A (zh) 虚拟现实画面调整方法、装置、设备及介质
KR20230087352A (ko) 운동 상태 감지 장치 및 방법
Chin et al. Conceptual design and implementation for visual tracking ankle rehabilitation system
CN106227326B (zh) 力度信息确定方法和设备
Sulla-Torres et al. Evaluation of Physical Activity by Computer Vision Using Azure Kinect in University Students
EP4145455A1 (en) Method and system for assessing and improving wellness of person using body gestures
KR20230088193A (ko) 운동가이드장치 및 운동가이드방법
JP2023175557A (ja) 情報処理プログラムおよび情報処理方法

Legal Events

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