KR20240085452A - 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법 및 시스템 - Google Patents
사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법 및 시스템 Download PDFInfo
- Publication number
- KR20240085452A KR20240085452A KR1020220170336A KR20220170336A KR20240085452A KR 20240085452 A KR20240085452 A KR 20240085452A KR 1020220170336 A KR1020220170336 A KR 1020220170336A KR 20220170336 A KR20220170336 A KR 20220170336A KR 20240085452 A KR20240085452 A KR 20240085452A
- Authority
- KR
- South Korea
- Prior art keywords
- golf swing
- user
- image
- professional
- posture
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000012800 visualization Methods 0.000 claims abstract description 35
- 238000004458 analytical method Methods 0.000 claims abstract description 9
- 239000013598 vector Substances 0.000 claims description 35
- 238000013528 artificial neural network Methods 0.000 claims description 32
- 239000000284 extract Substances 0.000 claims description 3
- 230000036544 posture Effects 0.000 description 62
- 230000015654 memory Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 8
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 3
- 238000010191 image analysis Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 210000003423 ankle Anatomy 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 210000003811 finger Anatomy 0.000 description 2
- 210000003127 knee Anatomy 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 210000001624 hip Anatomy 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 210000004934 left little finger Anatomy 0.000 description 1
- 210000004936 left thumb Anatomy 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 210000004933 right little finger Anatomy 0.000 description 1
- 210000004935 right thumb Anatomy 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63B—APPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
- A63B24/00—Electric or electronic controls for exercising apparatus of preceding groups; Controlling or monitoring of exercises, sportive games, training or athletic performances
- A63B24/0003—Analysing the course of a movement or motion sequences during an exercise or trainings sequence, e.g. swing for golf or tennis
- A63B24/0006—Computerised comparison for qualitative assessment of motion sequences or the course of a movement
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63B—APPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
- A63B71/00—Games or sports accessories not covered in groups A63B1/00 - A63B69/00
- A63B71/06—Indicating or scoring devices for games or players, or for other sports activities
- A63B71/0619—Displays, user interfaces and indicating devices, specially adapted for sport equipment, e.g. display mounted on treadmills
- A63B71/0622—Visual, audio or audio-visual systems for entertaining, instructing or motivating the user
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63B—APPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
- A63B24/00—Electric or electronic controls for exercising apparatus of preceding groups; Controlling or monitoring of exercises, sportive games, training or athletic performances
- A63B24/0003—Analysing the course of a movement or motion sequences during an exercise or trainings sequence, e.g. swing for golf or tennis
- A63B24/0006—Computerised comparison for qualitative assessment of motion sequences or the course of a movement
- A63B2024/0012—Comparing movements or motion sequences with a registered reference
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63B—APPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
- A63B2102/00—Application of clubs, bats, rackets or the like to the sporting activity ; particular sports involving the use of balls and clubs, bats, rackets, or the like
- A63B2102/32—Golf
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63B—APPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
- A63B2220/00—Measuring of physical parameters relating to sporting activity
- A63B2220/80—Special sensors, transducers or devices therefor
- A63B2220/806—Video cameras
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Physical Education & Sports Medicine (AREA)
- Human Computer Interaction (AREA)
- Image Analysis (AREA)
Abstract
본 개시는 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법 및 시스템을 제공한다. 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법은, 사용자 단말에 의하여, 사용자 골프 스윙 영상을 획득하는 단계, 사용자 골프 스윙 영상을 서버 장치로 전송하는 단계, 사용자 골프 스윙 영상을 분석하는 단계, 분석 결과에 기초하여, 사용자 골프 스윙 영상과 데이터베이스에 저장된 적어도 하나의 프로에 대응하는 프로 골프 스윙 영상 간의 유사도 값을 계산하는 단계, 유사도 값에 기초하여 시각화 데이터를 생성하는 단계, 시각화 데이터를 사용자 단말에 전송하는 단계 및 사용자 단말에 의하여, 시각화 데이터를 애플리케이션을 통해 제공하는 단계를 포함한다.
Description
본 개시는 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를를 제공하기 위한 방법 및 시스템에 관한 것이며, 좀 더 상세하게는, 사용자 골프 스윙 영상 및 프로 골프 스윙 영상 간의 유사도에 기초하여 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법 및 시스템에 관한 것이다.
최근 국민의 생활수준이 높아져 감에 따라, 골프는 대중적인 스포츠로 자리잡았으며, 일반인들에게도 취미생활 및 사교수단의 일환으로 크게 인기를 얻고 있다.
한편, 골퍼들은 샷의 정확성 및 비거리의 향상을 위하여, 필드나 스크린 게임에 나가기 전에, 실내외 골프연습장에서 스윙 자세를 교정하는 데에 많은 시간을 할애하고 있다. 그러나, 현재의 골프 교육 시스템에서, 스윙 자세를 일반인 골퍼 혼자만의 힘으로 익히기 어려운 측면이 있다. 특히, 본인의 스윙 자세에 어떠한 문제점이 있는지 파악하기가 쉽지 않은 문제가 있다.
이에 따라, 골프 강사의 레슨 없이 자신의 스윙 자세를 분석하고, 올바르게 교정하기 위한 서비스에 대한 수요가 증가되고 있고, 인공지능을 활용하여 골프 스윙 자세를 분석하는 시스템에 대한 연구가 활발하게 진행되고 있다.
본 개시의 목적은, 사용자의 골프 스윙 패턴을 향상된 정확도로 인식함으로써, 사용자와 프로의 골프 스윙 자세를 비교하고 분석하는 서비스를 제공하는 방법 및 시스템을 제공하는 것이다.
일 실시예에 따른 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법은, 사용자 단말에 의하여, 사용자 골프 스윙 영상을 획득하는 단계, 상기 사용자 골프 스윙 영상을 서버 장치로 전송하는 단계, 상기 사용자 골프 스윙 영상을 분석하는 단계, 상기 분석 결과에 기초하여, 상기 사용자 골프 스윙 영상과 데이터베이스에 저장된 적어도 하나의 프로에 대응하는 프로 골프 스윙 영상 간의 유사도 값을 계산하는 단계, 상기 유사도 값에 기초하여 상기 사용자의 스윙 자세와 상기 적어도 하나의 프로의 스윙 자세를 비교한 시각화 데이터를 생성하는 단계, 상기 시각화 데이터를 상기 사용자 단말에 전송하는 단계 및 상기 사용자 단말에 의하여, 상기 시각화 데이터를 애플리케이션을 통해 제공하는 단계를 포함한다.
일 실시예에 따른 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법은, 상기 사용자 골프 스윙 영상이 골프 스윙 영상인지 결정하는 단계, 및 상기 골프 스윙 영상이 아닌 경우, 오류 메시지를 상기 사용자 단말에 전송하고, 새로운 사용자 골프 스윙 영상을 요청하는 단계를 더 포함한다.
일 실시예에 따른 상기 분석하는 단계는, 복수의 프레임들을 포함하는 상기 사용자 골프 스윙 영상을 입력으로 하는 제1 뉴럴 네트워크를 이용하여, 상기 복수의 프레임들 각각을 복수의 골프 스윙 단계(sequence)들 중 하나로 분류하는 단계, 및 상기 분류된 복수의 프레임들을 입력으로 하는 제2 뉴럴 네트워크를 이용하여, 상기 복수의 골프 스윙 단계들에 대응하는 제1 특징 벡터들을 추출하는 단계를 포함한다.
일 실시예에 따른, 상기 복수의 골프 스윙 단계들은, 어드레스 단계, 테이크어웨이 단계, 백스윙 단계, 백스윙 탑 단계, 다운스윙 단계, 임팩트 단계, 팔로스루 단계, 및 피니쉬 단계 중 적어도 하나를 포함한다.
일 실시예에 따른, 상기 유사도 값을 계산하는 단계는, 상기 데이터베이스에 저장된, 상기 프로 골프 스윙 영상의 상기 복수의 골프 스윙 단계들에 대응하는 제2 특징 벡터들을 로드하는 단계, 및 상기 복수의 골프 스윙 단계들에 대응하는, 상기 제1 특징 벡터들 및 상기 제2 특징 벡터들 간의 서브 유사도 값들을 계산하는 단계를 포함하되, 상기 유사도 값은 상기 서브 유사도 값들을 포함한다.
일 실시예에 따른, 상기 제1 뉴럴 네트워크는, 복수의 골프 스윙 영상들을 포함하는 골프 스윙 영상 데이터 셋을 입력으로 하여, 상기 복수의 골프 스윙 영상들의 프레임들 각각을 상기 복수의 골프 스윙 단계들 중 하나로 분류하도록 학습된다.
일 실시예에 따른, 상기 제2 뉴럴 네트워크는, 복수의 골프 스윙 영상들을 포함하는 골프 스윙 영상 데이터 셋을 입력으로 하여, 상기 복수의 골프 스윙 영상들의 프레임들 각각에서 포즈 키포인트(pose keypoint)들을 포함하는 특징 벡터를 추출하도록 학습된다.
일 실시예에 따른, 상기 서브 유사도 값들은, 상기 제1 특징 벡터들 및 상기 제2 특징 벡터들 간의 코사인 유사도 값들로 구성된다.
일 실시예에 따른, 상기 시각화 데이터를 생성하는 단계는, 상기 서브 유사도 값들의 평균 값을 계산하는 단계, 가장 높은 평균 값을 갖는 제2 특징 벡터들에 대응하는 프로를 선정하는 단계, 및 상기 사용자와 상기 선정된 프로의 스윙 자세를 비교한 시각화 데이터를 생성하는 단계를 포함한다.
일 실시예에 따른 상기 시각화 데이터는, 상기 선정된 프로에 대한 정보, 상기 골프 스윙 단계 별 비교 이미지, 상기 유사도 값, 및/또는 상기 서브 유사도 값 중 적어도 하나를 포함한다.
일 실시예에 따르면, 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스가 제공될 수 있다. 일 실시예에 따르면, 사용자의 골프 스윙 자세가 분석됨으로써, 골프 스윙 단계 별로 자신의 골프 스윙 자세를 자가 진단할 수 있는 서비스가 제공될 수 있다.
도 1은 일 실시예에 따른 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 시스템을 개략적으로 보여주는 개념도이다.
도 2는 일 실시예에 따른 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법을 보여주는 흐름도이다.
도 3은 일 실시예에 따른 사용자 골프 스윙 영상이 골프 스윙 영상인지 결정하는 단계를 보여주는 흐름도이다.
도 4는 일 실시예에 따른 사용자 골프 스윙 영상을 분석하는 단계를 좀 더 상세하게 보여주는 흐름도이다.
도 5는 일 실시예에 따른 사용자 골프 스윙 영상과 프로 골프 스윙 영상의 유사도 값을 계산하는 단계를 좀 더 상세하게 보여주는 흐름도이다.
도 6은 일 실시예에 따른 유사도 값에 기초하여 시각화 데이터를 생성하는 단계를 좀 더 상세하게 보여주는 흐름도이다.
도 7a 내지 7c는 일 실시예에 따른 사용자 단말의 디스플레이에 표시되는 화면 및 유저 인터페이스를 보여주는 도면들이다.
도 8a 및 8b는 일 실시예에 따른 시각화 데이터를 예시적으로 보여주는 도면들이다.
도 2는 일 실시예에 따른 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법을 보여주는 흐름도이다.
도 3은 일 실시예에 따른 사용자 골프 스윙 영상이 골프 스윙 영상인지 결정하는 단계를 보여주는 흐름도이다.
도 4는 일 실시예에 따른 사용자 골프 스윙 영상을 분석하는 단계를 좀 더 상세하게 보여주는 흐름도이다.
도 5는 일 실시예에 따른 사용자 골프 스윙 영상과 프로 골프 스윙 영상의 유사도 값을 계산하는 단계를 좀 더 상세하게 보여주는 흐름도이다.
도 6은 일 실시예에 따른 유사도 값에 기초하여 시각화 데이터를 생성하는 단계를 좀 더 상세하게 보여주는 흐름도이다.
도 7a 내지 7c는 일 실시예에 따른 사용자 단말의 디스플레이에 표시되는 화면 및 유저 인터페이스를 보여주는 도면들이다.
도 8a 및 8b는 일 실시예에 따른 시각화 데이터를 예시적으로 보여주는 도면들이다.
이하에서, 본 개시의 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 용이하게 실시할 수 있을 정도로, 실시예들이 명확하게 상세하게 기재될 것이다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면 상의 유사한 구성요소에 대해서는 동일 또는 유사한 참조부호가 사용되고, 동일 또는 유사한 구성요소에 대해서 중복되는 설명은 생략한다.
아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다.
또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
본 명세서에서, "골프 스윙 영상"은 사람이 골프채를 스윙하는 동작을 촬영한 연속적인 이미지(프레임)들의 집합을 나타낸다. "골프 스윙 영상"은 다양한 구도 및 각도에서 촬영된 영상을 나타내며, 촬영의 구도 및 각도는 미리 설정될 수 있으며, 제조사의 설정에 의해 다양하게 변경될 수 있다.
본 명세서에서, "사용자 골프 스윙 영상"은 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 이용하는 일반 사용자의 골프 스윙 영상을 나타낸다.
본 명세서에서, "프로 골프 스윙 영상"은 골프 프로의 골프 스윙 영상을 나타낸다.
본 명세서에서, "샘플 골프 스윙 영상"은 사용자가 골프 스윙 영상을 적절하게 촬영할 수 있도록 제공하는 샘플 영상을 나타낸다.
도 1은 일 실시예에 따른 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 시스템을 개략적으로 보여주는 개념도이다. 도 1을 참조하면, 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 시스템(이하, 시스템)(100)은 사용자 단말(110) 및 서버 장치(120)를 포함할 수 있다.
사용자 단말(110)은 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 애플리케이션을 실행할 수 있다. 사용자 단말(110)은 실행된 애플리케이션을 통해 제공되는 유저 인터페이스를 사용자 단말(110)의 디스플레이에 표시할 수 있다. 이하에서, 사용자 단말(110)의 기능은 유저 인터페이스를 통한 사용자와의 상호작용에 의해 구현될 수 있다.
사용자 단말(110)은 사용자 골프 스윙 영상을 획득할 수 있다. 예를 들어, 사용자 단말(110)은 사용자 단말(110)의 카메라를 통해 사용자 골프 스윙 영상을 획득할 수 있다. 예를 들어, 사용자 단말(110)은 사용자 단말(110)의 메모리 또는 스토리지에 저장된 데이터로부터 사용자 골프 스윙 영상을 획득할 수 있다. 예를 들어, 사용자 단말(110)은 외부 장치(미도시)로부터 사용자 골프 스윙 영상을 획득할 수 있다. 일 실시예에 있어서, 애플리케이션은 사용자 골프 스윙 영상을 획득하기 위한 유저 인터페이스를 제공할 수 있다.
사용자 단말(110)은 네트워크(130)를 통해 서버 장치(120)와 데이터를 송수신할 수 있다. 사용자 단말(110)은 서버 장치(120)에 사용자 골프 스윙 영상을 전송할 수 있다. 사용자 단말(110)은 서버 장치(120)로부터 시각화 데이터를 수신할 수 있다.
사용자 단말(110)은 사용자와 프로의 스윙 자세를 비교한 시각화 데이터를 애플리케이션을 통해 사용자에게 제공할 수 있다. 사용자는 사용자와 프로의 스윙 자세를 시각적으로 비교하고 분석한 데이터를 제공받을 수 있다.
도 1에서, 네트워크(130)는 다양한 유/무선 네트워크를 포함할 수 있다. 예를 들어, 네트워크(130)는 TCP/IP(Transmission Control Protocol/Internet Protocol)을 채용하는 유선 네트워크, 및/또는 LTE(Long Term Evolution), CDMA(Code Division Multiple Access), Wi-Fi(Wireless Fidelity) 등을 채용하는 무선 네트워크를 포함할 수 있으나, 본 개시는 이에 한정되지 않는다.
서버 장치(120)는 프로세서(121), 스토리지(122), 및 메모리(124)를 포함할 수 있다.
프로세서(121)는 서버 장치(120)에 포함된 구성들(예컨대, 122, 124)과 전기적으로 연결되어, 서버 장치(120)에 포함된 구성들(예컨대, 122, 124)의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 수행할 수 있다. 예를 들어, 프로세서(121)는 CPU(central processing unit), AP(application processor), GPU(graphic processing unit), 또는 NPU(neural processing unit) 중 적어도 하나를 포함할 수 있다.
프로세서(121)는 다른 구성들 중 적어도 하나로부터 수신된 명령 또는 데이터를 메모리(124)에 로드하여 처리하고, 처리된 데이터를 메모리(124) 또는 스토리지(123)에 저장할 수 있다. 도시된 바와 달리, 프로세서(121)는 기능 및/또는 목적에 따라 하나 이상으로 구현될 수 있다. 적어도 하나의 프로세서는, 서버 장치(120)에 포함된 구성들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 분산하여 수행할 수 있다. 서버 장치(120)는 인공지능 모듈(128)을 실행하기 위한 별도의 프로세서, 예컨대, NPU를 더 포함할 수 있다.
스토리지(122)는 프로세서(121)에 의해 사용되는 다양한 데이터의 원본 또는 백업본을 저장할 수 있다. 스토리지(122)는 서버 장치(120)의 보조 기억 장치로 이용될 수 있다. 예를 들어, 스토리지(122)는 하드 디스크 드라이브(hard disk drive; HDD) 또는 솔리드 스테이트 드라이브(solid state drive; SSD)로 구현될 수 있다. 도시된 바와 달리, 스토리지(122)는 서버 장치(120) 외부에 배치될 수 있다.
스토리지(122)는 프로 골프 스윙 영상 데이터베이스(123)를 포함할 수 있다. 프로 골프 스윙 영상 데이터베이스(123)는 적어도 하나의 골프 프로(이하, 프로)의 골프 스윙 영상(이하, 프로 골프 스윙 영상)에 대응하는 데이터를 포함할 수 있다. 예를 들어, 프로 골프 스윙 영상에 대응하는 데이터는, 프로 골프 스윙 영상의 분석 데이터(예컨대, 골프 스윙 단계 별 포즈 키포인트의 좌표 등)를 포함할 수 있다. 일 실시예에 있어서, 프로 골프 스윙 영상은 외부 장치(미도시)를 통해 획득될 수 있다.
메모리(124)에는 프로세서(121)에 의하여 처리되거나 처리될 예정인 데이터, 펌웨어, 소프트웨어, 및 프로세스 코드 등이 저장될 수 있다. 메모리(124)에는 영상 분석 모듈(125), 유사도 계산 모듈(126), 시각화 모듈(127), 및 인공지능 모듈(128) 중 적어도 하나에 대응되는 데이터 및 프로그램 코드들이 저장될 수 있다.
영상 분석 모듈(125)은 골프 스윙 영상(예를 들어, 사용자 골프 스윙 영상 또는 프로 골프 스윙 영상)을 분석할 수 있다. 영상 분석 모듈(125)는 골프 스윙 영상을 골프 스윙 단계 별로 분류할 수 있다. 영상 분석 모듈(125)은 골프 스윙 영상 및/또는 분류 결과에 기초하여 골프 스윙 영상의 특징 벡터를 추출할 수 있다.
유사도 계산 모듈(126)은 사용자 골프 스윙 영상 또는 프로 골프 스윙 영상 간의 유사도 값을 계산할 수 있다. 유사도 계산 모듈(126)은 골프 스윙 단계 별로 사용자 골프 스윙 영상 또는 프로 골프 스윙 영상 간의 유사도 값을 계산할 수 있다. 유사도 계산 모듈(126)은 사용자 골프 스윙 영상에 대응하는 특징 벡터와 프로 골프 스윙 영상에 대응하는 특징 벡터 간의 유사도 값을 계산할 수 있다.
시각화 모듈(127)은 유사도 값에 기초하여 사용자와 프로의 스윙 자세를 비교한 시각화 데이터를 생성할 수 있다. 예를 들어, 시각화 데이터는, 가장 높은 유사도 값에 대응하는 프로에 대한 정보, 사용자와 프로 각각의 골프 스윙 단계 별 프레임, 유사도 값, 및/또는 골프 스윙 단계 별 유사도 값 등을 포함할 수 있다.
인공지능 모듈(128)은 인공지능 모델(예컨대, 뉴럴 네트워크)을 훈련할 수 있다. 예를 들어, 인공지능 모듈(128)은 인공지능 모델을 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning) 등 과 같은 학습 알고리즘을 통해 학습할 수 있다. 이러한 학습은 본 개시에 따른 뉴럴 네트워크가 이용되는 서버 장치(120)에서 수행될 수도 있으나, 본 개시는 이에 한정되지 않으며, 별도의 서버 및/또는 시스템을 통해 수행될 수도 있다.
뉴럴 네트워크는, 복수의 레이어들을 포함할 수 있다. 복수의 레이어들 각각은 가중치(weight)들 및/또는 편향(bias)들을 포함할 수 있다. 현재 레이어의 연산은, 이전 레이어의 연산 결과와 가중치들 및/또는 편향들에 기초하여 수행될 수 있다. 복수의 레이어들의 가중치들 및/또는 편향들은 학습을 통해 최적화될 수 있다. 예를 들어, 미리 정의된 손실 함수의 값이 최소화되도록 가중치들 및/또는 편향들이 업데이트될 수 있다. 예를 들어, 뉴럴 네트워크는, DNN (Deep Neural Network), CNN (Convolutional Neural Network), RNN (Recurrent Neural Network), 트랜스포머(Transformer) 또는 이들의 조합일 수 있으나, 본 개시는 이에 한정되지 않는다.
뉴럴 네트워크는 기능 또는 목적에 따라 하나 이상일 수 있다. 예를 들어, 제1 뉴럴 네트워크는 데이터의 분류 기능을 수행할 수 있다. 예를 들어, 제2 뉴럴 네트워크는 데이터 특징 추출 기능을 수행할 수 있다. 훈련된 뉴럴 네트워크는 영상 분석 모듈(125), 유사도 계산 모듈(126), 시각화 모듈(127)의 기능 중 적어도 일부를 수행하는 데 이용될 수 있다.
메모리(124)는 서버 장치(120)의 주 기억 장치로 이용될 수 있다. 예를 들어, 메모리(124)는 DRAM(dynamic random access memory), SRAM(static random access memory), PRAM(phase-change random access memory), MRAM (magnetic random access memory), FeRAM(ferroelectric random access memory), RRAM(resistive random access memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory)와 같은 다양한 메모리들로 구현될 수 있다. 메모리(124)는 버퍼 메모리, 워킹 메모리, 또는 캐시 메모리로서 지칭될 수 있다. 도시되지 않았지만, 메모리(124)의 개수는 하나 이상일 수 있다.
도시되지 않았지만, 사용자 단말(110)은 프로세서 및 메모리를 포함할 수 있다. 메모리는 프로세서에 의해 실행되는 적어도 하나의 인스트럭션을 포함할 수 있다. 프로세서는 상술한 사용자 단말(110)의 기능의 적어도 일부를 수행하는, 메모리에 저장된 적어도 하나의 인스트럭션을 실행할 수 있다.
도시되지 않았지만, 사용자 단말(110)은 사용자 입력을 획득(또는 수신)하기 위한 입출력 인터페이스를 포함할 수 있다. 입출력 인터페이스는 사용자로부터 제어 명령이나 정보 등을 입력받기 위한 입력 인터페이스(예컨대, 터치 스크린, 하드 버튼, 마이크 등)와, 사용자의 제어에 따른 동작의 실행 결과나 사용자 단말(110)의 상태를 표시하기 위한 출력 인터페이스(예컨대, 디스플레이 패널, 스피커 등)를 포함할 수 있다.
도시되지 않았지만, 사용자 단말(110), 및 서버 장치(120)는 통신 인터페이스를 포함할 수 있다. 통신 인터페이스는 네트워크(130)를 통해 사용자 단말(110), 및 서버 장치(120) 또는 외부 장치(미도시)와 유선 또는 무선으로 신호(제어 명령 및 데이터 등)를 송수신하기 위한 구성으로서, 다양한 통신 프로토콜을 지원하는 통신 칩셋을 포함하도록 구성될 수 있다.
일 실시예에 있어서, 사용자 단말(110)은 스마트 폰, 스마트 패드, 웨어러블 디바이스, 디지털 카메라, 텔레비전, 모니터, 랩톱 컴퓨터 등 디스플레이를 포함하는 전자 장치일 수 있다.
도 2는 일 실시예에 따른 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법을 보여주는 흐름도이다. 설명의 편의를 위해, 도 1에서 설명한 내용과 중복되는 내용은 생략한다.
도 2와 함께, 도 1을 참조하면, 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법은 단계 S210 내지 S260을 포함할 수 있다. 단계 S210 내지 S260은 사용자 단말(110) (또는 사용자 단말(110)의 프로세서) 및/또는 서버 장치(120) (또는 프로세서(121))에 의해 수행될 수 있다. 본 개시에 따른 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법은 도 2에 도시된 바에 한정되지 않으며, 도 2에 도시된 단계 중 어느 하나를 생략할 수도 있고, 도 2에 도시되지 않은 단계를 더 포함할 수도 있다.
단계 S210에서, 사용자 단말(110)은 사용자 골프 스윙 영상을 획득할 수 있다. 사용자 골프 스윙 영상은 복수의 프레임들을 포함할 수 있다. 여기서, "프레임"은 시간 도메인에서 사용자 골프 스윙 영상을 나눈 단위를 의미할 수 있다. 프레임의 크기는 제조사 또는 사용자의 설정에 의해 미리 정의될 수 있다.
단계 S220에서, 사용자 단말(110)은 사용자 골프 스윙 영상을 서버 장치(120)에 전송할 수 있다. 서버 장치(120)는 사용자 골프 스윙 영상을 수신할 수 있다.
단계 S230에서, 서버 장치(120)는 사용자 골프 스윙 영상을 분석할 수 있다. 일 실시예에 있어서, 서버 장치(120)는 뉴럴 네트워크를 이용하여 사용자 골프 스윙 영상을 분석할 수 있다. 일 실시예에 따른 단계 S230의 구체적인 예시는 도 4에서 상세하게 설명한다.
단계 S240에서, 서버 장치(120)는 사용자 골프 스윙 영상과 프로 골프 스윙 영상 간의 유사도 값을 계산할 수 있다. 서버 장치(120)는 분석 결과에 기초하여 유사도 값을 계산할 수 있다. 유사도 값을 계산하기 전에, 서버 장치(120)는 (분석된) 프로 골프 스윙 영상을 프로 골프 스윙 영상 데이터베이스(124)로부터 로드할 수 있다. 일 실시예에 있어서, (분석된) 프로 골프 스윙 영상은 복수의 프로들의 프로 골프 스윙 영상들을 포함 수 있다. 이 경우, 유사도 값은 사용자 골프 스윙 영상과 프로 골프 스윙 영상들 각각 간의 유사도 값을 포함할 수 있다. 일 실시예에 따른 단계 S240의 구체적인 예시는 도 5에서 상세하게 설명한다.
단계 S250에서, 서버 장치(120)는 유사도 값에 기초하여 사용자와 프로의 스윙 자세를 비교한 시각화 데이터를 생성할 수 있다. 예를 들어, 시각화 데이터는 프로 골프 스윙 영상들 중, 사용자 골프 스윙 영상과의 유사도 값이 가장 높은 프로 골프 스윙 영상에 대응하는 프로에 대한 정보를 포함할 수 있다. 예를 들어, 시각화 데이터는 프로 골프 스윙 영상들 중, 사용자 골프 스윙 영상과의 유사도 값이 임계 값보다 큰 적어도 하나의 프로 골프 스윙 영상에 대응하는 프로에 대한 정보를 포함할 수 있다. 일 실시예에 따른 단계 S250의 구체적인 예시는 도 6에서 상세하게 설명한다.
단계 S260에서, 서버 장치(120)는 시각화 데이터를 사용자 단말(110)에 전송할 수 있다. 사용자 단말(110)은 시각화 데이터를 수신할 수 있다.
단계 S270에서, 사용자 단말(110)은 시각화 데이터를 애플리케이션을 통해 제공할 수 있다. 사용자 단말(110)은 시각화 데이터에 대응하는 화면을 디스플레이에 표시할 수 있다.
일 실시예에 있어서, 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법은 단계 S205를 더 포함할 수 있다. 단계 S205은 사용자 단말(110) (또는 사용자 단말(110)의 프로세서) 및/또는 서버 장치(120) (또는 프로세서(121))에 의해 수행될 수 있다.
단계 S205에서, 서버 장치(120)는 샘플 골프 스윙 영상을 사용자 단말(110)에 전송할 수 있다. 사용자 단말(110)은 샘플 골프 스윙 영상을 수신할 수 있다. 사용자 단말(110)은 샘플 골프 스윙 영상을 애플리케이션을 통해 제공할 수 있다. 사용자 단말(110)은 샘플 골프 스윙 영상을 디스플레이에 표시할 수 있다.
일 실시예에 있어서, 사용자 단말(110)은 샘플 골프 스윙 영상과 함께, 영상 촬영을 위한 적절한 구도 및/또는 각도에 대한 메시지를 디스플레이에 표시할 수 있다.
도 3은 일 실시예에 따른 사용자 골프 스윙 영상이 골프 스윙 영상인지 결정하는 단계를 보여주는 흐름도이다. 설명의 편의를 위해, 도 1 및 2에서 설명한 내용과 중복되는 내용은 생략한다.
도 3과 함께, 도 1 및 2를 참조하면, 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법은 단계 S225를 더 포함할 수 있다. 단계 S225는 사용자 단말(110) (또는 사용자 단말(110)의 프로세서) 및/또는 서버 장치(120) (또는 프로세서(121))에 의해 수행될 수 있다. 본 개시에 따른 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법은 도 3에 도시된 바에 한정되지 않으며, 도 3에 도시된 단계 중 어느 하나를 생략할 수도 있고, 도 3에 도시되지 않은 단계를 더 포함할 수도 있다.
단계 S225에서, 서버 장치(120)는 사용자 골프 스윙 영상이 골프 스윙 영상인지 결정할 수 있다. 사용자 골프 스윙 영상이 골프 스윙 영상이 아닌 경우, 서버 장치(120)는 오류 메시지를 사용자 단말(110)에 전송하고, 사용자 단말(110)에 새로운 사용자 골프 스윙 영상을 요청하며, 절차는 S220 단계로 이동한다. 사용자 골프 스윙 영상이 골프 스윙 영상인 경우, 절차는 S230 단계로 이동한다.
일 실시예에 있어서, 서버 장치(120)는 사용자 골프 스윙 영상을 입력으로 하는 뉴럴 네트워크를 이용하여, 사용자 골프 스윙 영상 골프 스윙 영상인지를 결정할 수 있다.
일 실시예에 있어서, 서버 장치(120)는 사용자 골프 스윙 영상이 단계 S230에서 분석하기 위한 영상 규격에 맞는 영상인지를 결정할 수 있다. 사용자 골프 스윙 영상이 영상 규격에 맞지 않는 영상인 경우, 서버 장치(120)는 오류 메시지를 사용자 단말(110)에 전송하고, 사용자 단말(110)에 새로운 사용자 골프 스윙 영상을 요청하며, 절차는 S220 단계로 이동한다. 사용자 골프 스윙 영상이 영상 규격에 맞는 영상인 경우, 절차는 S230 단계로 이동한다.
도 4는 일 실시예에 따른 사용자 골프 스윙 영상을 분석하는 단계를 좀 더 상세하게 보여주는 흐름도이다. 설명의 편의를 위해, 도 1 및 2에서 설명한 내용과 중복되는 내용은 생략한다.
도 4와 함께, 도 1 및 2를 참조하면, 단계 S230은 단계 S410 및 S420을 포함할 수 있다.
단계 S410에서, 서버 장치(120)는 복수의 프레임들을 포함하는 사용자 골프 스윙 영상을 입력으로 하는 제1 뉴럴 네트워크를 이용하여, 복수의 프레임들 각각을 골프 스윙 단계(sequence)들 중 하나로 분류할 수 있다. 예를 들어, 골프 스윙 단계들은, 어드레스 단계, 테이크어웨이 단계, 백스윙 단계, 백스윙 탑 단계, 다운스윙 단계, 임팩트 단계, 팔로스루 단계, 및 피니쉬 단계 중 적어도 하나를 포함할 수 있으나, 본 개시는 이에 한정되지 않으며, 골프 스윙의 동작으로 구분될 수 있는 임의의 단계를 포함할 수도 있다.
일 실시예에 있어서, 제1 뉴럴 네트워크는, 복수의 골프 스윙 영상들을 포함하는 골프 스윙 영상 데이터 셋을 입력으로 하여, 복수의 골프 스윙 영상들의 프레임들 각각을 복수의 골프 스윙 단계들 중 하나로 분류하도록 학습될 수 있다.
일 실시예에 있어서, 제2 뉴럴 네트워크에 학습을 위해 입력되는 골프 스윙 영상 데이터 셋은, 복수의 골프 스윙 영상들 및 복수의 골프 스윙 영상들에 대응하는 골프 스윙 단계들에 대한 그라운드 트루스(ground truth)를 포함할 수 있다.
단계 S420에서, 서버 장치(120)는 분류된 복수의 프레임들을 입력으로 하는 제2 뉴럴 네트워크를 이용하여, 상기 복수의 골프 스윙 단계들에 대응하는 제1 특징 벡터들을 추출할 수 있다.
일 실시예에 있어서, 제2 뉴럴 네트워크는, 복수의 골프 스윙 영상들을 포함하는 골프 스윙 영상 데이터 셋을 입력으로 하여, 복수의 골프 스윙 영상들의 프레임들 각각에서 포즈 키포인트(pose keypoint)들을 포함하는 특징 벡터를 추출하도록 학습될 수 있다. 예를 들어, 포즈 키포인트들은 이미지(프레임)에서, 사람의 신체 관절들에 대응하는 좌표 값으로 구성될 수 있다. 예를 들어, 포즈 키포인트는, 코, 오른쪽 눈, 오른쪽 눈 안쪽, 오른쪽 눈 바깥쪽, 왼쪽 눈, 왼쪽 눈 안쪽, 왼쪽 눈 바깥쪽, 오른쪽 귀, 왼쪽 귀, 입 오른쪽, 입 왼쪽, 오른쪽 어깨, 왼쪽 어깨, 오른쪽 팔꿈치, 왼쪽 팔꿈치, 오른쪽 허리, 왼쪽 허리, 오른쪽 새끼 손가락, 왼쪽 새끼 손가락, 오른쪽 검지 손가락, 왼쪽 검지 손가락, 오른쪽 엄지 손가락, 왼쪽 엄지 손가락, 오른쪽 엉덩이, 왼쪽 엉덩이, 오른쪽 무릎, 왼쪽 무릎, 오른쪽 발목, 왼쪽 발목, 오른쪽 발꿈치, 왼쪽 발꿈치, 오른쪽 검지 발가락, 왼쪽 검지 발가락에 대응하는 좌표 값으로 구성될 수 있다. 그러나, 이는 일 예시일 뿐, 포즈 키포인트는, 상술한 예시의 적어도 일부만으로 구성되거나, 다른 관절의 좌표 값을 더 포함하여 구성될 수 있다. 일 실시예에 있어서, 포즈 키포인트는, 골프 채를 구성하는 복수의 좌표 값들을 더 포함하여 구성될 수 있다.
일 실시예에 있어서, 제2 뉴럴 네트워크에 학습을 위해 입력되는 골프 스윙 영상 데이터 셋은, 복수의 골프 스윙 영상들 및 복수의 골프 스윙 영상들에 대응하는 포즈 키포인트들의 그라운드 트루스를 포함할 수 있다.
일 실시예에 있어서, 제1 뉴럴 네트워크와 제2 뉴럴 네트워크는 공동 학습(joint training)될 수 있다. 따라서, 제1 뉴럴 네트워크의 출력이 제2 뉴럴 네트워크의 입력이 되는 구조로, 제1 뉴럴 네트워크와 제2 뉴럴 네트워크가 동시에 학습될 수 있다.
도 5는 일 실시예에 따른 사용자 골프 스윙 영상과 프로 골프 스윙 영상의 유사도 값을 계산하는 단계를 좀 더 상세하게 보여주는 흐름도이다. 설명의 편의를 위해, 도 1 내지 4에서 설명한 내용과 중복되는 내용은 생략한다.
도 5와 함께, 도 1 내지 4를 참조하면, 단계 S240은 단계 S510 및 S520을 포함할 수 있다.
단계 S510에서, 서버 장치(120)는 프로 골프 스윙 영상 데이터베이스(124)에 저장된, 프로 골프 스윙 영상의 복수의 골프 스윙 단계들에 대응하는 제2 특징 벡터들을 로드할 수 있다.
단계 S520에서, 서버 장치(120)는 복수의 골프 스윙 단계들에 대응하는, 제1 특징 벡터들 및 제2 특징 벡터들 간의 서브 유사도 값들을 계산할 수 있다. 예를 들어, 서버 장치(120)는 어드레스 단계에 대응하는 제1 특징 벡터 및 어드레스 단계에 대응하는 제2 특징 벡터 간의 제1 서브 유사도 값을 계산할 수 있다. 예를 들어, 서버 장치(120)는 다운스윙 단계에 대응하는 제1 특징 벡터 및 다운스윙 단계에 대응하는 제2 특징 벡터 간의 제2 서브 유사도 값을 계산할 수 있다. 그러나, 본 개시는 이에 한정되지 않으며, 서버 장치(120)는 미리 정의된 골프 스윙 단계들 각각에 대응하는 서브 유사도 값을 계산할 수 있다. 유사도 값은 서브 유사도 값들을 포함할 수 있다.
일 실시예에 있어서, 서브 유사도 값들은 제1 특징 벡터들 및 제2 특징 벡터들 간의 코사인 유사도(cosine similarity) 값들로 구성될 수 있다. 예를 들어, 코사인 유사도 값은 -1 이상 1 이하의 수일 수 있다. 코사인 유사도 값이 1에 가까울수록 벡터들 간의 유사도가 높은 것으로 판단되고, -1에 가까울수록 벡터들 간의 유사도가 낮은 것으로 판단될 수 있다.
도 6은 일 실시예에 따른 유사도 값에 기초하여 시각화 데이터를 생성하는 단계를 좀 더 상세하게 보여주는 흐름도이다. 도 1 내지 5에서 설명한 내용과 중복되는 내용은 생략한다.
도 6과 함께, 도 1 내지 5를 참조하면, 단계 S250은 단계 S610 내지 S630을 포함할 수 있다.
단계 S610에서, 서버 장치(120)는 서브 유사도 값들의 평균 값을 계산할 수 있다.
단계 S620에서 서버 장치(120)는 가장 높은 평균 값을 갖는 제2 특징 벡터들에 대응하는 프로를 선정할 수 있다. 선정된 프로는 적어도 하나일 수 있다. 예를 들어, 서버 장치(120)는 평균 값이 가장 높은 제2 특징 벡터에 대응하는 프로를 선정할 수 있다. 예를 들어, 서버 장치(120)는 평균 값이 미리 정의된 임계 값보다 높은 제2 특징 벡터에 대응하는 프로를 선정할 수 있다.
단계 S630에서, 서버 장치(120)는 사용자의 스윙 자세와 선정된 프로의 스윙 자세를 비교한 시각화 데이터를 생성할 수 있다.
도 7a 내지 7c는 일 실시예에 따른 사용자 단말의 디스플레이에 표시되는 화면 및 유저 인터페이스를 보여주는 도면들이다. 설명의 편의를 위해, 도 1 내지 6에서 설명한 내용과 중복되는 내용은 생략한다.
도 7a 내지 7c와 함께, 도 1 내지 6을 참조하면, 사용자 단말(110)은 애플리케이션 또는 웹 서버를 통해, 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스에 대한 화면을 디스플레이에 표시할 수 있다. 도 7a 내지 7c에서, 사용자 단말(110)은 스마트 폰인 것으로 도시되었으나, 본 개시는 이에 한정되는 것은 아니다.
사용자 단말(110)은 제1 화면(700)을 디스플레이 표시할 수 있다. 제1 화면(700)은 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스의 소개(또는 인트로) 페이지일 수 있다. 사용자 단말(110)은 제1 화면(700)에 포함되는 "지금 해보기" 버튼(701)을 유저 인터페이스로 제공할 수 있다. 사용자가 "지금 해보기" 버튼(701)을 클릭하거나 탭한 경우, 제1 화면(700)은 제2 화면(710)으로 전환된다.
사용자 단말(110)은 제2 화면(710)을 디스플레이 표시할 수 있다. 제2 화면(710)은 도 2의 단계 S205 내지 S215에 대응하는 사용자 골프 스윙 영상 획득을 위한 페이지일 수 있다. 제2 화면(710)에는, 사용자가 미리 정해진 영상 규격에 맞는 골프 스윙 영상을 촬영하기 위한 가이드라인이 텍스트 또는 이미지로 제공될 수 있다.
사용자 단말(110)은 제1 화면(700)에 포함되는 데이터 획득 버튼들(711)을 유저 인터페이스로 제공할 수 있다. 예를 들어, 사용자가 "카메라" 버튼을 클릭하거나 탭한 경우, 사용자 단말(110)의 카메라 애플리케이션이 실행될 수 있다. 예를 들어, 사용자가 "앨범" 버튼을 클릭하거나 탭한 경우, 사용자 단말(110)의 앨범 애플리케이션이 실행될 수 있다. 예를 들어, 사용자가 "파일" 버튼을 클릭하거나 탭한 경우, 사용자 단말(110)의 파일 관리 애플리케이션이 실행될 수 있다. 사용자는 데이터 획득 버튼들(711)을 이용하여, 사용자 골프 스윙 영상을 서버 장치(120)에 업로드할 수 있다. 사용자 단말(110)은 제1 화면(700)에 포함되는 샘플 골프 스윙 영상 제공 창(712)을 제공할 수 있다. 사용자 단말(110)은 샘플 골프 스윙 영상 제공 창(712)을 통해 서버 장치(120)로부터 수신한 샘플 골프 스윙 영상을 재생할 수 있다.
사용자 단말(110)은 제3 화면(725)을 디스플레이에 표시할 수 있다. 제3 화면(725)은 도 3의 단계 S225에 대응하는 페이지일 수 있다. 따라서, 서버 장치(120)가 수신된 영상이 골프 스윙 영상이 아니라고 결정하고 오류 메시지를 사용자 단말(110)에 전송한 경우, 사용자 단말(110)은 제3 화면(725)을 디스플레이에 표시할 수 있다. 사용자 단말(110)은 제3 화면(725)에 포함되는 "다시 해보기" 버튼(701)을 유저 인터페이스로 제공할 수 있다. 사용자가 "다시 해보기" 버튼(701)을 클릭하거나 탭한 경우, 제3 화면(725)은 제2 화면(710)으로 전환된다.
사용자 단말(110)은 제4 화면(770a, 770b)을 디스플레이에 표시할 수 있다. 제3 화면(725)은 도 3의 단계 S270에 대응하는 페이지일 수 있다. 따라서, 사용자 단말(110)은 서버 장치(120)로부터 수신한 시각화 데이터를 디스플레이에 표시할 수 있다.
사용자 단말(110)은 제4 화면(770a, 770b)에 포함되는 "공유하기" 버튼(771)을 유저 인터페이스로 제공할 수 있다. 사용자 단말(110)은 제4 화면(770a, 770b)에 포함되는 "다시 해보기" 버튼(772)을 유저 인터페이스로 제공할 수 있다. 사용자가 "다시 해보기" 버튼(772)을 클릭하거나 탭한 경우, 제4 화면(770a, 770b)은 제2 화면(710)으로 전환된다.
제4 화면(770a, 770b)에는 이미지 비교부(773) 및 데이터 비교부(774)가 제공될 수 있다. 이미지 비교부(773)에는 사용자의 골프 스윙 자세 별 이미지(프레임)와 프로의 골프 스윙 자세 별 이미지(프레임)이 제공될 수 있다. 데이터 비교부(774)에는 사용자와 프로의 골프 스윙 자세 별 유사도가 제공될 수 있다.
도 8a 및 8b는 일 실시예에 따른 시각화 데이터를 예시적으로 보여주는 도면들이다. 설명의 편의를 위해, 도 1 내지 7c에서 설명한 내용과 중복되는 내용은 생략한다. 도 8a 및 8b와 함께, 도 7c를 참조하면, 이미지 비교부(773)에는, 도 8a의 골프 스윙 자세 별 비교 이미지가 샘플링되어 제공될 수 있다. 데이터 비교부(774)에는, 도 8b의 골프 스윙 자세 별 비교 데이터가 샘플링되어 제공될 수 있다. 도 8b에서, x 축은 골프 스윙 자세로 정의되고, y 축은 (서브) 유사도 값에 대응하는 스코어로 정의될 수 있다.
일 실시예에 있어서, 본 개시의 실시예들에 따른 방법은 컴퓨터 프로그램 제품에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 기록 매체의 형태로 배포될 수 있다. 또는, 컴퓨터 프로그램 제품은 애플리케이션 스토어를 통해 또는 복수의 장치들 간에 직접 배포될 수 있다.
상술된 실시예들에서, 제1, 제2, 제3 등의 용어들을 사용하여 본 개시의 기술적 사상에 따른 구성 요소들이 설명되었다. 그러나 제1, 제2, 제3 등과 같은 용어들은 구성 요소들을 서로 구별하기 위해 사용되며, 본 개시의 기술적 사상을 한정하는 것은 아니다. 제1, 제2, 제3 등과 같은 용어들은 순서 또는 임의의 형태의 수치적 의미를 내포하지 않는다.
상술된 실시예들은, 본 개시를 실시하기 위한 구체적인 실시예들이다. 본 개시은 상술된 실시예들뿐만 아니라, 상술된 실시예들을 이용하여 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시예들을 포함하는 것으로 이해되어야 한다. 따라서, 본 개시의 범위는 상술된 실시예들에 한정되어서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
Claims (10)
- 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법에 있어서,
사용자 단말에 의하여, 사용자에 대응하는 사용자 골프 스윙 영상을 획득하는 단계;
상기 사용자 골프 스윙 영상을 서버 장치로 전송하는 단계;
상기 사용자 골프 스윙 영상을 분석하는 단계;
상기 분석 결과에 기초하여, 상기 사용자 골프 스윙 영상과 데이터베이스에 저장된 적어도 하나의 프로에 대응하는 프로 골프 스윙 영상 간의 유사도 값을 계산하는 단계;
상기 유사도 값에 기초하여 상기 사용자의 스윙 자세와 상기 적어도 하나의 프로의 스윙 자세를 비교한 시각화 데이터를 생성하는 단계;
상기 시각화 데이터를 상기 사용자 단말에 전송하는 단계; 및
상기 사용자 단말에 의하여, 상기 시각화 데이터를 애플리케이션을 통해 제공하는 단계를 포함하는, 방법.
- 제1항에 있어서,
상기 사용자 골프 스윙 영상이 골프 스윙 영상인지 결정하는 단계; 및
상기 골프 스윙 영상이 아닌 경우, 오류 메시지를 상기 사용자 단말에 전송하고, 새로운 사용자 골프 스윙 영상을 요청하는 단계를 더 포함하는, 방법.
- 제1항에 있어서,
상기 분석하는 단계는:
복수의 프레임들을 포함하는 상기 사용자 골프 스윙 영상을 입력으로 하는 제1 뉴럴 네트워크를 이용하여, 상기 복수의 프레임들 각각을 복수의 골프 스윙 단계(sequence)들 중 하나로 분류하는 단계; 및
상기 분류된 복수의 프레임들을 입력으로 하는 제2 뉴럴 네트워크를 이용하여, 상기 복수의 골프 스윙 단계들에 대응하는 제1 특징 벡터들을 추출하는 단계를 포함하는, 방법.
- 제3항에 있어서,
상기 복수의 골프 스윙 단계들은, 어드레스 단계, 테이크어웨이 단계, 백스윙 단계, 백스윙 탑 단계, 다운스윙 단계, 임팩트 단계, 팔로스루 단계, 및 피니쉬 단계 중 적어도 하나를 포함하는, 방법.
- 제3항에 있어서,
상기 유사도 값을 계산하는 단계는:
상기 데이터베이스에 저장된, 상기 프로 골프 스윙 영상의 상기 복수의 골프 스윙 단계들에 대응하는 제2 특징 벡터들을 로드하는 단계; 및
상기 복수의 골프 스윙 단계들에 대응하는, 상기 제1 특징 벡터들 및 상기 제2 특징 벡터들 간의 서브 유사도 값들을 계산하는 단계를 포함하되,
상기 유사도 값은 상기 서브 유사도 값들을 포함하는, 방법.
- 제3항에 있어서,
상기 제1 뉴럴 네트워크는, 복수의 골프 스윙 영상들을 포함하는 골프 스윙 영상 데이터 셋을 입력으로 하여, 상기 복수의 골프 스윙 영상들의 프레임들 각각을 상기 복수의 골프 스윙 단계들 중 하나로 분류하도록 학습되는, 방법.
- 제3항에 있어서,
상기 제2 뉴럴 네트워크는, 복수의 골프 스윙 영상들을 포함하는 골프 스윙 영상 데이터 셋을 입력으로 하여, 상기 복수의 골프 스윙 영상들의 프레임들 각각에서 포즈 키포인트(pose keypoint)들을 포함하는 특징 벡터를 추출하도록 학습되는, 방법.
- 제5항에 있어서,
상기 서브 유사도 값들은, 상기 제1 특징 벡터들 및 상기 제2 특징 벡터들 간의 코사인 유사도 값들로 구성되는, 방법.
- 제5항에 있어서,
상기 시각화 데이터를 생성하는 단계는:
상기 서브 유사도 값들의 평균 값을 계산하는 단계;
가장 높은 평균 값을 갖는 제2 특징 벡터들에 대응하는 프로를 선정하는 단계; 및
상기 사용자와 상기 선정된 프로의 스윙 자세를 비교한 시각화 데이터를 생성하는 단계를 포함하는, 방법.
- 제9항에 있어서,
상기 시각화 데이터는, 상기 선정된 프로에 대한 정보, 상기 골프 스윙 단계 별 비교 이미지, 상기 유사도 값, 및/또는 상기 서브 유사도 값 중 적어도 하나를 포함하는, 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220170336A KR20240085452A (ko) | 2022-12-08 | 2022-12-08 | 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220170336A KR20240085452A (ko) | 2022-12-08 | 2022-12-08 | 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법 및 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240085452A true KR20240085452A (ko) | 2024-06-17 |
Family
ID=91714409
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220170336A KR20240085452A (ko) | 2022-12-08 | 2022-12-08 | 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240085452A (ko) |
-
2022
- 2022-12-08 KR KR1020220170336A patent/KR20240085452A/ko unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109191588B (zh) | 运动教学方法、装置、存储介质及电子设备 | |
KR102097190B1 (ko) | 스마트 미러를 이용하여 실시간 운동 동작을 분석 및 디스플레이하기 위한 방법 및 이를 위한 스마트 미러 | |
US9690982B2 (en) | Identifying gestures or movements using a feature matrix that was compressed/collapsed using principal joint variable analysis and thresholds | |
US11386806B2 (en) | Physical movement analysis | |
KR102242994B1 (ko) | 인공 신경망을 이용하여 사용자 맞춤형 골프 클럽을 추천하는 방법 및 장치 | |
KR20200144991A (ko) | 운동 보조 장치 및 운동 보조 방법 | |
KR102241414B1 (ko) | 머신 러닝 모델을 이용한 특정 움직임에 대한 피드백을 제공하는 전자 장치 및 그 동작 방법 | |
CN112149602B (zh) | 动作计数方法、装置、电子设备及存储介质 | |
KR20210128943A (ko) | 인공신경망을 이용한 스포츠 자세를 비교 및 교정하는 장치 및 방법 | |
US20210245005A1 (en) | Implementation of machine learning for skill-improvement through cloud computing and method therefor | |
US12062123B2 (en) | 3D avatar generation using biomechanical analysis | |
KR20220156691A (ko) | Ai 기반 운동 코칭 시스템, 방법 및 프로그램 | |
US20230077273A1 (en) | Method and apparatus for assisting exercise posture correction using working muscle information depending on motion | |
KR20230102011A (ko) | 스포츠 퍼포먼스 분석 및 코칭 시스템 및 그 방법 | |
CN112309540B (zh) | 运动评估方法、装置、系统及存储介质 | |
US11547904B2 (en) | Exercise assisting device and exercise assisting method | |
US11992745B2 (en) | Method and system for assessing and improving wellness of person using body gestures | |
KR20240085452A (ko) | 사용자의 골프 스윙 자세와 프로의 골프 스윙 자세를 비교하는 서비스를 제공하기 위한 방법 및 시스템 | |
US20230398408A1 (en) | Method, device, and non-transitory computer-readable recording medium for estimating information on golf swing | |
KR20230087352A (ko) | 운동 상태 감지 장치 및 방법 | |
KR20240085451A (ko) | 골프 프로 매칭 서비스를 제공하기 위한 방법 및 시스템 | |
US20240184796A1 (en) | Contextual coaching feedback based on received and historical musculoskeletal key-points | |
KR102633168B1 (ko) | 스윙 분석 장치 및 스윙 분석 방법 | |
KR102510048B1 (ko) | 운동 동작에 따른 증강현실 데이터를 출력하는 전자 장치의 제어 방법 | |
KR102696549B1 (ko) | 뉴럴 네트워크를 이용하여 골프 동작을 분석하고 분석 결과를 기초로 교육 컨텐츠를 제공하는 골프 코칭 방법 |