KR20230050262A - 테니스 자율훈련 시스템 - Google Patents

테니스 자율훈련 시스템 Download PDF

Info

Publication number
KR20230050262A
KR20230050262A KR1020220135024A KR20220135024A KR20230050262A KR 20230050262 A KR20230050262 A KR 20230050262A KR 1020220135024 A KR1020220135024 A KR 1020220135024A KR 20220135024 A KR20220135024 A KR 20220135024A KR 20230050262 A KR20230050262 A KR 20230050262A
Authority
KR
South Korea
Prior art keywords
ball
unit
central processing
user
tennis
Prior art date
Application number
KR1020220135024A
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 KR1020220135024A priority Critical patent/KR20230050262A/ko
Publication of KR20230050262A publication Critical patent/KR20230050262A/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B69/00Training appliances or apparatus for special sports
    • A63B69/40Stationarily-arranged devices for projecting balls or other bodies
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B69/00Training appliances or apparatus for special sports
    • A63B69/38Training appliances or apparatus for special sports for tennis
    • 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/0062Monitoring athletic performances, e.g. for determining the work of a user on an exercise apparatus, the completed jogging or cycling distance
    • 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/0087Electric or electronic controls for exercising apparatus of groups A63B21/00 - A63B23/00, e.g. controlling load
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B69/00Training appliances or apparatus for special sports
    • A63B69/40Stationarily-arranged devices for projecting balls or other bodies
    • A63B69/406Stationarily-arranged devices for projecting balls or other bodies with rotating discs, wheels or pulleys gripping and propelling the balls or bodies by friction
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B69/00Training appliances or apparatus for special sports
    • A63B69/40Stationarily-arranged devices for projecting balls or other bodies
    • A63B2069/402Stationarily-arranged devices for projecting balls or other bodies giving spin
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2102/00Application 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/02Tennis
    • 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
    • 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/83Special sensors, transducers or devices therefor characterised by the position of the sensor
    • A63B2220/833Sensors arranged on the exercise apparatus or sports implement
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2225/00Miscellaneous features of sport apparatus, devices or equipment
    • A63B2225/20Miscellaneous features of sport apparatus, devices or equipment with means for remote communication, e.g. internet or the like
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30221Sports video; Sports image

Landscapes

  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Toys (AREA)
  • Pinball Game Machines (AREA)
  • Human Computer Interaction (AREA)
  • Studio Devices (AREA)

Abstract

본 출원은 테니스 자율훈련 시스템에 관한 것으로, 테니스 경기 상황을 촬영하는 촬영부 및 상기 촬영부로부터 획득된 비디오를 기초로 경기 상황을 분석하는 제어부를 포함하는 중앙처리부; 및 상기 중앙처리부의 지시에 따라 이동하며 볼을 발사하는 볼 머신부를 포함하고, 상기 중앙처리부는, 상기 비디오를 이용하여 플레이어의 위치 및 상기 볼 머신부의 위치를 판단하고, 상기 비디오를 이용하여 상기 플레이어가 친 볼의 낙하 위치를 예측하고, 상기 플레이어의 위치 및 상기 예측된 낙하 위치를 고려하여 상기 볼 머신부의 볼 발사 위치 및 볼 도달 위치를 산출하고, 상기 산출된 볼 발사 위치 및 볼 도달 위치를 지시하는 제어신호를 생성하고, 상기 제어신호를 상기 볼 머신부로 전송하고, 상기 볼 머신부는, 상기 중앙처리부로부터 상기 제어신호를 수신하고, 상기 수신된 제어신호가 지시하는 볼 발사 위치에 따라 상기 볼 발사 위치로 이동하고, 상기 수신된 제어신호가 지시하는 볼 도달 위치에 따라 상기 볼 도달 위치로 볼을 발사하는 테니스 자율훈련 시스템이 제공된다.

Description

테니스 자율훈련 시스템{TENNIS SELF-TRAINING SYSTEM}
본 발명은 인공지능을 이용한 테니스 자율훈련 시스템에 관한 것으로, 보다 상세하게는 플레이어의 위치 및 움직임에 대응하여 연습용 볼을 투척할 수 있고 더불어 심판기능을 수행할 수 있는 인공지능을 이용한 테니스 자율훈련 시스템에 관한 것이다.
테니스 경기는 대부분 상대편을 두고 진행되기 때문에 상대진영이 없는 경우에는 경기를 진행하는 것이 제한된다. 이러한 제한을 극복하기 위해서 최근 들어 테니스를 혼자서 연습할 수 있도록 도와주는 다양한 기기나 장치들이 보급되고 있다. 예를 들어, 플레이어가 연습용 볼을 칠 수 있도록 플레이어의 근방으로 공을 투척해주는 볼 머신부가 있으며, 플레이어가 친 공이 라인을 벗어났는지 여부 등을 판단하는 무인심판시스템이 있다. 이러한 장치들은 플레이어가 상대방 또는 심판이 없이도 경기 또는 연습을 진행할 수 있도록 도와준다.
그러나 종래의 무인심판시스템은 훈련기능을 탑재하지 않아 실질적인 연습경기 진행이 제한되며, 플레이어의 운동 실력에 대한 평가와 분석 기능이 없어 체계적인 연습이 어렵다는 단점이 있었다. 또한, 종래의 볼 머신부는 저장된 훈련 프로그램에 맞춰 볼을 투척할 뿐 플레이어의 움직임이나 위치에 대응하여 유기적으로 볼을 투척할 수 없다는 문제점이 있었다.
본 발명이 해결하려는 과제는, 시간이나 인원의 제한 없이 테니스 연습경기를 할 수 있는 테니스 자율훈련 시스템을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 플레이어의 운동실력에 맞는 훈련프로그램을 제공하거나 운동자세에 따른 자세교정프로그램을 제공하는 테니스 자율훈련 시스템을 제공하는 것이다.
그러나 이러한 과제는 예시적인 것으로, 이에 의해 본 발명의 범위가 한정되는 것은 아니다.
본 발명의 일 실시예에 따르면, 테니스 경기 상황을 촬영하는 촬영부 및 상기 촬영부로부터 획득된 비디오를 기초로 경기 상황을 분석하는 제어부를 포함하는 중앙처리부; 및 상기 중앙처리부의 지시에 따라 이동하며 볼을 발사하는 볼 머신부를 포함하고, 상기 중앙처리부는, 상기 비디오를 이용하여 플레이어의 위치 및 상기 볼 머신부의 위치를 판단하고, 상기 비디오를 이용하여 상기 플레이어가 친 볼의 낙하 위치를 예측하고, 상기 플레이어의 위치 및 상기 예측된 낙하 위치를 고려하여 상기 볼 머신부의 볼 발사 위치 및 볼 도달 위치를 산출하고, 상기 산출된 볼 발사 위치 및 볼 도달 위치를 지시하는 제어신호를 생성하고, 상기 제어신호를 상기 볼 머신부로 전송하고, 상기 볼 머신부는, 상기 중앙처리부로부터 상기 제어신호를 수신하고, 상기 수신된 제어신호가 지시하는 볼 발사 위치에 따라 상기 볼 발사 위치로 이동하고, 상기 수신된 제어신호가 지시하는 볼 도달 위치에 따라 상기 볼 도달 위치로 볼을 발사하는 테니스 자율훈련 시스템이 제공될 수 있다.
상기 중앙처리부는, 상기 비디오를 이용하여 볼의 낙하 시점을 판단하고, 상기 비디오로부터 상기 낙하 시점에 해당하는 이미지 프레임을 추출하고, 상기 추출된 이미지 프레임의 시점을 변환하고, 상기 시점 변환된 이미지 프레임으로부터 볼의 낙하 위치를 판단할 수 있다.
상기 중앙처리부는, 상기 비디오를 이용하여 상기 비디오 내에서의 볼의 위아래 방향으로의 이동 방향을 감지하고, 상기 이동 방향이 아래 방향에서 위 방향으로 변화하는 시점을 상기 낙하 시점으로 판단할 수 있다.
상기 중앙처리부는, 상기 판단된 낙하 위치에 따라 볼의 인-아웃 여부를 판정할 수 있다.
상기 중앙처리부는, 상기 판정된 인-아웃 여부에 따라 경기 점수를 계산할 수 있다.
상기 촬영부는, 한 쪽 하프 코트를 촬영하는 제1 카메라 및 다른 쪽 하프 코트를 촬영하는 제2 카메라를 포함할 수 있고, 상기 중앙처리부는, 상기 제1 카메라로부터 획득된 제1 비디오를 이용하여 상기 낙하 위치를 1차적으로 예측하고, 상기 제2 카메라로부터 획득된 제2 비디오를 이용하여 상기 1차적으로 예측된 낙하 위치를 보정할 수 있다.
상기 중앙처리부는, 사용자로부터 테니스 코트 상의 적어도 두 지점의 위치를 입력받고, 상기 입력받은 적어도 두 지점의 위치를 이용하여 테니스 코트의 라인을 인식할 수 있다.
상기 중앙처리부는, 상기 입력받은 적어도 두 지점의 위치를 이용하여 테니스 코트의 베이스 라인 및 복식 사이드 라인을 인식하고, 테니스 코트의 규격에 따라 상기 인식된 베이스 라인 및 복식 사이드 라인으로부터 서비스 라인, 센터 서비스 라인 및 단식 사이드 라인 중 적어도 일부를 생성할 수 있다.
상기 중앙처리부는, 상기 입력받은 적어도 두 지점의 위치를 이용하여 상기 비디오 내의 상기 라인에 대응하는 픽셀들을 추출하고 상기 추출된 픽셀들로부터 상기 라인을 인식할 수 있다.
상기 중앙처리부는, 사용자로부터 자율훈련 난이도를 입력받고, 상기 자율훈련 난이도에 따라 상기 볼 도달 위치를 산출할 수 있다.
상기 중앙처리부는, 상기 플레이어의 위치를 기준으로 소정의 반경 내로 상기 볼 도달 위치를 산출하고, 상기 소정의 반경은 상기 자율훈련 난이도가 높아짐에 따라 증가하도록 설정되어 상기 자율훈련 난이도가 높을수록 상기 플레이어로부터 먼 위치로 상기 볼 도달 위치가 산출될 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은 시간 제약과 추가적인 비용 지출 없이 경기 분석 및 사용자 맞춤형 코칭 프로그램을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 테니스 자율훈련 시스템이 수행되는 것을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 테니스 자율훈련 시스템의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 테니스 자율훈련 시스템이 사용자로부터 테니스 코트를 인식하기 위한 입력을 획득하는 것을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 중앙처리부가 테니스 코트를 인식하는 것을 나타낸 도면이다.
도 5은 본 발명의 일 실시예에 따른 중앙처리부가 차영상을 이용하여 볼을 인식하는 것을 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 중앙처리부가 볼의 낙하 시점 및 낙하 위치를 판단하는 것을 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 중앙처리부가 볼의 낙하 위치 및 낙하 시점을 예측하는 것을 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 중앙처리부를 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른 볼 머신부를 나타낸 도면이다.
도 10 및 도 11은 본 발명의 일 실시예에 따른 사용자 모드에 관한 도면이다.
도 12는 본 발명의 일 실시예에 따른 코치 모드 및 고정 모드에 관한 도면이다.
도 13은 본 발명의 일 실시예에 따른 모바일 디바이스를 통해 제공되는 어플리케이션 화면의 일 예를 나타낸 도면이다.
도 14는 본 발명의 일 실시예에 따른 서버가 운동 자세를 인식하는 것에 관한 도면이다.
도 15는 본 발명의 일 실시예에 따른 모바일 디바이스를 통해 제공되는 코칭 데이터에 관한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명하는데 있어서, 해당 분야에 이미 공지된 기술 또는 구성에 대한 구체적인 설명을 부가하는 것이 본 발명의 요지를 불분명하게 할 수 있다고 판단되는 경우에는 상세한 설명에서 이를 일부 생략하도록 한다. 또한, 본 명세서에서 사용되는 용어들은 본 발명의 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 해당 분야의 관련된 사람 또는 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
여기서 사용되는 전문용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 '포함하는'의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특정 특성, 영역, 정수, 단계, 동작, 요소, 성분 및/또는 군의 존재나 부가를 제외시키는 것은 아니다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은 상호 무선통신으로 연결되는 중앙처리부, 볼 머신부 및 모바일 디바이스를 포함하는 테니스 자율훈련 시스템에 있어서, 상기 중앙처리부는 플레이어의 움직임, 볼(Ball)의 궤적 및 경기장을 촬영하여 영상 데이터로 변환하는 촬영부, 상기 영상 데이터를 비전인식 알고리즘으로 분석하여 상기 볼 머신부의 위치, 플레이어의 위치 및 볼의 위치를 포함하는 제1 데이터를 도출하고, 상기 제1 데이터를 기반으로 볼이 경기장 지면에 닿을때 인-아웃 여부를 판정한 결과인 제2 데이터를 도출하는 제어부, 상기 영상 데이터, 제1 데이터 및 제2 데이터를 저장하는 저장부, 및 상기 볼 머신부 및 모바일 디바이스와 무선통신으로 데이터를 송수신하는 통신부를 포함하고, 상기 볼 머신부는 상기 제1 데이터를 기반으로 볼을 발사하고, 상기 모바일 디바이스는 상기 중앙처리부로부터 직간접적으로 상기 영상 데이터 및 분석데이터를 수신하여 사용자에게 출력하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 제어부는 상기 제1 데이터를 기반으로 상기 볼 머신부가 이동할 위치 및 볼을 발사할 방향을 포함하는 제3 데이터를 도출하고, 상기 볼 머신부는 상기 중앙처리부로부터 상기 제3 데이터를 수신하여 상기 제3 데이터에 따라 이동한 후 볼을 발사하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 제어부는 볼을 인식하고 그 위치를 도출함에 있어, 영상 데이터에서 연속되는 프레임들 간에 차이점을 기초로 움직이는 물체를 찾는 제1 조건, 영상 데이터를 색채 분할하여 기 설정된 볼 색채 정보에 대응되는 물체를 찾는 제2 조건, 및 영상 데이터의 윤곽 특징을 검출하여 기 설정된 볼의 넓이, 비율 및 밀집도 등에 대응되는 물체를 찾는 제3 조건 중 적어도 2개 조건을 만족하는 물체를 인식하고 그 위치를 도출하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 제어부는, 현재 볼의 이동 속도와 방향을 기초로 예측되는 다음 위치와 실제의 다음 위치를 비교하여 그 오차율을 계산하여 상대적으로 볼의 오차율 또는 오차율의 변동폭보다 크게 측정되는 물체를 볼이 아닌 것으로 판단하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 제어부는 상기 제1 데이터를 기반으로 볼의 낙하 위치를 예측하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 제어부는 상기 제2 데이터를 기반으로 경기점수를 산출하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 중앙처리부는 테니스 코트의 지주에 고정되는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 볼 머신부는 상기 모바일 디바이스를 통해 입력되는 사용자의 조작에 따라 이동하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 테니스 자율훈련 시스템은 상기 모바일 디바이스 또는 상기 중앙처리부로부터 상기 영상 데이터 및 상기 제1 데이터를 수신하고, 상기 영상 데이터 및 상기 제1 데이터를 기반으로 플레이어의 운동패턴, 운동실력 및 운동자세를 포함하는 제4 데이터를 도출하는 서버를 더 포함하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 서버는 상기 제4 데이터를 기반으로 플레이어의 자세를 분석하고, 플레이어의 자세를 보완할 수 있는 자세교정솔루션을 도출하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 서버는 상기 제4 데이터를 기반으로 플레이어의 취약점을 분석하고, 플레이어의 취약점을 보완할 수 있는 취약점솔루션을 도출하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 서버는 상기 제4 데이터를 기반으로 플레이어의 신체 부위별 부상위험도를 도출하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 서버는 상기 제4 데이터를 기반으로 플레이어의 운동실력에 대응하는 훈련프로그램을 도출하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 서버는 상기 훈련프로그램을 상기 모바일 디바이스에 전송하고, 상기 모바일 디바이스는 사용자의 선택에 따라 훈련프로그램을 상기 중앙처리부에 전송하는 테니스 자율훈련 시스템일 수 있다.
본 발명의 일 실시예에 따른 테니스 자율훈련 시스템은, 상기 볼 머신부는 사용자가 미리 정한 설정에 따라 볼의 발사 시작 전 또는 볼의 발사 종료 전에 알림신호를 출력하는 테니스 자율훈련 시스템일 수 있다.
이하, 첨부된 도면들을 참조하여 본 발명의 일 실시예에 따른 테니스 자율훈련 시스템(1)에 대해서 설명하도록 한다.
테니스 자율훈련 시스템(1)은 플레이어가 상대방 없이 혼자서 테니스를 연습할 수 있도록 플레이어에게 연습용 볼을 발사해주고, 플레이어가 친 볼의 인-아웃(In-Out) 판정을 통해 경기점수를 산출할 수 있는 시스템이다. 또한, 플레이어의 움직임을 영상 데이터(이미지 또는 비디오)로 변환하고 비전인식 알고리즘을 통해 영상 데이터로부터 플레이어의 운동패턴, 자세 등을 파악하여 플레이어의 운동실력에 맞는 훈련프로그램과 자세교정을 위한 솔루션을 제공할 수 있다. 이를 통해 시간과 인원의 제약 없이 테니스를 즐길 수 있다. 뿐만 아니라 전문코치의 직접적인 도움 없이도 플레이어 혼자서 운동 실력을 함양할 수 있다. 나아가 전문 코치가 본 발명의 실시예에 따른 테니스 자율훈련 시스템(1)을 활용하여 플레이어에게 보다 효과적인 코칭을 제공하도록 할 수 있다.
테니스 자율훈련 시스템(1)은 네트워크(10)를 통해 통신 가능하게 연결되는 중앙처리부(100), 볼 머신부(300), 모바일 디바이스(200) 및 서버(400)를 포함한다. 도 1을 참조하면, 중앙처리부(100)는 플레이어의 테니스 연습 과정을 촬영하여 영상 데이터로 변환하고, 비전인식 알고리즘을 통해서 소정의 데이터를 생성할 수 있다. 중앙처리부(100)는 상기 소정의 데이터를 기초로 제어신호를 도출하고, 볼 머신부(300)는 중앙처리부(100)로부터 상기 제어신호를 전달받아 상기 제어신호에 따라 플레이어에게 연습용 볼을 발사할 수 있다. 상기 소정의 데이터 중 적어도 일부는 저장되거나 가공되어 모바일 디바이스(200)를 통해 사용자에게 제공될 수 있다. 모바일 디바이스(200)는 중앙처리부(100)가 촬영한 영상 데이터 또는 영상 데이터를 통해 도출된 분석데이터를 사용자에게 화면상으로 출력할 수 있다. 또한, 모바일 디바이스(200)는 사용자로부터 입력되는 사용자 입력에 의해 볼 머신부(300)에게 제어신호를 전송할 수도 있다. 서버(400)는 중앙처리부(100) 또는 모바일 디바이스(200)로부터 영상 데이터 등을 전송받아 일정한 데이터 가공을 통해 사용자에게 도움을 줄 수 있는 코칭 데이터를 제공할 수 있다. 이렇게 테니스 자율훈련 시스템(1)은 각 구성이 유기적으로 연결되어 있어 플레이어가 혼자서 테니스를 연습할 수 있고, 플레이어는 자신에게 맞는 훈련프로그램을 제공받아 셀프 훈련을 수행할 수 있다.
도 1에 도시된 것과 같이 중앙처리부(100)는 네트의 일 측에 설치될 수 있다. 예를 들어, 중앙처리부(100)는 네트를 지지하는 2개의 지주 중 하나에 설치될 수 있다. 도 1에는 하나의 테니스 코트에 하나의 중앙처리부(100)가 설치된 것으로 도시되었으나, 둘 이상의 중앙처리부를 설치하는 것을 배제하는 것은 아니다. 예를 들어, 하나의 테니스 코트에 한 쌍의 중앙처리부가 설치될 수도 있다. 이 경우, 한 쌍의 중앙처리부는 네트를 지지하는 2개의 지주 각각에 설치될 수 있다.
한 쌍의 중앙처리부가 설치되는 경우, 제1 중앙처리부에 구비된 촬영부의 제1 화각(field of view, FOV)의 일부는 제2 중앙처리부에 구비된 촬영부의 제2 화각의 일부와 오버랩될 수 있다. 예를 들어, 상기 한 쌍의 중앙처리부 중 하나는 다른 하나와 마주보도록 설치될 수 있다. 하나의 중앙처리부에 카메라가 2 이상 설치되는 경우, 상기 제1 화각은 상기 2 이상의 카메라 각각의 화각의 합을 의미할 수 있으며, 상기 제2 화각 또한 마찬가지이다. 그러나, 반드시 제1 화각과 제2 화각이 오버랩되어야 하는 것은 아니다. 예를 들어, 상기 제1 화각은 한 쪽 하프 코트를 커버하고, 상기 제2 화각은 다른 쪽 하프 코트를 커버하도록 설치될 수 있다.
도 2에 도시된 것과 같이 중앙처리부(100)는 촬영부(110), 출력부(120), 제어부(130), 저장부(140) 및 통신부(150)를 포함할 수 있다.
촬영부(110)는 플레이어 또는 볼 머신부의 위치, 움직임, 플레이어가 볼을 쳤을 때의 위치(스탠딩 포인트), 움직임, 전체 운동 영상, 플레이어의 운동량, 볼의 인/아웃 기록, 볼의 궤적, 볼의 낙하 위치 및 경기장 등을 촬영할 수 있다.
촬영부(110)는 하나 이상의 카메라를 포함할 수 있다. 카메라는 가시광선 영역을 촬영할 수 있는 이미지 센서를 포함하며, 이미지 센서는 CCD(Charge Coupled Device) 센서, CMOS(Complementary Metal-Oxide Semiconductor) 센서를 의미할 수 있으나 이에 제한되는 것은 아니고, 영상을 촬영할 수 있는 센서라면 기타 통상의 기술자에게 자명한 모든 이미지 센서를 포함할 수 있다. 촬영부(110)가 촬영한 영상은 영상 데이터로 변환되며, 제어부(120), 저장부(130), 모바일 디바이스(200), 서버(400) 등에 전달될 수 있다.
도 1에 도시된 것과 같이 촬영부(110)는 2개의 카메라(111, 112)를 포함할 수 있다. 예를 들어, 제1 카메라(111)는 한 쪽 하프 코트를 촬영하고, 제2 카메라(112)는 다른 쪽 하프 코트를 촬영할 수 있다. 이 경우, 제1 카메라(111)의 화각의 일부는 제2 카메라(112)의 화각의 일부와 오버랩될 수 있다. 예를 들어, 제1 카메라(111)와 제2 카메라(112) 모두 네트 근처의 소정의 영역을 촬영할 수 있다.
출력부(120)는 사용자에게 정보를 제공할 수 있다. 출력부(120)는 소리를 통해 청각적으로 사용자에게 정보를 제공할 수 있다. 이 경우 출력부(120)는 스피커를 포함할 수 있다. 출력부(120)는 이미지나 비디오를 통해 시각적으로 사용자에게 정보를 제공할 수 있다. 이 경우 출력부(120)는 디스플레이를 포함할 수 있다. 출력부(120)는 LED와 같은 불빛을 통해 사용자에게 정보를 제공할 수 있다.
중앙처리부(100)가 수행하는 동작은 제어부(130)에 의해 수행되거나 제어부(130)가 중앙처리부(100)의 다른 구성 요소를 제어하여 수행될 수 있다.
제어부(130)는 중앙처리부(100) 내에서 각종 정보의 처리와 연산을 수행할 수 있다. 제어부(130)는 중앙처리부(100)를 구성하는 다른 구성 요소를 제어할 수 있다.
제어부(130)는 하드웨어, 소프트웨어 또는 이들의 조합에 따라 컴퓨터나 이와 유사한 장치로 구현될 수 있다. 하드웨어적으로 제어부(130)는 하나 또는 복수의 프로세서(processor)일 수 있다. 또는, 제어부(130)는 물리적으로 이격되어 통신을 통해 협업하는 프로세서들로 제공될 수도 있다. 제어부(130)의 예로는 중앙 처리 장치(Central Processing Unit, CPU), 그래픽 처리 장치(Graphics Processing Unit, GPU), 디지털 신호 처리 장치(Digital Signal Processor, DSP), 상태 기계(state machine), 주문형 반도체(Application Specific Integrated Circuit, ASIC), 무선 주파수 집적 회로(Radio-Frequency Integrated Circuit, RFIC) 등이 있을 수 있으나, 이에 한정되는 것은 아니다. 소프트웨어적으로 제어부(130)는 하드웨어적인 제어부(130)를 구동시키는 프로그램이나 애플리케이션 형태로 제공될 수 있다.
제어부(130)는 영상 데이터 기초하여 다음 중 적어도 일부를 수행할 수 있다: 테니스 코트 인식, 볼 인식, 볼 추적, 볼 낙하 시점 판단, 플레이어가 볼을 친 시점 판단, 볼 낙하 위치 판단, 볼 인-아웃 판정, 점수 계산, 볼 낙하 위치 예측, 볼 낙하 시점 예측, 머신부 및 플레이어 위치 파악, 볼 머신부를 제어하기 위한 제어신호 생성 및 전송.
제어부(130)는 테니스 코트를 인식할 수 있다. 예를 들어, 제어부(130)는 테니스 코트의 라인을 인식할 수 있다. 제어부(130)는 영상 데이터를 기초로 테니스 코트를 인식하여 코트 정보를 도출할 수 있다.
일 실시예에 따르면, 제어부(130)는 사용자 입력에 기초하여 테니스 코트를 인식할 수 있다. 여기서, 상기 사용자 입력은 테니스 코트 상의 특정 지점이나 선, 영역 등의 위치를 지시하는 것일 수 있다. 제어부(130)는 상기 사용자 입력을 통해 획득한 기준에 따라 테니스 코트를 인식할 수 있다. 일 예로, 제어부(130)는 사용자로부터 입력받은 특정 지점을 기준점으로 하여 테니스 코트를 인식할 수 있다. 다른 예로, 제어부(130)는 사용자로부터 입력받은 선을 기준선으로 하여 테니스 코트를 인식할 수 있다. 또 다른 예로, 제어부(130)는 사용자로부터 입력받은 영역을 기준영역으로 하여 테니스 코트를 인식할 수 있다.
도 3을 참조하면, 제어부(130)는 출력부(120) 또는 모바일 디바이스(200)를 통해 테니스 코트 이미지(20)를 출력할 수 있다.
이 후, 제어부(130)는 사용자로부터 테니스 코트의 베이스 라인과 복식 사이드 라인이 만나는 지점인 바깥쪽 코너(21, 22)의 위치를 입력받을 수 있다. 예를 들어, 사용자는 출력부(120) 또는 모바일 디바이스(200)의 화면에 디스플레이된 테니스 코트 이미지(20)에서 상기 바깥쪽 코너(21, 22)를 터치하거나(화면이 터치 스크린인 경우) 마우스와 같은 입력 장치로 클릭하거나 이에 상응하는 방식을 수행하여 상기 바깥쪽 코너(21, 22)의 위치를 입력할 수 있다. 또는, 사용자는 출력부(120) 또는 모바일 디바이스(200)의 화면에 테니스 코트 이미지(20)와 함께 디스플레이된 2개의 기준점을 상기 바깥쪽 코너(21, 22)에 위치시켜 상기 바깥쪽 코너(21, 22)의 위치를 입력할 수 있다. 제어부(130)는 상기 바깥쪽 코너(21, 22)의 위치를 입력하라는 메시지를 시각적 또는 청각적으로 출력할 수 있다.
제어부(130)는 상기 입력받은 바깥쪽 코너(21, 22)의 위치를 이용하여 테니스 코트 이미지(20)로부터 테니스 코트 이미지(20) 상의 베이스 라인과 복식 사이드 라인을 인식할 수 있다. 테니스 코트는 정해진 규격이 있으므로, 서비스 라인, 센터 서비스 라인, 단식 사이드 라인과 같은 다른 라인들은 인식된 베이스 라인과 복식 사이드 라인에 기초하여 가상으로 생성될 수 있다. 물론, 상기 다른 라인들 또한 가상으로 생성되는 것이 아닌 테니스 코트 이미지(20)로부터 인식될 수도 있다.
도 3에는 사용자로부터 바깥쪽 코너(21, 22)의 위치를 입력받는 것으로 도시되었으나, 사용자로부터 입력받는 위치가 이에 한정되는 것은 아니다. 예를 들어, 제어부(130)는 사용자로부터 베이스 라인과 단식 사이드 라인이 만나는 지점인 안쪽 코너의 위치를 입력받거나, 바깥쪽 코너(21, 22)의 위치와 안쪽 코너의 위치를 모두 입력받을 수도 있고, 그 외 다른 지점의 위치를 입력받을 수도 있다.
또는, 제어부(130)는 사용자로부터 지점이 아닌 선이나 영역을 입력받을 수 있다. 예를 들어, 제어부(130)는 사용자로부터 베이스 라인과 복식 사이드 라인을 입력받을 수 있다. 이 경우, 사용자는 출력부(120) 또는 모바일 디바이스(200)의 화면에 디스플레이된 테니스 코트 이미지(20)에서 베이스 라인과 복식 사이드 라인을 따라 슬라이드 터치하거나(화면이 터치 스크린인 경우) 마우스와 같은 입력 장치로 드래그 앤 드롭하거나 이에 상응하는 방식으로 베이스 라인과 복식 사이드 라인을 입력할 수 있다. 또는, 사용자는 출력부(120) 또는 모바일 디바이스(200)의 화면에 테니스 코트 이미지(20)와 함께 디스플레이된 3개의 기준선을 베이스 라인과 복식 사이드 라인에 위치시켜 베이스 라인과 복식 사이드 라인을 입력할 수 있다.
이하에서는 테니스 코트를 인식하는 것과 이때 사용자 입력이 어떻게 이용될 수 있는지에 대해 도 4를 참조하여 보다 구체적으로 설명한다.
도 4의 (a)를 참조하면, 제어부(130)는 테니스 코트 이미지를 획득할 수 있다. 제어부(130)는 상기 테니스 코트 이미지에 환경 보정과 같은 전처리를 수행할 수 있다. 예를 들어, 제어부(130)는 다음 중 적어도 일부와 같은 전처리를 수행할 수 있다: LAB Color Space 알고리즘을 기반으로 영상 내 인식 방해 요소(예: 사용 환경에 따른 광량, 코트 재질 등)에 대한 환경 보정, Gaussian filter를 적용한 영상 내 노이즈 필터링. 전처리를 통해 주간, 야간, 직사광선이 존재하는 경우, 조명이 강한 경우 등 다양한 환경에서 코트 인식이 가능해져 코트 인식 알고리즘의 강건성이 개선될 수 있다.
도 4의 (b)를 참조하면, 제어부(130)는 상기 테니스 코트 이미지로부터 테니스 라인에 대응하는 픽셀들을 추출할 수 있다. 예를 들어, 제어부(130)는 특정 색상에 대응하는 픽셀들만을 테니스 코트 이미지로부터 추출함으로써 테니스 라인에 대응하는 픽셀들을 추출할 수 있다. 이때, 일반적으로 테니스 라인은 흰 색이므로, 제어부(130)는 흰색 영역 추출(white region extraction)을 통해 테니스 라인에 대응하는 픽셀들을 추출할 수 있을 것이나, 이에 한정되는 것은 아니다.
제어부(130)는 상기 테니스 코트 이미지로부터 테니스 라인에 대응하는 픽셀들을 추출함에 있어 사용자 입력을 이용하여 테니스 라인에 대응하는 픽셀들을 추출할 수 있다. 일 예로, 사용자로부터 기준점(예: 바깥쪽 코너(21, 22)의 위치)을 입력받은 경우, 제어부(130)는 상기 기준점과 인접하거나 이와 연결되는 것으로 볼 수 있는 픽셀들을 테니스 라인에 대응하는 것으로 판단할 수 있다. 다른 예로, 사용자로부터 기준선이나 기준영역을 입력받은 경우, 제어부(130)는 상기 기준선 또는 상기 기준영역과 인접하거나 이와 연결되는 것으로 볼 수 있는 픽셀들을 테니스 라인에 대응하는 것으로 판단할 수 있다. 이에 따라 제어부(130)는 테니스 라인 외의 노이즈에 해당하는 픽셀들을 배제할 수 있어 테니스 라인에 대응하는 픽셀을 추출하는 것의 정확도가 향상될 수 있다. 예를 들어, 제어부(130)가 흰색 영역 추출을 통해 추출한 픽셀들은 테니스 라인에 해당하지 않는 하늘이나 기타 객체에 대응하는 노이즈 픽셀들을 포함할 수 있고, 이들은 기준점, 기준선 또는 기준영역과 인접하거나 이와 연결되는 것으로 볼 수 없을 것이므로, 사용자로부터 입력받은 기준점, 기준선 또는 기준영역을 이용함으로써 상기 노이즈 픽셀들을 제거할 수 있어 테니스 라인에 대응하는 픽셀을 추출하는 것의 정확도가 향상될 수 있다.
도 4의 (c)를 참조하면, 제어부(130)는 상기 추출된 픽셀들로부터 테니스 코트의 라인을 인식할 수 있다. 예를 들어, 제어부(130)는 상기 추출된 픽셀들을 기초로 생성된 라인들 중 코트 중앙을 기준으로 바깥쪽에 위치하는 라인을 테니스 코트의 라인으로 인식할 수 있다. 다른 예를 들어, 제어부(130)는 상기 추출된 픽셀들 중 코트 중앙을 기준으로 바깥쪽에 위치하는 픽셀들로 테니스 코트의 라인을 인식할 수 있다. 이에 따라, 제어부(130)는 인식된 라인을 통해 볼의 인-아웃을 판정할 수 있다. 제어부(130)는 Hough line transformation 및 RANSAC 알고리즘 중 적어도 하나를 이용해 상기 추출된 픽셀들로부터 테니스 코트의 라인을 인식할 수 있으나, 이 외의 방식을 이용하는 것을 제한하는 것은 아니다.
한편, 제어부(130)가 반드시 사용자 입력에 기초하여 테니스 코트를 인식해야 하는 것은 아니고, 이 경우 전술한 사용자 입력에 기초하여 테니스 코트를 인식하는 내용 중 사용자 입력을 이용하는 부분 외의 내용에 따라 테니스 코트를 인식할 수 있다. 다만, 사용자 입력을 이용하여 테니스 코트를 인식하는 경우 테니스 코트 라인이 선명하게 보이지 않은 상황(예: 코트의 노후화, 분필 코트, 야간 조명, 페인트 노화, 임시 코트 등)에서도 보다 정확하게 라인을 인식할 수 있는 장점이 있다.
또는, 제어부(130)는 테니스 코트 이미지에서 테니스 코트의 모서리와 가장자리를 검출하고, clustering을 사용하여 직선들(테니스 코트의 라인)을 파악하여 테니스 코트의 라인을 인식할 수 있다.
제어부(130)는 테니스 코트가 인식되었음을 사용자에게 알릴 수 있다. 예를 들어, 제어부(130)는 특정 소리를 출력하여 테니스 코트가 인식되었음을 사용자에게 알릴 수 있다.
제어부(130)는 볼을 인식할 수 있다. 제어부(130)는 영상 데이터를 기초로 볼을 인식하여 볼 인식 정보를 도출할 수 있다. 여기서, 볼을 인식한다는 것은 영상 내에 볼에 해당하는 픽셀을 검출하는 것을 의미할 수 있다. 또는, 볼을 인식한다는 것은 영상 내에서의 볼의 좌표를 검출하는 것을 의미할 수 있다. 또는, 볼을 인식한다는 것은 볼의 위치를 측정하는 것을 의미할 수 있다.
일 실시예에 따르면, 제어부(130)는 차영상(frame difference image)을 이용하여 볼을 인식할 수 있다.
도 5의 (a)를 참조하면, 제어부(130)는 영상 데이터에서 프레임들 간의 차이를 통해 차영상을 생성할 수 있다. 상기 차영상에는 상기 프레임들 사이에서 움직인 객체에 대한 정보가 포함된다.
도 5의 (b)를 참조하면, 제어부(130)는 상기 차영상에서 볼을 인식할 수 있다. 테니스를 치는 영상에는 일반적으로 움직이는 볼 뿐만 아니라 사람이나 기타 객체가 움직이는 것 또한 나타나고, 차영상만으로는 객체의 종류까지는 확인할 수 없기 때문에, 제어부(130)는 상기 차영상에서 볼을 인식하기 위한 추가적인 단계를 수행해야 한다. 예를 들어, 제어부(130)는 객체 검출(object detection)이나 세그멘테이션(segmentation)과 같은 기법을 통해 상기 차영상에서 볼을 인식할 수 있으나, 이에 한정되는 것은 아니다.
전술한 바와 같이 차영상을 이용하여 볼을 인식하는 경우, 움직이지 않는 객체는 차영상에 표현되지 않으므로 움직이지 않는 볼을 인식하는데 효과적이지 않다. 따라서, 움직이지 않는 볼을 인식하고자 할 때에는 제어부(130)는 이미지 또는 비디오에 객체 검출(object detection)이나 세그멘테이션(segmentation)과 같은 기법을 적용해 볼을 인식할 수 있다. 이 경우에도 움직이는 볼을 인식할 수 있으므로, 움직이는 볼을 인식하는 경우에도 반드시 차영상이 이용되어야 하는 것은 아니다.
제어부(130)는 움직이는 볼을 인식하는 경우와 움직이지 않는 볼을 인식하는 경우에 서로 다른 알고리즘을 이용할 수 있다. 예를 들어, 제어부(130)는 움직이는 볼을 인식하는 경우 차영상을 이용하는 알고리즘을 이용하고, 움직이지 않는 볼을 인식하는 경우 차영상을 이용하지 않는 알고리즘을 이용할 수 있다.
다른 실시예에 따르면, 제어부(130)는 색체 정보를 이용하여 볼을 인식할 수 있다. 제어부(130)는 이미지 또는 비디오를 색채 분할하여 기설정되거나 저장된 테니스 볼로 사용될 수 있는 기준 색채 정보와 비교하여 이에 대응되는 객체를 볼로 인식할 수 있다. 일반적으로 테니스 볼의 색깔은 연두색이 사용되나 빨간색, 분홍색, 파란색 볼도 사용될 수 있으므로, 이와 유사한 색깔의 객체를 볼로 인식할 수 있도록 상기 기준 색채 정보가 기설정되거나 저장될 수 있다.
또 다른 실시예에 따르면, 제어부(130)는 윤곽 특징을 이용하여 볼을 인식할 수 있다. 제어부(130)는 영상 데이터의 윤곽 특징을 검출하여 기설정된 크기, 비율 및 밀집도 중 적어도 하나를 만족하는 객체를 볼로 인식할 수 있다. 제어부(130)는 윤곽 특징을 통해 영역의 크기, 근사화, 무게중심 등의 특성을 도출할 수 있다.
제어부(130)는 전술한 볼 인식에 관한 실시예들 중 둘 이상을 조합하여 볼을 인식할 수 있다. 예를 들어, 제어부(130)는 전술한 실시예들 중 둘 이상에 대해 각각을 개별적인 조건으로 보고, 미리 정해진 개수 이상의 조건이 만족하는 객체를 볼로 인식할 수 있다.
제어부(130)는 인식된 볼을 추적할 수 있다. 제어부(130)는 전술한 볼 인식 정보를 기초로 볼을 추적하여 볼 추적 정보를 도출할 수 있다. 상기 볼 추적 정보는 볼의 이동 경로를 포함할 수 있다.
제어부(130)는 볼 추적 정보에 소정의 알고리즘을 적용하여 볼의 이동 경로를 예측할 수 있다. 또한, 제어부(130)는 볼 추적 정보에 소정의 알고리즘을 적용하여 볼의 위치를 보정할 수 있다. 이때 사용될 수 있는 알고리즘의 일 예로 칼만 필터를 들 수 있다. 칼만 필터는 객체의 이동 속도와 방향을 이용하여 객체의 다음 위치를 예상하고 실제 위치와 예상한 위치의 오차율을 계산하여 예상값을 보정시키는 알고리즘이다.
제어부(130)는 볼 추적 정보를 볼을 인식하는 것에 이용할 수 있다.
일 예로, 볼을 추적하는 도중에 영상 내에 새로운 볼이 나타나는 경우(주변 코트의 공이 나타나는 경우 등), 다시 말해 영상 내에 복수의 볼이 나타나는 경우, 복수의 볼 중 추적된 볼의 이동 경로와 가장 가까운 볼을 인식하거나, 예측된 볼의 이동 경로와 가장 가까운 볼을 인식할 수 있다.
다른 예로, 테니스 볼은 과도한 외기의 변화가 없는 이상 어느 정도의 예측되는 속도, 가속도 및 방향으로 움직이기에 예상값의 오차율이 상대적으로 적으나 볼이 아닌 객체들은 오차율 또는 오차율의 변동 값이 볼에 비해 상대적으로 크게 변동하므로 이러한 정보를 기초로 해당 객체가 볼이 아님을 판별할 수 있다.
제어부(130)는 볼 추적 정보를 이용하여 볼의 속도를 측정할 수 있다. 제어부(130)는 볼 추적 정보를 이용하여 볼의 이동 방향을 도출할 수 있다.
제어부(130)는 볼이 지면에 낙하한 시점을 판단할 수 있다. 예를 들어, 제어부(130)는 볼 추적 정보를 기초로 볼 낙하 시점을 도출할 수 있다.
일 예로, 제어부(130)는 영상 내에서의 볼의 이동 방향 변화를 감지하여 볼이 지면에 낙하한 시점을 판단할 수 있다. 도 6의 (a)를 참조하면, t1 시점에서 t2 시점까지는 볼이 영상 내에서 아래 방향으로 이동하고(y값이 작아지는 방향), t2 시점에서 t3 시점까지는 위 방향으로 이동한다(y값이 커지는 방향). 이 경우 제어부(130)는 볼의 이동 방향이 아래 방향에서 위 방향으로 변화하는 시점을 볼 낙하 시점으로 판단할 수 있다.
다른 예로, 제어부(130)는 영상 내에서의 볼의 속도를 감지하여 볼이 지면에 낙하한 시점을 판단할 수 있다. 도 6의 (a)를 참조하면, 위 방향으로 향하는 속도를 +(양수)로 설정할 경우 볼의 y축 방향으로의 속도의 부호가 -에서 +로 변경되는 시점이 볼이 지면에 낙하한 시점이 된다. 따라서, 제어부(130)는 영상 내에서의 볼의 y축 방향으로의 속도의 부호가 변경되는 시점을 볼 낙하 시점으로 판단할 수 있다.
제어부(130)는 플레이어가 볼을 친 시점을 판단할 수 있다. 예를 들어, 제어부(130)는 볼 추적 정보를 기초로 플레이어가 볼을 친 시점을 판단할 수 있다.
일 예로, 제어부(130)는 영상 내에서의 볼의 이동 방향 변화를 감지하여 플레이어가 볼을 친 시점을 판단할 수 있다. 도 6의 (a)를 참조하면, 플레이어가 볼을 치기 전에는 볼이 영상 내에서 좌측 방향으로 이동하고(x값이 작아지는 방향), 볼을 친 이후에는 우측 방향으로 이동할 것이다(x값이 커지는 방향). 이 경우 제어부(130)는 볼의 이동 방향이 좌측 방향에서 우측 방향으로 변화하는 시점을 플레이어가 볼을 친 시점으로 판단할 수 있다.
다른 예로, 제어부(130)는 영상 내에서의 볼의 속도를 감지하여 플레이어가 볼을 친 시점을 판단할 수 있다. 도 6의 (a)를 참조하면, 우측 방향으로 향하는 속도를 +(양수)로 설정할 경우 볼의 x축 방향으로의 속도의 부호가 -에서 +로 변경되는 시점이 플레이어가 볼을 친 시점이 된다. 따라서, 제어부(130)는 영상 내에서의 볼의 x축 방향으로의 속도의 부호가 변경되는 시점을 플레이어가 볼을 친 시점으로 판단할 수 있다.
또한, 이러한 과정에서 플레이어가 볼을 쳤을 때의 플레이어의 위치도 예측할 수 있다. 제어부(130)는 플레이어가 볼을 친 것으로 판단한 시점에서의 볼의 위치 근처에 플레이어가 위치한 것으로 예측할 수 있다.
제어부(130)는 볼의 낙하 위치를 판단할 수 있다. 제어부(130)는 전술한 볼 인식 정보, 볼 추적 정보 및 볼 낙하 시점 중 적어도 일부를 기초로 볼의 낙하 위치 정보를 도출할 수 있다.
제어부(130)는 볼 낙하 시점에 기초하여 볼의 낙하 위치를 판단할 수 있다.
일 실시예에 따르면, 제어부(130)는 볼이 지면에 낙하한 시점의 영상의 시점 변환을 통해 볼의 낙하 위치를 판단할 수 있다. 도 6의 (b)를 참조하면, t2 시점에서 볼이 지면에 낙하하므로, t2 시점의 영상을 투영 변환(perspective transformation)과 같은 시점 변환 알고리즘을 통해 측면 시점(side view) 또는 원근 시점(perspective view)인 영상 시점을 평면 시점(top view)으로 변환하여 볼의 낙하 위치를 판단할 수 있다. 이때, 제어부(130)는 전술한 바와 같이 인식한 테니스 코트 라인을 기반으로 시점 변환을 수행할 수 있다.
제어부(130)는 평면 시점과 같이 시점 변환한 영상을 사용자에게 중앙처리부(100)나 모바일 디바이스(200) 등을 통해 제공할 수 있다. 이를 통해 사용자는 볼의 인-아웃 여부를 시각적으로 확인할 수 있다.
한편, 반드시 시점 변환을 통해 볼의 낙하 위치를 판단해야 하는 것은 아니고, 제어부(130)는 시점 변환 없이 볼이 지면에 낙하한 시점의 영상으로부터 볼의 낙하 위치를 판단할 수도 있다.
제어부(130)는 테니스 코트의 라인과 볼의 낙하 위치를 파악하여 볼의 인-아웃 여부를 판정할 수 있다. 제어부(130)는 볼의 낙하 위치가 라인을 기준으로 코트 안쪽인 경우 볼 인으로 판정할 수 있다. 제어부(130)는 볼의 낙하 위치가 라인을 기준으로 코트 바깥쪽인 경우 볼 아웃으로 판정할 수 있다.
제어부(130)는 점수를 계산할 수 있다.
일 예로, 제어부(130)는 볼의 인-아웃 판정 결과를 바탕으로 점수를 계산할 수 있다. 제어부(130)는 볼이 라인 아웃으로 판정되는 경우 볼이 떨어진 하프 코트측에 점수를 부여할 수 있다. 제어부(130)는 볼이 라인 인으로 판정되었으나 플레이어가 볼을 쳐내지 못한 경우에는 상대측에 점수를 부여할 수 있다. 이와 같은 방식에 의해서 널리 알려진 테니스의 스코어법에 따라 경기 점수가 산출될 수 있다.
다른 예로, 제어부(130)는 볼이 네트에 걸렸는지 판단하여 점수를 계산할 수 있다. 제어부(130)는 네트 근처에서의 볼의 이동 방향을 감지하여 볼이 네트에 걸렸는지 판단할 수 있다. 제어부(130)는 네트 근처에서 볼의 이동 방향이 변화하는 경우 볼이 네트에 걸린 것으로 판단할 수 있고, 이를 기반으로 점수를 계산할 수 있다.
제어부(130)는 볼의 낙하 위치 및 낙하 시점 중 적어도 하나를 예측할 수 있다. 제어부(130)는 전술한 볼 인식 정보 및 볼 추적 정보 중 적어도 일부를 기초로 볼이 낙하될 위치를 예측하여 볼의 낙하 위치 예측 정보를 도출할 수 있다. 제어부(130)는 전술한 볼 인식 정보 및 볼 추적 정보 중 적어도 일부를 기초로 볼이 낙하될 시점을 예측하여 볼의 낙하 시점 예측 정보를 도출할 수 있다.
도 7을 참고하면, 제어부(130)는 영상(40, 50) 내 미리 설정된 영역(41, 51)을 지나는 볼을 이용하여 볼의 낙하 위치를 예측할 수 있다. 예를 들어, 제어부(130)는 영상(40, 50) 내 미리 설정된 영역(41, 51)을 지나는 볼의 3차원 좌표를 추정하고, 이를 이용하여 볼의 낙하 위치를 예측할 수 있다. 상기 미리 설정된 영역(41, 51)은 영상(40, 50) 내에서 네트를 포함하거나 네트와 인접한 영역일 수 있다.
일 실시예에 따르면, 제어부(130)는 볼의 낙하 위치를 1차적으로 예측하고, 이후 2차적으로 낙하 위치를 보정하여 최종 낙하 위치를 예측할 수 있다. 예를 들어, 도 1에 도시된 것과 같이 2개의 카메라(111, 112)가 각각 좌측 하프 코트와 우측 하프 코트를 촬영하고 도 7에 도시된 것과 같이 볼이 좌측 하프 코트에서 우측 하프 코트로 넘어가는 경우, 좌측 하프 코트를 촬영하는 카메라의 영상(40)으로 1차적으로 낙하 위치를 예측하고, 우측 하프 코트를 촬영하는 카메라의 영상(50)으로 2차적으로 낙하 위치를 보정하여 최종 낙하 위치를 예측할 수 있다. 한편, 이 경우 반드시 2개의 카메라(111, 112)가 촬영한 영상 모두를 이용하여 낙하 위치를 예측해야 하는 것은 아니며, 제어부(130)는 좌측 하프 코트를 촬영한 영상으로만 낙하 위치를 2차에 걸쳐 예측하거나, 우측 하프 코트를 촬영한 영상으로만 낙하 위치를 2차에 걸쳐 예측할 수도 있다. 또한, 제어부(130)는 2차에 걸쳐 낙하 위치를 예측하는 것과 유사하게 3차 이상에 걸쳐 낙하 위치를 예측할 수도 있다.
제어부(130)는 볼의 낙하 위치와 마찬가지 방식으로 볼의 낙하 시점을 예측할 수 있으므로, 볼의 낙하 시점을 예측하는 것에 대한 설명은 생략한다.
제어부(130)는 볼 머신부(300)의 위치를 파악할 수 있다. 제어부(130)는 플레이어의 위치를 파악할 수 있다. 제어부(130)는 객체 검출 알고리즘, 객체 추적 알고리즘, 이미지 세그멘테이션 알고리즘 등 다양한 비전인식 알고리즘을 이용하여 볼 머신부(300)의 위치를 파악하거나 플레이어의 위치를 파악할 수 있다. 제어부(130)가 볼 머신부(300)의 위치를 파악하거나 플레이어의 위치를 파악함에 있어 전술한 볼 인식 및 볼 추적에 대한 내용이 적용될 수 있다.
제어부(130)는 볼 머신부(300)를 제어하기 위한 제어신호를 생성할 수 있다. 제어부(130)는 코트 정보, 볼 인식 정보, 볼 추적 정보, 볼 낙하 시점, 플레이어가 볼을 친 시점, 볼의 낙하 위치 정보, 낙하 위치 예측 정보, 낙하 시점 예측 정보, 볼 머신부(300)의 위치 및 플레이어의 위치 중 적어도 일부에 기초하여 상기 제어신호를 생성할 수 있다. 상기 제어신호는 볼 머신부(300)가 이동할 위치, 발사할 볼이 도달할 위치, 볼을 발사할 방향, 발사할 볼의 구질, 발사할 볼의 속도 및 볼을 발사할 시점 중 적어도 일부를 포함할 수 있다.
제어부(130)는 상기 제어신호를 볼 머신부(300)로 전송할 수 있다. 볼 머신부(300)는 상기 제어신호에 따라 이동하거나 볼을 발사하는 등의 동작을 수행할 수 있다. 상기 제어신호에 따른 볼 머신부(300)의 동작에 대한 보다 구체적인 내용은 후술한다.
저장부(140)는 영상 데이터, 코트 정보, 볼 인식 정보, 볼 추적 정보, 볼 낙하 시점, 플레이어가 볼을 친 시점, 볼의 낙하 위치 정보, 낙하 위치 예측 정보, 낙하 시점 예측 정보, 볼 머신부(300)의 위치 및 플레이어의 위치, 점수 계산 결과, 제어신호 등 중앙처리부(100)의 동작에 필요한 데이터나 동작 중에 발생하는 데이터를 저장한다. 저장부(140)는 상기 데이터를 저장하는 저장 매체일 수 있다. 이러한 저장부(140)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(random access memory, RAM), 에스램(static random access memory, SRAM), 롬(read only memory, ROM), 이이피롬(electrically erasable programmable read only memory, EEPROM), 피롬(programmable read only memory, PROM), 자기 메모리, 자기 디스크 및 광디스크 중 적어도 하나일 수 있으나, 이에 한정되는 것은 아니다.
통신부(150)는 볼 머신부(300), 모바일 디바이스(200) 및 서버(400) 중 적어도 일부와 네트워크(10)를 통해 통신 가능하게 연결되어 유무선으로 데이터를 송수신할 수 있다. 유무선 통신은 다양한 방식으로 구현될 수 있다. 무선통신 방법은 무선 인터넷 기술이 사용될 수 있다. 무선 인터넷 기술로는, 예를 들어 블루투스(bluetooth), WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), Wi-Fi(Wireless Fidelity) Direct, DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced), 5G 등이 있다.
중앙처리부(100)는 네트의 지주에 의해 지지될 수 있도록 지지부(160)를 더 포함할 수 있다. 중앙처리부(100)는 네트의 단부 양측에 위치하는 지주 중 적어도 하나에 고정될 수 있고, 이를 위해 도 8에 도시된 것과 같이 지주에 연결될 수 있는 지지부(160)를 포함할 수 있다. 물론, 중앙처리부(100)는 지주 외에 심판대 등 다른 위치에 설치될 수도 있다.
볼 머신부(300)는 테니스 코트 상에서 이동하고 플레이어에게 볼을 발사할 수 있다. 예를 들어, 볼 머신부(300)는 중앙처리부(100)의 지시에 따라 테니스 코트 상에서 이동하고 플레이어에게 볼을 발사할 수 있다.
전술한 바와 같이, 중앙처리부(100)는 볼 머신부(300)를 제어하기 위한 제어신호를 생성할 수 있고, 볼 머신부(300)는 중앙처리부(100)로부터 상기 제어신호를 수신하여 이에 따라 이동하거나 볼을 발사하는 등의 동작을 수행할 수 있다.
이하에서는 중앙처리부(100)의 지시에 따른 볼 머신부(300)의 동작에 대해 보다 구체적으로 설명한다.
일 실시예에 따르면, 중앙처리부(100)는 실시간으로 훈련 상황을 분석하고 그 결과에 따라 볼 머신부(300)가 이동하고 볼을 발사하도록 지시할 수 있다. 이하에서는 테니스 자율훈련 시스템(1)이 실시간으로 훈련 상황을 분석하고 그 결과에 따라 플레이어에게 훈련을 제공하는 일련의 과정을 인터랙티브 훈련 프로그램(interactive training program)이라 지칭한다. 이와 비교하여, 테니스 자율훈련 시스템(1)이 소정의 패턴에 따라 플레이어에게 훈련을 제공하는 일련의 과정은 일반 훈련 프로그램이라 지칭한다.
중앙처리부(100)는 볼 머신부(300)가 볼을 발사하기 위해 이동해야 하는 위치(이하 "볼 발사 위치"라 함)를 산출할 수 있다. 중앙처리부(100)는 플레이어가 친 볼의 낙하 위치를 예측하여 상기 볼 발사 위치를 산출할 수 있다. 상기 볼 발사 위치는 예측한 볼의 낙하 위치와 동일하거나 그 근방일 수 있다. 중앙처리부(100)는 상기 볼 발사 위치를 포함하는 제어신호를 볼 머신부(300)로 전송하여 볼 머신부(300)가 상기 볼 발사 위치 또는 그 근처로 이동하도록 지시할 수 있다. 볼 머신부(300)는 상기 제어신호에 따라 상기 볼 발사 위치로 또는 그 근처로 이동할 수 있다.
상기 볼 발사 위치는 절대적인 위치로 표현될 수 있다. 예를 들어, 상기 볼 발사 위치는 테니스 코트 상의 특정 위치나 좌표로 표현될 수 있다.
또는, 상기 볼 발사 위치는 상대적인 위치로 표현될 수 있다. 예를 들어, 상기 볼 발사 위치는 볼 머신부(300)가 현재 위치를 기준으로 이동해야 하는 상대적인 거리나 방향으로 표현될 수 있다.
전술한 바와 같이 중앙처리부(100)가 볼의 낙하 위치를 1차적으로 예측하고 이후 2차적으로 낙하 위치를 보정하여 최종 낙하 위치를 예측하는 경우, 중앙처리부(100)는 낙하 위치를 1차적으로 예측한 후 볼 머신부(300)로 1차적으로 예측된 낙하 위치로의 이동을 지시하는 1차 메시지를 전송하고, 이후 2차적으로 보정된 최종 낙하 위치로의 이동을 지시하는 2차 메시지를 전송할 수 있다. 이와 같이 두 번에 걸쳐 볼 머신부(300)로 메시지를 전송함에 따라, 볼 머신부(300)는 1차 메시지를 수신한 후 2차 메시지를 수신하기 전에도 1차 메시지에 따라 미리 최종 낙하 위치 근방으로 이동 가능하므로, 최종 낙하 위치를 예측한 후 한 번만 볼 머신부(300)로 메시지를 전송하는 경우에 비해 신속하게 최종 낙하 위치로 이동할 수 있다. 중앙처리부(100)가 3차 이상에 걸쳐 낙하 위치를 예측하는 경우에도 2차에 걸쳐 낙하 위치를 예측하는 경우와 유사하게 볼 머신부(300)가 이동할 수 있다.
중앙처리부(100)는 볼 머신부(300)가 볼을 발사할 시점(이하 "볼 발사 시점"이라 함)을 산출할 수 있다. 중앙처리부(100)는 플레이어가 볼을 친 위치, 플레이어가 볼을 친 시점, 볼 인식 정보, 볼 추적 정보, 플레이어가 친 볼의 속도, 플레이어가 친 볼의 낙하 위치 예측 정보, 낙하 시점 예측 정보 및 플레이어가 친 볼의 구질 중 적어도 일부에 기초하여 상기 볼 발사 시점을 산출할 수 있다. 중앙처리부(100)는 상기 볼 발사 시점을 포함하는 제어신호를 볼 머신부(300)로 전송하여 볼 머신부(300)가 상기 볼 발사 시점에 볼을 발사하도록 지시할 수 있다. 볼 머신부(300)는 상기 제어신호에 따라 상기 볼 발사 시점에 볼을 발사할 수 있다.
상기 볼 발사 시점은 실제 사람과 경기할 때 사람이 볼을 치는 시점과 동일하거나 유사하도록 산출될 수 있다. 예를 들어, 플레이어가 친 볼이 반대편 하프 코트에 낙하할 것이라고 예측된 시점이 상기 볼 발사 시점이 될 수 있다. 다른 예를 들어, 플레이어가 친 볼이 반대편 하프 코트에 낙하할 것이라고 예측된 시점에 미리 정해진 시간(예: 0.01초, 0.02초, 0.03초, 0.1초, 0.2초, 0.3초 등) 이후의 시점이 상기 볼 발사 시점이 될 수 있다. 이에 따라 플레이어는 실제로 상대방과 플레이하는 것처럼 자율훈련을 수행할 수 있다.
볼 머신부(300)는 상황에 따라 상이한 속도로 이동할 수 있다. 예를 들어, 볼 머신부(300)는 상기 볼 발사 위치 및 상기 볼 발사 시점 중 적어도 하나에 기초하여 결정된 속도로 이동할 수 있다. 구체적인 예로, 볼 머신부(300)는 현재 위치와 상기 볼 발사 위치 사이의 거리 및 상기 볼 발사 시점을 고려하여 상기 볼 발사 시점이 도과하기 전에 상기 볼 발사 위치에 도달할 수 있는 속도로 이동할 수 있다.
또는, 볼 머신부(300)는 일정한 속도로 이동할 수 있다. 예를 들어, 볼 머신부(300)는 초기 세팅된 특정 속도로 이동할 수 있다. 또는, 볼 머신부(300)는 사용자가 입력한 특정 속도로 이동할 수 있다.
볼 머신부(300)가 볼 발사 시점 이전에 볼 발사 위치에 도달한 경우, 볼 머신부(300)는 상기 볼 발사 시점까지 기다린 후 상기 볼 발사 시점에 볼을 발사할 수 있다.
볼 머신부(300)의 이동 속도는 중앙처리부(100) 및 볼 머신부(300) 중 적어도 하나에 의해 결정될 수 있다.
중앙처리부(100)는 볼 머신부(300)의 위치를 모니터링하여 지시한 위치로의 이동을 완료하였는지 확인할 수 있다. 볼 머신부(300)가 지시한 위치로 이동하지 않은 경우, 중앙처리부(100)는 지시한 위치로 추가적으로 이동하기 위한 제어신호를 볼 머신부(300)로 전송할 수 있다. 이에 따라 볼 머신부(300)는 지시한 위치로 추가적으로 이동할 수 있다.
중앙처리부(100)는 볼 머신부(300)가 발사할 볼이 도달할 위치(이하 "볼 도달 위치"라 함), 볼을 발사할 방향, 발사할 볼의 구질 및 발사할 볼의 속도 등 발사할 볼의 속성 중 적어도 일부를 포함하는 볼 속성 정보를 산출할 수 있다. 중앙처리부(100)는 상기 볼 속성 정보를 포함하는 제어신호를 볼 머신부(300)로 전송하여 볼 머신부(300)가 상기 볼 속성 정보에 따라 볼을 발사하도록 지시할 수 있다. 볼 머신부(300)는 상기 제어신호에 따라 상기 볼 속성 정보에 따른 속성으로 볼을 발사할 수 있다.
중앙처리부(100)는 플레이어의 위치 및 볼 머신부(300)의 위치 중 적어도 하나를 고려하여 볼 속성 정보를 산출할 수 있다.
중앙처리부(100)는 플레이어의 위치로부터 소정의 거리 범위 내에 포함되도록 볼 도달 위치를 산출할 수 있다. 이때, 자율훈련의 난이도에 따라 상기 소정의 거리 범위가 달라질 수 있다. 예를 들어, 자율훈련의 난이도가 높을수록 상기 소정의 거리 범위가 증가할 수 있다. 구체적인 예로, 상기 난이도는 이지 모드, 노멀 모드 및 하드 모드를 포함할 수 있고, 이지 모드는 플레이어의 위치로부터 반경 1-1.5m, 노멀 모드는 2-4m, 하드 모드는 5-10m로 설정될 수 있으나, 이에 한정되는 것은 아니다. 볼 도달 위치 외에도, 자율훈련의 난이도에 따라 발사할 볼의 구질이나 발사할 볼의 속도 등이 달라질 수 있다. 예를 들어, 자율훈련의 난이도가 높을수록 발사할 볼의 구질이 까다로워지거나(예: 볼의 스핀량 증가 등) 발사할 볼의 속도가 증가할 수 있다.
볼 머신부(300)는 볼 도달 위치를 고려하여 자신의 지향 방향을 조정할 수 있다. 볼 머신부(300)는 자신의 지향 방향을 기준으로 좌우로 소정의 각도 범위 내로 볼을 발사할 수 있다. 따라서, 볼 도달 위치가 상기 각도 범위 내에 포함되지 않는 경우 볼 머신부(300)는 볼 도달 위치가 상기 각도 범위 내에 포함되도록 자신의 지향 방향을 조정한 후 볼을 발사할 수 있다.
볼 머신부(300)는 볼을 발사한 후 미리 설정된 위치로 이동할 수 있다. 상기 미리 설정된 위치는 하프 코트의 중앙 위치일 수 있다. 이 경우, 볼 머신부(300)는 상기 미리 설정된 위치에 대기하다가 중앙처리부(100)의 지시에 따라 이동하여 볼을 발사하고 다시 상기 미리 설정된 위치로 복귀하여 대기하는 과정을 반복하며 플레이어에게 훈련을 제공할 수 있다.
또는, 볼 머신부(300)는 볼을 발사한 후 이동하는 것이 아닌 볼을 발사한 위치에 대기하다가 중앙처리부(100)의 지시에 따라 이동하여 볼을 발사하고 다시 그 위치에 대기하며 중앙처리부(100)의 다음 지시를 기다리는 과정을 반복하며 플레이어에게 훈련을 제공할 수 있다.
이상에서 설명한 내용을 바탕으로 중앙처리부(100)와 볼 머신부(300)가 협업하여 플레이어에게 인터랙티브 훈련을 제공하는 일 예를 설명하면 다음과 같다.
중앙처리부(100)는 플레이어가 친 볼이 반대편 하프 코트에 낙하할 위치와 낙하할 시점을 예측하고, 볼 머신부(300)의 위치를 파악한다.
중앙처리부(100)는 예측된 낙하 위치, 낙하 시점 및 볼 머신부(300)의 현재 위치를 고려하여 볼 발사 위치, 볼 발사 시점 및 볼 속성 정보를 산출한다.
중앙처리부(100)는 볼 발사 위치, 볼 발사 시점, 볼 도달 위치 및 볼 발사 속도를 볼 머신부(300)로 전송한다.
볼 머신부(300)는 중앙처리부(100)로부터 볼 발사 위치, 볼 발사 시점, 볼 도달 위치 및 볼 발사 속도를 수신한다.
볼 머신부(300)는 수신한 볼 발사 위치로 이동한다. 볼 머신부(300)가 이동하는 동안 또는 이동을 완료한 후, 중앙처리부(100)는 볼 머신부(300)의 위치를 확인하고 정확한 볼 발사 위치로 이동하기 위한 추가적인 이동에 관한 제어신호를 전송할 수 있다.
볼 머신부(300)는 수신한 볼 도달 위치를 기초로 자신의 지향 방향을 제어한다. 볼 머신부(300)는 수신한 볼 발사 시점이 되면 수신한 볼 발사 속도로 볼을 발사한다. 볼 머신부(300)는 볼을 발사한 후 이동하기 전 위치로 복귀할 수 있다.
이상에서는, 플레이어가 친 볼이 반대편 하프 코트에 낙하하는 위치 및 시점을 예측하고, 상기 예측된 낙하 위치 및 낙하 시점을 고려하여 볼 머신부가 이동하여 볼을 발사하는 실시예에 대하여 설명하였다. 그러나, 본 출원에 의해 제시되는 시스템의 구현은 전술한 실시예로 한정되는 것은 아니다.
이하에서는, 다른 실시예에 대해서 더 설명한다.
다른 실시예에 따르면, 중앙처리부(100)는 볼 머신부(300)가 소정의 패턴에 따라 이동하고 볼을 발사하도록 지시할 수 있다. 상기 소정의 패턴은 이동 경로, 볼 발사 위치, 볼 발사 시점, 볼 도달 위치, 볼 발사 속도, 볼 발사 개수, 볼 발사 간격 및 볼 발사 구질 중 적어도 일부에 대한 정보를 포함할 수 있다. 이 경우, 테니스 자율훈련 시스템(1)은 플레이어에게 일반 훈련 프로그램을 제공하는 것으로 볼 수 있다.
상기 소정의 패턴은 사용자에 의해 선택될 수 있다. 예를 들어, 사용자는 복수의 패턴들 중 상기 소정의 패턴을 선택할 수 있다. 사용자는 모바일 디바이스(200)를 통해 상기 소정의 패턴을 선택할 수 있다. 사용자가 선택한 패턴은 중앙처리부(100)로 전송되고, 중앙처리부(100)는 사용자가 선택한 패턴에 따른 제어신호를 생성할 수 있다. 중앙처리부(100)는 생성한 제어신호를 볼 머신부(300)로 전송하고, 볼 머신부(300)는 사용자가 선택한 패턴에 따라 이동하고 볼을 발사할 수 있다.
상기 소정의 패턴은 사용자에 의해 설정된 패턴일 수 있다. 예를 들어, 사용자는 모바일 디바이스(200)를 통해 상기 소정의 패턴을 설정할 수 있다. 사용자가 패턴을 설정하는 것과 관련된 보다 구체적인 내용은 후술한다.
또 다른 실시예에 따르면, 볼 머신부(300)는 사용자의 조작에 따라 동작할 수 있다. 사용자는 모바일 디바이스(200)를 통해 사용자 입력을 입력하여 볼 머신부(300)를 조작할 수 있다. 상기 사용자 입력은 중앙처리부(100)로 전송되고, 중앙처리부(100)는 상기 사용자 입력에 따른 제어신호를 생성할 수 있다. 중앙처리부(100)는 생성한 제어신호를 볼 머신부(300)로 전송하고, 볼 머신부(300)는 상기 사용자 입력에 따라 이동하고 볼을 발사할 수 있다. 사용자가 모바일 디바이스(200)를 통해 볼 머신부(300)를 조작하는 것과 관련된 보다 구체적인 내용은 후술한다.
한편, 이상에서는 볼 머신부(300)가 동작함에 있어 중앙처리부(100)가 제어신호를 생성하는 것으로 설명하였으나, 제어신호는 모바일 디바이스(200)에 의해 생성될 수도 있다. 이 경우 모바일 디바이스(200)가 생성한 제어신호는 중앙처리부(100)를 거치지 않고 모바일 디바이스(200)로부터 볼 머신부(300)로 전송되거나 또는 모바일 디바이스(200)로부터 중앙처리부(100)를 거쳐 볼 머신부(300)로 전송될 수 있다.
도 2 및 도 9에 도시된 것과 같이 볼 머신부(300)는 제어부(310), 구동부(320), 발사부(330) 및 통신부(340)를 포함할 수 있다.
볼 머신부(300)가 수행하는 동작은 제어부(310)에 의해 수행되거나 제어부(310)가 볼 머신부(300)의 다른 구성 요소를 제어하여 수행될 수 있다.
전술한 중앙처리부(100)의 제어부(130)와 동일하거나 유사하게, 제어부(310)는 볼 머신부(300) 내에서 각종 정보의 처리와 연산을 수행하거나, 볼 머신부(300)을 구성하는 다른 구성 요소를 제어할 수 있다. 제어부(310)에 대한 중앙처리부(100)의 제어부(130)와 중복되는 설명은 생략한다.
구동부(320)는 볼 머신부(300)를 이동시킬 수 있는 기능을 수행한다. 볼 머신부(300)가 모바일 디바이스(200) 또는 중앙처리부(100)로부터 위치에 관한 정보를 수신하면, 볼 머신부(300)는 해당 위치로 구동부(320)의 구동에 의해 이동할 수 있다.
구동부(320)는 스워브 드라이빙 시스템(swerve driving system) 또는 메카넘 휠(mecanum wheel)을 포함할 수 있다.
발사부(330)는 볼 머신부(300)로부터 볼을 발사할 수 있는 기능을 수행한다.
발사부(330)는 하나 이상의 롤러를 포함할 수 있다. 상기 롤러의 회전에 의해 발사부(330)로부터 볼이 발사될 수 있다. 상기 롤러의 회전 속도, 회전 방향 등이 조절됨에 따라 발사되는 볼의 속도, 스핀 등이 조절될 수 있다.
발사부(330)는 상기 롤러의 회전 속도를 측정할 수 있는 센서(예: 포토인터럽터)를 포함할 수 있다. 상기 측정된 회전 속도는 상기 롤러의 회전 속도를 제어하는데 이용될 수 있다. 예를 들어, 상기 측정된 회전 속도가 지시한 회전 속도와 다른 경우, 이를 반영하여 롤러의 회전 속도가 지시한 회전 속도가 되도록 제어할 수 있다. 이를 통해 볼의 속도, 스핀 등이 보다 정밀하게 조절될 수 있다.
통신부(340)는 중앙처리부(100), 모바일 디바이스(200) 및 서버(400) 중 적어도 일부와 네트워크(10)를 통해 통신 가능하게 연결되어 유무선으로 데이터를 송수신할 수 있다. 전술한 중앙처리부(100)의 통신부(150)에 대한 내용이 볼 머신부(300)의 통신부(340)에도 적용될 수 있고, 중복되는 설명은 생략한다.
볼 머신부(300)는 스피커 및 LED 중 적어도 하나를 포함할 수 있다. 볼 머신부는(300)는 스피커 및 LED 중 적어도 하나를 통해 사용자가 미리 정한 설정에 따라 볼의 발사 시작 전 또는 볼의 발사 종료 전에 알림신호를 출력할 수 있다. 사용자는 모바일 디바이스(200)를 통해 볼의 발사 위치, 속도, 개수, 타이머 등을 설정할 수 있다. 사용자가 설정을 완료한 후 모바일 디바이스(200)에 시작 신호를 입력하고, 공을 타격할 수 있는 위치로 이동하면 설정된 타이머가 작동된다. 볼 머신부(300)는 발사 n초 전 LED 또는 스피커를 통해서 사용자에게 볼이 곧 발사될 것임을 알릴 수 있다. 이때, LED 및 스피커는 볼의 발사 시작과 종료 시점에만 작동된다. 또한, 볼 머신부(300)는 발사 종료 n초 전 LED 또는 스피커를 통해서 사용자에게 발사가 곧 종료될 것임을 알릴 수 있다.
볼 머신부(300)는 주변 객체를 인식할 수 있는 센서(예를 들어, 레이더 센서, 라이다 센서 등)를 포함할 수 있다. 볼 머신부(300)는 상기 센서로 근접한 장애물을 인식할 수 있다. 볼 머신부(300)는 목표 위치로 이동하는 도중 상기 센서로 장애물을 인식하는 경우 장애물을 회피하여 상기 목표 위치로 이동할 수 있다.
볼 머신부(300)는 서브 발사부를 포함할 수 있다. 서브 발사부는 사람이 테니스 서브를 넣는 것과 유사하게 볼을 발사할 수 있다. 발사부(330)와 비교하면, 서브 발사부는 발사부(330)보다 높은 위치에서 볼을 발사하도록 구현될 수 있다. 전술한 발사부(330)에 대한 내용이 서브 발사부에도 마찬가지로 적용될 수 있다.
볼 머신부(300)는 발사부(330)와 서브 발사부를 함께 포함할 수 있다. 또는, 볼 머신부(300)는 발사부(330)와 서브 발사부 중 어느 하나만을 포함할 수 있다.
볼 머신부(300)는 볼 정리부를 포함할 수 있다. 볼 정리부는 코트 바닥에 떨어진 볼을 수집하여 정리할 수 있다.
볼 머신부(300)는 중앙처리부(100)의 지시에 따라 이동하며 볼 정리부를 통해 볼을 정리할 수 있다.
일 예로, 중앙처리부(100)는 영상 데이터를 기초로 볼을 인식하고, 인식된 볼의 위치로 볼 머신부(300)를 이동시켜 볼 정리부를 통해 볼을 정리할 수 있다. 이때, 움직이지 않는 볼을 인식해야 하므로, 중앙처리부(100)는 전술한 볼 인식 알고리즘 중 움직이지 않는 볼을 인식하기 위한 알고리즘(예를 들어, 차영상을 이용하지 않는 알고리즘)을 이용할 수 있다.
다른 예로, 중앙처리부(100)는 볼 머신부(300)가 코트와 그 주변을 미리 정해진 패턴으로 이동하도록 지시하고, 이에 따라 볼 머신부(300)가 이동하면서 볼 정리부를 통해 볼을 수집하여 정리할 수 있다.
볼 머신부(300)는 모듈형으로 제공될 수 있다. 모듈형으로 제공되는 볼 머신부(이하 "모듈형 볼 머신부"라 함)(300)란 탈부착 가능한 복수의 모듈들이 결합되어 제공된 볼 머신부(300)를 의미한다. 예를 들어, 도 9에 도시된 것과 같이 볼 머신부(300)는 구동부(320) 및 발사부(330)가 탈부착 가능하도록 결합되어 제공될 수 있다. 이 경우 구동부(320)와 발사부(330)는 각각 구동 모듈과 발사 모듈로 지칭될 수도 있다. 전술한 볼 머신부(300)의 구성 요소들은 각각 개별 모듈로 제공될 수 있다.
모듈형 볼 머신부(300)는 개별 모듈들을 제어하기 위한 통합된 제어부를 가질 수 있다. 또는, 모듈형 볼 머신부(300)의 개별 모듈들은 각각 별도의 제어부를 가질 수 있다. 예를 들어, 구동 모듈 및 발사 모듈을 포함하는 볼 머신부(300)의 경우, 구동 모듈은 제1 제어부를 가지고 발사 모듈은 제2 제어부를 가질 수 있다.
모듈형 볼 머신부(300)는 통합된 통신부를 가질 수 있다. 또는, 모듈형 볼 머신부(300)의 개별 모듈들은 각각 별도의 통신부를 가질 수 있다. 예를 들어, 구동 모듈 및 발사 모듈을 포함하는 볼 머신부(300)의 경우, 구동 모듈은 제1 통신부를 가지고 발사 모듈은 제2 통신부를 가질 수 있다.
개별 모듈들이 각각 별도의 통신부를 가지는 경우, 개별 모듈들 중 적어도 일부는 그 통신부를 통해 통신 가능하게 연결될 수 있다.
개별 모듈들이 각각 별도의 통신부를 가지는 경우, 개별 모듈들 중 적어도 일부는 중앙처리부(100)와 네트워크(10)를 통해 통신 가능하게 연결될 수 있다. 일 예로, 상기 개별 모듈들 각각은 모두 중앙처리부(100)와 연결될 수 있다. 다른 예로, 상기 개별 모듈들 중 일부인 특정 모듈만 중앙처리부(100)와 연결될 수 있다. 이 경우 상기 특정 모듈은 나머지 모듈들과 통신 가능하게 연결될 수 있다. 상기 특정 모듈은 중앙처리부(100)로부터 수신한 정보를 상기 나머지 모듈들로 전송하거나, 상기 나머지 모듈들로부터 수신한 정보를 중앙처리부(100)로 전송할 수 있다. 다시 말해, 중앙처리부(100)와 상기 나머지 모듈들은 상기 특정 모듈을 통해 통신할 수 있다.
모바일 디바이스(200)는 네트워크(10)를 통해 중앙처리부(100), 볼 머신부(300) 및 서버(400) 중 적어도 일부와 통신 가능하게 연결되어 데이터를 송수신할 수 있다. 이때, 모바일 디바이스(200)는 스마트폰, 휴대폰, 노트북, 태블릿 PC 및 스마트 워치 등을 포함할 수 있으나 이에 제한되지 않는다.
사용자는 테니스 자율훈련 시스템(1)으로부터 다양한 종류의 훈련 프로그램을 제공받을 수 있다. 이 경우, 사용자는 모바일 디바이스(200)를 통해 다양한 종류의 훈련 프로그램 중 특정 프로그램을 선택하여 테니스 자율훈련 시스템(1)으로부터 상기 특정 프로그램에 따른 훈련을 제공받을 수 있다. 예를 들어, 사용자는 모바일 디바이스(200)를 통해 인터랙티브 훈련 프로그램 또는 일반 훈련 프로그램을 선택할 수 있다. 모바일 디바이스(200)는 사용자의 선택을 중앙처리부(100)로 전송하고, 중앙처리부(100)의 제어에 의해 사용자가 선택한 훈련에 따라 볼 머신부(300)가 이동하고 볼을 발사하여 사용자에게 훈련을 제공할 수 있다. 물론, 선택된 프로그램은 볼 머신부(300)로 바로 전송되어 볼 머신부(300)가 프로그램에 따라서 플레이어에게 볼을 발사하거나 모바일 디바이스(200)가 해당 프로그램의 내용에 따라 일정한 제어신호를 볼 머신부(300)에 송신하여 볼 머신부(300)가 프로그램에 따라서 플레이어에게 볼을 발사할 수도 있다.
인터랙티브 훈련 프로그램에 대해서는 전술하였으므로, 이하에서는 일반 훈련 프로그램에 대해 보다 자세히 설명한다.
일반 훈련 프로그램은 복수의 모드들을 포함할 수 있다.
일반 훈련 프로그램은 사용자가 볼 발사 위치 및 볼 도달 위치를 설정할 수 있는 사용자 모드를 포함할 수 있다. 이 경우 볼 머신부(300)는 사용자의 설정에 따라 볼 발사 위치에서 볼 도달 위치로 볼을 발사할 수 있다. 이하에서 루틴은 볼 발사 위치 및 이에 대응하는 볼 도달 위치를 포함하고, 하나의 루틴은 하나의 볼 발사 위치 및 이에 대응하는 하나의 볼 도달 위치를 포함하는 것으로 설명한다. 다시 말해, 볼 발사 위치 및 볼 도달 위치 중 어느 하나라도 다른 경우에는 다른 루틴이다.
이하에서는 도 10 및 도 11을 참조하여 사용자 모드에 대해 보다 자세히 설명한다.
도 10 및 도 11에 도시된 것과 같이 사용자는 모바일 디바이스(200)의 화면을 터치하거나(화면이 터치 스크린인 경우) 마우스와 같은 입력 장치로 클릭하거나 이에 상응하는 방식으로 루틴을 설정할 수 있다. 일 예로, 사용자는 모바일 디바이스(200)의 화면에 디스플레이된 테니스 코트 영역 중 한 쪽 하프 코트의 일 지점을 터치하여 이를 볼 발사 위치로 설정하고(도 10의 (b)), 다른 쪽 하프 코트의 일 지점을 터치하여 이를 볼 도달 위치로 설정할 수 있다(도 10의 (c)). 다른 예로, 사용자는 모바일 디바이스(200)의 화면에 디스플레이된 테니스 코트 영역 중 한 쪽 하프 코트의 일 지점을 터치한 후 다른 쪽 하프 코트의 일 지점까지 슬라이드한 후 터치를 떼어 상기 한 쪽 하프 코트의 일 지점을 볼 발사 위치로, 상기 다른 쪽 하프 코트의 일 지점을 볼 도달 위치로 설정할 수 있다. 또 다른 예로, 사용자는 모바일 디바이스(200)의 화면에 테니스 코트와 함께 디스플레이된 2개의 기준점을 각각 한 쪽 하프 코트의 일 지점과 다른 쪽 하프 코트의 일 지점으로 이동시켜 상기 한쪽 하프 코트의 일 지점을 볼 발사 위치로, 상기 다른 쪽 하프 코트의 일 지점을 볼 도달 위치로 설정할 수 있다.
도 11의 (b)를 참조하면, 사용자는 2 이상의 루틴을 설정할 수 있다. 예를 들어, 사용자가 2개의 루틴을 설정하는 경우 사용자는 제1 볼 발사 위치 및 이에 대응하는 제1 볼 도달 위치와 제2 볼 발사 위치 및 이에 대응하는 제2 볼 도달 위치를 설정할 수 있다. 이 경우 볼 머신부(300)는 상기 제1 볼 발사 위치에서 상기 제1 볼 도달 위치로 볼을 발사하고, 상기 제1 볼 발사 위치에서 상기 제2 볼 발사 위치로 이동하고, 상기 제2 볼 발사 위치에서 상기 제2 볼 도달 위치로 볼을 발사할 수 있다. 다시 말해, 사용자 모드를 통해 사용자는 볼 머신부(300)가 소정의 경로를 따라 이동하며 볼을 발사하도록 설정할 수 있다.
도 11의 (c)를 참조하면, 사용자는 모바일 디바이스(200)의 화면에 디스플레이된 테니스 코트를 확대하여 루틴을 세밀하게 설정할 수 있다. 또한, 사용자는 기설정된 루틴을 수정할 수 있다.
도 11의 (a) 및 (b)를 참조하면, 사용자가 설정한 루틴은 모바일 디바이스(200)의 화면에 디스플레이될 수 있다. 이때 루틴의 순서가 함께 디스플레이될 수 있다. 볼 머신부(300)는 상기 루틴의 순서에 따라 동작할 수 있다.
도 10 및 도 11에 도시된 것과 같이 사용자는 볼 발사 위치 및 볼 도달 위치 외에도 볼 발사 시점, 볼 발사 속도, 볼 발사 개수, 볼 발사 간격 및 볼 발사 구질 중 적어도 일부를 포함하는 추가 정보를 설정할 수 있다. 이 경우 루틴은 상기 추가 정보를 더 포함할 수 있다. 또한, 볼 발사 위치, 볼 도달 위치 및 추가 정보 중 일부라도 다른 경우에는 다른 루틴이다. 예를 들어, 볼 발사 위치 및 볼 도달 위치가 동일하더라도 볼 발사 속도가 다른 경우에는 다른 루틴이다. 볼 발사 위치 및 볼 도달 위치와 마찬가지로 사용자는 상기 추가 정보를 설정한 후 수정할 수도 있다.
사용자는 설정된 사용자 모드에 따라 훈련을 수행하기 위하여 모바일 디바이스(200)를 통해 상기 사용자 모드를 선택할 수 있다. 모바일 디바이스(200)는 사용자가 상기 사용자 모드를 선택하였음을 지시하는 메시지를 중앙처리부(100)로 전송하고, 중앙처리부(100)는 상기 사용자 모드에 따라 볼 머신부(300)를 제어하기 위한 제어신호를 생성할 수 있다. 중앙처리부(100)는 상기 제어신호를 볼 머신부(300)로 전송하고, 볼 머신부(300)는 상기 제어신호에 따라 이동하고 볼을 발사하여 사용자에게 상기 사용자 모드에 따른 훈련을 제공할 수 있다.
일반 훈련 프로그램은 사용자가 볼 머신부(300)를 직접 조작할 수 있는 코치 모드를 포함할 수 있다. 코치 모드에서, 모바일 디바이스(200)는 볼 머신부(300)를 제어할 수 있는 화면을 제공할 수 있다. 예를 들어, 도 12의 (a)에 도시된 것과 같이 모바일 디바이스(200)의 화면에는 볼 머신부(300)의 위치를 조작할 수 있는 버튼, 볼 머신부(300)로부터 발사되는 볼의 속도를 조작할 수 있는 버튼 및 볼 도달 위치를 조작할 수 있는 버튼 중 적어도 하나가 디스플레이될 수 있다. 사용자는 상기 디스플레이된 버튼을 조작하여 볼 머신부(300)의 위치, 볼 머신부(300)로부터 발사되는 볼의 속도 및 볼 도달 위치 중 적어도 하나를 조작할 수 있다. 또는, 사용자는 모바일 디바이스(200)와 연결된 별도의 입력 장치(예: 조이스틱 등)를 통해 볼 머신부(300)의 위치, 볼 머신부(300)로부터 발사되는 볼의 속도 및 볼 도달 위치 중 적어도 하나를 조작할 수 있다. 사용자가 지정하는 위치는 모바일 디바이스(200)의 화면 상에 표시되는 테니스 코트의 특정 좌표 또는 위치를 의미할 수 있다. 이 경우 플레이어는 사용자에 의해 실시간으로 조작되는 볼 머신부(300)와 테니스 경기를 플레이할 수 있다.
일반 훈련 프로그램은 볼 머신부(300)가 이동하지 않는 고정 모드를 포함할 수 있다. 도 12의 (b)에 도시된 것과 같이 고정 모드에서 볼 머신부(300)는 특정 위치에서 하나 이상의 볼 도달 위치로 소정의 볼 발사 속도, 볼 발사 개수, 볼 발사 간격, 볼 발사 구질, 볼 발사 시간 등에 따라 볼을 발사할 수 있다.
인터랙티브 훈련 프로그램 및 일반 훈련 프로그램 외에도, 사용자는 해외 유명 선수들을 포함한 상대가 될 선수의 데이터를 기초로 구성된 각 선수별 패턴 프로그램 또는 사용자의 약점 정보를 기초로 약점 공략을 위하여 설정된 약점공략 프로그램을 테니스 자율훈련 시스템(1)으로부터 제공받아 훈련을 수행할 수 있다. 예를 들어, 도 13에 도시된 것과 같이, 모바일 디바이스(200)는 선수별 패턴 프로그램을 기초로 사용자가 원하는 프로 선수들의 경기화면을 제공할 수 있다. 이때, 사용자가 자신이 원하는 프로 선수를 선택하게 되면 해당 선수의 경기패턴에 맞춘 연습프로그램을 실시할 수 있다. 즉, 모바일 디바이스(200)의 화면 상에서 선택되는 프로 선수에 대한 소정의 정보(해당 프로 선수의 경기 스타일 또는 패턴을 의미한다)가 볼 머신부(300)에 전달되고, 볼 머신부(300)는 제공받은 정보를 기준으로 사용자에게 볼을 발사한다. 이를 통해서 사용자는 자신이 원하는 프로 선수와 경기를 하는 것과 유사한 체험을 할 수 있다.
서버(400)는 네트워크(10)를 통해 중앙처리부(100) 및 모바일 디바이스(200) 중 적어도 하나와 통신 가능하게 연결되어 데이터를 송수신할 수 있다. 서버(400)는 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 적어도 하나의 컴퓨터 장치로 구현될 수 있고 저장공간을 포함할 수 있으나 이에 제한되지 않는다. 서버(400)는 클라우드 서버일 수 있다.
서버(400)는 영상 데이터를 기초로 사용자의 운동 패턴, 운동 실력, 운동 자세 등을 인식하고, 이를 분석하여 사용자에게 자세교정솔루션, 취약점솔루션, 훈련프로그램 등의 코칭 데이터를 제공할 수 있다. 사용자는 모바일 디바이스(200)를 통해 상기 코칭 데이터를 확인하거나 이에 따른 훈련을 진행할 수 있다.
서버(400)는 영상 데이터를 이용하여 사용자의 운동 자세를 인식할 수 있다. 예를 들어, 서버(400)는 중앙처리부(100) 및 모바일 디바이스(200) 중 적어도 하나로부터 수신한 영상 데이터를 이용하여 사용자의 운동 자세를 인식할 수 있다.
서버(400)는 사용자가 스윙 동작을 수행하는 시간에 대응하는 영상 데이터를 이용하여 사용자의 운동 자세를 인식할 수 있다. 다시 말해, 상기 영상 데이터는 사용자가 스윙 동작을 수행하지 않는 시간은 제외하도록 편집된 것일 수 있다. 예를 들어, 중앙처리부(100)는 전체 경기 영상에서 사용자의 스윙 구간을 판단하고 상기 구간에 해당하는 영상 데이터를 추출할 수 있다. 또는, 중앙처리부(100)는 전체 경기 영상 중 볼이 사용자가 위치하는 하프 코트에 위치하는 구간을 판단하고 상기 구간에 해당하는 영상 데이터를 추출할 수 있다. 중앙처리부(100)는 추출한 스윙 구간의 영상 데이터를 서버(400)로 전송할 수 있다. 서버(400)는 수신한 영상 데이터를 이용하여 사용자의 운동 자세를 인식할 수 있다.
일 실시예에 따르면, 서버(400)는 영상 데이터를 이용하여 관절 포인트를 파악함으로써 운동 자세를 인식할 수 있다.
서버(400)는 영상 데이터를 이용하여 관절 포인트를 파악할 수 있다. 도 14의 (a)에 도시된 것과 같이 상기 관절 포인트의 위치는 2차원 상에서의 좌표(예: 이미지 상에서의 좌표)로 나타낼 수 있다. 또는, 도 14의 (b)에 도시된 것과 같이 상기 관절 포인트의 위치는 3차원 상에서의 좌표로 나타낼 수 있다.
서버(400)는 상기 관절 포인트를 이용하여 사용자가 어떤 동작을 수행했는지 판단할 수 있다. 예를 들어, 서버(400)는 상기 관절 포인트를 이용하여 사용자가 스윙을 했는지, 어떤 종류의 스윙을 했는지(예: 포핸드 스트로크, 백핸드 스트로크, 서브, 발리 등) 등을 판단할 수 있다.
서버(400)는 상기 관절 포인트를 이용하여 관절 각도를 산출할 수 있다. 예를 들어, 서버(400)는 상기 관절 포인트를 소정의 관계에 따라 선으로 연결하고 연결된 선 사이의 각도를 산출하여 상기 관절 각도를 산출할 수 있다.
서버(400)는 사용자의 운동 자세를 분석하여 사용자에게 코칭 데이터를 제공할 수 있다.
상기 코칭 데이터는 사용자가 동작을 올바르게 수행했는지 여부를 포함할 수 있다. 여기서, 올바르지 않은 동작이란 부상 위험이 높은 동작이나 자세를 의미할 수 있다.
일 예로, 서버(400)는 관절 각도를 이용하여 사용자가 동작을 올바르게 수행했는지 판단할 수 있다. 예를 들어, 서버(400)는 상기 관절 각도가 소정의 범위를 벗어나는 경우 사용자가 올바르지 않은 동작을 수행한 것으로 판단할 수 있다. 또는, 서버(400)는 상기 관절 각도의 시간에 따른 변화량이 소정의 범위를 벗어나는 경우 사용자가 올바르지 않은 동작을 수행한 것으로 판단할 수 있다. 상기 소정의 범위는 관절가동범위(Range Of Motion, ROM)를 기반으로 정해질 수 있다. 상기 관절가동범위는 사용자별로 다르게 정해질 수 있다. 이 경우 사용자는 모바일 디바이스(200) 등을 통해 자신의 관절가동범위를 입력할 수 있고, 서버(400)는 사용자가 입력한 관절가동범위에 따라 사용자가 동작을 올바르게 수행했는지 판단할 수 있다.
다른 예로, 서버(400)는 정확한 자세의 영상과 부상 위험이 높은 자세의 영상을 기초로 학습된 모델을 이용하여 사용자가 동작을 올바르게 수행했는지 판단할 수 있다. 서버(400)는 사용자의 영상 데이터를 상기 모델에 입력하여 상기 사용자의 영상 데이터가 정확한 자세인지 부상 위험이 높은 자세인지 판단할 수 있다. 상기 모델의 예로는 머신 러닝 모델, 딥 러닝 모델이 있으나 이에 한정되는 것은 아니다.
또 다른 예로, 서버(400)는 동역학 기반의 가속도, 속도, 회전반경 등의 연산식에 관절 포인트 및 관절 각도 중 적어도 일부를 대입하여 사용자가 동작을 올바르게 수행했는지 판단할 수 있다..
상기 코칭 데이터는 부상 위험도를 포함할 수 있다. 서버(400)는 관절 포인트 및 관절 각도 중 적어도 일부에 기초하여 관절의 부상 위험도를 산출할 수 있다. 도 15의 (a)에 도시된 것과 같이, 서버(400)는 모바일 디바이스(200)를 통해 사용자의 볼 타격 영상과 부상 위험도를 제공할 수 있다.
상기 코칭 데이터는 관절 회전 반경에 대한 보정값을 포함할 수 있다. 서버(400)는 관절 포인트 및 관절 각도 중 적어도 일부에 기초하여 관절 회전 반경에 대한 보정값을 산출할 수 있다. 서버(400)는 상기 보정값에 기초하여 사용자의 자세를 보완할 수 있는 자세교정솔루션을 도출할 수 있다.
상기 코칭 데이터는 사용자가 경기 중 이동한 시간, 거리 및 소모 칼로리 중 적어도 일부를 포함할 수 있다. 서버(400)는 영상 데이터를 기초로 사용자가 경기 중 이동한 시간, 거리 및 소모 칼로리 중 적어도 일부를 산출할 수 있다.
상기 코칭 데이터는 사용자의 취약점을 보완할 수 있는 취약점솔루션을 포함할 수 있다. 서버(400)는 사용자의 운동 패턴, 운동 실력, 운동 자세 등을 기반으로 사용자의 취약점을 분석하고 이에 따른 취약점솔루션을 도출할 수 있다. 사용자의 운동 패턴은 사용자가 친 볼의 속도, 방향, 궤적, 스트로크의 종류(포핸드, 백핸드, 서브, 노브, 발리, 스매싱, 슬라이스 등), 볼 타격 시 사용자의 자세, 볼이 라켓에 접촉한 부위 등을 포함할 수 있으며, 사용자의 운동실력은 볼의 속도, 궤적, 경기점수(볼의 in/out 정보 기초로 도출) 및 볼이 out라인에 근접한 정도 등을 포함할 수 있다. 예를 들어, 인-아웃 판정 결과를 기초로 볼이 out된 당시의 사용자의 자세, 볼이 라켓에 접촉한 부위, 스트로크의 종류, 볼의 속도, 방향, 궤적 정보 및 볼의 낙하 지점 정보를 기초로 사용자의 취약점을 파악할 수 있다. 이를 통해 사용자의 약점을 강화할 수 있는 프로그램을 도출할 수 있다. 또는 보다 간단하게, 오른손잡이인 사용자가 자신의 좌측 방향으로 오는 볼에 대한 대응이 미숙한 경우에는 백핸드 스트로크의 실력이 부족한 것으로서 이를 취약점으로 판단할 수 있다. 따라서 서버(400)는 사용자가 백핸드 스트로크를 강화할 수 있는 취약점솔루션을 도출할 수 있다.
서버(400)는 사용자의 운동 패턴, 운동 실력, 운동 자세 등을 기반으로 사용자의 사용자의 운동실력에 대응하는 훈련프로그램을 도출하고 해당 훈련프로그램을 모바일 디바이스(200)에 전송할 수 있다. 서버(400)는 운동실력에 대응되는 볼의 방향, 속도 등을 설정할 수 있고 이러한 설정값에 따라서 훈련프로그램을 도출할 수 있다. 이러한 훈련프로그램은 서버(400)에서 모바일 디바이스(200)로 전송되어 사용자에게 출력된다. 이를 통해 사용자는 서버(400)가 제공해주는 훈련프로그램을 통해 연습을 하거나 자신이 선택하는 훈련프로그램을 통해 연습을 할 수 있다. 훈련프로그램은 위에서 언급한 자세교정솔루션, 취약점솔루션 등을 모두 포함하는 광범위한 개념일 수 있다. 또한, 위에서 언급한 자세교정솔루션과 취약점솔루션이 융합된 맞춤형최적화솔루션이 제공될 수도 있다.
이와 같은 자세교정솔루션, 취약점솔루션 및 훈련프로그램 등 코칭 데이터는 도 15에 도시된 일 예와 같이 모바일 디바이스(200)를 통해 사용자가 이를 활용할 수 있도록 제공될 수 있다. 도 15에 도시된 일 예를 설명하면 다음과 같다. 운동자세와 관련하여, 사용자의 볼 타격 시 관절 포인트에 대한 데이터를 기초로 손목, 팔, 다리, 발목, 몸통 등의 서로 간 각도 등의 정보를 도출하여 기 설정/저장된 부상 위험도가 높은 자세와 비교하여 부상 위험도가 낮은 자세로 타격을 하였을 시 Clear가 표시되고(도 15의 (b)) 반대인 경우 Miss가 표시되도록(도 15의 (a)) 구성할 수 있다.
서버(400)는 전술한 중앙처리부(100)의 연산 중 적어도 일부를 수행할 수 있다. 중앙처리부(100)가 수행하는 것으로 설명한 다양한 연산의 적어도 일부는 서버(400)에 의해 수행될 수 있다.
이상에서는 테니스 자율훈련 시스템(1)에 대하여 주로 플레이어가 상대방 없이 혼자서 테니스를 연습할 수 있는 경우에 대해 설명하였으나, 플레이어가 상대방(상대방 또한 플레이어로 지칭될 수도 있을 것이다)과 테니스를 치는 경우에 테니스 자율훈련 시스템(1)이 이용되는 것을 배제하는 것은 아니다. 이 경우, 플레이어는 볼 머신부(300)를 제외한 다른 구성 요소 위주로 테니스 자율훈련 시스템(1)을 이용할 수 있다. 일 예로, 플레이어는 중앙처리부(100를 이용하여 점수를 계산할 수 있다. 다른 예로, 플레이어는 중앙처리부(100)를 이용하여 볼의 인-아웃 여부를 확인할 수 있다. 또 다른 예로, 플레이어는 중앙처리부(100)를 이용하여 코칭 데이터를 제공받을 수 있다.
본 발명은 그 분야가 테니스에만 한정되는 것은 아니고 네트나 코트가 있는 모든 스포츠(탁구, 배드민턴, 족구 등) 분야에 적용가능하다. 뿐만 아니라 네트, 코트를 포함하지 않는 축구, 농구, 야구 등의 자율훈련 시스템을 구성할 경우에도 본 발명의 기술적 특징이 적용될 수 있다. 즉, 본 발명은 분야를 가리지 않고 모든 스포츠에 적용할 수 있다.
본 발명의 각 실시예에 개시된 기술적 특징들은 해당 실시예에만 한정되는 것은 아니고, 서로 양립 불가능하지 않은 이상, 각 실시예에 개시된 기술적 특징들은 서로 다른 실시예에 병합되어 적용될 수 있다.
이상, 본 발명의 테니스 자율훈련 시스템의 실시예들에 대해 설명하였다. 본 발명은 상술한 실시예 및 첨부한 도면에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자의 관점에서 다양한 수정 및 변형이 가능할 것이다. 따라서 본 발명의 범위는 본 명세서의 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
1: 테니스 자율훈련 시스템
10: 네트워크
100: 중앙처리부
110: 촬영부
120: 출력부
130: 제어부
140: 저장부
150: 통신부
160: 지지부
200: 모바일 디바이스
300: 볼 머신부
310: 제어부
320: 구동부
330: 발사부
340: 통신부
400: 서버

Claims (1)

  1. 테니스 경기 상황을 촬영하는 촬영부 및 상기 촬영부로부터 획득된 비디오를 기초로 경기 상황을 분석하는 제어부를 포함하는 중앙처리부; 및
    상기 중앙처리부의 지시에 따라 이동하며 볼을 발사하는 볼 머신부를 포함하는,
    테니스 자율훈련 시스템.
KR1020220135024A 2021-10-07 2022-10-19 테니스 자율훈련 시스템 KR20230050262A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220135024A KR20230050262A (ko) 2021-10-07 2022-10-19 테니스 자율훈련 시스템

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210133347 2021-10-07
KR1020220135024A KR20230050262A (ko) 2021-10-07 2022-10-19 테니스 자율훈련 시스템

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020210133347 Division 2021-10-07 2021-10-07

Publications (1)

Publication Number Publication Date
KR20230050262A true KR20230050262A (ko) 2023-04-14

Family

ID=84040162

Family Applications (8)

Application Number Title Priority Date Filing Date
KR1020220080551A KR102496426B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템
KR1020220080552A KR102496422B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템
KR1020220080554A KR102464171B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템
KR1020220080550A KR102464168B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템
KR1020220080553A KR102496432B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템
KR1020220080555A KR102464170B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템
KR1020220135024A KR20230050262A (ko) 2021-10-07 2022-10-19 테니스 자율훈련 시스템
KR1020230013577A KR20230050276A (ko) 2021-10-07 2023-02-01 테니스 자율 훈련 시스템

Family Applications Before (6)

Application Number Title Priority Date Filing Date
KR1020220080551A KR102496426B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템
KR1020220080552A KR102496422B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템
KR1020220080554A KR102464171B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템
KR1020220080550A KR102464168B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템
KR1020220080553A KR102496432B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템
KR1020220080555A KR102464170B1 (ko) 2021-10-07 2022-06-30 테니스 자율 훈련 시스템

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020230013577A KR20230050276A (ko) 2021-10-07 2023-02-01 테니스 자율 훈련 시스템

Country Status (4)

Country Link
US (2) US11844992B2 (ko)
KR (8) KR102496426B1 (ko)
AU (1) AU2022359539A1 (ko)
WO (1) WO2023059131A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019244153A1 (en) * 2018-06-21 2019-12-26 Baseline Vision Ltd. Device, system, and method of computer vision, object tracking, image analysis, and trajectory estimation
KR102496426B1 (ko) * 2021-10-07 2023-02-06 주식회사 큐링이노스 테니스 자율 훈련 시스템
TWI828594B (zh) * 2023-06-08 2024-01-01 國立陽明交通大學 發球機校正系統及方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6082350A (en) * 1999-02-04 2000-07-04 Chin Music Llc Accurate, multi-axis, computer-controlled object projection machine
BR102014020514A2 (pt) * 2014-08-21 2016-04-19 Rodrigo Frassetto Nogueira simulador de práticas esportivas e método de simulação de partidas
US20160166912A1 (en) * 2014-12-12 2016-06-16 Roberto Caballero Paredes Tennis training device using virtual targets
KR20180031135A (ko) * 2016-09-19 2018-03-28 황인헌 테니스공 자동 발사 장치
CN107007996B (zh) * 2017-05-16 2022-04-19 中国人民大学附属中学 一种用于球类运动训练的发球装置
KR102045439B1 (ko) 2017-09-15 2019-11-15 주식회사 뉴딘콘텐츠 가상 테니스 시뮬레이션 시스템, 이에 이용되는 센싱장치 및 센싱방법
US10912981B1 (en) * 2018-01-17 2021-02-09 AI Incorporated Tennis playing robotic device
KR102146358B1 (ko) * 2018-09-12 2020-08-20 주식회사 뉴딘콘텐츠 볼의 운동에 대한 센싱방법 및 이를 이용한 센싱장치
CN109589580B (zh) * 2018-11-08 2020-10-16 义乌市诠铈新材料有限公司 基于视觉识别和全向移动的智能网球训练机器人及训练方法
US11471741B2 (en) * 2018-12-21 2022-10-18 SurfaSense LLC Adaptive tennis ball machine
US20220193504A1 (en) * 2019-03-27 2022-06-23 Bok-Yeon WOO Automatic table tennis training apparatus
KR20200126036A (ko) * 2019-04-29 2020-11-06 최호기 테니스공 발사와 수거를 수행하는 로봇
IL268727A (en) 2019-08-15 2021-03-01 Slinger Bag Ltd A rotating device that oscillates horizontally to a tennis ball launcher
AU2020350809A1 (en) * 2019-09-18 2022-05-05 Trajekt Sports Inc. Method and system of replicating ball trajectories using an automated ball throwing machine
KR20210115465A (ko) 2020-03-13 2021-09-27 김호동 인공지능 스마트 탁구 연습 시스템 및 동작 방법
KR102392807B1 (ko) * 2020-05-15 2022-04-29 권예찬 각도 가변형 볼 자동 공급 장치
KR102265914B1 (ko) * 2020-09-04 2021-06-16 권예찬 테니스 자율훈련 시스템
KR102496426B1 (ko) * 2021-10-07 2023-02-06 주식회사 큐링이노스 테니스 자율 훈련 시스템

Also Published As

Publication number Publication date
US20230110640A1 (en) 2023-04-13
US11844992B2 (en) 2023-12-19
KR102464168B1 (ko) 2022-11-09
KR102496432B1 (ko) 2023-02-07
WO2023059131A1 (ko) 2023-04-13
KR102496422B1 (ko) 2023-02-06
KR20230050276A (ko) 2023-04-14
KR102496426B1 (ko) 2023-02-06
AU2022359539A1 (en) 2024-05-02
KR102464170B1 (ko) 2022-11-09
KR102464171B1 (ko) 2022-11-09
US20230347227A1 (en) 2023-11-02

Similar Documents

Publication Publication Date Title
US20230372803A1 (en) Tennis self-training system
US11642047B2 (en) Interactive training of body-eye coordination and reaction times using multiple mobile device cameras
US11842572B2 (en) Device, system, and method of computer vision, object tracking, image analysis, and trajectory estimation
US11322043B2 (en) Remote multiplayer interactive physical gaming with mobile computing devices
US11117035B2 (en) Video analytics for human performance
US10010778B2 (en) Systems and methods for tracking dribbling and passing performance in sporting environments
KR20230050262A (ko) 테니스 자율훈련 시스템
AU2018404876B2 (en) Golf ball tracking system
US11565166B2 (en) Golf game implementation using ball tracking and scoring system
US11850498B2 (en) Kinematic analysis of user form
KR100907704B1 (ko) 인공지능형 캐디를 이용한 골퍼자세교정시스템 및 이를이용한 골퍼자세교정방법
CN109069903A (zh) 用于监测体育事件中的对象的系统和方法
CN109045652B (zh) 高尔夫球计分装置和系统
US20230285832A1 (en) Automatic ball machine apparatus utilizing player identification and player tracking
CN115475373B (zh) 运动数据的展示方法、装置、存储介质及电子装置
KR20230020335A (ko) 인공지능을 이용하여 골프공의 타격 결과를 알아내는 방법 및 이를 이용하는 가상 골프 장치
Hu et al. Design of basketball game image acquisition and processing system based on machine vision and image processor
US11707663B1 (en) System for tracking, locating and predicting the position of a ball in a game of baseball or similar
KR102507339B1 (ko) 라이다센서 및 빅데이터를 이용한 체험형 축구 경기 운영시스템
KR102567201B1 (ko) 두 대의 카메라를 이용한 콘솔형 골프 시뮬레이션 시스템
US11900678B2 (en) System for tracking, locating and calculating the position of an object in a game involving moving objects
KR102626000B1 (ko) 테니스 훈련 시스템
KR20220138516A (ko) 라이다센서 및 빅데이터를 이용한 스크린-골프 운영시스템