[go: up one dir, main page]

KR102817038B1 - 하나 이상의 센서에 의해 등록된 미확인 검출들을 이용한 3차원 객체 추적 - Google Patents

하나 이상의 센서에 의해 등록된 미확인 검출들을 이용한 3차원 객체 추적 Download PDF

Info

Publication number
KR102817038B1
KR102817038B1 KR1020237015000A KR20237015000A KR102817038B1 KR 102817038 B1 KR102817038 B1 KR 102817038B1 KR 1020237015000 A KR1020237015000 A KR 1020237015000A KR 20237015000 A KR20237015000 A KR 20237015000A KR 102817038 B1 KR102817038 B1 KR 102817038B1
Authority
KR
South Korea
Prior art keywords
dimensional
interest
registered
objects
given
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020237015000A
Other languages
English (en)
Other versions
KR20230101815A (ko
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 탑골프 스웨덴 에이비
Publication of KR20230101815A publication Critical patent/KR20230101815A/ko
Application granted granted Critical
Publication of KR102817038B1 publication Critical patent/KR102817038B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/86Combinations of radar systems with non-radar systems, e.g. sonar, direction finder
    • G01S13/867Combination of radar systems with cameras
    • 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/0021Tracking a path or terminating locations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/66Radar-tracking systems; Analogous systems
    • G01S13/72Radar-tracking systems; Analogous systems for two-dimensional tracking, e.g. combination of angle and range tracking, track-while-scan radar
    • G01S13/723Radar-tracking systems; Analogous systems for two-dimensional tracking, e.g. combination of angle and range tracking, track-while-scan radar by using numerical data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/292Multi-camera tracking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/77Determining position or orientation of objects or cameras using statistical methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/255Detecting or recognising potential candidate objects based on visual cues, e.g. shapes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/52Surveillance or monitoring of activities, e.g. for recognising suspicious objects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/647Three-dimensional objects by matching two-dimensional images to three-dimensional objects
    • 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/0021Tracking a path or terminating locations
    • A63B2024/0028Tracking the path of an object, e.g. a ball inside a soccer pitch
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06T2207/30224Ball; Puck
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Image Analysis (AREA)
  • Radar Systems Or Details Thereof (AREA)
  • Measurement Of Optical Distance (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

3차원 객체 추적을 위한 매체-인코딩된 컴퓨터 프로그램 제품들을 포함하는 방법들, 시스템들, 및 장치는 적어도 하나의 양태에서 방법을 포함하고, 이 방법은: 거짓 음성들을 최소화하게끔 더 많은 거짓 양성들을 허용하도록 구성된 검출 시스템에 의해 등록된 객체들의 3차원 위치들을 획득하는 단계, 추정된 3차원 속도 벡터들이 3차원 공간에서 움직이는 객체에 대략적으로 대응할 때 등록된 객체들 사이의 연결들을 허용하는 필터를 이용하여 가정들을 형성하는 단계, 형성하는 단계 동안 더 이상 확장되지 않는 가정들의 적절한 서브세트를 제거하는 단계, 제거하는 단계에서 살아남은 적어도 하나의 가정을 형성하는데 이용되는 3차원 위치들에 대한 데이터에 대해 완전한 3차원 물리 모델을 적용함으로써 3차원 공간에서 움직이는 적어도 하나의 공의 적어도 하나의 3차원 궤적을 명시하는 단계, 및 3차원 공간에서 움직이는 적어도 하나의 공의 적어도 하나의 3차원 궤적을 디스플레이를 위해 출력하는 단계를 포함한다.

Description

하나 이상의 센서에 의해 등록된 미확인 검출들을 이용한 3차원 객체 추적
본 명세서는, 상이한 센서 기술들을 채용할 수 있는, 상이한 센서들로부터 획득된 데이터를 이용하여 비행 중인 골프공 등의 움직이는 객체를 추적하는 것에 관한 것이다.
센서들로 골프 샷의 비행을 추적하는 시스템들 및 방법들은, 론치 모니터(launch monitor)들, 전체 비행 2차원(2D) 추적, 및 전체 비행 3차원(3D) 추적을 포함한다. 흔히 이용되는 센서 유형들은, 카메라들, Doppler 레이더, 및 위상 배열 레이더이다. 론치 모니터 방법은, 골프 클럽의 스윙과 클럽이 공에 충돌한 후 처음 몇 인치의 공의 비행 동안에 관찰될 수 있는 한 세트의 파라미터들을 측정하는 것에 기초한다. 그 다음, 측정된 파라미터들을 이용하여 수학과 물리 모델링을 이용하여 예상되는 공의 비행을 추정한다.
대조적으로, 전체 비행 3D 추적 시스템들은, 론치 파라미터들로부터 추정하는 것이 아니라, 골프 샷의 전체 비행을 추적하려고 시도하는 설계를 특징으로 한다. 또한, 전체 비행 2D 추적 시스템은, 특정한 각도에서 볼 때 골프 샷의 형상을 추적하지만 3D 정보를 생성하지 않으며, 일반적으로 공이 이동한 거리 등의 주요 파라미터들을 결정하는데 이용될 수 없다. 카메라와 Doppler 레이더 데이터의 조합을 이용하는 전체 비행 3D 추적은 미국 특허 번호 제10,596,416호에서 설명되어 있다. 마지막으로, 이미지 프레임 취득이 서로 동기화되어 있는 스테레오 카메라들을 이용한 전체 비행 3D 추적은, 일부 정황에서 객체들의 3D 추적에 잠재적으로 이용가능한 것으로 설명되었다.
본 명세서는 카메라들, 레이더 디바이스들, 또는 이들의 조합 등의, 2개 이상의 센서로부터 획득된 데이터를 이용하여 비행 중인 골프공 등의 3차원(3D) 공간에서 움직이는 객체를 추적하는 것과 관련된 기술들을 설명한다. 3D 객체 추적은 2개 이상의 센서에 의해 등록된 미확인 객체 검출들을 이용한다. 3D 공간에서 3D 추적에 대한 입력들로서 이용되는 검출된 객체들의 더 많은 거짓 양성들을 허용함으로써, 검출된 객체들의 거짓 음성들의 수가 최소화될 수 있으므로, 센서로부터의 거리(및/또는 그에 관한 상대 속도)로 인해 센서가 객체를 정확하게 검출할 수 있는 충분한 데이터를 획득하기 어려운 경우에도 작은 객체(예컨대, 골프공)가 여전히 검출되도록 보장하는 것을 돕는다.
그러나, 이러한 많은 거짓 양성들의 이용은, 3D 추적 시스템에 대한 대부분의 3D 데이터 입력(예컨대, 적어도 95%, 적어도 96%, 적어도 97%, 적어도 98% 또는 적어도 99%)이 사실상 객체를 정확하게 검출하지 못함을 의미하며, 추적될 객체들의 미확인 검출들의 3D 클라우드에서 움직임 분석을 수행하기 위한 본 문서에서 설명되는 시스템들 및 기술들이 없다면, 이것은 3D 공간에서 실시간으로 움직이는 실제 객체들을 발견하기 위해 3D 추적 시스템의 능력을 과부하시킬 수 있다. 거짓 양성들은, 사실상 추적될 객체가 아닌 잘못된 센서 검출들(예컨대, 잠재적인 골프공을 식별하는 각각의 카메라로부터의 데이터 중 90% 이상이 실제로는 골프공이 아님, 예컨대, 신호 내의 노이즈이거나 골프공이 아닌 다른 객체들임) 뿐만 아니라, 사실상 하나의 객체가 아닌 데이터의 잘못된 조합들(예컨대, 상이한 카메라들로부터의 객체 검출들의 페어링들 또는 카메라 센서와 레이더 디바이스 또는 기타의 센서로부터의 객체 검출들의 페어링들의 50% 이상은 부정확할 것이다, 예를 들어, 센서들 중 하나로부터의 데이터만이 실제로 골프공이거나, 양쪽 센서들로부터의 데이터가 골프공이지만 동일한 골프공이 아님)을 포함할 수 있다는 점에 유의한다. 그럼에도 불구하고, 본 문서에서 설명되는 시스템들 및 기술들은 객체들을 검출하는데 이용되는 센서들로부터의 데이터의 많은 잘못된 페어링들과 객체들의 많은 잘못된 검출들을 포함하는 입력 3D 데이터에도 불구하고 3D 공간에서 움직이는 객체들을 정확하게 식별할 수 있다.
일반적으로, 본 명세서에서 설명되는 주제의 하나 이상의 양태는, 하나 이상의 방법(및 또한 2개 이상의 센서를 포함하는 객체 검출 시스템과 연관된 데이터 처리 장치로 하여금 동작들을 수행하게 하는 명령어들을 유형적으로 인코딩한 하나 이상의 비일시적인 컴퓨터 판독가능한 매체)로 구현될 수 있으며, 이 방법은: 거짓 음성들을 최소화하게끔 등록된 관심대상 객체들에 대해 더 많은 거짓 양성들을 허용하도록 구성된 객체 검출 시스템에 의해 등록된 관심대상 객체들의 3차원 위치들을 획득하는 단계; 등록된 관심대상 객체들의 3차원 위치들에 적용되는 필터를 이용하여 3차원 공간에서 움직이는 객체들의 가정들(hypotheses)을 형성하는 단계 ― 필터는 특정한 관심대상 객체들에 대한 추정된 3차원 속도 벡터들이 시간에 걸쳐 3차원 공간에서 움직이는 객체에 대략적으로 대응할 때 등록된 관심대상 객체들 중 상기 특정한 객체들 간의 연결들을 허용함 ―; 객체 검출 시스템에 의해 등록된 적어도 하나의 추가적인 관심대상 객체와, 형성하는 단계 동안, 이루어진 연결들에 의해 더 이상 확장되지 않는 가정들의 적절한 서브세트를 제거하는 단계; 제거하는 단계에서 살아남은 적어도 하나의 가정의 형성에서 이용된 등록된 관심대상 객체들의 3차원 위치들에 대한 데이터에 대해 완전한 3차원 물리 모델을 적용함으로써, 3차원 공간에서 움직이는 적어도 하나의 공의 적어도 하나의 3차원 궤적을 명시하는 단계; 및 3차원 공간에서 움직이는 적어도 하나의 공의 적어도 하나의 3차원 궤적을 디스플레이를 위해 출력하는 단계를 포함한다.
이 양태의 다른 실시예들은, 대응하는 시스템들, 장치, 및 방법들의 동작들을 수행하도록 각각 구성된 하나 이상의 컴퓨터 저장 디바이스에 기록된 컴퓨터 프로그램 제품들을 포함한다. 따라서, 본 명세서에서 설명되는 주제의 하나 이상의 양태는, 2개 이상의 센서(예를 들어, 하이브리드 카메라-레이더 센서, 적어도 하나의 카메라 및 적어도 하나의 레이더 디바이스, 스테레오 카메라, 다양한 스테레오 카메라 쌍들을 형성할 수 있는 다중 카메라 등) 및 관심대상 객체들을 등록하고 등록된 관심대상 객체들에 대해 더 많은 거짓 양성들을 허용하여 거짓 음성들을 최소화하도록 구성된 객체 검출 시스템의 하나 이상의 제1 컴퓨터; 및 하나 이상의 방법에 따라 동작들을 수행하도록 구성된 하나 이상의 제2 컴퓨터를 포함하는 하나 이상의 시스템으로 구현될 수 있다. 전술된 실시예들 및 다른 실시예들은 선택사항으로서 다음과 같은 피처들 중 하나 이상을 단독으로 또는 조합하여 포함할 수 있다.
필터를 이용하여 3차원 공간에서 움직이는 객체들의 가정들을 형성하는 단계는, 주어진 가정에 대한 등록된 검출의 수가 임계값 미만일 때 3차원 공간에서 움직임의 제1 모델을 이용하는 단계 ― 제1 모델은 제1 레벨의 복잡성을 가짐 ―; 및 주어진 가정에 대한 등록된 검출의 수가 임계값보다 크거나 같을 때 3차원 공간에서 움직임의 제2 모델을 이용하는 단계 ― 제2 모델은 제1 모델의 상기 제1 레벨의 복잡성보다 큰 제2 레벨의 복잡성을 가짐 ― 를 포함할 수 있다. 3차원 공간에서의 움직임의 제1 모델은, 등록된 관심대상 객체의 제1 3차원 위치가 주어진 가정을 주어진 가정에 의해 예측된 방향과 대략 동일한 방향으로 확장할 때, 제1 3차원 위치를 주어진 가정에 연결하는 선형 모델일 수 있고, 3차원 공간에서의 움직임의 제2 모델은 3차원 공간에서 움직임의 단기 예측들을 수행하도록 훈련된 순환 신경망 모델일 수 있다.
3차원 공간에서의 움직이는 객체들의 가정들을 형성하는 단계는, 주어진 가정에 대한 등록된 검출의 수 및 임계값에 따라 제1 모델 또는 제2 모델을 이용하여 주어진 가정에 대한 등록된 검출에 대한 다음 3차원 위치를 예측하는 단계; 예측된 다음 3차원 위치의 미리정의된 거리 내의 3차원 위치들의 세트를 발견하기 위해, 다음 시간 슬라이스에 대해 객체 검출 시스템에 의해 등록된 관심대상 객체들의 모든 3차원 위치를 포함하는 공간 데이터 구조를 검색하는 단계; 3차원 위치들의 세트가 널 세트일 때 주어진 가정에 대한 예측된 다음 3차원 위치를 이용하는 단계; 3차원 위치들의 세트가 단일의 3차원 위치만을 포함할 때 주어진 가정에 대한 단일 3차원 위치를 이용하는 단계; 및 3차원 위치들의 세트가 2개 이상의 3차원 위치를 포함할 때, 소팅된 세트를 형성하기 위해 예측된 다음 3차원 위치에 대한 근접성에 기초하여 2개 이상의 3차원 위치를 소팅하는 단계, 2보다 큰 미리정의된 임계수를 넘는 소팅된 세트 내의 임의의 덜 근접한 3차원 위치들을 제거하는 단계, 및 소팅된 세트에 남아 있는 2개 이상의 3차원 위치를 이용하여 주어진 가정을 가정들 그룹 내의 2개 이상의 가정으로 브랜칭하는 단계를 포함할 수 있다.
주어진 가정에 대한 등록된 검출의 수가 임계값보다 크거나 같을 때 상기 3차원 공간에서 움직이는 객체들의 가정들을 형성하는 단계는, 로컬 최소 수직 위치를 갖는 주어진 가정 내의 데이터 포인트를 식별하는 단계; 주어진 가정 내의 데이터 포인트 전과 후의 추정된 3차원 속도 벡터들의 각자의 수직 성분들을 체크하는 단계; 및 각자의 수직 성분들 중 제1 성분이 음수이고 각자의 수직 성분들 중 제2 성분이 양수일 때 데이터 포인트를 지면 충돌로서 지정하는 단계를 포함할 수 있다.
각자의 수직 성분들은 주어진 가정 내의 데이터 포인트 전과 후의 추정된 3차원 속도 벡터들의 평균들로부터 나올 수 있고, 상기 방법은, 추정된 3차원 속도 벡터들과 연관된 노이즈 레벨, 데이터 포인트의 한쪽 또는 양쪽에 관한 최소 예상된 비행 시간, 또는 노이즈 레벨과 최소 예상된 비행 시간 양쪽 모두에 기초하여, 적어도 하나의 시간 윈도우를 선택하는 단계; 및 적어도 하나의 시간 윈도우 내에 속하는 데이터 포인트 전과 후의 추정된 3차원 속도 벡터들의 평균들을 컴퓨팅하는 단계를 포함할 수 있다.
주어진 가정에 대한 등록된 검출의 수가 임계값보다 크거나 같을 때 3차원 공간에서의 움직이는 객체들의 가정들을 형성하는 단계는, 주어진 가정을 비행 세그먼트, 하나 이상의 바운스 세그먼트 및 롤 세그먼트를 포함하는 별개의 세그먼트들로 분할하는 단계를 포함할 수 있고, 분할하는 단계는, 식별하는 단계, 체크하는 단계, 지정하는 단계, 및: 제1 지정된 지면 충돌 전의 주어진 가정의 제1 세그먼트를 비행 세그먼트로서 분류하는 단계; 각각의 다음 지정된 지면 충돌 후의 상기 주어진 가정의 다음 세그먼트를, 다음 지정된 지면 충돌 전의 제1 추정된 속도 벡터와 다음 지정된 지면 충돌 후의 제2 추정된 속도 벡터 사이의 각도가 임계 각도보다 클 때, 하나 이상의 바운스 세그먼트 중 하나로서 분류하는 단계; 및 다음 지정된 지면 충돌 후의 주어진 가정의 다음 세그먼트를, 다음 지정된 지면 충돌 전의 제1 추정된 속도 벡터와 다음 지정된 지면 충돌 후의 제2 추정된 속도 벡터 사이의 각도가 임계 각도보다 작거나 같을 때, 롤 세그먼트로서 분류하는 단계를 포함할 수 있다.
주어진 가정은 제거 단계에서 살아남은 적어도 하나의 가정일 수 있고, 3차원 공간에서 움직이는 적어도 하나의 공의 적어도 하나의 3차원 궤적을 명시하는 단계는, 적어도 비행 세그먼트에서 객체 검출 시스템에 의해 등록된 센서 관찰값들을 이용하여 더 정확한 3D 경로를 삼각측량함으로써 적어도 하나의 가정을 형성하는데 이용되는 등록된 객체들의 3차원 위치들에 대한 데이터를 생성하는 단계; 및 적어도 비행 세그먼트에 대한 생성된 데이터에 대해 완전한 3차원 물리 모델을 적용함으로써 움직이는 적어도 하나의 공을 확정하는 단계를 포함할 수 있다.
획득하는 단계는, 등록된 관심대상 객체들의 3차원 위치들을 수신하거나 생성하는 단계를 포함할 수 있고, 등록된 관심대상 객체들의 대부분은 개개의 센서들에 의한 오검출 및 개개의 센서들 중 각자의 센서들로부터의 오검출 조합들을 포함하는 거짓 양성들이다. 개개의 센서들은 3개 이상의 센서를 포함할 수 있고, 획득하는 단계는 현재의 시간 슬라이스에 대한 3개 이상의 센서의 각자의 쌍들로부터의 검출들의 각자의 조합들을 만듦으로써 3차원 위치들을 생성하는 단계를 포함할 수 있다. 3개 이상의 센서는 2개의 카메라 및 레이더 디바이스를 포함할 수 있고, 상기 만드는 것은, 관심대상 단일 객체의 제1 3차원 위치를 생성하기 위해 2개의 카메라의 스테레오 페어링을 이용하여 2개의 카메라에 의해 관심대상 단일 객체의 검출들을 조합하는 것, 및 관심대상 단일 객체의 제2 3차원 위치를 생성하기 위해 2개의 카메라 중 적어도 하나와 레이더 디바이스에 의해 관심대상 단일 객체의 검출들을 조합하는 것을 포함할 수 있다. 게다가, 3개 이상의 센서는 추가 카메라를 포함할 수 있고, 상기 만드는 것은, 단일의 관심대상 객체의 제3 3차원 위치 및 단일의 관심대상 객체의 제4 3차원 위치를 생성하기 위해, 추가 카메라와 2개의 카메라 각각의 스테레오 페어링들을 이용하여 추가 카메라 및 2개의 카메라에 의한 단일의 관심대상 객체의 검출들을 조합하는 것을 포함할 수 있다.
본 명세서에서 설명되는 주제의 하나 이상의 실시예의 상세사항이 첨부된 도면들과 이하의 상세한 설명에 개시되어 있다. 본 발명의 다른 피처들, 양태들, 및 이점들은, 상세한 설명, 도면들, 및 청구항들로부터 명백해질 것이다.
도 1a는, 2차원(2D) 이미지 데이터의 움직임 기반의 전처리를 수행한 다음 3차원 공간을 통해 움직이는 객체의 3차원(3D) 객체 추적이 후속되는 시스템의 한 예를 보여준다.
도 1b 내지 도 1d는 도 1a의 시스템에서 이용될 수 있는 상이한 센서 및 컴퓨터 구성들의 예들을 보여준다.
도 2는 데이터 처리 장치를 포함하는 데이터 처리 시스템의 개략도이다.
도 3은, 객체들을 검출하고, 2D에서 객체들을 추적하고, 시간 동기화를 위한 가상의 2D 위치들을 생성하고, 움직이는 객체들의 3D 궤적들을 구축하기 위해 상이한 컴퓨터들에서 수행되는 프로세스들의 한 예를 보여준다.
도 4a 내지 도 4d는 움직임 기준을 충족하는 객체 위치들의 시퀀스들을 발견하는 프로세스의 예들을 보여준다.
도 5는 롤링 셔터 카메라로부터 획득된 특정한 이미지 프레임들 내의 명시된 2D 위치들 사이를 보간하는 프로세스의 한 예를 보여준다.
도 6a는 움직이는 객체(예를 들어, 공)의 3D 궤적을 구축하는 프로세스의 한 예를 보여준다.
도 6b는 제2 카메라로부터 획득된 얻은 적어도 하나의 2D 위치를 제외하는 프로세스의 한 예를 보여준다.
도 7은 2개 이상의 센서에 의해 등록된 미확인 검출들을 이용하여 움직이는 객체들의 3D 객체 추적 프로세스의 한 예를 도시한다.
도 8은 도 7의 3D 객체 추적 프로세스에서 이용될 수 있는 가정 형성 프로세스의 한 예를 보여준다.
도 9는, 도 7의 3D 객체 추적 프로세스에서 이용될 수 있는, 가정 형성 동안 가정을 별개의 세그먼트들로 분할하는 프로세스의 한 예를 도시한다.
도 10a 및 도 10b는, 도 7의 3D 객체 추적 프로세스에서 이용될 수 있는, 움직이는 공의 3D 궤적을 명시하는 프로세스의 한 예를 도시한다.
다양한 도면에서 유사한 참조 번호들 및 명칭들은 유사한 요소들을 나타낸다.
도 1a는, 2차원(2D) 이미지 데이터의 움직임 기반의 전처리를 수행한 다음 3D 공간(110)을 통해 움직이는 객체의 3차원(3D) 객체 추적이 후속되는 시스템(100)의 한 예를 보여준다. 추적될 객체는, 골프공 또는 때리거나 차거나 던지는 또 다른 유형의 객체(예를 들어, 야구공, 축구공 또는 풋볼공/럭비공)일 수 있다. 일부 구현에서, 3D 공간(110)은, 골프 연습장, 풀밭, 또는 객체가 론칭될 수 있는 또 다른 개방된 영역이다. 예를 들어, 3D 공간(110)은, 하나 이상의 타겟(114), 적어도 하나의 티 영역(tee area)(112)(더 일반적으로는, 론치 영역(112))을 각각 포함하는 골프 베이들을 포함하는 건물, 및 식사 옵션들뿐만 아니라 잠재적으로 다른 엔터테인먼트를 포함하는, 골프 엔터테인먼트 시설의 일부일 수 있다.
일부 구현에서, 3D 공간(110)은, 골프 코스 등의 스포츠를 위한 플레이 영역이며, 여기서 론치 영역(112)은 골프 코스 상의 특정한 홀에 대한 골프 티이거나, 코스 상에서 플레이 중인 골프공에 대한 중간 착륙 지점일 수 있고, 타겟(114)은 골프 코스에서 특정한 홀의 끝에 있는 컵(cup) 또는 코스 상에서 플레이 중인 골프공에 대한 중간 착륙 지점일 수 있다. 골퍼들이 오픈 필드(110) 내로 골프공들을 칠 수 있는 티 라인(tee line)을 따라 있는 복수의 지정된 티 영역 중 하나인 론치 영역(112), 또는 골퍼들이 스포츠 스타디움의 경기장(110) 위로 및 경기장 상으로 골프공들을 칠 수 있는 스포츠 스타디움의 스탠드들 내의 복수의 지정된 티 영역 중 하나인 론치 영역(112) 등의, 다른 구현들도 역시 가능하다.
시스템(100)은, 적어도 하나의 카메라(120)와 그 연관된 컴퓨터(125)를 포함하는 2개 이상의 센서(130)를 포함한다. (적어도 하나의 카메라(120) 및 그 연관된 컴퓨터(125)를 포함하는) 센서들(130) 중 하나 이상은 객체가 추적될 론치 영역(112) 가까이에 위치할 수 있지만, 반드시 그럴 필요는 없다. 일부 구현에서, (카메라(120) 및 컴퓨터(125)를 포함하는) 하나 이상의 센서(130)는 3D 공간(110)의 한측 또는 양측을 따라, 및/또는 론치 영역(112) 반대편의 3D 공간(110)의 다른 측에 위치할 수 있다. 예를 들어, 골프 토너먼트에서, 카메라(120)와 컴퓨터(125)는, 샷들이 그린을 향해 타격될 것이라고 가정하여, 골퍼를 뒤돌아 보면서, 그린 뒤에 위치할 수 있다. 따라서, 다양한 구현에서, 센서들(130)은, 센서(130)로부터 멀리, 센서(130)를 향하여, 및/또는 센서(130)의 시야를 통해 움직이는 객체를 관찰하고 추적할 수 있다(도면에서 순차적으로 각각의 세트의 3개의 점들은 센서, 컴퓨터, 통신 채널 등의 하나 이상의 추가 인스턴스들이 포함될 수 있다는 것을 나타낸다는 점에 유의한다).
센서들(130)은, 미국 특허 제10,596,416호에 설명된 바와 같이, 카메라들(예를 들어, 스테레오 카메라 쌍들), 레이더 디바이스들(예를 들어, 단일 안테나 Doppler 레이더 디바이스들), 또는 잠재적으로 하이브리드 카메라-레이더 센서 유닛을 포함하는 이들의 조합들을 포함할 수 있다. 그럼에도 불구하고, 센서들(130) 중 적어도 하나는 통신 채널에 의해 연결된 카메라(120) 및 그 연관된 컴퓨터(125)이다. 도 1b 내지 도 1d는 도 1a의 시스템에서 이용될 수 있는 상이한 센서 및 컴퓨터 구성들의 예들을 보여준다.
도 1b는, 시스템에서 이용되는 적어도 하나의 다른 통신 채널의 대역폭보다 더 높은 제1 데이터 대역폭을 갖는 제1 통신 채널들(154, 158)을 통해 제1 컴퓨터(150)에 연결된 한 쌍의 카메라들(152, 156)의 한 예를 도시한다. 예를 들어, 제1 통신 채널들(154, 158)은, USB(Universal Serial Bus) 3.0, MIPI(Mobile Industry Processor Interface), PCIx(Peripheral Component Interconnect eXtended) 등과 같은, 하나 이상의 고대역폭, 단거리 데이터 통신 기술을 채용할 수 있다. 이하에서 더 상세히 설명되는 바와 같이, 카메라(들)(152, 156)로부터의 이미지 데이터의 전처리는 하나 이상의 제1 컴퓨터(150)에서 카메라 가까이에서 수행될 수 있고, 일단 제1 컴퓨터(들)(150)에서의 전처리가 데이터 대역폭을 감소시키고 나면, 이 전처리의 출력은 제1 데이터 대역폭보다 작은 제2 데이터 대역폭을 갖는 제2 통신 채널(162)을 통해 전송될 수 있다. 따라서, 제2 통신 채널(162)은, 구리 Ethernet 또는 무선 데이터 연결(예를 들어, WiFi 및/또는 하나 이상의 모바일 전화 통신 기술을 이용함) 등의, 하나 이상의 낮은 대역폭, 장거리 데이터 통신 기술을 채용할 수 있다.
이것은, 시스템이 더 높은 해상도의 카메라(들)(120, 152, 156) 및 이들 카메라(들)(120, 152, 156)로부터의 원시 이미지 (압축되지 않은) 데이터와 함께 동작하는 컴퓨터(들)(125, 150)로 구현되는 것을 허용하기 때문에 중요하다. 스테레오 카메라 추적을 이용하든 하이브리드 카메라/레이더 추적을 이용하든, 더 높은 프레임 레이트의 고해상도 카메라를 이용하는 것은 더 높은 품질의 3D 추적을 가능케하지만, 데이터가 효율적이고 효과적으로 처리될 수 있는 경우에만 가능하다는 점에 유의한다. 또한, 객체 추적이 매우 작은 객체들에 대해 작동하도록 의도된 경우(예를 들어, 객체가 심지어 고해상도 카메라 이미지의 단일 픽셀에만 나타날 수 있음), 객체 검출은 원시 이미지 (압축되지 않은) 데이터에 액세스할 필요가 있을 수 있는데, 이것은 전통적인 손실성 비디오 압축 기술들(MPEG 등)을 이용하는 것은 작은 객체들에 대한 중요한 정보를 이미지들로부터 제거할 수 있기 때문이다.
이들 문제들을 해결하기 위해, 제1 컴퓨터(들)(150)는, 카메라(들)(152, 156)에 가까운 (객체 검출 및 선택사항으로서 2D 추적을 포함한) 이미지 데이터에 관한 전처리를 수행하여 센서 데이터를 제2 통신 채널(162)을 통해 하나 이상의 제2 컴퓨터(160)에 전송하기 위한 대역폭 요건들을 감소시킬 수 있다. 또한, (본 문서에 설명되는) 또한, 전처리는 시간 및 공간에서 측정된 객체 위치들의 다운스트림(이미지 캡처 후) 가상의 시간 동기화를 가능케하여, 하나 이상의 제2 통신 채널(162)을 통해 수신된 데이터를 이용하여 제2 컴퓨터(들)(160)에서 3D 추적이 수행되는 것을 허용한다. 이것은, 원격 서버에서 다운스트림 처리가 용이하게 수행되는 것을 허용하는데, 이것은, 전처리 후에, 데이터 대역폭이 아주 낮아 데이터를 장거리에 걸쳐 전송하는 것이 문제가 되지 않기 때문이다.
이것은, 제공되는 유연성으로 인해 시스템(100)을 셋업할 때 상당한 이점들을 제공할 수 있다는 점에 유의한다. 예를 들어, 시스템(100)이 골프 코스의 3D 공간을 통해 골프공들을 추적하고 라이브 전송 또는 녹화를 위해 생성된 TV 신호에서 골프공의 흔적을 오버레이하는데 이용될 수 있는 골프 경기 텔레비전(TV) 방송의 경우, 센서들(130)은 TV 프로덕션 시설들(3D 추적 컴퓨터(160)가 위치할 수 있는 곳)로부터 1마일 이상에 배치될 수 있다. (비디오 데이터 상에 공의 비행 경로의 그래픽 표현의 흔적 오버레이를 허용하는) 공 위치들(3D 추적 동안에 식별됨)을 TV 카메라로부터 획득된 비디오 데이터 내의 대응하는 위치들로 변환하는 것은 알려진 호모그래피 기술들을 이용하여 수행될 수 있다는 점에 유의한다. 또 다른 예로서, 골프 엔터테인먼트 시설의 경우, 3D 추적 컴퓨터(예를 들어, 서버 컴퓨터(140, 160))는 동일한 시설에 위치할 필요가 없으며, (예를 들어, 골퍼가 위치해 있는 물리적 환경의 컴퓨터 표현 또는 컴퓨터에만 존재하는 가상의 환경에서, 골프공의 경로를 보여주는 것 등의, 다른 데이터 또는 매체를 보강하기 위해) 이 컴퓨터에 의해 수행되는 3D 추적은 또 다른 컴퓨터에 용이하게 이전될 수 있다(예를 들어, 장애조치 처리).
다양한 센서 및 컴퓨터 구성들이 가능하다. 도 1c는, 각각의 카메라(152, 156)가 전용의 제1 컴퓨터(150A, 150B)를 갖고, 컴퓨터들(150A, 150B)이 별개의 제2 통신 채널들(162, 164)을 통해 그들 각자의 전처리된 데이터를 제2 컴퓨터(들)(160)에 전달하는 한 예를 도시한다. 따라서, 카메라들(또는 다른 센서 기술)은 제1 컴퓨터 자원들을 공유하거나 공유하지 않을 수 있다. 또한, 전처리는 분할되어 상이한 컴퓨터들에서 수행될 수 있다.
도 1d는, 카메라(152)가 제1 데이터 대역폭을 갖는 제1 통신 채널(154)을 통해 컴퓨터(150)와 결합되고, 제1 컴퓨터(150)는 제3 데이터 대역폭을 갖는 제3 통신 채널(168)을 통해 제3 컴퓨터(166)와 결합되며, 제3 컴퓨터(166)는 제2 데이터 대역폭을 갖는 제2 통신 채널(162)을 통해 제2 컴퓨터(160)와 결합되고, 제2 데이터 대역폭은 제1 데이터 대역폭보다 작고, 제3 데이터 대역폭은 제1 데이터 대역폭보다 작지만 제2 데이터 대역폭보다 큰, 한 예를 도시한다. 제1 컴퓨터(150)는 객체 검출을 수행하고, 제3 컴퓨터(166)는 객체의 2D 추적을 수행하며, 제2 컴퓨터(160)는 객체의 가상의 시간 동기화 및 3D 추적을 수행한다. 더욱이, 일부 구현에서, 제1 컴퓨터(150)는 (매우 단순한/느슨한 제약들을 이용하여) 2D에서 객체 검출 및 사전추적을 수행하고, 제3 컴퓨터(166)는 더 철저한 2D 추적을 수행하고, 제2 컴퓨터(160)는 가상의 시간 동기화 및 객체의 3D 추적을 수행한다.
본 문서의 개시내용과 일치하는 다른 센서 및 컴퓨터 구성들도 가능하다. 예를 들어, 제1 컴퓨터(150)는 ((매우 단순한/느슨한 제약들을 이용하여) 2D에서 사전추적과 함께 또는 객체의 2D 추적없이) 객체 검출을 수행할 수 있고, 동일한 제2 컴퓨터(160)가, 객체의 2D 추적을 수행하기 위해 중간의 제3 컴퓨터(166)를 이용하는 것이 아니라, 객체의 2D 추적(2D 또는 전체 2D 추적에서 사전추적 후의 더 철저한 2D 추적), 가상의 시간 동기화 및 객체의 3D 추적을 수행할 수 있다. 반대로, 일부 구현에서는 하나 이상의 추가적인 중간 컴퓨터가 이용될 수 있다. 예를 들어, 시스템은 다음과 같은 4개의 동작들: 객체 검출, 2D 추적, 가상의 시간 동기화, 및 3D 추적 각각을 수행하기 위해 4개의 별개의 컴퓨터를 채용할 수 있다. 또 다른 예로서, 시스템은 다음과 같은 5개의 동작들: 객체 검출, (매우 단순한/느슨한 제약들을 이용한) 2D에서의 사전추적, 더 철저한 2D 추적, 가상의 시간 동기화, 및 3D 추적 각각을 수행하기 위해 5개의 별개의 컴퓨터를 채용할 수 있다. 동작들 중 적어도 하나가 제1 통신 채널을 통해 적어도 하나의 카메라와 통신가능하게 결합된 제1 컴퓨터에서 발생하고, 동작들 중 적어도 하나의 다른 동작이 제1 통신 채널의 데이터 대역폭보다 작은 데이터 대역폭을 갖는 제2 통신 채널을 통해 제1 컴퓨터와 통신가능하게 결합된 제2 컴퓨터에서 발생한다고 가정하는, 다른 구성들이 가능하다.
시스템에서 다양한 유형의 컴퓨터들이 이용될 수 있다. 컴퓨터의 본질적 요소들은, 명령어들을 수행하기 위한 프로세서와, 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 본 명세서에서 사용될 때, "컴퓨터"는, 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터, 임베디드 프로그래밍가능한 회로, 또는 특별 목적 로직 회로를 포함할 수 있다. 도 2는, 제1 컴퓨터(150), 제2 컴퓨터(160), 또는 제3 컴퓨터(166)의 한 구현을 나타내는, 데이터 처리 장치(200)를 포함하는 데이터 처리 시스템의 개략도이다. 데이터 처리 장치(200)는 네트워크(280)를 통해 하나 이상의 컴퓨터(290)와 연결될 수 있다.
데이터 처리 장치(200)는, 애플리케이션 계층과 운영 체제 사이에 분산될 수 있는 다양한 소프트웨어 모듈을 포함할 수 있다. 이들은, 본 문서에 설명된 바와 같은, 객체 검출 프로그램(예를 들어, 제1 컴퓨터(150)에서), 2D 추적 프로그램(예를 들어, 제1 컴퓨터(150) 및/또는 제3 컴퓨터(166)에서), 가상의 시간 동기화 프로그램(예를 들어, 제2 컴퓨터(160)에서), 및/또는 3D 추적 프로그램(예를 들어, 제2 컴퓨터(160)에서)으로서 동작하는 프로그램(230)을 포함한, 실행가능한 및/또는 인터프리트가능한 소프트웨어 프로그램들 또는 라이브러리들을 포함할 수 있다. 이용되는 소프트웨어 모듈의 수는 구현마다 다를 수 있다. 또한, 일부 경우에, 프로그램(230), 예를 들어 2D 추적 프로그램(230)은 임베디드 펌웨어로 구현될 수 있고, 다른 경우에, 프로그램(230), 예를 들어, 시간 동기화 및 3D 추적 프로그램(230)은, 하나 이상의 컴퓨터 네트워크 또는 기타 적절한 통신 네트워크에 의해 연결된 하나 이상의 데이터 처리 장치에 분산된 소프트웨어 모듈들로서 구현될 수 있다.
데이터 처리 장치(200)는, 하나 이상의 하드웨어 프로세서(212), 하나 이상의 추가 디바이스(214), 비일시적인 컴퓨터 판독가능한 매체(216), 통신 인터페이스(218), 및 하나 이상의 사용자 인터페이스 디바이스(220)를 포함한, 하드웨어 또는 펌웨어 디바이스들을 포함할 수 있다. 프로세서(212)는, 추가 디바이스들(214) 중 하나 등의, 저장 디바이스를 포함할 수 있는, 비일시적인 컴퓨터 판독가능한 매체(216)에 저장된 명령어들 등의 데이터 처리 장치(200) 내에서의 실행을 위한 명령어들을 처리할 수 있다. 일부 구현에서, 프로세서(212)는, 단일 또는 다중 코어 프로세서, 또는 2개 이상의 중앙 처리 유닛(CPU)이다. 데이터 처리 장치(200)는, 예를 들어 네트워크(280)를 통해, 하나 이상의 컴퓨터(290)와 통신하기 위해 그 통신 인터페이스(218)를 이용한다. 따라서, 다양한 구현에서, 설명된 프로세스들은, 단일 또는 다중 코어 컴퓨팅 머신 및/또는 컴퓨터 클러스터/클라우드 등에서, 병렬로 또는 직렬로 실행될 수 있다.
사용자 인터페이스 디바이스들(220)의 예들로는, 디스플레이, 터치스크린 디스플레이, 스피커, 마이크로폰, 촉각 피드백 디바이스, 키보드, 및 마우스가 포함된다. 더욱이, 사용자 인터페이스 디바이스(들)는, 로컬 디바이스(들)(220)일 필요는 없지만, 데이터 처리 장치(200)로부터 원격, 예를 들어 하나 이상의 통신 네트워크(들)(280)를 통해 액세스가능한 사용자 인터페이스 디바이스(들)(290)일 수 있다. 데이터 처리 장치(200)는, 예를 들어, 하나 이상의 추가 디바이스(214), 예를 들어 하나 이상의 플로피 디스크 디바이스, 하드 디스크 디바이스, 광 디스크 디바이스, 테이프 디바이스 및 솔리드 스테이트 메모리 디바이스(예를 들어, RAM 드라이브)를 포함할 수 있는, 비일시적인 컴퓨터 판독가능한 매체(216) 상에, 본 문서에서 설명된 동작들을 구현하는 명령어들을 저장할 수 있다. 또한, 본 문서에서 설명된 동작들을 구현하는 명령어들은, 하나 이상의 컴퓨터(290)(예를 들어, 클라우드) 네트워크(280)를 통해 비일시적인 컴퓨터 판독가능한 매체(216)에 다운로드될 수 있고, 일부 구현에서는, RAM 드라이브는 컴퓨터를 켤 때마다 명령어들이 다운로드되는 휘발성 메모리 디바이스이다.
또한, 본 개시내용의 3D 객체 추적은, 센서 데이터의 전처리, 2D 객체 추적, 및 본 문서(및 양쪽 모두 발명의 명칭이 "Motion Based Pre-Processing of Two-Dimensional Image Data Prior to Three-Dimensional Object Tracking With Virtual Time Synchronization"인, 2020년 8월 14일 출원된 미국 가출원 제63/065,872호, 및 2021년 8월 17일 출원된 미국 출원 번호 제17/404,953호)에서 설명된 가상 시간 동기화를 채용할 수 있고, 그에 따라, 본 개시내용의 3D 객체 추적 시스템 및 기술들은, 함께 구현될 때, 데이터 전처리, 2D 객체 추적, 가상 시간 동기화 시스템들 및 기술들의 부수적인 이점들을 얻을 수 있으며, 일부 구현에서, 객체 검출 시스템에 의해 등록된 관심대상 객체들의 3차원 위치들을 획득하기 위한 이들 시스템들 및 기술들은 이용될 필요가 없다. 하나 이상의 다른 객체 검출 시스템이 도 7 내지 도 10b와 관련하여 더 상세히 설명되는 3D 객체 추적에서 이용될 수 있다.
도 3은, 객체들을 검출하고, 2D에서 객체들을 추적하고, 시간 동기화를 위한 가상의 2D 위치들을 생성하고, 움직이는 객체들의 3D 궤적들을 구축하기 위해 상이한 컴퓨터들에서 수행되는 프로세스들의 한 예를 보여준다. 도 3의 프로세스는, 하나 이상의 제1 컴퓨터(예를 들어, 도 1a 내지 도 1d의 컴퓨터들(125, 150, 166))에서 수행되는 전처리 동작들(310-330), 및 하나 이상의 제2 컴퓨터 (예를 들어, 도 1a 내지 도 1d의 컴퓨터들(140, 160))에서 수행되는 추가 처리 동작들(360-375)을 포함한다. 전처리 동작들에는, 제2 컴퓨터(들)에서의 추가 처리 동안에 측정된 객체 위치들의 가상의 시간 동기화를 가능케하는 방식으로 (3D 추적에 이용되는 데이터를 전송하기 위한 대역폭 요건들을 감소시키기 위해) 공의 위치 데이터를 효과적으로 압축하는 객체 검출 및 2D 추적이 포함될 수 있다.
따라서, 이미지 프레임들(300)은 카메라를 제1 컴퓨터(들)와 결합하는 제1 통신 채널(305)을 통해 카메라로부터 (예를 들어, 컴퓨터(125, 150)에 의해) 수신(310)되고, 여기서 이미지 프레임들(300)을 수신하기 위한 제1 통신 채널(305)은 제1 데이터 대역폭을 가진다. 예를 들어, 제1 통신 채널(305)은, USB 3.0, MIPI, 또는 PCIx 통신 채널, 예를 들어 통신 채널(들)(154, 158)일 수 있다. 카메라와 컴퓨터 사이의 대역폭 요건은 초당 1기가비트(Gbps)를 쉽게 초과할 수 있다, 예를 들어 초당 60프레임(FPS) 및 픽셀당 12비트에서 실행되는 12메가픽셀(MP) 카메라는 8Gbps보다 많은 대역폭을 필요로 한다는 점에 유의한다.
또한, 조합하여 이용되는 복수의 이러한 카메라들은 10-100Gbps의 총 대역폭을 요구할 수 있어서, Ethernet 통신 하드웨어에도 심각한 부담을 줄 수 있다. 더욱이, 스테레오 셋업들(예를 들어, 도 1b의 스테레오 카메라들(152, 156))은, 때때로, 카메라들 사이, 또는 카메라들과 서버 룸들 또는 클라우드 기반의 컴퓨팅 등의 컴퓨터 인프라 사이에서 상당한 거리를 요구하여, 긴 케이블 및/또는 인터넷을 통한 통신이 요구될 때 고대역폭 통신을 더욱 어렵게 만든다. 위에서 언급된 바와 같이, MPEG 기술 등의 전통적인 비디오 압축 기술들은, 특히 아주 작은 객체들(예를 들어, 멀리 있는 골프공)이 추적되어야 할 경우 추적될 객체들이 전통적인 비디오 압축에 의해 제거될 위험이 있기 때문에, 대역폭을 감소시키는 적절한 방식이 아닐 수도 있다. 따라서, 고해상도, 높은 비트 깊이, 및/또는 압축되지 않은 이미지 데이터가 객체 검출 프로세스에 대한 입력으로서 수신되는 것(310)을 허용하는, (하나 이상의 카메라로부터의 비디오 프레임들에 대해) 고대역폭 통신 채널(305)이 이용된다.
수신된 이미지 프레임들에서 (예를 들어, 컴퓨터(125, 150)에 의해) 관심대상 위치들이 식별된다(315). 예를 들어, 이것은, 이전 이미지 프레임으로부터 임계량보다 많이 변경되는 하나 이상의 이미지 데이터 값을 갖는 이미지 프레임에서 각각의 위치를 식별하기 위해 이미지 차분(image differencing) 기술들을 이용하는 것을 포함할 수 있다. 또한, 다른 접근법들도 역시 가능하다. 예를 들어, 이 프로세스는, 소정의 휘도 또는 컬러(예를 들어, 골프공들의 경우 흰색)의 픽셀 그룹들을 찾거나, 추적될 객체들의 형상과 정합하는 형상들(예를 들어, 둥근 골프공을 발견하기 위해 원형 또는 적어도 타원형 형상)을 찾거나, 및/또는 템플릿 정합을 이용하여 이미지에서 객체(예를 들어, 골프공)를 검색할 수 있다.
또한, 하나의 이미지 프레임으로부터 또 다른 이미지 프레임으로 임계량보다 많이 변경되는 하나 이상의 이미지 데이터 값을 갖는 위치들을 찾는 것은, 임계량보다 많이 변경되는 픽셀들 또는 픽셀 그룹들을 발견하기 위해 이미지 차분을 적용하는 것을 포함할 수 있다. 예를 들어, 각각의 이미지에서 소정의 임계값보다 많이 변경되는 픽셀들을 발견하기 위해 이미지 차분을 적용할 수 있으며, 예를 들어 공지된 연결된-컴포넌트 라벨링(connected-component labeling)(CCL) 및/또는 연결된-컴포넌트 분석(connected-component analysis)(CCA) 기술들을 이용하여 서로 인접해 있는 이러한 변경 픽셀 그룹들을 발견할 수 있다. 객체 검출 기준을 충족하는 이러한 픽셀 그룹(및 잠재적으로는 또한 단일 픽셀)을 "블롭(blob)"이라고 부르며, 각각의 이러한 블롭의 위치와 크기는 목록에 저장될 수 있고, 각각의 이미지 내의 모든 블롭들의 목록은 2D 추적 컴포넌트에 전송될 수 있다. 이미지를 객체 위치들(또는 블롭들)의 목록으로 전환하는 것은 대역폭 감소 효과를 가진다. 일부 경우에, 이 동작의 대역폭 감소는 10:1 이상일 수 있다. 그러나 본 문서에 설명된 바와 같이 추가적인 대역폭 감소가 달성될 수 있으며, 이것은 매우 작은 객체를 추적할 때 상당한 이점을 제공할 수 있다.
매우 작은 객체 추적의 경우, 객체의 피처들에 기초하여 매우 작은 객체들(아마도 이미지 내의 단일 픽셀)을 구분하는 것은 어렵기 때문에 잘못된 검출들을 동반한 상당한 문제가 있다. 따라서, (카메라 이미지들 내의 특정한 위치들에서 관심대상 객체를 검출하기 위해) 식별하는 것(315)은, 많은 거짓 양성을 허용하면서 0개의 거짓 음성을 선호하도록 낮은 임계값으로 구현될 수 있다. 이 접근법은 일반적으로 객체 추적에서의 거짓 양성들이 종종 바람직하지 않아, 거짓 양성들과 거짓 음성들 양쪽 모두를 최소화하는 것 사이에서 경쟁을 설정한다는 면에서, 일반적으로 반직관적이라는 점을 이해해야 한다. 그러나, 객체 추적에 대한 현재의 접근법은, 많은 양의 거짓 양성들을 처리하도록 다운스트림 처리가 설계되기 때문에 거짓 양성들을 쉽게 수용한다. 그럼에도 불구하고, 객체 검출은 많은 거짓 양성을 허용하도록 설계되기 때문에, 이미지 데이터의 노이즈에 불과한 많은 "객체"를 포함한 더 많은 객체들이 각각의 이미지 프레임(300)에서 식별(315)될 것이며, 따라서 이미지를 객체들의 목록으로 전환하는 대역폭 감소 효과를 부분적으로 상쇄한다.
이미지 프레임에서 식별된 위치들의 시퀀스들은 (예를 들어, 컴퓨터(125, 150, 160, 166)에 의해) 발견된다(320). 도 3(및 다른 도면들)에 도시된 프로세스들은 이해하기 쉽도록 순차적 동작들로서 제시되지만, 실제로는, 예를 들어, 하드웨어 및/또는 운영 체제 기반의 멀티태스킹을 이용하여, 및/또는 파이프라이닝 기술들을 이용하여, 동작들은 병렬로 또는 동시에 수행될 수 있다는 점에 유의한다. 동시성을 위해 파이프라이닝이 이용될 수 있는데, 예를 들어, 객체 식별(315)은, 다운스트림 컴포넌트들이 먼저 완료될 때까지 기다려야 할 필요 없이 프레임 n을 2D 추적(320)에 전달한 직후, 이용가능한 경우 프레임 n+1 처리를 시작할 수 있다. 따라서, 도면들과 연계하여 본 문서에서 제시된 개시내용은, 상응하는 컴퓨터들에서 수행되는 프로세스들이 순차적인 프로세스들로서 설명된 경우를 제외하고, 즉, 각각의 객체 식별 및 2D 추적 처리 단계가 다운스트림 컴포넌트에 전송되는 데이터의 대역폭을 감소시키기 때문에, 객체 식별 프로세스, 2D 추적 프로세스(들), 가상의 시간 동기화 및 3D 추적 프로세스(들)가 순차적으로 발생하는 경우를 제외하고, 도면들에 도시된 바와 같이 동작을 순차적으로 수행하는 것으로 제한되지 않는다.
발견된(320) 시퀀스들 각각은 카메라로부터의 적어도 3개의 이미지 프레임에서 식별된 위치들에 대한 움직임 기준을 충족한다. 일부 구현에서, 이 기준은, 이용되는 3개보다 많은 프레임 및/또는 하나 이상의 기준(예를 들어, 아래에서 설명되는 트리 개시 기준)과 관련하여 측정된다. 일반적으로, 2D 추적은, 중력, 바운싱, 바람, 공기 저항 또는 마찰 이외의 힘들에 영향을 받지 않고 뉴턴 운동 중인 객체의 움직임과 일치하는 객체 움직임을 나타내는 3개 이상의 프레임에 걸친 객체(또는 블롭들)의 시퀀스들을 발견하려고 시도한다.
이 객체 움직임에 대한 기준은, 값들의 미리정의된 범위 내에 있는 각각의 차원(이미지에서의 x 및 y)에서의 변위, 속도, 및/또는 가속도를 포함하도록 정의될 수 있다. 값들의 이 범위는, 2D 카메라에 의해 묘사된 움직이는 객체(예를 들어, 날아가는 골프공)의 2D 움직임 및 가속도가 명시된 경계 내에 충분히 있는 반면, (추적될 객체가 바운스될 수 있는 알려진 객체가 없는 경우) 덜컥거리는 움직임은 거부되도록 설정되다. 더욱이, 더 큰 시스템은, 추적될 실제 객체, 예를 들어, 골프 샷들을 구성하는 것의 더 세분화된 필터링을 수행할 수 있는, 2차 추적 단계를 다운스트림 처리에서 채용할 것이기 때문에, 발견하는 단계(320)는, 티 영역(112)에서 타격된 후 골프공의 움직임 등의 실제 객체 움직임만을 수락하는 완벽한(또는 거의 완벽에 가까운) 필터를 필요로 하지 않는다.
오히려, 320에서 이루어진 필터링은 의도적으로 덜 완벽하게 만들어져, 관심대상 객체로서 잘못 식별(315)된 다음 잘못 발견되어(320) 시퀀스를 형성하는 잠재적 노이즈 시퀀스들을 포함한 발견된 시퀀스들에 움직이는 객체들 이외의 객체들이 포함되는 것을 허용한다. 다시 말해서, 발견하는 단계(320)는 거짓 음성들을 최소화하도록 거짓 양성들을 증가시키는 느슨한 필터를 구현할 수 있다, 예를 들어 움직이는 모든 골프공 또는 거의 모든 골프공이 320에서 유효한 시퀀스들을 형성하는 것으로서 수락될 것이다.
이 더 느슨한(일단 믿어주는) 접근법은, 원하는 객체들(예를 들어, 골프공들)과 원하지 않는 객체들(예를 들어, 비-골프공들)을 구별하는데 있어서 완벽할 필요가 없다는 것을 알기 때문에 훨씬 더 간단한 추적 알고리즘이 320에서 이용될 수 있다는 것을 의미한다. 추적을 정의하는 규칙 세트가 최소한으로 감소될 수 있고, 2D 추적에 의해 이루어진 (비-골프공을 통과시키는 것 등의) 임의의 실수는 다운스트림 컴포넌트들 및 처리에 의해 필터링 제거될 수 있다. 하나의 시작점과 하나의 끝점을 각각 갖는 전체 궤적 경로들을 방출하는 것 대신에, 시퀀스들을 발견하는 단계(320)는, 각각의 정점(vertex)(트리 내의 노드)이 (x, y, 및 시간 t에서) 관찰된 블롭이고 각각의 엣지(edge)는 움직임이 추적되고 있는 객체의 위치들 사이에서의 가능한 움직임인 "루트 트리(rooted tree)"로 표현될 수 있다. 각각의 이러한 브랜치는 또한, 도 4a와 관련하여 더 상세히 설명되는 바와 같이, 트리의 총 깊이 등의 어떤 메타데이터를 가질 수 있다.
그러나, 이 더 느슨한(일단 믿어주는/낮은 임계값) 접근법을 이용하더라도, 누락된 객체 검출들이 발생할 가능성은 여전히 있다. 따라서, 이미지 데이터 내에 있어야 하지만 식별되지 않는 객체들을 감안하기 위해 더미 관찰들이 이용될 수 있다. 일부 구현에서, 경로를 확장할 수 있는 충분히 양호한 블롭이 발견되지 않는다면, 2D 추적기는 예측된 위치에서 더미 관찰을 추가할 수 있다. 더미 관찰들은 상당한 페널티 점수로 구현될 수 있고, 일부 구현에서는, 그래프가 소정의 깊이에 이미 있지 않는 한 더미 관찰들이 허용되지 않을 것이다. 브랜치가 얼마나 많은 페널티를 가질 수 있는지에 관한 제한들이 있기 때문에, 실제로 경로가 가질 수 있는 더미 관찰 수에 대한 제한들이 있다.
위에서 언급된 바와 같이, 발견하는 단계(320)는 관심대상 위치들로부터 루트 트리들을 형성하는 단계를 수반할 수 있으며, 여기서 각각의 루트 트리는, 트리의 루트에 해당하는 루트 노드를 갖는 연결된 비순환 그래프이고, 연결된 비순환 그래프의 모든 엣지는 루트로부터 직접적으로 또는 간접적으로 발생한다. 도 4a는 루트 트리들을 형성함으로써 움직임 기준을 충족하는 객체 위치들의 시퀀스들을 발견하는 프로세스의 한 예를 보여준다. 400에서, 이미지 프레임에 대해 식별된 다음 세트의 위치들이 처리를 위해 획득되고, 관심대상 위치들이 현재 프레임에 대해 세트 내에 남아 있는 동안(405), 이 처리는 계속된다. 예를 들어, 블롭들의 프레임이 처리될 예정일 때, 새로운 프레임 내의 모든 블롭은 이전 프레임의 처리 동안 추가된 모든 트리 노드와 정합되어, 이 브랜치 내의 포인트가 움직임 기준에 의해 정의된 원하는 움직임처럼 보이는 정도에 따라 블롭이 그 경로의 가능한 연속이 될 수 있는지를 알아볼 수 있다.
다음 관심대상 위치가 세트로부터 회수되고(retrieved)(410), 이 관심대상 위치가 트리 개시 기준을 충족하는지를 결정하기 위해 체크(415)가 이루어진다. 만일 그렇다면, 이 관심대상 위치를 이용하여 새로운 트리의 루트 노드가 확립된다(420). 예를 들어, 관심대상 위치의 이미지 데이터 값들이 최소 객체 크기보다 큰 경우, 이것을 이용하여 공이 카메라에 가깝고 새로운 트리가 확립되어야 함을 나타낼 수 있다. 도 4b는, 6개의 블롭(460)이 관찰되지만 이들 블롭들(460) 중 4개만이 새로운 루트 노드들(465)을 확립하는데 이용되기에 충분히 큰, 이것에 대한 시각적 예를 보여준다. 하나의 블롭 관찰이 여러 트리에 추가될 수 있고, 관찰된 모든 블롭은 이론적으로 새로운 객체 관찰의 시작이 될 수 있다는 점에 유의한다. 이것은, 노이즈가 많은 환경에서 조합 폭발(combinatorial explosion)로 이어질 수 있으므로, 일부 구현에서는, 새로운 트리를 확립하기 전에 (최소 블롭 크기 제약 등의) 어떤 추가적인 제약이 시행된다.
이 예에서, 소정의 최소 크기보다 큰 모든 블롭은 깊이 0의 새로운 트리들로 승격되며, 여기서 최소 크기 제한은 카메라 해상도 및 인입 비디오의 노이즈 레벨에 기초하여 설정될 수 있다. 예를 들어, 기준은, 새로운 트리를 확립하기 위해 블롭이 적어도 2픽셀(및 단일 픽셀이 아님)이어야 한다는 것일 수 있다. 진정한 무작위 노이즈는 픽셀들에게 개별적으로 영향을 미치며, 이미지에서 더 큰 클러스터들을 거의 생성하지 않는다는 점에 유의한다. 조합 폭발을 피하기 위한 다른 접근법들도 가능하다. 예를 들어, 블롭 생성(즉, 위치 식별) 프로세스에서의 노이즈 임계값은 적응적으로 조정될 수 있다.
또한, 엑스포트될 경로에 대해 요구되는 최소 트리 깊이가 증가될 수 있고, 이것은, 무작위 노이즈 시퀀스가 그냥 우연히 더 긴 시퀀스들을 구축하는 경우는 거의 없기 때문에, 엑스포트되는 데이터의 양이 제한되게 한다. 제약들이 너무 관대하기 때문에 깊이가 0과 1인 많은 그래프가 생성되지만, 이들 그래프들의 대부분은 예측이 더 양호하기 때문에 깊이 2에 결코 도달하지 않을 것이며, 훨씬 더 적은 수의 그래프가 깊이 3에 도달할 것이다. 따라서, 추가될 수 있는 노드가 더 이상 없을 때 트리들 또는 브랜치들이 폐기되기 때문에, 본 개시내용의 시스템들 및 기술들의 이점을 위해 통계들이 작동한다.
또한, 카메라가 타겟 근처에 위치하여 객체의 론치 영역을 되돌아보는 경우, 즉, 인입 객체들을 검출할 때, 이미지의 상이한 부분들에서 상이한 크기 임계값들이 적용될 수 있다. 예를 들어, 멀리 있는 공을 지목(spot)할 부분(예를 들어 직사각형)에는 최소 1픽셀 크기가 이용될 수 있고, 그외의 곳에서는 최소 2픽셀 크기가 이용될 수 있다. 따라서, 가능한 객체 경로들의 트리들을 형성하는데 이용되는 기준은, 론치 영역에 관한 카메라의 위치에 기초하여 결정될 수 있다.
예를 들어, 다소 평평한 지면이 가정되고 카메라 위치와 조준이 알려져 있는 경우, 지면의 "수평선" 아래에 있는 모든 공 검출은 공이 있을 수 있는 최대 거리(따라서 최소 크기)의 추정치와 대조하여 "정상(sanity)" 체크를 받을 수 있다. 공 검출을 통한 카메라로부터의 광선은 소정 거리 D에서 지면과 교차한다. 공은 거리 D 또는 더 가까이 있어야 한다, 그렇지 않으면 지하에 있을 것이다. "지평선" 위의 무작위 공 검출의 경우, 어떠한 지면 교차도 없기 때문에, 어떠한 간단한 거리 휴리스틱(distance heuristic)도 없다. 그러나, 3D 공간의 한계들, 예를 들어, 경기장에 대한 지식이 있는 경우, 객체가 관심대상 3D 영역 내에 있어야 한다고 가정할 때, 어떤 일반적 및/또는 각도 종속 최대 거리/최소 객체 크기 제약(들)이 이용될 수 있다.
도 4a로 돌아가서, 현재의 관심대상 위치가 이전 이미지 프레임에서 식별된 위치에 대해 확립된 루트 노드의 거리 임계값 내에 있는지를 결정하기 위해 체크(425)가 이루어진다. 만일 그렇다면, 관심대상 위치는, 트리의 루트 노드 아래에서, 이 트리에 대한 첫 번째 깊이 하위노드로서 추가된다(430). 트리가 단 하나의 정점(깊이=0)으로 구성된 경우, 아직 그 경로의 속도를 추정할 방법이 없으므로, 정점으로부터 합리적인 거리 내에 있는 임의의 블롭과 정합될 필요가 있다는 점에 유의한다. 도 4c는, 도 4b로부터 계속되는, 이에 대한 시각적 예를 보여준다. 4개의 관찰된 블롭(470) 중에서, 오직 2개의 블롭만이 이전 프레임으로부터 루트 노드(474)의 거리 제한(472) 내에 있다. 따라서, 블롭들(470) 중 2개만이 첫번째 깊이 하위노드(476)로서 루트 트리에 추가된다. 일부 구현에서, 거리 제한은, 인입 센서의 해상도와 프레임 레이트뿐만 아니라 (카메라의 조준 방향에 수직인) 추적 중인 객체의 최대 예상 속도에 의존한다. 골프공들의 경우에서와 같이, 추적중인 객체들의 크기가 미리 알려진 경우, 이것은 거리 제한/임계값(472)을 결정할 때 고려될 수 있다. 또한, 더 큰 블롭이 더 작은 블롭보다 카메라에 더 가깝다고 가정할 수 있는데, 이것은, 더 큰 블롭이 있을 때 프레임들 사이의 더 큰 움직임이 용인될 수 있다는 것을 의미한다(이전 프레임 또는 현재 프레임에서, 추적 중인 객체들의 예상 방향에 관한 카메라의 배치에 따라).
그러나, 블롭들을 깊이 1 또는 그 이상에서 정점에 정합시킬 때, 경로의 다음 지점이 있어야 하는 위치를 예측할 수 있다. 일부 구현에서, 다음 블롭의 예상 영역은 속도가 마지막 프레임 이후 동일하다고 가정함으로써 계산된다. 도 4d는 이에 대한 시각적 예를 보여준다. 루트 노드(480) 위치 및 제1 깊이 하위노드(482) 위치와 카메라의 알려진 프레임 레이트에 기초하여, 예측된 위치(484)가 계산된다. 그 다음, 트리에 추가할 블롭들을 찾는데 이용하기 위해, 예측된 위치(484) 주변의 검색 영역(486)(또는 지역)이 결정된다. 거리 제한/임계값(472)을 결정하기 위해 위에서 제공된 상세사항들과 유사하게, 예측된 위치(484) 주변의 영역/지역(486)의 크기는, 카메라의 해상도 및 추적중인 객체의 (카메라의 조준 방향에 수직인) 최대 예상 속도에 기초하여 결정될 수 있고, 객체의 알려진 크기와 상이한 이미지 프레임들에서의 블롭들의 크기에 따라 잠재적으로 조정된다. 더욱이, 일부 구현에서, Kalman 필터는, 예를 들어 그래프의 차수가 충분히 클 때, 예측들을 생성하는데 이용될 수 있다.
예측된 위치에 충분히 가까운 임의의 블롭은 정점으로 전환되어 트리에 추가될 수 있다. 따라서, 도 4d에 도시된 바와 같이, 하나의 블롭은 예측된 위치(484)의 영역(486) 내에 있고, 따라서 이 블롭은 새로운 하위노드(488)로서 추가된다. 또한, 일부 구현에서는, 페널티들이 트리 브랜치들에 관해 누적될 수 있으며, 여기서 페널티들은 브랜치들의 순위를 명시하는데 이용되는 점수에 합산되어, 엑스포트될 최상의 브랜치들을 결정하는데 도움이 될 수 있다. 또한, 일부 구현에서, 블롭의 위치가 예상된 좌표들로부터 더 많이 벗어날수록, 이 브랜치에 더 높은 페널티가 주어질 수 있다.
일부 구현에서, 페널티들은 트리 브랜치들에 관해 누적되며, 얼마나 큰 페널티가 허용되는지를 제한하고 브랜치들을 폐기할 시기를 결정하는 것 양쪽 모두에서 이용될 수 있다. 전자의 경우, 브랜치가 이미 높은 페널티를 갖고 있다면, 확장된 브랜치가 한도를 초과하게 만드는 새로운 노드들을 추가하는 것이 허용되지 않을 것이다. 예측된 위치와 실제 위치 간의 불일치로부터 페널티를 계산할 때, 이것은 본질적으로 가속도가 한계값 내에 있도록 확실하게 하는 방법이다. 그렇지 않으면, 페널티가 너무 높게 될 것이다. 후자의 경우, 마지막 3개의 블롭을 공통으로 갖는 브랜치가 여러개 있을 때, 가장 깊고 가장 낮은 페널티를 갖는 브랜치가 유지되고 다른 것들은 폐기될 수 있다. 이러한 유형의 페널티 기반의 가정 추적(hypothesis tracking)은 2D 추적 외에도(예컨대, 도 7 내지 도 10b와 관련하여 더 상세히 설명되는 바와 같이) 3D 추적에 적용될 수 있다는 점에 유의한다.
도 4a로 돌아가서, 확립된 트리의 부모 하위노드에 이용된 위치의 추정된 속도를 이용하여 결정된 영역 내에 현재의 관심대상 위치가 있는지를 결정하기 위해 체크(435)가 이루어진다. 만일 그렇다면, 도 4d와 관련하여 전술한 바와 같이, 부모 하위노드 아래에서, 두번째 또는 그 이상의 깊이의 하위노드로서 관심대상 위치가 이 트리에 추가된다(440). 또한, 일부 구현에서, 트리의 깊이가 증가할 때, 더 양호한 예측을 얻기 위해 더 정교한 예측 알고리즘들이 이용될 수 있다. 브랜치 내의 가장 최근 노드들을 2차 또는 3차 다항식 함수에 핏팅함으로써, 다음 지점이 어디인지에 대한 양호한 예측이 획득될 수 있고 분명히 비합리적인 가속도 변화들이 있는 경로들이 폐기될 수 있다. 또한, 일부 구현에서, 관찰값들이 Kalman 필터에 제공될 수 있고, Kalman 필터의 모델을 이용하여 새로운 예측들을 생성할 수 있다.
또한, 이미지 프레임들을 통해 잠재적인 객체 경로들을 추적할 뿐만 아니라 잠재적으로 새로운 트리의 새로운 루트 노드를 확립하는데 이용되고 있는 단일 이미지 프레임 내의 동일한 관심대상 위치가, (첫 번째 또는 더 깊은 깊이들의) 상응하는 하위노드들로서 2개 이상의 루트 트리에 추가될 수 있다는 점에 유의해야 한다. 또한, 단일 이미지 프레임 내의 동일한 관심대상 위치는, 루트 노드로 되돌아가는 어떤 링크(linkage)가 뒤따르는지에 따라 상이한 깊이들을 갖는 동일한 하위노드를 포함하는, 트리 내의 각자의 부모 노드로 되돌아가는 하나보다 많은 링크를 갖는 트리 내의 하위노드로서 추가될 수 있다.
따라서, 많은 잘못된 경로가 생성될 것이며, 다운스트림 처리가 이들 잘못된 경로들을 필터링 제거할 수 있지만, 잠재적 경로들이 출력되는 시기에 관해서는 여전히 제한이 있어야 한다. 일부 구현에서, 시퀀스를 나타내는 루트 트리가 미리결정된 트리 깊이(445)를 초과할 때까지 어떠한 시퀀스도 출력에 대해 고려되지 않을 것이다. 따라서, 식별된 위치들의 시퀀스는, 주어진 구현에 대해 명시되는 바와 같이, 또는 하나 이상의 요인에 기초하여 즉석에서 결정되는 바와 같이, 미리결정된 트리 깊이를 초과하는(445) 시퀀스에 대한 트리 깊이에 기초하여 출력에 대해 시퀀스가 확정될 때까지(450) 출력되지 않는다.
미리결정된 트리 깊이를 갖는 루트 트리의 부분들만이, 식별된 위치들의 시퀀스들로서의 출력에 대해 확정(450)될 필요가 있다는 점에 유의한다. 이것은, 루트 트리들에서 잘못된 경로들을 생성하는 노이즈가 제1 컴퓨터의 전처리 스테이지에서의 2D 추적으로부터 제2 컴퓨터의 후처리 스테이지로 전파되는 것을 방지하는데 도움이 된다. 또한, 최소 트리 깊이 임계값은 일반적으로, 환경과, 객체의 3D 궤적을 생성하기 위한 허용가능한 지연에 의존할 것이다. 일부 구현에서, 시퀀스의 루트 트리는, 시퀀스가 출력에 대해 확정(450)되기 전에 2보다 큰 트리 깊이를 가져야 한다. 일부 구현에서, 트리 깊이는, 시퀀스가 출력에 대해 확정(450)되기 전에, 3, 4, 5, 6 또는 7보다 커야 한다.
예를 들어, 일부 구현에서, (블롭들/위치에 대응하는) 트리의 정점들은, 이들이 트리 내의 소정의 깊이(D)에 있거나, 이들이 트리 내에서 소정 깊이(D)를 갖는 자식 노드들로 인해 엑스포트되는(exported) 자식 노드들을 갖는 경우에만 엑스포트된다. D = 5를 갖는 정점은 자신과 루트 사이에 5개의 엣지를 갖는다. 이것은, 블롭이 충분히 긴 브랜치의 일부인지를 미리 알 수 없는 경우가 자주 있기 때문에, 출력이 동일한 프레임 수 D만큼 지연될 수 있다는 것을 의미한다. (트리 노드들의 엑스포트 제한을 통한) 설명된 필터링은, 엑스포트된 블롭들만이 가능한 경로들을 구성하는 블롭들이기 때문에 객체 후보들을 통신하기 위해 요구되는 대역폭을 크게 감소시킨다는 것을 알 수 있다. 아래의 표는, 요구되는 최소 브랜치 깊이에 기초한 골프 응용에 대한 대역폭 감소의 한 예를 보여준다.
Figure 112023048833397-pct00001
표 1
이 표가 분명하게 보여주는 바와 같이, 모든 블롭/관심대상 위치의 대부분은 임의의 경로에 의해 연결되어 있지 않거나 충분한 깊이의 경로에 의해 연결되어 있지 않으므로, 대부분의 블롭들/관심대상 위치들은 전처리 스테이지에서 이루어진 효과적인 필터링에 의해 거부된다. 도 3으로 돌아가서, 325에서, 시퀀스들에 대한 데이터가 출력 준비가 되었는지, 즉, 미리결정된 트리 깊이보다 큰 트리 깊이를 갖는 적어도 하나의 노드를 포함하는 트리 내의 노드들의 임의의 시퀀스에 대해, 전술된 바와 같이, 그 시퀀스의 노드들이 출력 준비가 되어 있는지를 결정하기 위해 체크가 이루어진다. 이러한 경우에, 위치들의 하나 이상의 시퀀스에 대한 출력 데이터가 (예를 들어, 컴퓨터(125, 150, 166)에 의해) 하나 이상의 제2 컴퓨터(예를 들어, 컴퓨터(140, 160))에 전송된다(330). 그러나, 일부 구현에서, 식별된(315) 위치들은, 제1 컴퓨터로부터 (예를 들어, 컴퓨터(125, 150)에 의해), 이미지 프레임들에서 식별된 위치들의 시퀀스들을 발견한(320) 다음 시퀀스 데이터를 동일한 컴퓨터 또는 상이한 컴퓨터의 또 다른 프로세스에 출력하는 제2 컴퓨터(예를 들어, 컴퓨터(140, 160, 166))에 전송된다. 어쨌든, 시퀀스 출력 데이터는, 적어도, 각각의 시퀀스 내의 각각의 위치에 대해, 제2 컴퓨터에서의 가상의 동기화에 필요한 타임스탬프를 갖는 특정한 이미지 프레임에서의 위치의 2차원 위치를 포함한다.
3D 추적의 기본사항들 중 하나는 삼각측량이다. 그러나, 2개의 카메라에서 본 객체의 위치를 삼각측량하는 것은 동일한 시점(time instance)으로부터의 관찰들이 이용가능할 것을 요구한다. 이것을 달성하는 흔한 방법은, 모든 카메라에 대해 (예를 들어, 케이블을 통해 전송되는) 공통의 동기 트리거 신호를 이용하는 것이다. 그러나, 이것은 카메라가 동일한 캡처 프레임 레이트를 갖는 경우에만 작동한다. 일부 셋업에서, 2개의 카메라가 동기화되어 있음(이미지 캡처를 동시에 트리거함)을 보장하는 것이 어렵거나 불가능하므로, 상이한 카메라들로부터의 관찰들의 삼각측량을 어렵거나 불가능하게 만든다. 이 문제를 해결하기 위해, 데이터 캡처 시점에서 카메라 이미지들을 다른 센서(들)와 실제로 동기화하려고 시도하는 것이 아니라, (2D 경로에 의해 표현된 움직임에 관한 정보와 조합하여) 타임스탬프 정보를 제2 컴퓨터에서의 가상의 동기화에 이용한다.
또한, 본 문서에서 설명되는 시스템들 및 기술들은 전역적 셔터 카메라들과 롤링 셔터 카메라들 양쪽 모두에서 이용가능하다. 롤링 셔터는, 카메라 이미지 내의 각각의 행을 캡처하는 타이밍이 상이하다는 것을 의미한다. 따라서 객체가 센서에 의해 촬상되면, 객체의 위치가 결정될 수 있지만, 측정 시간은 객체가 발견된 이미지 내의 위치에 의존한다. 일부 구현에서, 상단 이미지 행과 하단 이미지 행 사이에 약 20밀리초의 시간 차이가 있을 수 있다. 이것은 또한, 양쪽 카메라들에서의 동시 측정이라는 요건이 충족되지 않을 수 있으므로, 삼각측량에 대한 문제를 생성한다. 이 문제를 해결하기 위해, 롤링 셔터 카메라들로부터의 측정된 객체 위치들도 역시 후처리 스테이지 동안 제2 컴퓨터에서의 고품질 삼각측량에 이용가능하게 되도록, 프레임의 타임스탬프 외에도, 프레임 내의 '위치(location)'의 특정한 시간 오프셋의 상대적 시간을 고려함으로써 롤링 셔터 정보도 역시 고려된다. 전역적 셔터 캡처의 경우, 이 오프셋은 항상 0이다.
표 1과 관련하여 위에서 설명한 바와 같이, 궤적이 최소 경로 길이(최소 트리 깊이) 요건에 대해 적격이기 위해 다수의 데이터 프레임이 요구될 수 있으므로, 모든 블롭에 대해 지연을 도입하는 것, 또는 이미 적격의 블롭들이 알려지는 즉시 이들을 전달하는 것을 허용하는 더 복잡한 프로토콜을 구현하는 것 사이에서 절충이 존재한다. 따라서, 일부 구현에서, 전송하는 단계(330)는 프레임과 블롭 데이터 양쪽 모두의 지연된 디스패치(dispatch)를 수반하고, 일부 구현에서, 전송하는 단계(330)는 프레임과 블롭 데이터의 증분적 디스패치를 수반한다.
지연된 디스패치의 경우, 전송하는 단계(330)는, 주어진 이미지 프레임에 대한 데이터 및 하나 이상의 시퀀스에서 발견된 그 관심대상 위치들의 출력을, 상기 주어진 이미지 프레임에 대해 식별된 관심대상 위치들이 후속 이미지 프레임들에서 식별된 관심대상 위치들에 기초하여 임의의 시퀀스에 더 이상 포함될 수 없을 때까지 지연시키는 단계를 수반한다. 따라서, 프레임에 대한 노드들의 엑스포트는, 처리된 후속 프레임의 수가 현재의 프레임의 임의의 더 많은 블롭들에 대해 도달되는 미리정의된 트리 깊이를 제외할 때 이루어질 수 있다. 즉, 요구되는 최소 트리 깊이를 갖는 루트 트리 내의 경로에 프레임에서 식별된 블롭들이 더 이상 포함되지 않는다는 것이 알려질 때까지 프레임의 전송이 지연된다.
또한, 일부 구현에서, 동적 최소 트리 깊이가 이용될 수 있다. 경로가 거의 없을 때, 레이턴시를 최소화하기 위해 초기에 최소 트리 깊이는 낮게 설정될 수 있고, 그 다음, 부하(시간 단위당 적격 경로들의 총 출력)가 어떤 최대 부하 임계값을 초과하는 경우 동적으로 증가될 수 있다. 이것은, 현재의 입력 데이터에 응답하여 처리를 조정함으로써 성능을 향상시키는 일종의 스로틀링 효과(throttling effect)를 제공할 수 있다.
또한, 프레임 데이터 구조는, 이 프레임에서 검출되었고 필터 기준을 통과한 블롭들의 목록을 포함할 수 있다. 예를 들어, 프레임 데이터 구조는 아래의 표 2에 나타낸 데이터 필드들을 포함할 수 있다.
Figure 112023048833397-pct00002
표 2
또한, 프레임 데이터 구조에 포함된 블롭 데이터 구조는, 아래의 표 3에 나타낸 데이터 필드들을 포함할 수 있다.
Figure 112023048833397-pct00003
표 3
이들 데이터 구조는, 다음과 같이, JSON 포맷 등의, 다양한 포맷으로 인코딩될 수 있다는 점에 유의한다:
대역폭이 제한된 전송의 경우, Google의 프로토콜 버퍼 포맷 등의, 더 컴팩트한 인코딩이 이용될 수 있다.
필터링되지 않은 블롭들이 처리 노드들 사이를 통과할 때, 예를 들어 블롭 검출이 엣지 디바이스(edge device)에서 발생하는 경우, 사전추적 및/또는 추적이 상이한 컴퓨터에서 실행되는 동안, 상이한 프레임들의 블롭들 사이의 관계에 관한 어떠한 정보도 없기 때문에, 단순화된 포맷이 이용될 수 있다. 예를 들어, 프레임 데이터 구조는 아래의 표 4에 나타낸 데이터 필드들을 포함할 수 있다.
Figure 112023048833397-pct00005
표 4
또한, 프레임 데이터 구조에 포함된 SimpleBlob 데이터 구조는, 아래의 표 5에 나타낸 데이터 필드들을 포함할 수 있다.
Figure 112023048833397-pct00006
표 5
증분 프레임 디스패치의 경우, 전송하는 단계(330)는, 각각의 상응하는 이미지 프레임에 대한 식별(315)이 완료될 때 이미지 프레임들에 대한 데이터를 출력하는 단계, 및 출력될 관심대상 위치를 포함하는 시퀀스들 중 하나 이상을 발견(325)한 후에만 각각의 관심대상 위치에 대한 데이터를 출력하는 단계(330)를 포함할 수 있다. 위에서 논의된 바와 같이, 시퀀스는 노드를 엑스포트하기 위해 필요한 트리 깊이를 가질 필요가 있으며, 트리가 임계 깊이에 도달하면, (어떤 다른 브랜치에 의해) 이전에 엑스포트되지 않은 (임계 깊이를 초과하는 트리 노드의) 모든 부모 노드가 소급적으로 출력된다(330). 이것은, 낮은 레이턴시가 요구되는 경우에 이용될 수 있는 데이터 전송을 위한 더 복잡한 접근법이다. 2D 추적은 처리된 프레임들에 관한 정보와 공 후보 필터링을 통과한 모든 블롭들(즉, 모든 식별된(315) 관심대상 위치들)의 목록이 포함된 연속 스트림을 그 정보가 이용가능해지는 즉시 출력한다.
예를 들어, 새로운 프레임이 처리될 때, 아래의 표 6에 나타낸 데이터 필드들을 갖는 프레임 데이터 구조를 이용하여 프레임에 대한 정보가 전송될 수 있다.
Figure 112023048833397-pct00007
표 6
또한, 블롭 데이터 구조는 아래의 표 7에 나타낸 데이터의 필드들을 포함할 수 있다.
Figure 112023048833397-pct00008
표 7
또한, 블롭들 사이의 각각의 연결은, 아래의 표 8에 나타낸 데이터의 필드들을 포함하는 연결 데이터 구조를 이용하여 표현될 수 있다.
Figure 112023048833397-pct00009
표 8
상기의 데이터 구조들을 이용하여 생성된 레코드들은 정보가 확립되자마자 (제1 컴퓨터로부터 제2 컴퓨터로의) 스트림 상에 놓일 수 있고(프레임들 및 블롭 데이터는 식별(315) 동안에 및 그 이후에 전송(330)될 수 있고), 블롭 연결데이터는 이들 블롭 연결들에 의해 형성된 발견된(320) 시퀀스가 출력에 대해 확정된(325) 후에 전송(330)될 수 있다. 레코드에 의해 참조되는 모든 블롭 및 프레임이 그것을 참조하는 레코드보다 먼저 스트림에 놓이는 것이 보장된다. 그러나, 소비자가 중간 스트림을 읽기 시작하는 경우, 원래의 선언을 놓쳤을 수 있으므로, 이 문제는 제2 컴퓨터에서 해결되어야 한다.
이용된 데이터 구조 또는 출력 타이밍에 관계없이, 출력 데이터(350)는, 제1 컴퓨터(들)를 제2 컴퓨터(들)와 결합하는 제2 통신 채널(355)을 통해 하나 이상의 제1 컴퓨터로부터(예를 들어, 컴퓨터(125, 150)로부터) (예를 들어, 컴퓨터(140, 160)에 의해) 수신(360)되고, 여기서, 출력 데이터(350)가 수신되는 제2 통신 채널(355)은 제1 통신 채널(305)의 제1 데이터 대역폭보다 작은 제2 데이터 대역폭을 갖는다. 예를 들어, 제2 통신 채널(355)은, 구리 Ethernet 또는 무선 통신 채널, 예를 들어 통신 채널(들)(162, 164)일 수 있다. 또한, 전처리(예를 들어, 발견하는 단계(320))의 일부가 추가 처리 동작들(360-375)과 동일한 제2 컴퓨터에서 (예를 들어, 컴퓨터(140, 160)에 의해) 수행되는 구현들에서, 수신된 데이터는 식별된(315) 위치들 및 연관된 타임스탬프 정보를 포함한다.
어쨌든, 시퀀스가 처리될 준비가 되었음이 체크(365)를 통해 보여질 때까지 데이터는 계속해서 수신된다(360). 또한, 위에서 언급된 바와 같이, 동작들은, 예를 들어 구축(375) 동안에, 예를 들어 하드웨어 및/또는 운영 체제 기반의 멀티태스킹을 이용하여, 및/또는 파이프라이닝 기술들을 이용하여, 병렬로 또는 동시에 수행될 수 있다. 따라서, 수신하는 단계(360)는 하나 이상의 시퀀스의 처리(370)가 병렬로 또는 동시에 발생하는 동안 계속될 수 있다; 각각의 컴포넌트는 다운스트림 컴포넌트가 먼저 완료될 때까지 기다릴 필요 없이 다운스트림 컴포넌트에 프레임 n을 전달한 직후, 이용가능하다면, 프레임 n+1 처리를 시작할 수 있다, 예를 들어, 3D 추적기가 관심대상 위치들의 처리를 완료하지 않았더라도 다음 프레임에 대해 스테레오 삼각측량이 수행될 수 있다.
출력 데이터(350) 내의 시퀀스(들)는, 미리결정된 시점에서 가상의 2D 위치를 생성하기 위해, 특정한 이미지 프레임들의 타임스탬프를 이용하여, 시퀀스(들)에 대한 특정한 이미지 프레임들 내의 명시된 2D 위치들 사이를 보간함으로써, 하나 이상의 제2 컴퓨터에 의해 (예를 들어, 컴퓨터(140, 160)에 의해) 처리된다(370). 출력 데이터(350) 내의 각각의 관심대상 위치(예를 들어, 각각의 프레임에서 발견된 각각의 블롭)에 대한 레코드는, 프레임의 타임스탬프와, 2D 추적 컴포넌트에 의해 이 관심대상 위치에 연결된 이전의 하나 이상의 관심대상 위치의 표시 양쪽 모두를 포함한다(예를 들어, 각각의 블롭은 자신이 속한 이전 블롭/블롭들에 대한 포인터들로 기술됨). 따라서, 이 데이터(350)로부터, 각각의 관심대상 위치/블롭의 시간, 위치 및 이동 방향 및 속도를 결정하는 것이 가능하다.
따라서, 데이터(350)는, 더 이른 타임스탬프를 갖는 트리 내의 적어도 하나의 관심대상 위치/블롭, 및 나중의 타임스탬프를 갖는 적어도 하나의 관심대상 위치/블롭이 존재하는 한, 경로 상의 임의의 주어진 시점에서 가상의 "중간" 위치들/블롭들을 생성하기 위해 보간의 이용을 가능케한다. 또한, 일부 구현에서, 미리결정된 시점은, 3D 추적 서버의 미리정의된 일정한 프레임 레이트의 여러 시점들 중 하나이다. 예를 들어, 3D 추적 서버 컴퓨터(140, 160)는 미리정의된 일정한 프레임 레이트로 실행될 수 있고 보간을 이용하여 이들 시점들에서 모든 카메라의 블롭들의 가상의 스냅샷들을 생성할 수 있다. 블롭 좌표들은 이제, 모두 동일한 시점을 나타내므로, 원래의 캡처가 동기화되지 않았더라도 포인트들 사이의 삼각측량이 가능하다. 더욱이, 일부 구현에서, 미리결정된 시점은, 또 다른 카메라 센서 또는 레이더 센서 등의, 또 다른 센서에 의해 명시된 시간이다.
또한, 위에서 언급된 바와 같이, 카메라는 롤링 셔터 카메라일 수 있고, 이 경우, 출력 데이터(350)는 각각의 시퀀스에 포함된 각각의 관심대상 위치에 대한 시간 오프셋 값을 포함할 수 있다. 이 데이터가 이용가능할 때, 처리(370)는 또한, 롤링 셔터 카메라와의 가상의 시간 동기화를 위해 작동한다. 도 5는 롤링 셔터 카메라로부터 획득된 특정한 이미지 프레임들 내의 명시된 2D 위치들 사이를 보간하는 프로세스의 한 예를 보여준다.
특정한 이미지 프레임들 내의 명시된 2D 위치들 중 하나를 갖는 제1 위치에 대한 제1 관찰 시간은, 제1 위치에 대한 제1 시간 오프셋 값을 특정한 이미지 프레임들 중 첫번째 것의 타임스탬프에 더함으로써 계산된다(500). 예를 들어, (상기의 표 3 및 표 7에 상세히 설명된 바와 같이) 제1 프레임 내의 제1 블롭의 시간 오프셋(dt)은, (상기의 표 2, 표 3, 표 6, 및 표 7에서 설명된 바와 같이) 그 제1 프레임의 타임스탬프(t_sync)에 추가될 수 있다. 특정한 이미지 프레임들 내의 명시된 2D 위치들 중 또 다른 하나를 갖는 제2 위치에 대한 제2 관찰 시간은, 제2 위치에 대한 제2 시간 오프셋 값을 특정한 이미지 프레임들 중 두번째 것의 타임스탬프에 더함으로써 계산된다(510). 예를 들어, (상기의 표 3 및 표 7에 상세히 설명된 바와 같이) 제2 프레임 내의 제2 블롭의 시간 오프셋(dt)은, (상기의 표 2, 표 3, 표 6, 및 표 7에서 설명된 바와 같이) 그 제2 프레임의 타임스탬프(t_sync)에 추가될 수 있다. 그 다음, 시간 오프셋들 및 프레임 타임스탬프들로부터 계산된, 제1 관찰 시간 및 제2 관찰 시간을 이용하여, 보간이 수행된다(520).
도 3으로 돌아가서, 생성된 가상의 2D 위치와 함께, 3D 공간에서 움직이는 객체(예를 들어, 공)의 3D 궤적이 생성된 가상의 2D 위치, 및 미리결정된 시점 동안 적어도 하나의 다른 센서로부터 획득된 위치 정보를 이용하여 (예를 들어, 컴퓨터(140, 160)에 의해) 구축된다(375). 구축하는 단계(375)는, 객체의 3D 궤적의 디스플레이(예를 들어, 즉각적인 디스플레이)를 위한 것일 수 있거나, 구축하는 단계(375)는 디스플레이 이전에 추가 처리에 대한 입력으로서 이용하기 위한 3D 궤적을 생성할 수 있다. 예를 들어, 3D 궤적은, 라이브 전송, 또는 녹화를 위해 생성된 TV 신호에 골프공의 흔적을 오버레이함으로써 효과적으로 디스플레이되도록 추가로 처리될 수 있다. 또 다른 예로서, 3D 궤적은, 골퍼가 위치해 있는 물리적 환경의 컴퓨터 표현 또는 컴퓨터에만 존재하지만 시스템의 사용자에게는 디스플레이되는 가상 환경에서, 골프공의 경로를 보여주는 것 등의 다른 데이터 또는 미디어를 보강함으로써 효과적으로 디스플레이되도록 추가로 처리될 수 있다.
디스플레이 전에 다른 유형들의 추가 처리도 역시 가능하다. 예를 들어, 3D 궤적은, 스포츠 공의 최종 안착 위치를 결정하기 위해 추가로 처리될 수 있으며, 이것은 스포츠 웹사이트들에 공급되는 베팅 애플리케이션들 또는 일반 통계 수집에 유용할 수 있다. 흔적을 보여주는 것 외에도, 3D 궤적은, 샷의 속도, 스핀, 캐리 및 론치 각도를 측정하기 위해 추가로 처리될 수 있다. 3D 궤적은, 공들이 소정 장소의 그물망을 넘어 이웃 구내로 들어갔는지를 결정하기 위해 추가로 처리될 수 있다. 3D 궤적은, 레인지 소유자(range owner)에게 진행 중인 활동이 있는 베이(bay)를 알리고 각각의 베이로부터 날린 공의 수를 카운트하기 위해 추가로 처리될 수 있다.
도 6a는 움직이는 객체(예를 들어, 공)의 3D 궤적을 구축하는 프로세스의 한 예를 보여준다. 3D 궤적 구축은, 관심대상 객체의 3D 위치를 형성하기 위해, (예를 들어, 컴퓨터(140, 160)에 의해) 가상의 2D 위치를 적어도 하나의 다른 센서로부터 획득된 위치 정보와 조합하는 단계(600)를 포함한다. 일반적으로, 이것은, 이들 상이한 센서들을 이용하여 생성된 객체 관찰 데이터를 이용하여, 및 이들 상이한 센서들에 대한 캘리브레이션 데이터를 이용하여, 상이한 센서들로부터의 관찰들의 삼각측량을 수반한다. 생성된 관찰 데이터는 가상의 2D 위치를 생성함으로써 가상의 시간 동기화를 달성하기 때문에 삼각측량에서 이용가능하다는 점에 유의한다.
예를 들어, 다른 센서는, 가상의 2D 위치가 생성된 제1 카메라와 스테레오 쌍으로서 이용될 제2 카메라일 수 있다. 위에서 설명된 객체 검출, 2D 추적 및 가상의 시간 동기화 기술들은 제2 카메라에서도 역시 이용될 수 있다. 이에 비추어, 제2 카메라에 대한 출력 데이터는, 제1 카메라에 대해 가상의 2D 위치가 생성된 시점과 동일한 공유된 시점에서 여러 개의 검출된 객체를 (대응하는 여러개의 가상의 2D 위치와 함께) 생성할 수 있다. 따라서, 제2 카메라에 대한 위치 정보는 제2 카메라로부터 획득된 2개 이상의 2D 위치일 수 있고, 조합하는 단계(600)는, 제2 카메라로부터의 2개 이상의 2D 위치 중 어느 것이 제1 카메라로부터의 데이터에 대해 생성된 가상의 2D 위치와 정합되어야 하는지를 결정하는 단계를 포함할 수 있다.
또한, 조합하는 단계(600)는, 제1 카메라로부터 획득된 가상의 2D 위치와 함께 3D 포인트를 형성할 수 없기 때문에 제2 카메라로부터 획득된 2개 이상의 2D 위치 중 전부는 아니지만 적어도 하나를 제외하는 단계(602)를 수반할 수 있다. 도 6b는, 삼각측량(604) 이전에 등극 라인 필터링을 실행하기 위해 제2 카메라로부터 획득된 적어도 하나의 2D 위치를 제외하는 프로세스의 한 예를 도시한다. 제2 카메라의 이미지 평면 내의 등극 라인(epipolar line)의 적어도 일부에 관한 영역이, 제1 카메라에 대해 생성된 가상의 2D 위치, 제1 카메라의 광학 중심, 제2 카메라의 광학 중심, 제1 및 제2 카메라들 사이의 베이스라인, 및 제1 및 제2 카메라들에 대한 외부 캘리브레이션 데이터를 이용하여 결정된다(602A). 일부 구현에서, 이 영역은 이용되고 있는 데이터에 대한 오차 범위에 기초하여 결정된다(602A).
일부 구현에서, 스테레오 카메라 쌍의 제1 및 제2 카메라들(120, 130) 사이의 베이스라인은 30미터 이하이며, 이것은, 샷이 타격된 위치로 되돌아가는 궤적을 추정할 수 있을 만큼 충분히 일찍 샷을 검출하는 능력과 조합하여 합리적인 스테레오 정밀도를 제공한다. 더 넓은 시야각을 갖는 렌즈를 이용하는 것은 샷을 더 일찍 관찰되는 것을 허용하지만, 공이 멀리 있을 때 정확도가 떨어지는 것을 댓가로 한다. 더 높은 해상도의 카메라들은 이것을 어느 정도 완화할 수 있다. 더 짧은 베이스라인은 더 적은 깊이 정밀도를 제공하지만 샷들이 더 일찍 관찰되는 것을 허용한다. 본 개시내용에서 설명된 가상의 시간 동기화를 이용하여, 상이한 쌍들의 카메라들(120, 130)로부터의 데이터는, 필요에 따라, 예를 들어 실시간으로 동적으로 조합될 수 있다는 점에 유의한다. 따라서, 시스템 내의 상이한 쌍들의 카메라들(120, 130)은 스테레오 쌍을 형성할 수 있고, 따라서 상이한 스테레오 카메라 쌍들은 상이한 베이스라인들과 상이한 깊이 정밀도를 가질 수 있다.
또한, 일부 구현에서, 결정된(602A) 영역은, 객체까지의 거리에 관한 알려진 제한들, 예를 들어 카메라와 티 영역(112) 및/또는 타겟(114) 사이의 알려진 거리로 인해 이용될 수 없는 등극 라인의 부분들에 기초하여 감소(또는 추가 감소)된다(602A). 또한, 하나 이상의 스테레오 쌍으로서 이용되는 상이한 카메라들로부터의 공 후보들의 관찰들을 정합시켜 볼 때 다른 기준이 이용될 수 있다. 예를 들어, 추가적인 기준은, (스테레오 쌍으로서 이용되는) 2개의 카메라에 의해 관찰된 각자의 블롭들에 대한 블롭 콘트라스트는 유사하다는 것일 수 있다.
그 다음, 제1 카메라로부터 획득된 가상의 2D 위치와 제2 카메라로부터 획득된 2개 이상의 2D 위치들 중 상응하는 것들의 페어링들은, 2개 이상의 2D 위치들 중 상응하는 것들이 제2 카메라의 이미지 평면 내의 등극 라인의 적어도 일부에 관한 영역 밖에 있는 것에 응답하여 거부된다(602B). 본질적으로, 제1 카메라의 2D 평면 내의 단일 포인트로서 제1 카메라에게 보여지는 3D 공간의 라인(이 라인은 제1 카메라의 광학 중심과 직접적으로 일치하기 때문)은, 등극 라인이라고 알려진, 제2 카메라의 이미지 평면 내의 라인으로서 제2 카메라에게 보여진다. 제1 카메라에 의해 관찰된 객체의 알려진 2D 위치가 주어지면, (약간의 허용오차 값 내에서) 이 등극 라인을 따라 떨어지는 제2 카메라에 의해 관찰된 객체들만이 양쪽 모두의 카메라에 의해 관찰되는 동일한 객체일 수 있다. 더욱이, 시스템이 객체들까지의 어떤 거리들까지가 고려되어야 하는지(예를 들어, 티 영역(112)까지의 거리, 그린 상으로 오는 공들을 추적할 때 그린까지의 거리 등의 타겟(114)까지의 거리, 및/또는 현재 추적중인 객체들까지 거리(들)에 기초한 거리들)에 관해 알려진 제한들로 설계되고 셋업되는 경우, 시스템은 거부하는 단계(602B)에서 이용하기 위한 등극 라인 상에 하드 스톱(경계)을 배치할 수 있다. 따라서, 경계들을 분명히 벗어난 객체들(예를 들어, 비행기, 새, 멀리 떨어진 교통 신호등으로부터의 빛 등)은 시스템에 의해 쉽게 무시될 수 있다.
제2 카메라로부터 획득된 2D 위치들을 제외하는 다른 접근법들도 가능하다. 예를 들어, 위에서 언급된 바와 같이, 출력 데이터는, 각각의 시퀀스에서 초기 위치 이후의 각각의 위치에 대해, 시퀀스의 이전 위치의 표시를 포함할 수 있다. 이 데이터가 포함되기 때문에(예를 들어, 전송하는 단계(330)가 각각의 블롭의 위치뿐만 아니라 경로 시퀀스에서 2D 추적에 의해 연결된 이전에 관찰된 블롭들의 위치도 전송하기 때문에) 각각의 관심대상 객체(블롭)의 가능한 2D 움직임 방향 및 속도가 추정될 수 있고, 이 추정치는 삼각측량(604) 전에 움직임 필터링을 수행하는데 이용될 수 있다, 예를 들어, 스테레오 삼각측량 알고리즘은 이 정보를 이용하여, 거짓 양성들을 제외하기 위해 좌측 및 우측 스테레오 포인트들의 속도 벡터들을 이용하는 등에 의해, 호환되지 않는 파라미터들을 갖는 블롭 페어링들을 거부할 수 있다. 예를 들어, 객체가 다음 프레임에 있게 될 위치가 양쪽 모두의 카메라들에서 (현재 속도에 기초하여) 예측될 때, (삼각측량시) 예측된 위치들도, 블롭들이 2개의 상이한 각도로부터의 동일한 객체의 관찰들일 때 다음 실제 관찰에 가깝게 끝날 것이다.
따라서, 제외하는 단계(602)는: 특정한 이미지 프레임들 내의 명시된 2D 위치들에 기초하여 가상의 2D 위치에 있는 객체에 대한 2D 속도를 추정하는 단계 ― 명시된 2D 위치들 중 적어도 하나는 시퀀스들 중 적어도 하나에서 이전 위치의 표시를 이용하여 출력 데이터에서 식별됨 ―; 제2 카메라로부터 획득된 2개 이상의 2D 위치들에 있는 객체들에 대한 2D 속도들을 추정하는 단계; 및 가상의 2D 위치에 있는 객체 및 2개 이상의 2D 위치들에 있는 객체들에 대해 추정된 2D 속도들과 고유 캘리브레이션 데이터 및 외부 캘리브레이션에 기초하여, 제1 카메라로부터 획득된 가상의 2D 위치와 제2 카메라로부터 획득된 2개 이상의 2D 위치들 중 상응하는 것들의 페어링들을 거부하는 단계를 수반할 수 있다.
위치/블롭의 좌표들은, 본 기술분야의 통상의 기술자라면 이해하는 바와 같이, 고유 캘리브레이션 데이터를 이용하여 왜곡되지 않고 또한 외부 캘리브레이션 데이터를 이용하여 호환가능한 좌표계들로 변환될 필요가 있다는 점에 유의한다. 각각의 카메라의 광학적 왜곡과 진정한 초점 거리를 발견하는 고유 캘리브레이션이 수행될 수 있다. 서로에 관한 카메라들의 방향을 발견하는 외부 캘리브레이션이 수행될 수 있다. 내부 및 외부 캘리브레이션은, 함께, "캘리브레이션" 또는 "캘리브레이션 데이터"라고 하며, 양쪽 카메라들이 보는 객체들의 위치를 삼각측량하는데 이용될 수 있다.
또한, 다른 센서는 제2 카메라가 아니라 레이더 디바이스를 포함할 수 있다. 예를 들어, 하나 이상의 레이더 디바이스는, 3D 객체 추적을 위해 관심대상 객체를 등록하는 객체 검출 시스템의 센서들 중 적어도 일부를 제공하기 위해, 미국 특허 번호 10,596,416호에 설명된 시스템들 및 기술들에 따라, 단일 카메라, 스테레오 카메라 쌍, 또는 3개 이상의 카메라와 조합되어 하나 이상의 하이브리드 카메라-레이더 센서들을 형성할 수 있다. 움직이는 객체(예를 들어, 골프공)의 검출들에 해당할 수 있는 레이더(들)로부터의 판독값들은, 관심대상 객체들의 3차원 위치들의 3D 포인트 클라우드에 추가할 수 있으므로, 그에 따라 조합된 센서들의 잠재적 견고성 및 커버리지 영역을 추가시킬 수 있다.
레이더로부터의 판독값들은 다음과 같은 접근법을 이용하여 3D 포인트들로 전환할 수 있다. 레이더로부터의 거리 측정은 동일한 시점에서 카메라들 중 하나에 의해 검출된 모든 공 후보와 조합될 수 있다; 이것은 레이더를 스테레오 카메라 쌍의 단 하나의 카메라에 의해 검출된 공 후보 및/또는 스테레오 카메라 쌍의 양쪽 모두의 카메라에 의해 검출된 각자의 공 후보와 조합하는 것을 포함할 수 있다, 즉, 단일 스테레오 카메라와 단일 레이더 디바이스는 공 후보들에 대한 3D 포인트들을 생성할 수 있는 3개의 별개의 센서(스테레오 카메라 센서, 레이더+좌측 카메라 센서, 및 레이더+우측 카메라 센서)로서 동작한다는 점에 유의한다. 카메라에 의해 보고되는 각각의 공 후보에 대한 각도와, 레이더에 의해 보고되는 거리는, 공간에서의 3D 위치를 결정할 것이다. 이것은 카메라가 보는 각각의 공 후보에 대해 이루어질 수 있고, 포인트 클라우드에 추가할 3D 포인트들의 어레이를 생성할 것이다. 이들 지점들 중 기껏해야 하나가 레이더 데이터 및 공 관찰의 올바른 연관이 될 것이다(이들 양쪽 모두는 동일한 객체로부터 유래함을 의미; 참 양성). 나머지 3D 포인트들은 잘못된 연관들(거짓 양성들)일 것이다. 그러나, 3D 포인트 추적 알고리즘은 대부분의 3D 포인트가 거짓 양성들에 대해 견고하도록 선택된다. 더욱이, 일부 구현에서, 각각의 관찰되는 객체에 대한 거리와 각도 양쪽 모두를 결정할 수 있는 하나 이상의 레이더 센서가 시스템에서 이용될 수 있다.
그러나, 제2 센서로부터의 위치 데이터가 획득되는지 및/또는 제외되는지의 여부 또는 방법에 관계없이, 일부 구현에서, 관심대상 객체의 3D 위치는, 제1 카메라로부터 획득된 가상의 2D 위치, 제2 카메라로부터 획득된 2개 이상의 2D 위치 중 적어도 하나, 제1 카메라와 제2 카메라에 대한 고유 캘리브레이션 데이터(각각의 카메라의 결정된 광학 왜곡 및 진정한 초점 거리), 및 제1 및 제2 카메라에 대한 외부 캘리브레이션 데이터(서로에 대한 카메라들의 결정된 방향)를 이용하여 삼각측량될 수 있다(604). 위치들/블롭들의 좌표들이 모두 동일한 시점을 나타내므로, 원래의 캡처가 동기화되지 않았더라도 포인트들 사이의 삼각측량(604)이 가능하다는 점에 유의한다.
그 다음, 관심대상 객체의 3D 위치는, 미리결정된 시점에 대한 관심대상 객체들의 3D 위치들의 클라우드 내의 관심대상 객체들의 다른 3D 위치들에 추가될 수 있다(610). 다양한 유형들의 데이터 구조들이 이용될 수 있다는 점에 유의한다. 일부 구현에서, 3D 위치들의 클라우드들은 옥트리(octree)들로서 저장되며, 이러한 유형의 데이터 구조는 3D 공간의 임의의 포인트가 (스칼라 수들의 컴퓨터 표현의 정밀도 한계까지) 표현되는 것을 허용한다. 3D 위치들의 복수의 클라우드에 걸친 움직임 분석이 수행되어(620) 3D 공간에서 움직이는 공의 3D 궤적을 구축하며, 여기서 복수의 클라우드 각각은 단일의 시점에 대한 것이다. 이 움직임 분석은, 가정 형성, 가정 확장, 가정 브랜칭 동안, 및/또는 궤적 가정이 3D 공간에서 비행 중인 골프공의 예상된 움직임과 충분히 대응하는지의 여부를 체크하는 최종 "골프공" 분류로서 이루어질 수 있다.
다양한 유형들의 움직임 분석이 이용될 수 있다는 점에 유의한다. 그럼에도 불구하고, 데이터(350)에 포함된 거짓 양성들의 개수가 전통적인 객체 추적 기술의 경우보다 많을 수 있더라도, 이들 거짓 양성들은 3D 공간에서 퍼져 있는 경향이 있고, 이것은 거짓 양성들이 발생한 카메라로부터의 2D 이미지 평면에 비해 비교적 크다는 점을 이해해야 한다. 이 때문에, 일단 3D 추적 시스템이 3D 움직임의 객체를 식별하고 나면, 구축되고 있는 진행 중인 3D 궤적과 정합하지 않는 3D 공간 내의 임의의 거짓 양성들을 3D 추적 시스템이 쉽게 폐기하는 것이 간단하다. 따라서, 3D 추적은 다음과 같은 이유로 3D 클라우드들에 주입된 거짓 양성들을 처리할 수 있을만큼 충분히 강력하다: (1) 거짓 양성들은 대부분 3D 공간을 통해 무작위로 확산되어 있으므로, 거짓 양성들이 (움직임 분석에 따른) 일관된 궤적을 생성할 가능성이 거의 없다; (2) 거짓 양성이 비행 중인 실제 객체의 가정에 가깝고 그 객체의 가정에 추가되는 경우, 3D 추적은 거짓 양성과 불일치하는 비행 중인 그 객체의 하나 이상의 나중의 진정한 관찰값을 수신할 때 그 가정을 브랜칭(분할)할 수 있고, 진정한 관찰값들을 포함하는 브랜치가 거짓 양성을 포함하는 브랜치보다 지속될 가능성이 훨씬 더 높기 때문에, (전부는 아니더라도) 대부분의 경우 폐기되는 거짓 양성을 포함하는 브랜치로 이어질 것이다; (3) 일부 구현에서, 추적된 위치들은 움직이는 실제 객체에 관한 정확성을 증가시키기 위해 (예를 들어, 3D 추적 후 및/또는 Kalman 필터 또는 저역 통과 필터를 이용한 후) 평활화되지만, 이것은 또한, 가정 형성 동안에 추가된 거짓 양성들이 실제 관찰값들에 비해 무작위 양만큼 다르기 때문에 효과적으로 제거되어, 평활화 동안에 상쇄되는 경향이 있다는 효과를 갖는다. 추가로, 거짓 양성들을 포함하지만 그럼에도 불구하고 일관된 움직임(전형적으로 골프공 이외의 객체의 궤적)을 포함하는 가정은, 가정이 3D 공간에서 비행 중인 골프공의 예상된 움직임과 충분히 대응하는지의 여부를 체크하는 (임의의 평활화 이전 또는 이후의) "골프공" 분류에 의해 여전히 거부될 수 있다는 점에 유의해야 한다.
또한, 프로세스는, 3D 궤적의 표현을 생성하기 위해 3D 궤적을 출력하는 단계(630), 또는 3D 공간에서의 3D 궤적의 표현을 생성하고 및 디스플레이하는 단계(630)를 포함할 수 있다. 위에서 언급된 바와 같이, 이것은, 라이브 전송 또는 녹화를 위해 생성된 TV 신호에 골프공의 흔적을 오버레이함으로써 효과적으로 디스플레이하기 위한 3D 궤적의 추가 처리를 수반할 수 있거나, 이것은, 골퍼가 위치해 있는 물리적 환경의 컴퓨터 표현에서, 또는 컴퓨터에만 존재하지만 시스템의 사용자에게 디스플레이되는 가상의 환경, 예를 들어 (동일한 범위에 로컬로 있거나 전 세계에 분산되어 있는) 멀티플레이어 게임의 참가자들 사이에서 공유되는 가상의 환경에서, 골프공의 경로를 보여주는 등에 의해, 다른 데이터 또는 미디어를 증강함으로써 효과적으로 디스플레이하기 위해 3D 궤적의 추가 처리를 수반할 수 있다.
도 7은 2개 이상의 센서에 의해 등록된 미확인 검출들을 이용하여 움직이는 객체들의 3D 객체 추적 프로세스의 한 예를 도시한다. 객체 검출 시스템에 의해 등록된 관심대상 객체들의 3차원(3D) 위치들이 획득된다(700). 일부 구현에서, 획득하는 단계(700)는 도 3 내지 도 6b와 관련하여 전술된 객체 검출 시스템들 및 기술들을 이용하여 관심대상 객체들의 3D 위치들을 생성하는 단계를 수반한다. 일부 구현에서, 획득하는 단계(700)는 관심대상 객체들의 3D 위치들을 생성하기 위한 하나 이상의 다른 접근법을 수반한다. 일부 구현에서, 획득하는 단계(700)는, 전술된 객체 검출 시스템들 및 기술들 및/또는 다른 객체 검출 시스템들 및 기술들로부터 등록된 관심대상 객체들의 3D 위치들을 수신하는 단계를 수반한다.
어쨌든, 객체 검출 시스템은, "참 양성들"과 "거짓 양성들"로의 검출들의 엄격한 분류들을 추적 알고리즘의 나중 스테이지까지 연기하도록 구성되므로, 이 스테이지에서 등록된 관심대상 객체들에 대해 상당한 양의 거짓 양성을 허용하여 거짓 음성들을 최소화한다. 거짓 양성들은, 개별 센서들에 의한 잘못된 검출들(예컨대, 각도 및 거리 측정 능력들 양쪽 모두를 갖춘 위상 배열 레이더 등의, 자체적으로 검출의 3D 위치를 결정할 수 있는 경우 단일 센서로부터의 검출들)과, 2개 이상의 카메라, 카메라와 레이더 디바이스, 또는 스테레오 카메라와 레이더 디바이스를 포함할 수 있는 각각의 센서들로부터의 검출들의 거짓 조합들 양쪽 모두를 포함할 수 있다. 일부 구현에서, 등록된 관심대상 객체들의 대부분은 거짓 양성들이다. 일부 구현에서, 거짓 양성 대다수는, 거짓 양성들인 (객체 검출 시스템에 의해 생성된) 등록된 관심대상 객체들의 60% 이상, 70% 이상, 80% 이상, 90% 이상, 95% 이상, 또는 99% 이상일 수 있다.
더욱이, 여러 센서들(130)은 3D 추적 알고리즘에 과부하를 주지 않고 움직이는 공들을 검출하기 위한 시스템의 견고성을 개선하는 방식으로 이용될 수 있다. 일부 구현에서, 획득하는 단계(700)는 3개 이상의 센서(130)로부터 데이터의 상이한 조합들을 만듦으로써 등록된 관심대상 객체들의 3D 위치들을 생성하는 단계를 수반한다. 3개 이상의 센서(130)는 3개의 카메라(130)를 포함할 수 있고, 현재의 시간 슬라이스에 대한 3개 이상의 센서의 각자의 쌍들로부터 검출들의 각자의 조합들을 만드는 것은, 관심대상 단일 객체의 2개 또는 3개의 각자의 3차원 위치들을 생성하기 위해, 3개의 카메라의 2개 또는 3개의 스테레오 페어링을 이용하여 3개의 카메라에 의해 관심대상 단일 객체의 검출들을 조합하는 단계를 포함할 수 있다. 따라서, 스테레오 쌍은 3개의 카메라 중 2개의 카메라의 임의의 조합으로 형성될 수 있고, 3개의 카메라 중 하나가 특정한 시간 슬라이스에서 객체를 검출하지 못하는 경우, 3D 추적은 여전히 함께 작동할 감지된 3D 위치를 가질 것이며, 3개의 카메라 모두가 특정한 시간 슬라이스에서 객체를 검출하면, 그 시간 슬라이스에서 객체에 대한 3D 포인트 클라우드에 3개의 별개의 3D 위치들이 추가될 수 있고, 여기서, 이들 3개 중 하나는 다른 2개보다 더 양호할 가능성이 높다. 따라서, 이것은 데이터 취득에 중복성을 추가하고 3D 추적을 향상시킬 수 있다.
또한, 3개 이상의 센서(130)는 2개의 카메라(130) 및 레이더 디바이스(130)를 포함할 수 있고, 현재의 시간 슬라이스에 대한 3개 이상의 센서의 각자의 쌍들로부터의 검출들의 각자의 조합들을 만드는 것은, 관심대상 단일 객체의 제1 3차원 위치를 생성하기 위해 2개의 카메라의 스테레오 페어링을 이용하여 2개의 카메라에 의해 관심대상 단일 객체의 검출들을 조합하는 것, 및 관심대상 단일 객체의 제2 3차원 위치를 생성하기 위해 2개의 카메라 중 하나와 레이더 디바이스에 의해 관심대상 단일 객체의 검출들을 조합하는 것을 포함할 수 있다. 카메라가 3개인 경우와 유사하게, 이것은 중복성을 추가하고 3D 추적을 향상시킬 수 있다. 일부 구현에서, 레이더 디바이스로부터의 데이터는 2개의 상응하는 카메라의 데이터와 별개로 조합되어 3D 공간에서의 3개의 별개의 3D 위치를 생성한다. 일부 구현에서, 더 많은 센서(예컨대, 카메라 및 레이더 디바이스)가 시스템에 추가되어 3D 추적에 과부하를 주지 않고 중복성을 더 증가시킬 수 있다. 또한, 입력 3D 위치 데이터에서의 노이즈가 각각의 가정을 확장하기 위해 최상의 이용가능한 관찰을 선택하는 시스템의 능력에 의해 적어도 부분적으로 상쇄될 수 있다는 점에서 추가된 중복성에 의해 3D 추적이 개선될 수 있다.
어쨌든, 관심대상 객체의 3D 위치들이 획득되면(예를 들어, 실시간으로, 일괄적으로, 등등)(700), 3D 위치들로부터 작업 가정들이 형성되고(710), 여기서 각각의 가정은 3D 공간에서 움직이는 객체를 나타낸다. 3D 공간에서 움직이는 객체들의 가정을 형성하는 것(710)은 등록된 관심대상 객체들의 3D 위치들에 적용되는 느슨한 필터(lax filter)를 이용한다. 느슨한 필터는, 특정한 관심대상 객체들에 대한 추정된 3D 속도 벡터들이 시간에 걸쳐 3차원 공간에서 움직이는 객체에 대략적으로 대응할 때 등록된 관심대상 객체들 중 특정한 객체들 간의 연결들을 허용한다. 각각의 속도 벡터는, 가정 형성(710) 시에 객체는 미확인 상태이므로 공일 수도 있고 아닐 수도 있는 관심대상 객체에 대한 3D 공간에서의 방향 및 (그 방향에서의) 속도의 추정치라는 점에 유의한다. 또한, 가정은, 아래에서 더 상세히 설명되는 바와 같이, 3D 공간에서 움직이는 객체의 하나보다 많은 가정으로 각각 브랜칭되는 적어도 일부의 가정을 포함할 수 있다.
여기서 "대략성(roughness)"은, 3D 추적기가, 처음에는 바람, 공기 저항, 마찰과 같은 다른 힘들을 고려하지 않고 및 일부 경우에는 중력도 무시하며, 즉, 이 스테이지에서는 객체의 가속이 비행 중인 골프공의 물리학과 완전히 일치하는지를 평가하지 않고, 뉴턴 운동과 일치하는 객체 움직임을 나타내는 3D 공간에서의 관심대상 객체들의 시퀀스들을 찾으려고 한다는 점에서, 2D 추적에 대해 전술된 것과 유사하다. 따라서, 객체에 작용하는 겉보기 힘들이 비행 중인 골프공과 일치하는지의 확인은 3D 추적의 나중 스테이지까지 연기된다.
또한, 일부 구현에서 3D 추적 성분은 작업할 3D 포인트 클라우드들 이상의 것들을 갖는다. 예를 들어, 위에서 언급된 바와 같이, 하나 이상의 카메라 센서(130)로부터의 데이터에 관해 2D에서의 사전-추적이 수행될 수 있다, 예를 들어, 골프공은 공의 여러 2D 궤적들을 생성하기 위해 가능한 한 오랫동안 각각의 카메라로부터의 2D 데이터에서 독립적으로 추적될 수 있으므로, 3D 추적 프로세스에 제공되는 데이터는 객체의 단일 검출들 외에도 객체 궤적의 부분적 세그먼트들을 포함할 수 있다. 상이한 센서들 사이의 검출들을 정합시키려고 시도할 때, (부분 궤적들이 완전히 중첩되는지의 여부에 관계없이) (사전-추적에 의해 형성된) 부분 궤적들이 서로에 관해 정합될 수 있으며, 3D 추적 프로세스는, 3D 공간에서 움직이는 객체들의 가정 형성(710)의 일부로서 3D에서의 포인트들 대신에(또는 이에 추가하여) 3D에서의 궤적의 부분 세그먼트들을 비교하고 연결할 수 있다. 이 접근법은 잘못된 공 검출 수를 감소시켜 3D 추적의 하나 이상의 양태의 간소화를 허용할 수 있지만, 더 복잡한 이미지 추적 프로세스를 요구하여 일부 경우에는 선호되지 않을 수 있다는 점에 유의한다.
일부 구현에서, 형성하는 것(710)은 주어진 가정에 대한 객체 검출 수가 임계값보다 큰지를 체크하는 것(712)을 수반한다. 주어진 가정에 대한 등록된 검출의 수가 임계값보다 작거나 같을 때(또는 단순히 미만일 때; 이것은 이용된 임계값에 따라 동등한 표현임), 3D 공간에서 움직임의 제1 모델이 이용되고(714), 제1 모델은 제1 레벨의 복잡성을 가진다. 그리고 주어진 가정에 대한 등록된 검출의 수가 임계값보다 크면(또는 이용된 임계값에 따라 동등할 수 있는, 그보다 크거나 같을 때), 3D 공간에서 움직임의 제2 모델이 이용되고(716), 제2 모델은 제1 모델의 제1 레벨의 복잡성보다 큰 제2 레벨의 복잡성을 가진다.
제1 모델은 뉴턴 운동에서 객체를 구성하는 것에 대해 매우 느슨한 필터를 이용하는 제1 처리 스테이지를 생성한다. 이것은, 매우 신속하면서도 광범위한 가정 형성을 허용하는데, 이는, 무작위 거짓 양성들이 이 제1 스테이지에서 초기에 가정들을 용이하게 형성할 수 있기 때문이다. 그러나 (가정 형성 파이프라인 내에 허용되는 거짓 양성들의 수와 조합하여) 이것 때문에, 원하는 움직임을 나타내는 3D 공간에서의 임의의 실제 객체를 놓치는 것은 거의 불가능할 것이다. 제2 모델은, 잘못된 가정들의 지속적인 형성을 방지하기 위해 3D 물리에 대한 약간의 지식(반드시 완전한 3D 물리 모델일 필요는 없음)이 제2 스테이지에서 이용된다는 점에서, 제1 모델보다 더 복잡하다.
이 접근법은, 추적 파이프라인의 초기에 매우 엄격한 필터링을 이용하여 거짓 양성들이 나오지 않도록 하여, 추적 파이프라인의 뒷부분에서 시스템의 처리 능력을 부담스럽게 만드는 것을, 예를 들어 과부하를 피하는 전통적인 3D 추적과는 반대라는 점에 유의한다. 이 전통적인 접근법과 대조적으로, 본 시스템들 및 기술들은, 처음에 형성되지 않아야 할 가정들을 필터링 제거하는데, 예를 들어 3D 공간에서의 움직임 및 위치에 관한 정보를 객체 크기 정보가 센서(들)로부터의 삼각측량된 거리와 정합하는지 등의 다른 정보와 조합하는데, 객체의 움직임에 대한 더 많은 정보가 이용 가능해지는 추적 파이프라인의 나중 스테이지(들)까지 가능한 한 많이 필터링을 지연/연기시킨다. 즉, 본 문서에 설명된 바와 같이 필터링을 추적 파이프라인의 나중 부분(들)으로 연기할 수 있는 경우, 비행 중인 실제 객체들을 놓칠 위험을 최소화하면서 더 진보된 필터링 기술들을 효율적으로 이용할 수 있다.
이 접근법은 또한, 객체는 시간이 지남에 따라 느려지고 이러한 센서(들)의 시야에서 상대적 크기가 증가하기 때문에 비행 중인 객체의 예상 타겟 근처에 배치된 센서(들)에서 이용될 때 특별한 가치를 가질 수 있다. 설명된 바와 같이, 이 시스템은, 시스템 내의 단일 센서인 스테레오 카메라 또는 시스템 내의 2개의 별개의(및 선택가능한) 카메라로부터의 데이터 조합을 잠재적으로 포함한, 카메라 및 레이더 센서들 양쪽 모두를 채용할 수 있다. 골프 샷의 경우, 하나 이상의 센서가 타겟(예컨대, 골프 코스의 그린)에 배치되면, 레이더 센서로부터의 데이터는 타격 위치에서 타겟을 향해 비행하는 공을 추적하는데 가장 유용하지만, 스테레오 비전으로 추적하는데 이용되는 렌즈와 베이스라인의 선택에 따라, 카메라 센서로부터의 데이터는 공이 센서로부터 멀리 있을 때 공의 궤적의 이 초기 부분을 검출하는데 있어서 덜 유용할 것이다. 따라서, 2개의 카메라를 넓은 베이스라인이 있는 스테레오 비전 시스템 내에 조합하지 않으면, 레이더는 비행 세그먼트에 대해 더 양호한 추적 데이터를 제공할 수 있고, 스테레오 카메라 시스템은 바운스 및 롤 세그먼트들에 대해 더 양호한 추적 데이터를 제공할 수 있다.
마찬가지로, 하나 이상의 센서가 타격 위치(예컨대, 티)에 배치되면, 레이더와 스테레오 카메라 시스템 양쪽 모두로부터의 데이터는, 스테레오 시스템에 대한 베이스라인이 짧더라도, 론치로부터 공을 추적하는데 있어서 유용할 것이지만, 스테레오 비전 시스템의 정확도는 레이더 시스템보다 더 빨리 저하될 것이다. 베이스라인이 충분히 작으면, 3D 정확도가 너무 낮아 3D 공간에서 공을 검출할 수 없을 때 스테레오 비전 시스템이 공의 3D 궤적을 놓칠 가능성이 높다. 그러나 베이스라인이 충분히 크면, 이를 피할 수 있으며, 3D 객체 추적에 레이더 데이터가 필요하지 않을 수 있다.
일부 시스템 배치는, 타겟(예컨대, 그린), 타격 위치(예컨대, 티) 및 그들 사이의 하나 이상의 위치(예컨대, 페어웨이를 따라)에서 센서들을 이용할 수 있고, 특정한 위치들에서 이용하기 위해 선택된 센서들의 유형(예컨대, 레이더 대 카메라) 및 센서 구성들(예컨대, 2개의 카메라의 스테레오 비전 시스템의 베이스라인)은 각각의 상응하는 센서 근처에서 골프 샷의 가능성이 큰 성질에 따라 결정될 수 있다는 점에 유의한다. 3D 공간에서 공 경로의 바운스 및 롤 세그먼트들이 센서로부터 멀리 떨어져 있을 가능성이 높은 경우, 바운스 및 롤을 더 양호하게 보기 위해 상이한 광학기기들에서 추가적인 카메라들이 이용될 수 있다(더 확대, 더 긴 초점 거리 등).
따라서, (비행 세그먼트에 대한 고품질 추적 데이터를 제공하기 위한) 티 근처의 하이브리드 카메라-레이더 센서 유닛과, 각각의 카메라 쌍을 적어도 4피트 분리시킨 2개 이상의 카메라, 예를 들어, 각각의 카메라가 와이드 앵글 옵틱스(wide-angle optics)를 가지고 있어 90도 이상의 시야각을 제공하므로, 공간이 제한된 조건에서도 전체 골프 그린의 커버리지를 허용하는 단일 삼각대의 수평 빔에 부착된 2개의 카메라와 같은 (바운스 및 롤 세그먼트들에 대한 고품질 추적 데이터를 제공하기 위한) 타겟 근처의 스테레오 카메라 유닛의 조합 등의, 이용되는 센서 유형들, 구성들 및 배치들의 특정한 세트는 시스템의 특정한 배치에 맞게 조정될 수 있다. 베이스라인이 4피트인 경우, 측정 오류는 전형적인 골프 그린의 경우 +/-3인치일 수 있다. 또한, 공이 완전히 멈췄을 때 하나 이상의 컴퓨터 비전 계층을 추가함으로써 개선된 정확도를 달성할 수 있다. 이것은 2개의 카메라에서 관찰되는 공의 중심들에 기초한 정지 위치를 삼각측량하여, 정확도를 증가시킨다.
또한, 일부 구현에서, 3D 공간에서 움직임의 제1 모델은, 제1 3차원 위치가 주어진 가정에 의해 예측된 대략 동일한 방향으로 주어진 가정을 확장할 때 등록된 관심대상 객체의 제1 3D 위치를 주어진 가정에 연결하는 선형 모델이다. 예를 들어, 제1 모델은, 등록된 관심대상 객체들을 나타내는 P1, P2, P3의 3개의 3D 포인트에 의해 정의된 벡터들에 관한 간단한 내적 체크일 수 있다(잠재적으로 P1과 P2 양쪽 모두는 활성 가정에 의해 예측된 3D 위치임). vectori→(i+1) (P2→P3)와 vector(i-1)→i (P1→P2)의 내적(또는 잠재적으로 vector(i-1)→i (P1→P2)와 vector(i-1)→(i+1) (P1→P3)의 내적)이 양수이면, 즉, 이전 속도 벡터와 새로운 속도 벡터 사이의 각도가 90도 미만이면, 이것은 형성된 가정에서 특정한 3D 포인트 P1, P2, P3을 연결하기에 있어서 3D 공간에서의 뉴턴 운동에 충분히 가까운 것으로 간주될 수 있다. 또한, 일부 구현에서, 이전 속도 벡터와 새로운 속도 벡터 사이의 임계 각도는 배치 후 주어진 구현에 대해 실험적으로 조정될 수 있는 프로그래밍가능한 파라미터이다.
다른 유형들의 제1 모델들도 역시 가능하지만, 이러한 각각의 제1 모델은 매우 단순해야 하는데, 이렇게 하는 것이 신속한 초기 가정 형성을 용이화하고 3D 공간에서 비행 중인 새로운 객체가 검출되지 않을 위험이 최소화하기 때문이다. 제1 모델만을 이용하여 형성된 임의의 가정이 출력으로서 결코 전송되지 않도록 시스템을 설계할 수 있으므로, 비행 중인 객체의 확인을 위해 가정이 출력될 수 있기 이전에 제2 모델에서 가정의 일부 확장을 요구한다는 점에 유의한다. 더욱이, 가정들을 형성하는 단계(710)는 가정들을 별개의 세그먼트들로 분할하는 것(718)을 포함할 수 있고, 일부 구현에서, 분할하는 것(718)은 3D 공간에서 움직임의 제2 모델을 이용하여 적어도 한 번 확장된 가정에 대해서만 수행된다.
일부 구현에서, 3D 공간에서의 움직임의 제2 모델은 3차원 공간에서 움직임의 단기 예측들을 수행하도록 훈련된 순환 신경망(recurrent neural network)(RNN) 모델이다. 일부 구현에서, 3D 공간에서의 움직임의 제2 모델은 수치 최적화와 조합된 수치 적분을 채용하는 수치 물리 모델이다. 관찰값들을 미래의 위치들에 직접 맵핑하는 또 다른 머신 학습 모델 또는 주어진 현재의 관찰값들 하에서 미래에 공이 어떻게 날아갈 것인지를 기술하기 위한 (선형 모델보다 더 복잡한) 미분 방정식 세트 등의 다른 유형들의 제2 모델들도 역시 가능하며, 여기서, 이들 미분 방정식들은 분석적으로(분석적 물리 모델) 또는 수치적 방법들을 이용하여, 또한 수치 최적화를 지원하도록 (저역 통과 필터핑으로서 간주되는) 데이터 내의 노이즈를 제거하기 위해 잠재적으로 하나 이상의 Kalman 필터를 채용하여, 해결될 수 있다. 상이한 모델들은, 성능, 정확도 및 노이즈 민감도 측면에서 상이한 장단점을 갖는다. 따라서, 이용되는 제2 모델의 특정한 유형은, 부분적으로는 시스템의 특정한 배치에 의존할 수 있다, 예를 들어 시스템에서 이용되는 센서(들)(130)의 성질, 및 이들 센서(들)(130)가 3D 공간(110)의 1개의 측, 2개의 측, 3개의 측에 위치하는지에 의존할 수 있다.
도 8은 도 7의 3D 객체 추적 프로세스에서 이용될 수 있는 가정 형성 프로세스의 한 예를 보여준다. 다음 시간 슬라이스에 대해 객체 검출 시스템에 의해 등록된 관심대상 객체들의 3D 위치가 수신된다(800). 3D 위치들은 옥트리 또는 또 다른 데이터 구조에 저장할 수 있다. 옥트리 데이터 구조는, "y 포인트로부터 x 미터 떨어진 포인트들은 무엇입니까?" 등의 질의에 대한 빠른 응답을 허용한다. 일반적으로, 수신된 3D 위치 데이터는 주어진 시간 슬라이스에서 3D 공간 내의 미확인 객체들을 나타내는 포인트 클라우드로서 이해될 수 있다. 또한, 시간 슬라이스는, 미리정의된 시간 증분, 예를 들어 위에서 언급된 3D 추적 서버의 미리정의된 일정한 프레임 레이트에서의 여러 시간 슬라이스들 중 하나일 수 있다.
현재의 시간 슬라이스의 3D 위치 데이터를 이용하여 처리될 임의의 활성 가정이 남아 있는지를 결정하기 위해 체크(805)가 이루어진다. 각각의 가정은 그 가정의 과거 및 미래 궤적의 모델을 포함할 수 있다. 처리될 남아 있는 각각의 활성 가정에 대해, 주어진 가정에 대한 등록된 검출 수와 임계값에 따라, 주어진 가정에 의해 표현되는 움직이는 잠재적 객체의 다음 센서 등록을 발견하기 위해 3D 공간에서 장소에 관해 예측이 이루어질 수 있다. 따라서, 주어진 가정에 대한 객체 검출의 수가 임계 값보다 큰지에 대해 체크(810)가 수행될 수 있다(도 7의 체크(712)와 유사). 주어진 가정에 대한 등록된 검출의 수가 임계 값보다 작거나 같을 때(또는 단순히 미만일 때; 이것은 이용된 임계 값에 따라 동등한 표현임), 제1 모델을 이용하여 주어진 가정에 대해 객체의 다음 3D 위치가 예측된다(815). 그리고 주어진 가정에 대한 등록된 검출의 수가 임계값보다 클 때(또는 이용된 임계 값에 따라 동등할 수 있는, 그보다 크거나 같을 때), 제2 모델을 이용하여 주어진 가정에 대해 객체의 다음 3D 위치가 예측된다(820).
예를 들어 가정의 처음 몇 개의 관찰에 대해, 간단한 선형 모델을 공의 비행에 대한 모델로서 이용할 수 있다. 미리정의된 수의 관찰이 이루어진 후에, 순환 신경망(RNN)(또는 2차 복잡도의 적절한 움직임)을 공의 비행에 대한 모델로서 대신 이용할 수 있다. 일부 구현에서, 미리정의된 관찰 수는 10이지만, 다른 수가 이용될 수도 있다. 일반적으로, 미리정의된 수는 골프공이 직선 운동 대신 곡선 운동을 보이기 시작하기 위해 전형적으로 필요한 관찰 수보다 적은 값, 예를 들어, 공이 곡선 운동을 보이기 전의 엣지 부근에 해당하는, 공의 약 0.3초 비행에 대응하는 시스템 내의 센서 관찰의 수로 설정되어야 한다.
일부 구현에서, RNN은, 덜 복잡한 딥 러닝 기반의 모델(예컨대, 더 빠른 예측으로 이어지는, 덜 넓거나 및/또는 덜 깊은 모델 아키텍처)의 이용을 허용하는 단기 예측들만 행할 필요가 있다. RNN 구현의 경우, 모델의 마지막 상태로부터 예측을 수행할 수 있으며, 필요하지 않더라도 수개의 단계들 앞을 예측할 수 있다. 이들 예측들은 모델의 상태를 업데이트할 필요가 없다. 더 빠른 예측들을 허용하기 위해, 모든 가정에 대한 예측들을 일괄적으로 할 수 있다. 각각의 일괄처리에서, 여러 가정들에 대한 예측들은 벡터 명령어인 SIMD(Single Instruction Multiple Data)를 이용하여 동시에 이루어질 수 있다.
일부 구현에서, RNN을 제2 모델로서 이용하는 것이 아니라, 예를 들어, 10번의 관찰이 이루어진 후, 더 정교한 물리 모델을 이용할 수 있다. 이 물리 모델은, 공의 항력, 양력 및 회전 감쇠 등의, 측정된 공기역학적 속성들의 수치 적분을 이용하는 전통적인 수치 물리 모델일 수 있다. 이 물리 모델은, 처리 시간을 감소시키고 그에 따라 가정들에 대한 다음 3D 위치들의 예측 속도를 높이기 위해, 공 비행의 하나 이상의 양태를 간소화하는 전체 물리 모델 또는 축소된 물리 모델일 수 있다. 일부 구현에서, 물리 모델의 상태인, 속도와 회전은, 가정 시간 동안 지속적으로 업데이트된다. 이것은, 먼저 가정의 끝을 향해 관찰된 3D 포인트들의 서브세트를 선택함으로써 수행될 수 있다. 이들 3D 포인트는 저역 통과 필터링될 수 있고, 필터링된 데이터로부터 3D 속도 및 가속도 벡터들이 계산될 수 있다. 그 다음, 선택된 물리 모델을 이용하여 최적화가 공식화되고 공의 3D 회전 벡터에 대해 해결될 수 있다. 그 다음, 추정된 3D 속도와 회전 벡터들에 수치 적분이 적용되어 현재의 시간 슬라이스에서 객체의 예측된 위치에 도달할 수 있다.
예측된 위치를 이용하는 것은, 주어진 가정을 확장하는데 이용될 수 있는 임의의 등록된 관심대상 객체들을 찾기 위해 현재의 시간 슬라이스에 대한 3D 위치 데이터의 더 신속한 검색을 가능케한다. 예를 들어, 예측된 다음 3차원 위치의 미리정의된 거리 내의 한 세트의 3D 위치들을 찾기 위해, 이러한 다음 시간 슬라이스에 대해 객체 검출 시스템에 의해 등록된 관심대상 객체들의 모든 3D 위치를 포함하는 옥트리 데이터 구조가 검색될 수 있다(825). 예측된 위치에 가까운 포인트들에 대해 옥트리가 조회될 수 있고, 여기서 각각의 3D 포인트는, 그 3D 포인트가 예측된 위치의 미리정의된 거리 내에 있을 때 "가까운" 것으로 결정될 수 있다. 현재의 시간 슬라이스에 대한 포인트들의 3D 클라우드 중의 포인트들에서 효율적인 (더 빠른) 검색을 가능케하는(그에 따라, 클라우드 내의 모든 포인트를 체크할 필요가 없는) 옥트리 등의 데이터 구조의 이용은, 3D 포인트 클라우드가 많은 거짓 양성들을 포함하는 경우에도 실시간 성능을 달성하는 중요한 부분이라는 점에 유의한다. 또한, K-D 트리 등의 옥트리 이외의 공간 데이터 구조를 이용하여 현재 가정에 대한 예측된 포인트에 가까운 포인트들에 대한 이러한 유형들의 조회로 빠른 검색을 가능케할 수 있다는 점에도 유의한다.
더욱이, 일부 구현에서, 각각의 3D 포인트는, 그 3D 포인트가 (1) 예측된 위치의 미리정의된 거리 내에 있고, (2) 가정의 동일한 전반적 방향으로의 움직임을 나타내는 경우에만 "가까운" 것으로 결정된다. 예를 들어, 각각의 가정은 공이 이동하고 있는 현재 방향의 추정치(추정된 속도 벡터)를 포함할 수 있고, 새로운 잠재적 3D 포인트와 공 방향의 계산에 이용된 동일한 앵커 포인트에 기초하여 새로운 방향 벡터가 컴퓨팅될 수 있다; 그 다음, 현재의 추정된 방향과 새로운 방향 사이의 각도가 90도 이하(즉, 양의 내적)인 경우에만 3D 포인트가 허용된다. 이 간단한 선형 움직임 모델은, 주어진 가정에 대한 다음 3D 위치를 예측하기 위해 제2 모델이 이용되는 경우에도 주어진 가정으로의 추가를 위해 고려되는 3D 포인트들을 제한하는데 이용될 수 있는데, 이렇게 하는 것이, 현재의 가정을 확장하기 위해 고려로부터 배제할 불량한 3D 포인트를 신속한 방식을 제공하기 때문이라는 점에 유의한다.
검색(825)이 제로(0) 히트(즉, 세트가 널 세트인 경우)를 반환하면, 현재의 시간 슬라이스를 통해 주어진 가정을 확장하기 위해 주어진 가정에 대해 예측된 3D 위치가 이용될 수 있으며(830), 프로세스는 그 다음, 처리될 다음 활성 가정에 대한 체킹(805)으로 되돌아 간다. 검색(825)이 각각의 시간 슬라이스에서 각각의 가정에 대해 허용되는 브랜치의 수(예를 들어, 브랜치 수가 프로그래밍가능하고, 2보다 큰 브랜칭 임계 수)를 제어하는 미리정의된 임계 수 이하인 어떤 수(#)의 히트 또는 한 개(1)의 히트를 반환하는 경우, 주어진 가정을 확장(필요하다면 가정을 브랜칭)하기 위해 하나 이상의 발견된 3D 포인트가 이용되며(835), 프로세스는 그 다음, 처리될 다음 활성 가정에 대한 체킹(805)으로 되돌아 간다.
검색(825)에 의해 반환된 3D 포인트 세트가 브랜칭 임계 수(#)보다 수의 3D 포인트들을 포함할 때, 발견된 3D 포인트들은 예측된 다음 3D 위치에 대한 근접성에 기초하여 소팅(840)되어 소팅된 세트를 형성할 수 있다. 예를 들어, 3D 포인트들은, 예컨대 검색(825) 동안 예측된 위치와의 L2 거리의 제곱에 따라 채점된 다음, 순위매김(840)될 수 있다. 미리정의된 브랜칭 임계 수를 초과하는 소팅된 세트 내의 임의의 덜 근접한 3D 포인트들은 제거될 수 있다(845). 그 다음, 주어진 가정은, 소팅된 세트에 남아 있는 2개 이상의 3D 포인트를 이용하여 가정들의 그룹 내의 2개 이상의 가정으로 브랜치된다(850). 그 다음, 프로세스는 처리될 다음 활성 가정에 대한 체킹(805)으로 되돌아 간다. 또한, 초기 가정으로부터의 브랜치들인 가정들의 세트는 그룹으로서 저장될 수 있지만, 각각의 가정 브랜치는 개별적으로 추적되고 그 가정이 사장(die)되면 브랜칭 포인트까지 다시 가지치기될 수 있다는 점에 유의한다.
체크될 가정들이 남아 있는 동안(805), 프로세스는 반복된다. 그러나, 가정마다 플로차트가 순차적인 것으로 도시되어 있더라도, 일부 구현에서는, 가정이 병렬로 체크된다는 점을 이해해야 한다. 따라서, 예측된 위치들 등에 가까운 3D 포인트들을 찾기 위해 옥트리가 검색(825)되기 전에 모든 활성 가정에 대해 예측들(815, 820)이 이루어질 수 있다. 어쨌든, 기존 가정에 추가되지 않은 현재의 시간 슬라이스에 대해 객체 검출 시스템에 의해 등록된 관심대상 객체들의 모든 3D 위치들이 추가 처리를 위해 정합되지 않은 3D 포인트들의 목록에 추가될 수 있다. 또한, 일부 구현에서 (예컨대, 가정이 3개 이상 또는 4개 이상 또는 5개 이상의 객체 검출로 성장하기 전에) 가정이 빠르게 사장되는 경우, 아무데도 가지 않는 가정에 의해 센서 인식(sensor impression)들이 "도난"당해 새로운 공 론치를 놓칠 위험을 감소시키기 위하여, 사장된 가정에서 이용된 (센서 인식들에 대응하는) 3D 포인트들은 정합되지 않은 포인트들의 목록에 추가될 수 있다.
또한, 이용된 제2 모델(예컨대, RNN 모델 또는 수치 통합 물리 모델)의 성질에 관계없이, 각각의 가정의 업데이트가 지연될 수 있다는 점에 유의한다. 현재의 시간 슬라이스에서 가정에 대한 작업이 이루어지고 나면, 제2 모델이 업데이트된다. 새로운 포인트가 추가된 경우, 이것은 모델을 업데이트하는데 이용된다. 그렇지 않은 경우, 모델의 위치 예측이 대신에 이용된다. 양쪽 경우 모두에서, 업데이트는 "지연"될 수 있다. 새로운 포인트가 추가되면, 이것은 모델을 업데이트하기 위해 즉시 이용될 필요는 없다. 이것은, 원시 3D 관찰이 다소 노이즈가 있어, 모델을 혼란시킬 수 있기 때문이다. 이 지연 작업은 다음과 같이 이루어질 수 있다: 모델을 업데이트하는데 이용될 위치가 마지막으로 추가된 위치보다 소정 개수의 프레임만큼 뒤로 지연된다. 포인트가 모델을 업데이트하는데 이용되는 경우, 이것은 포인트 전과 후의 양쪽 위치들에 의해 평활화될 수 있다. 일부 구현에서, 윈도우 크기 9가 이용되는데, 이것은 모델이 업데이트되기 전에 후방의 4개 포인트와 전방의 4개 포인트가 필요함을 의미한다. 이러한 구현들에서 궤적의 첫번째 부분에 대한 특별한 처리가 이루어진다.
기존 가정과 정합되지 않는 3D 위치들은 잠재적인 새로운 공을 검출하여(860) 새로운 가정을 론칭하는데 이용된다. 이것은, 현재의 시간 슬라이스에 대한 옥트리(들)와 이전의 시간 슬라이스들에 대한 저장된 추가 옥트리들을 이용하는 것을 수반할 수 있다. (특히 동일한 근처에 있는 론치들에 대해) 잠재적인 론치 수를 감소시키기 위해, 서로 0.5미터보다 더 가까운 포인트들을 클러스터로 만들고, 스테레오 카메라 센서에 대한 재투사 오류 등의 측정 오류가 가장 낮은 포인트는 클러스터에 보관될 수 있다. 나머지 포인트들은 옥트리에 추가된다. 일부 구현에서, 2개의 이전 시간 슬라이스에 대한 옥트리들도 유지된다.
일부 구현에서, 클러스터화는 (각각의 포인트에 대해) 임계 거리(예컨대, 2미터 또는 1미터) 미만 떨어진 포인트들을 발견하는 것을 수반한다. 이들 포인트들은 클러스터로 간주될 것이며, 포인트가 하나보다 많은 클러스터에 속하는 경우, 2개의 클러스터가 하나로 병합될 수 있다. 따라서, 클러스터는 가까운 한 세트의 포인트들일 것이므로, 이들 포인트들은 동일한 객체에 대응할 수 있다. 동일한 객체에 대해 시스템에서 하나보다 많은 론치를 생성하는 것을 피하기 위해, 각각의 클러스터 내의 포인트 세트는 하나의 포인트로 감축되고, 이를 수행하는데 이용되는 메트릭은 재투사 오류일 수 있어서, 재투사가 가장 낮은 포인트가 클러스터를 나타내는 포인트가 되도록 선택된다. 일부 구현에서, 식별된 클러스터들을 나타내는 개개의 포인트들로 새로운 포인트 클라우드가 생성되며, 이 새로운 포인트 클라우드는, (1) 이 시간 슬라이스에 대한 원래의 포인트 클라우드보다 적은 수의 포인트를 포함해야 하고, (2) 론치들(및 론치들만)을 검출하는데 이용될 수 있다. 새로운 포인트 클라우드는 또한, 옥트리 등의 공간 데이터 구조에 저장되어, 더 빠른 검색을 가능케하여 실시간 론치 검출을 용이화할 수 있다는 점에 유의한다.
론치 검출(860)은, 일반적으로 선형(즉, 일직선)인 움직임을 발견하도록 설계될 수 있다. 일부 구현에서, 이것은, 남아 있는 모든 3D 포인트를 반복하고 이전의 2개의 시간 슬라이스로부터 옥트리에서 가까운(예컨대, 5미터 이내) 3D 포인트들을 검색함으로써 이루어진다. 그 다음, 이 2개의 포인트 사이에서 라인이 계산된다. 그 다음, 이 라인은, 이들 2개의 포인트들 사이의 시간 슬라이스에서 공의 위치를 예측하고 이 예측된 위치에 가까이 놓인 3D 포인트에 대한 이전 시간 슬라이스에서 옥트리를 검색함으로써 확인될 수 있다. 이들 기준들 모두가 충족되면, 이들 3개의 포인트를 포함하는 새로운 가정이 생성될 것이다(860).
또한, 위에서 언급된 바와 같이, 가정들을 형성하는 단계(710)는, 가정들을 별개의 세그먼트들로 분할하는 단계(718)를 포함할 수 있다. 3D 공간에서 공이 움직이는 지속기간 동안(예컨대, 골프 샷의 지속기간 동안), 움직임은, 비행, 제1 바운스, 제2 바운스, 롤 등의 상이한 국면들 또는 세그먼트들에 진입한다. 샷이 어느 세그먼트에 있는지에 따라, 물리 모델은 상이할 수 있다. 즉, 비행 세그먼트에 이용되는 물리 모델/파라미터들은, 스키드 세그먼트에 이용되는 물리 모델/파라미터들과는 상이할 수 있는, 롤 세그먼트에 이용되는 물리 모델/파라미터들과 상이할 수 있다. 추가로, 샷이 어느 세그먼트에 있는지에 따라 이용되는 물리/예측 모델 및/또는 파라미터(들)를 전환하는 실질적인 이점이 있을 수 있다, 예를 들어, 바운스는 전형적으로 더 높은 노이즈를 갖지만 훨씬 적은 Magnus 효과를 가지므로, 바운스 및 비행 양쪽 모두에 대해 동일한 알고리즘을 이용하지 않는다.
객체의 움직임을 이러한 세그먼트들로 분할하는 프로세스(718)는, 현재의 시간 슬라이스에 대한 현재 활성인 가정들에 대해 모든 확장이 이루어진 후에 또는 각각의 가정이 확장된 후에 수행될 수 있다. 예를 들어, 가정에 새로운 포인트가 추가될 때마다, 이 포인트가 새로운 세그먼트를 시작하는지의 여부에 관해 결정이 이루어질 수 있다. 도 9는, 도 7의 3D 객체 추적 프로세스에서 이용될 수 있는, 가정 형성 동안 가정을 별개의 세그먼트들로 분할하는(718)의 프로세스의 한 예를 도시한다. 주어진 가정에서의 데이터 포인트가 식별되며(900), 여기서 데이터 포인트들은 로컬 최소 수직 위치를 갖는다.
예를 들어, 새로운 3D 위치 Ptx,y,z가 시간 슬라이스 t에 대한 가정에 추가되는 경우, 2개의 이전 3D 위치 P(t-1)x,y,z 및 P(t-2)x,y,z에 대해 체크가 이루어져 Y 성분 P(t-1)y < P(t-2)y 및 Y 성분 P(t-1)y < Pty인지 알아볼 수 있다. 여기서 Y 성분은 3D 좌표계에서 3D 포인트들의 수직 위치를 말하며, 여기서 "Y" 위치란 지면 위/아래 높이를 정의하는 좌표축을 말한다는 점에 유의한다. 따라서, 3D 공간에서 Y 위치들의 로컬 최소값은 지면과의 가능한 충돌을 나타낸다. 로컬 최소 수직 위치를 발견하기 위한 다른 접근법들이 이용될 수 있지만, 이 접근법은 매우 빠르고 쉽게 결정할 수 있다는 이점을 갖는다. 그러나, 시스템 내의 노이즈, 거짓 양성들의 수, 및 주어진 시간 슬라이스에서 어떤 센서에 의해서도 공이 검출되지 못할 위험으로 인해(가정에서 최소 수직 위치로서 식별된 3D 데이터 포인트는, 이 시간 슬라이스에서 어떠한 검출도 등록되지 않은 경우, 등록된 검출이 아닌 예측된 3D 포인트일 수 있다는 점에 유의한다), 이것이 지면 충돌을 나타내는지를 확정하기 위해 또 다른 체크가 필요하다.
주어진 가정에서 데이터 포인트 전과 후의 추정된 3D 속도 벡터들의 각자의 수직 성분들이 체크된다(930). 예를 들어, 벡터 P(t-2)x,y,z→P(t-1)x,y,z의 Y(수직) 성분과 벡터 P(t-1)x,y,z→Ptx,y,z의 Y(수직) 성분이 체크되어 첫 번째 것이 음수인지(또는 반전된 좌표 축에서 양수인지; 어쨌든, 데이터 포인트 P(t-1)x,y,z 이후 객체가 지면을 향하고 있음을 나타내는 부호)와 두 번째 것이 양수인지(또는 반전된 좌표 축에서 음수인지; 어쨌든, 데이터 포인트 P(t-1)x,y,z 이후 객체가 지면으로부터 멀어지고 있음을 나타내는 부호)를 알 수 있다. 만일 그렇다면, 데이터 포인트는 지면 충돌 이벤트로서 지정되고(942), 그렇지 않은 경우 데이터 포인트는 지면 충돌 이벤트로서 지정되지 않는다(944).
일부 구현에서, 시스템 내의 노이즈로 인해 생성된 위험들을 극복하기 위하여 2개보다 많은 추정된 속도 벡터가 체크된다. 최소 수직 위치 데이터 포인트 전과 후 양쪽 모두의 2개 이상의 추정된 속도들이 평균화될 수 있고, 그 다음, 각자의 속도 벡터 평균들의 수직(예를 들어, Y) 성분들이 체크될 수 있다(930). 이것은 잠재적인 지면 충돌 후 평균화되는 속도 벡터의 수보다 1만큼 적은 시간 슬라이스 수만큼 지면 충돌의 식별을 지연시킬 수 있지만, 이 지연은, 노이즈 있는 데이터를 이용한 더 확실한 지면 충돌 검출이라는 대응하는 이점을 제공한다. 이것은, 시스템에서 덜 진보된 센서 기술의 이용을 용이화하므로, 시스템 전체의 비용을 감소시킬 수 있다.
또한, 일부 구현에서, 추정된 3D 속도 벡터들과 연관된 노이즈 레벨, 데이터 포인트의 한쪽 또는 양쪽에 대한 최소 예상 비행 시간, 또는 노이즈 레벨 및 최소 예상 비행 시간 양쪽 모두에 기초하여, 하나 이상의 시간 윈도우가 선택될 수 있다(910). 그 다음, 데이터 포인트 전과 후의 추정된 3D 속도 벡터들의 평균들은, 잠재적인 지면 충돌인 데이터 포인트의 양쪽에 있는 적어도 하나의 시간 윈도우 내에 속하는 속도 벡터들을 이용하여 컴퓨팅될 수 있다. 일부 경우에는, 단일 평균화 윈도우를 이용하고, 일부 경우에는, 2개의 평균화 윈도우를 이용하며, 여기서 데이터 포인트 이전에 이용된 평균화 윈도우는 데이터 포인트 이후에 이용된 평균화 윈도우와는 상이한 길이일 수 있다.
더욱이, 분할 프로세스 자체에 포함되는 것으로 도면에 도시되어 있지만, 가정들이 형성되는 동안 시간 윈도우(들)를 동적으로(예컨대, 실시간으로) 선택(910)하는 것이 아니라, 선택(910)은, 예컨대, 처리 루프 외부에서, 주기적으로, 또는 주어진 3D 공간(110)에 대해 배열된 특정한 세트의 센서들(130)을 갖는 주어진 시스템 셋업 대해 잠재적으로 단 한번만 수행될 수 있다, 예를 들어, 윈도우(들)는 시스템에서 이용되는 센서(들)(130)의 성질, 및 이들 센서(들)(130)가 3D 공간(110)의 1개의 측, 2개의 측, 3개의 측 또는 모든 측에 위치하는지에 기초하여 선택될 수 있다(910). 더욱이, 예를 들어, 더 정확한 센서들(110) 및/또는 더 높은 데이터 캡처 레이트 등의, 더 진보된 센서 기술이 시스템에서 이용될 때, 공이 롤 세그먼트에 있는지의 확정을 돕기 위해 하나 이상의 속도 벡터의 Y 성분이 0 주변의 작은 범위 내에 있는지 체크하는 것 또는, 공이 비행 세그먼트 또는 바운스 세그먼트에 있는지를 확정하기 위해 속도 벡터들의 롤링 평균의 Y 성분의 변화율이 지구 중력 상수인 G 주변의 작은 범위 내에 있는지를 체크하는 것 등의, 속도의 수직 성분에 대한 추가적인 체크들이 이용될 수 있다.
어쨌든, 일단 지면 충돌이 지정되고 나면(942), 가정에 대해 새로운 세그먼트가 명시되고, 이 새로운 세그먼트가 이전 세그먼트와 관련하여 바운스 세그먼트인지 또는 롤 세그먼트인지에 관한 결정이 취해진다. 지정된 지면 충돌이 주어진 가정에 대해 지정된 제1 지면 충돌(950)이면, 이 지면 충돌은 가정을 2개의 세그먼트로 분할하고, 지면 충돌 이전의 세그먼트는, 예를 들어 골프 샷의 초기 부분에 대응하는, 비행 세그먼트로서 분류된다(952). 그 다음, 지면 충돌 후의 세그먼트의 성질을 결정하기 위해 체크(960)가 이루어질 수 있다. 일부 구현에서, 체크(960)는, 지정된 지면 충돌 전의 제1 추정된 속도 벡터(예를 들어, 평균 속도 벡터)와 지정된 지면 충돌 후의 제2 추정된 속도 벡터(예를 들어, 평균 속도 벡터) 사이의 각도가 임계 각도(예컨대, 20도)보다 큰지의 여부를 결정하는 것을 수반한다. 만일 그렇다면, 지면 충돌 이후의 세그먼트는 바운스 세그먼트로서 분류된다(962). 만일 그렇지 않은 경우, 지면 충돌 이후의 세그먼트는 롤 세그먼트로서 분류된다(964).
일부 구현에서, 추정된 속도 벡터들 사이의 임계 각도는, 배치 후 주어진 구현에 대해 실험적으로 조정될 수 있는 프로그래밍가능한 파라미터이다. 일부 구현에서, 이전 세그먼트가 롤 세그먼트인 경우, 다음 세그먼트는 바운스 세그먼트일 수 없다. 이 로직은 롤링으로서 식별되는 "작은" 바운스들로 이어지지만, 목적은, 이하에서 더 상세히 설명되는 바와 같이, 추적 데이터의 소비자에게 이 정보를 전파하는 것이 아니라, 추적 거동을 변경하는 것이다. 일부 구현에서, 롤 세그먼트는, 공이 지면을 따라 이동할 때 공의 회전 성분에 따라, 진정한 롤 또는 스키드일 수 있다. 마지막으로, 전형적으로 스키드 이후에는 롤이 뒤따르고, 시스템은 공이 정지할 때까지(또는 적어도 공의 속도가 임계값 미만이 될 때까지) 공을 추적할 수 있으며, 정지된 볼의 임의의 검출들은 폐기될 수 있다는 점에 유의한다.
도 7로 돌아가서, 객체 검출 시스템에 의해 등록된 적어도 하나의 추가적인 관심대상 객체와의 형성하는 단계(710) 동안 이루어진 연결들에 의해 더 이상 확장되지 않는 가정은 제거된다(720). 예를 들어, 잠재적인 공이 x보다 많은 수의 시간 슬라이스 동안 누락되었을 때 가정은 사장된 것으로 마킹될 수 있고, 여기서 x는 얼마나 많은 관찰이 이루어졌는지에 따라 상이한 값들로 설정된다. 일부 구현에서, x는 관찰이 열(10)개 미만인 가정의 경우 삼(3)으로 설정되고, 그렇지 않은 경우 이십(20)으로 설정된다. 시스템 및 센서 관찰 빈도에 따라, 상이한 관찰 수를 갖는 가정들에 대해 x의 다른 값들이 이용될 수 있다. 또한, 그룹 내의 모든 가정이 사장된 경우, 전체 그룹이 사장된 것으로서 마킹된다. 어쨌든, 시간이 지남에 따라, 잘못된 가정들은 비교적 빠르게 사장되는데, 이것은 잘못된 검출들 및/또는 페어링들(예컨대, 동일한 객체의 검출들인 것으로 잠재적으로 결정된, 카메라 또는 레이더이든, 2개의 센서의 데이터로부터 생성된 3D 위치)는 비교적 큰 3D 공간에 걸쳐 무작위로 분포되기 때문이다; 공간의 체적 크기로 인해, 공간에서 골프공의 움직임과 정합하는 잘못된 검출들 및/또는 페어링들의 패턴을 발견할 가능성은 거의 없다.
일부 가정은 제거(720) 후에도 살아남을 것이며, 따라서 3차원 공간에서 움직이는 적어도 하나의 공의 적어도 하나의 3D 궤적은, 제거(720) 후에도 살아남는 적어도 하나의 가정을 형성(710)에서 이용된 관심대상의 등록된 객체들의 3D 위치들에 대한 데이터에 완전한 3차원 물리 모델을 적용함으로써 명시될 것이다(730). 일부 구현에서, 각각의 시간 슬라이스에서, 가정 크기와 센서 데이터의 하나 이상의 특성, 예를 들어 블롭 콘트라스트 등을 고려하는 채점 함수에 기초하여 최상의 가정(또는 미리정의된 기준을 충족하는 활성 가정 세트)이 선택되고, 그 다음, 이들 하나 이상의 가정이 이용되어, 예를 들어 수직 위치의 로컬 최소값들과 로컬 최소값들 전과 후의 추정된 3D 속도 벡터들의 예상된 평균 수직 성분들에 기초하여, 예를 들어 형성(710) 동안에 수행된 세그먼트화에 따라 더 정확한 3D 경로를 결정한 후, 움직이는 공의 적어도 하나의 3D 궤적을 명시한다(730).
도 10a는 도 7의 3D 객체 추적 프로세스에서 이용될 수 있는 움직이는 공의 3D 궤적을 명시하는 프로세스의 한 예를 보여준다. 적어도 하나의 가정 형성에 이용된 등록된 객체들의 3차원 위치들에 대한 데이터는, 센서 데이터를 처리하여 적어도 비행 세그먼트에서 객체 검출 시스템에 의해 등록된 센서 관찰들을 이용해 더 정확한 3D 경로를 생성함으로써 생성될 수 있다(1000). 이것은 센서 데이터를 처리하여 이상값(outlier)들을 제거하고 데이터를 평활화한 다음, 처리된 센서 데이터를 재조합하여 (가정 형성 동안에 이용되는) 원시 3D 조합들보다 노이즈가 훨씬 적은 3D 경로 내의 3D 위치들을 형성하는 것을 수반할 수 있다. 예를 들어, 스테레오 쌍으로 조합된 2개의 카메라의 경우, 평활화된 2D 관찰들에 기초하여 삼각측량을 다시 수행하는 것을 수반한다.
그 다음, 3D 경로가 분석되어 이것이 골프공인지의 여부를 최종 결정한다. 적어도 비행 세그먼트에 대한 생성된 데이터에 대해 완전한 3차원 물리 모델이 적용될 수 있다(1005). 완전한 3D 물리 모델은 공의 회전을 추정할 수 있고, 회전 수가 너무 높은 공은 폐기될 수 있다. (처리 1000 이후의) 센서 관찰들이 적용된(1005) 완전한 물리 모델에 따라 비행 중인 공과 불일치하는 것으로 발견되면(1010), 데이터는 출력에 대해 거부된다(1015). (처리 1000 이후의) 센서 관찰들이 적용된(1005) 완전한 물리 모델에 따라 비행 중인 공과 일치하는 것으로 발견되면(1010), 데이터는 출력에 대해 확정된다(1020).
추가로, 일부 구현에서는 평활하게 이동하는 경로(각각의 포인트 사이의 작은 각도 변화들)만이 수락된다. 회전(가속)이 낮지만 객체가 (골프공처럼) 평활하게 움직이지 않는 경우 이 추가적인 제약이 필요하다. 또한, 경로 내의 개개의 세그먼트들을 수락하거나 거부하는 것이 아니라, 경로들은 전체적으로 수락되거나 거부될 수 있다. 그럼에도 불구하고, 개개의 포인트들은 이상값들로 인해 거부될 수 있다. 또한, 일부 구현에서, 데이터 포인트들에서 과도한 수의 이상값들을 갖는 경로들의 부분들은 불량한 것으로 식별되어 폐기될 수 있다.
도 10b는 도 7의 3D 객체 추적 프로세스에서 이용될 수 있는 움직이는 공의 3D 궤적을 명시하는 프로세스의 상세한 예(1050)를 보여준다. 이 예는 스테레오 쌍으로 조합된 2개의 카메라의 경우에 대응하지만, 프로세스는 임의의 2개의 적절한 센서로부터의 데이터 조합에 더 일반적으로 적용될 수 있다. 추적 포인트들(1055)은 가정 형성 동안에 이용된 원시 3D 조합보다 훨씬 적은 노이즈로 3D 경로 내의 3D 위치들을 형성하기 위해 처리된 센서 데이터를 재조합하는 가정후 프로세스(1060)에 의해 수신된다. (스테레오 쌍에서) 좌측 카메라로부터의 (공 궤적에 대한) 데이터 중의 2D 이상값들이 제거되고(1062A), (스테레오 쌍에서) 우측 카메라로부터의 (공 궤적에 대한) 데이터의 2D 이상값들이 제거된다(1062B). 좌측 카메라로부터의 (공 궤적에 대한) 데이터 중의 나머지 2D 위치들이 평활화되고(1064A), 우측 카메라로부터의 (공 궤적에 대한) 데이터 중의 나머지 2D 위치들이 평활화된다(1064B). 평활화는 전술된 저역 통과 필터링을 수반할 수 있다는 점에 유의한다.
임의의 비중첩 데이터 포인트들이 제거된다(1066). 2개의 카메라에 대해 이상값들이 독립적으로 제거되기 때문에(1062A, 1062B), 일부 경우에는 공에 대한 2개의 카메라 관찰 중 하나만 이상값인 것으로 간주되는 경우가 발생할 수 있어서, 하나의 카메라는 검출하는 반면 다른 카메라는 검출하지 못하게 된다. 따라서, 하나의 검출만 있는 이들 시점들이 제거된다. 그 다음, 우측 및 좌측 카메라로부터의 (공 궤적에 대한) 나머지 데이터 포인트들이 삼각측량된다(1068). 이것은 새로운 3D 포인트 세트를 생성할 수 있으며, 이들은 3D 공간에서 객체의 실제 경로의 더 정확한 표현인 최종 3D 궤적을 형성(1070)하는데 이용될 수 있다.
언급한 바와 같이, 도 10b의 프로세스는 임의의 2개의 적절한 센서들로부터의 데이터의 조합에 더 일반적으로 적용될 수 있다. 일반적으로, 주어진 공에 대한 추적 국면이 완료되면(1055), 그 공에 대한 모든 검출은 추적된 궤적을 정교화하는데 이용될 수 있다(1060). 따라서, 궤적에서 나중에 오는 위치 데이터를 이용하여 궤적에서 더 일찍 오는 위치 데이터를 정교화할 수 있다. 카메라 + 레이더로부터의 데이터의 경우, 카메라 데이터는 전술된 바와 같이 처리될 수 있고, 레이더 데이터는 저역통과 필터링과 이상값 검출을 이용해 처리되어 레이더 데이터의 품질을 증가시킬 수 있다.
또한, 최종 골프 샷 분류 동작은, 객체의 3D 경로의 적어도 비행 세그먼트 관해 회전 및 평균 각도 변화를 계산하여(1075) 그것이 골프공임을 확정할 수 있다. 골프공 궤적의 결정적 특징은 자유 비행 중에 회전이 공에 미치는 영향이다. 따라서, 공의 관찰된 (비행) 세그먼트로부터의 공의 회전 속도를 추정하는 것은, 객체의 궤적이 골프공인지의 여부를 결정하는데 도움이 되는데, 그것은 비-골프공 객체는 과도하게 높은 회전 속도를 생성할 수 있기 때문이다. 골프공의 회전에 대한 합리적인 값들은 0 내지 16000 RPM(분당 회전수)이며, 추정값의 부정확성들에 대해 약간의 여유가 포함된다.
또한, 비-골프공 객체에 대해 추정된 회전이 매우 낮은 경우, 움직임의 평활성에 대한 것인, 평균 각도 변화의 추가 테스트를 통해 이를 검출할 수 있다. 골프공은 공중에서 평활한 움직임을 가져야 하므로, 궤적의 비행 세그먼트에서 이러한 평활한 움직임을 갖지 않는 객체는 폐기되어야 한다. 3D 경로 내의 각각의 포인트에 대해, 그 포인트와 이전 포인트 사이의 방향 벡터가 계산될 수 있다. 그 다음, 이 방향 벡터는 3D 경로 내의 이전 포인트에 대한 방향 벡터와 대조하여 비교될 수 있고, 2개의 벡터 사이의 각도가 계산될 수 있다. 이들 각도들(예를 들어, 비행 세그먼트에서의 모든 각도) 중 2개 이상에 대한 산술 평균(평균)은 1075로 계산될 수 있고, 높은 평균값(예를 들어, 10도 초과)은 객체가 들쭉날쭉한(빠른 변화의) 움직임을 갖고 있다는 것을 나타내고, 이것은 골프공의 예상된 움직임이 아니다.
이러한 경우들에서, 추적된 객체는 골프공이 아닌 것으로 간주되어 거부된다. 객체가 골프공(또는 주어진 구현에서 추적되는 또 다른 유형의 객체)인 것으로 수락되면, 공의 3D 경로는 또 다른 시스템/프로세스에 의한 처리를 위해 및/또는 디스플레이를 위해, 예를 들어 비디오 게임 또는 TV 방송을 위해 출력(1080)된다. 포인트-투-포인트 방향 벡터들의 평균에 대한 10도 임계값은 하나의 예일 뿐이며, 상이한 구현들에서 상이한 임계값들이 이용될 수 있다는 점에 유의한다. 일반적으로, 임계값은 센서(들)의 캡처 빈도에 의존하는데, 이것은, 자유 비행 이동 중인 잠재적 객체는 각각의 검출 포인트 사이에서 더 적은 거리를 이동하므로 더 높은 데이터 캡처 레이트는 더 작은 임계값을 허용하기 때문이다. 일부 구현에서, 방향성 벡터들의 평균에 대한 임계값은 배치 후 주어진 구현에 대해 실험적으로 조정될 수 있는 프로그래밍가능한 파라미터이다.
도 10a로 돌아가서, 일부 구현에서, 별개의 세그먼트들 각각의 세그먼트들에서 처리가 별개로 수행된다(1025). 이 처리(1025)는 공 확인을 위한 데이터를 생성(1000)하기 위해 이루어지는 처리의 일부일 수 있다. 예를 들어, 3D 추적 동안에 이루어진 경로 세그먼트화에 기초하여, 궤적은 세그먼트화될 수 있으며, 각각의 세그먼트에서, 관찰들은 평활화될 수 있고 이상값들은 제거될 수 있다. 그 다음, 평활 관찰들에 기초하여 조합(예컨대, 삼각측량)이 다시 수행되어 데이터의 노이즈가 적은 3D 경로를 생성할 수 있다. 관찰값들(예컨대, 쌍을 이룬 카메라들로부터의 2D 관찰값들)은 전체 궤적에 걸쳐 평활화를 수행하는 것과는 대조적으로 세그먼트 내에서 평활화되고, 그렇지 않으면 바운스 포인트가 "평활화"되고 그 날카로운 엣지를 느슨하게 한다는 점에 유의한다. 바운스 전과 후의 부분들에 대해 별개로 평활화를 수행함으로써, 바운스 포인트의 날카로운 엣지가 보존되고, 일부 구현에서, 예를 들어, 2개의 평활화된 세그먼트를 외삽함으로써, 각각의 바운스 포인트에 대한 더 정확한 3D 위치가 식별된 바운스 포인트의 어느 한 측에서의 3D 경로들에 기초하여 결정될 수 있다는 점에 유의한다; 센서들의 한정된 샘플링 속도는 공이 바운스되는 정확한 순간이 캡처되지 못할 수 있다는 것을 의미하므로, 바운스 전과 후의 (외삽된) 경로 세그먼트들 사이의 공간에서 교차부를 찾는 것이 실제 공 바운스 위치를 추정하는 유일한 방식일 수 있다는 점에 유의한다.
또 다른 예로서, 처리(1025)는, 데이터가 출력을 위해 확정된(1020) 후 별개의 세그먼트들 각각의 세그먼트들에서 별개로 수행될 수 있다. 이 처리(1025)는, 각각의 바운스 포인트의 정확한 3D 위치 및 공에 대한 최종 정지 포인트의 정확한 3D 위치 등의, 3D 경로 내의 주요 포인트들을 확정하기 위해 각각의 세그먼트들에서 상이한 기술들을 채용할 수 있다. 각각의 세그먼트들에서 채용되는 상이한 기술들은, 상이한 저역 통과 필터링 기술들, 상이한 데이터 평활화 기술들, 및/또는 상이한 공 움직임 모델링 기술들을 포함할 수 있다.
어쨌든, 별개의 세그먼트들은 동일한 공의 궤적의 일부로 서로 연관되어 있으며, 출력에 이용할 수 있는 최종 경로 데이터는, 상이한 식별된 세그먼트들 각각에 대한 데이터, 식별된 세그먼트들의 일부만(예컨대, 비행 세그먼트만), 및/또는 식별된 세그먼트들에 대한 주요 식별된 포인트들(예컨대, 각각의 바운스 포인트의 3D 위치, 및 공의 최종 정지 포인트의 3D 위치)을 포함할 수 있다.
일단 3D 경로가 움직이는 진정한 객체(예컨대, 실제 골프공 샷)임을 확정하는데 필요한 모든 기준을 충족하면, 최종 경로 데이터가 출력으로서 전송된다. 다시 도 7을 참조하면, 검출된 공의 3D 궤적은 3D 궤적의 표현의 생성을 위해 출력되거나(740), 또는 3D 공간에서 3D 궤적의 표현을 생성 및 디스플레이한다(740). 이것은, 라이브 전송 또는 녹화를 위해 생성된 TV 신호에 골프공의 흔적을 오버레이함으로써 효과적으로 디스플레이하기 위한 3D 궤적의 추가 처리를 수반할 수 있거나, 이것은, 골퍼가 위치해 있는 물리적 환경의 컴퓨터 표현에서, 또는 컴퓨터에만 존재하지만 시스템의 사용자에게 디스플레이되는 가상의 환경, 예를 들어 (동일한 범위에 로컬로 있거나 전 세계에 분산되어 있는) 멀티플레이어 게임의 참가자들 사이에서 공유되는 가상의 환경에서, 골프공의 경로를 보여주는 등에 의해, 다른 데이터 또는 미디어를 증강함으로써 효과적으로 디스플레이하기 위해 3D 궤적의 추가 처리를 수반할 수 있다. 나아가, 도 7 내지 도 10b에 도시된 프로세스들은 이해하기 쉽도록 순차적 동작들로서 제시되어 있지만, 실제로는, 예를 들어, 하드웨어 및/또는 운영 체제 기반의 멀티태스킹을 이용하여, 및/또는 파이프라이닝 기술들을 이용하여, 동작들이 병렬로 또는 동시에 수행될 수 있다는 점에 유의해야 한다. 따라서, 도면들과 관련하여 본 문서에 제시된 개시내용은, 수행되는 프로세스들이 특정한 입력들 및 출력들에 대해 순차적인 동작을 요구하는 경우를 제외하고, 도면들에 도시된 바와 같이, 동작들을 순차적으로 수행하는 것으로 제한되지 않는다.
본 명세서에서 설명된 주제와 기능적 동작들의 실시예들은, 본 명세서에서 개시된 구조들 및 그들의 구조적 균등물들을 포함한 디지털 전자 회로로, 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어로, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에서 설명된 주제의 실시예들은, 데이터 처리 장치에 의한 실행을 위해 또는 데이터 처리 장치의 동작을 제어하기 위해, 비일시적인 컴퓨터 판독가능한 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈을 이용하여 구현될 수 있다. 비일시적인 컴퓨터 판독가능한 매체는, 컴퓨터 시스템 내의 하드 드라이브 또는 소매 채널들을 통해 판매되는 광학적 디스크, 또는 임베디드 시스템 등의, 제조된 제품일 수 있다. 비일시적인 컴퓨터 판독가능한 매체는, 유선 또는 무선 네트워크를 통해 컴퓨터 프로그램 명령어들의 하나 이상의 모듈을 전달하는 등에 의해, 별개로 취득되고 나중에 컴퓨터 프로그램 명령어들의 하나 이상의 모듈에 인코딩될 수 있다. 비일시적인 컴퓨터 판독가능한 매체는, 머신 판독가능한 저장 디바이스, 머신 판독가능한 저장 기판, 메모리 디바이스, 또는 이들 중 하나 이상의 조합일 수 있다.
용어 "데이터 처리 장치"는, 예로서 프로그램가능한 프로세서, 컴퓨터, 또는 복수의 프로세서나 컴퓨터를 포함한, 데이터를 처리하기 위한 모든 장치, 디바이스, 및 머신을 포괄한다. 이 장치는, 하드웨어 외에도, 해당 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 런타임 환경, 또는 이들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 또한, 이 장치는, 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라 등의, 다양한 상이한 컴퓨팅 모델 인프라들을 채용할 수 있다.
(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드라고도 알려진) 컴퓨터 프로그램은, 컴파일형 또는 인터프리터형 언어들, 선언적 또는 절차적 언어들을 포함한, 임의의 적절한 형태의 프로그래밍 언어로 작성될 수 있고, 단독형 프로그램이나, 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서 이용하기에 적합한 기타의 유닛을 포함한, 임의의 적절한 형태로 배치될 수 있다. 컴퓨터 프로그램은 반드시 파일 시스템 내의 파일에 대응할 필요는 없다. 프로그램은 다른 프로그램이나 데이터를 보유하고 있는 파일(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트)의 일부로서, 해당 프로그램에 전용된 단일 파일에, 또는 복수의 조율된 파일들(예를 들어, 하나 이상의 모듈, 서브 프로그램, 또는 코드의 부분들을 저장하고 있는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은, 하나의 컴퓨터에서, 또는 적어도 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐 분산되고 통신 네트워크에 의해 상호연결된 복수의 컴퓨터에서 실행되도록 배치될 수 있다.
본 명세서에서 설명된 프로세스들 및 로직 흐름들은, 하나 이상의 입력 데이터에 관해 동작하고 출력을 생성함으로써 하나 이상의 컴퓨터 프로그램을 실행하여 기능을 수행하는 하나 이상의 프로그램가능한 프로세서에 의해 수행될 수 있다. 프로세스들과 로직 흐름들은 또한, 특별 목적 로직 회로, 예를 들어, FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(주문형 집적 회로)에 의해 수행될 수 있고, 또한 장치가 이들로서 구현될 수 있다.
컴퓨터 프로그램을 실행하기에 적합한 프로세서들로는, 예로서, 범용 마이크로프로세서 및 특별 목적 마이크로프로세서 양쪽 모두, 및 임의의 적절한 종류의 디지털 컴퓨터의 하나 이상의 프로세서가 포함된다. 일반적으로, 프로세서는 판독 전용 메모리나 랜덤 액세스 메모리 또는 양쪽 모두로부터 명령어들과 데이터를 수신할 것이다. 컴퓨터의 본질적 요소들은, 명령어들을 수행하기 위한 프로세서와, 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스, 예를 들어, 자기, 광자기 디스크, 또는 광 디스크를 포함하거나, 이들로부터 데이터를 수신, 이들에게 데이터를 전송, 또는 양쪽 모두를 위해 동작적으로 결합될 수 있다. 그러나, 컴퓨터는 이러한 디바이스를 가질 필요는 없다. 게다가, 컴퓨터는, 또 다른 디바이스에, 예를 들어, 몇 가지 예를 들자면, 모바일 전화, 개인용 디지털 보조도구(PDA), 모바일 오디오 또는 비디오 재생기, 게임 콘솔, GPS(Global Positioning System) 수신기, 또는 휴대형 저장 디바이스(예를 들어, USB(universal serial bus) 플래시 드라이브)에 임베딩될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들로는, 예로서, 반도체 메모리 디바이스들, 예컨대, EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), 및 플래시 메모리 디바이스들; 자기 디스크들, 예컨대, 내부 하드 디스크들 또는 착탈식 디스크들; 광자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들; 네트워크 부착형 저장장치; 및 다양한 형태의 클라우드 저장장치를 포함한, 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들이 포함된다. 프로세서와 메모리는 특별 목적 로직 회로에 의해 보충되거나, 이에 병합될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에서 설명된 주제의 실시예들은, 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스, 예를 들어, LCD(liquid crystal display), OLED(organic light emitting diode) 또는 기타의 모니터와, 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스, 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터 상에서 구현될 수 있다. 사용자와의 상호작용을 제공하기 위해 다른 종류들의 디바이스들이 역시 이용될 수 있다; 예를 들어, 사용자에게 제공되는 피드백은, 감각적 피드백, 예를 들어, 시각적 피드백, 청각적 피드백, 또는 촉각적 피드백일 수 있고; 사용자로부터의 입력은, 음향, 음성, 또는 촉각적 입력을 포함한, 다양한 형태로 수신될 수 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로는 서로 멀리 떨어져 있고 통상적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는, 상응하는 컴퓨터 상에서 실행중이며 서로에 관해 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들 때문에 발생하는 것이다. 본 명세서에서 설명된 주제의 실시예들은, 백엔드 컴포넌트, 예를 들어, 데이터 서버를 포함하거나, 미들웨어 컴포넌트, 예를 들어, 애플리케이션 서버를 포함하거나, 프론트-엔드 컴포넌트, 예를 들어, 사용자가 본 명세서에서 설명된 주제의 한 구현과 상호작용할 수 있는 그래픽 사용자 인터페이스나 웹 브라우저를 갖는 클라이언트 컴퓨터, 또는 이러한 하나 이상의 백엔드, 미들웨어, 또는 프론트엔드 컴포넌트들의 임의의 적절한 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은, 임의의 적절한 형태 또는 매체의 디지털 데이터 통신, 예를 들어, 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예들로서는, 근거리 통신망("LAN"), 광역 네트워크("WAN"), 인터-네트워크(예를 들어, 인터넷), 및 피어-투-피어 네트워크들(예를 들어, 애드 혹(ad hoc) 피어-투-피어 네트워크들)이 포함된다.
본 명세서는 많은 구현 상세사항을 포함하지만, 이들은 본 발명 또는 청구대상에 대한 제한들로서 해석되어서는 안되며, 오히려 본 발명의 특정한 실시예들 특유의 피처들에 대한 설명으로서 해석되어야 한다. 별개의 실시예들의 정황에서 본 명세서에서 설명된 소정 피처는 또한, 단일의 실시예에서 조합하여 구현될 수 있다. 역으로, 단일 실시예의 정황에서 설명된 다양한 피처들은 또한, 복수의 실시예에서 별개로 구현되거나 임의의 적절한 하위조합(subcombination)으로 구현될 수 있다. 게다가, 피처들이 상기에서 소정 조합으로 작용하는 것으로 설명되거나 심지어 그와 같이 처음 청구되더라도, 청구된 조합으로부터의 하나 이상의 피처들은 일부 경우에는 그 조합으로부터 삭제될 수도 있고, 청구된 조합은 하위조합이나 하위조합의 변형에 관한 것일 수도 있다. 따라서, 명시적으로 달리 언급되지 않는 한, 또는 본 기술분야의 통상의 기술자의 지식에 비추어 달리 명확하게 표시되지 않는 한, 전술된 실시예의 임의의 피처는 전술된 실시예의 다른 임의의 피처와 조합될 수 있다.
유사하게, 동작들이 도면에서 특정 순서로 도시되더라도, 이것은, 바람직한 결과를 달성하기 위해 이러한 동작들이 도시된 특정 순서로 또는 순차적 순서로 수행될 것을 요구하거나, 도시된 모든 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안 된다. 소정 상황들에서는, 멀티태스킹 및/또는 병렬 처리가 유리할 수도 있다. 게다가, 전술된 실시예에서의 다양한 시스템 컴포넌트들의 분리는, 모든 실시예에서 이러한 분리를 요구하는 것으로 이해되어서는 안 되며, 설명된 프로그램 컴포넌트들 및 시스템들은 전체적으로 하나의 소프트웨어 제품으로 함께 통합되거나 복수의 소프트웨어 제품 내에 팩키징될 수 있는 것으로 이해하여야 한다.
지금까지, 본 주제의 특정한 실시예들이 설명되었다. 다른 실시예들은 이하의 청구항들의 범위 내에 있다. 예를 들어, 상기의 설명은 골프공의 움직임을 추적하는데 초점을 맞추었지만, 설명된 시스템들 및 기술들은, 야구 또는 스키트 사격(skeet shooting) 등을 위한 다른 유형들의 객체 움직임 추적뿐만 아니라 비-스포츠 응용들에도 적용될 수 있다. 또한, "움직이는" 객체를 추적하는 것은, 일부 구현에서, 객체가 튕겨 나가거나 및/또는 지면을 따라 굴러갈 때 객체를 추적하는 것을 포함할 수 있다.

Claims (30)

  1. 방법으로서,
    거짓 음성(false negative)들을 최소화하게끔 등록된 관심대상 객체들(objects of interest)에 대해 더 많은 거짓 양성(false positive)들을 허용하도록 구성된 객체 검출 시스템에 의해 등록된 관심대상 객체들의 3차원 위치들을 획득하는 단계;
    상기 등록된 관심대상 객체들의 3차원 위치들에 적용되는 필터를 이용하여 3차원 공간에서 움직이는 객체들의 가정들(hypotheses)을 형성하는 단계 ― 상기 필터는 특정한 관심대상 객체들에 대한 추정된 3차원 속도 벡터들이 시간에 걸쳐 3차원 공간에서 움직이는 객체에 대략적으로 대응할 때 상기 등록된 관심대상 객체들 중 특정한 관심대상 객체들 간의 연결들을 허용함 ―;
    상기 형성하는 단계 동안, 상기 객체 검출 시스템에 의해 등록된 적어도 하나의 추가적인 관심대상 객체와 이루어진 연결들에 의해 더 이상 확장되지 않는 상기 가정들의 적절한 서브세트를 제거하는 단계;
    상기 제거하는 단계에서 살아남은 적어도 하나의 가정의 형성에서 이용되는 상기 등록된 관심대상 객체들의 3차원 위치들에 대한 데이터에 대해 완전한 3차원 물리 모델을 적용함으로써, 3차원 공간에서 움직이는 적어도 하나의 공의 적어도 하나의 3차원 궤적을 명시하는 단계; 및
    3차원 공간에서 움직이는 상기 적어도 하나의 공의 적어도 하나의 3차원 궤적을 디스플레이를 위해 출력하는 단계
    를 포함하고,
    상기 필터를 이용하여 3차원 공간에서 움직이는 객체들의 가정들을 형성하는 단계는,
    주어진 가정에 대한 등록된 검출의 수가 임계값 미만일 때 3차원 공간에서 움직임의 제1 모델을 이용하는 단계 ― 상기 제1 모델은 제1 레벨의 복잡성을 가짐 ―; 및
    상기 주어진 가정에 대한 등록된 검출의 수가 상기 임계값보다 크거나 같을 때 3차원 공간에서 움직임의 제2 모델을 이용하는 단계 ― 상기 제2 모델은 상기 제1 모델의 제1 레벨의 복잡성보다 큰 제2 레벨의 복잡성을 가짐 ―
    를 포함하는, 방법.
  2. 제1항에 있어서, 상기 3차원 공간에서의 움직임의 제1 모델은, 등록된 관심대상 객체의 제1 3차원 위치가 상기 주어진 가정을 상기 주어진 가정에 의해 예측된 방향과 대략 동일한 방향으로 확장할 때, 상기 제1 3차원 위치를 상기 주어진 가정에 연결하는 선형 모델이고, 상기 3차원 공간에서의 움직임의 제2 모델은 3차원 공간에서 움직임의 단기 예측들을 수행하도록 훈련된 순환 신경망 모델인, 방법.
  3. 제1항에 있어서, 상기 3차원 공간에서의 움직이는 객체들의 가정들을 형성하는 단계는,
    상기 주어진 가정에 대한 등록된 검출의 수 및 상기 임계값에 따라, 상기 제1 모델 또는 상기 제2 모델을 이용하여 상기 주어진 가정에 대한 등록된 검출에 대한 다음 3차원 위치를 예측하는 단계;
    상기 예측된 다음 3차원 위치의 미리정의된 거리 내의 3차원 위치들의 세트를 발견하기 위해, 다음 시간 슬라이스에 대해 상기 객체 검출 시스템에 의해 등록된 관심대상 객체들의 모든 3차원 위치를 포함하는 공간 데이터 구조를 검색하는 단계;
    상기 3차원 위치들의 세트가 널 세트(null set)일 때 상기 주어진 가정에 대한 상기 예측된 다음 3차원 위치를 이용하는 단계;
    상기 3차원 위치들의 세트가 단일의 3차원 위치만을 포함할 때 상기 주어진 가정에 대한 상기 단일 3차원 위치를 이용하는 단계; 및
    상기 3차원 위치들의 세트가 2개 이상의 3차원 위치를 포함할 때,
    소팅된 세트(sorted set)를 형성하기 위해 상기 예측된 다음 3차원 위치에 대한 근접성에 기초하여 상기 2개 이상의 3차원 위치를 소팅하는 단계,
    2보다 큰 미리정의된 임계수를 넘는 상기 소팅된 세트 내의 임의의 덜 근접한 3차원 위치들을 제거하는 단계, 및
    상기 소팅된 세트에 남아 있는 상기 2개 이상의 3차원 위치를 이용하여 상기 주어진 가정을 가정들 그룹 내의 2개 이상의 가정으로 브랜칭하는 단계
    를 포함하는, 방법.
  4. 제1항에 있어서, 상기 주어진 가정에 대한 등록된 검출의 수가 상기 임계값보다 크거나 같을 때 상기 3차원 공간에서 움직이는 객체들의 가정들을 형성하는 단계는,
    로컬 최소 수직 위치를 갖는 상기 주어진 가정 내의 데이터 포인트를 식별하는 단계;
    상기 주어진 가정 내의 상기 데이터 포인트 전과 후의 추정된 3차원 속도 벡터들의 각자의 수직 성분들을 체크하는 단계; 및
    상기 각자의 수직 성분들 중 제1 성분이 음수이고 상기 각자의 수직 성분들 중 제2 성분이 양수일 때 상기 데이터 포인트를 지면 충돌로서 지정하는 단계
    를 포함하는, 방법.
  5. 제4항에 있어서, 상기 각자의 수직 성분들은 상기 주어진 가정 내의 상기 데이터 포인트 전과 후의 상기 추정된 3차원 속도 벡터들의 평균들로부터 나오고, 상기 방법은,
    상기 추정된 3차원 속도 벡터들과 연관된 노이즈 레벨, 상기 데이터 포인트의 한쪽 또는 양쪽에 관한 최소 예상된 비행 시간, 또는 상기 노이즈 레벨과 상기 최소 예상된 비행 시간 양쪽 모두에 기초하여, 적어도 하나의 시간 윈도우를 선택하는 단계; 및
    상기 적어도 하나의 시간 윈도우 내에 속하는 상기 데이터 포인트 전과 후의 상기 추정된 3차원 속도 벡터들의 평균들을 컴퓨팅하는 단계
    를 포함하는, 방법.
  6. 제4항에 있어서, 상기 주어진 가정에 대한 상기 등록된 검출의 수가 임계값보다 크거나 같을 때 상기 3차원 공간에서의 움직이는 객체들의 가정들을 형성하는 단계는, 상기 주어진 가정을 비행 세그먼트, 하나 이상의 바운스 세그먼트 및 롤 세그먼트를 포함하는 별개의 세그먼트들로 분할하는 단계를 포함하고, 상기 분할하는 단계는, 상기 식별하는 단계, 상기 체크하는 단계, 상기 지정하는 단계, 및:
    제1 지정된 지면 충돌 전의 상기 주어진 가정의 제1 세그먼트를 상기 비행 세그먼트로서 분류하는 단계;
    각각의 다음 지정된 지면 충돌 후의 상기 주어진 가정의 다음 세그먼트를, 상기 다음 지정된 지면 충돌 전의 제1 추정된 속도 벡터와 상기 다음 지정된 지면 충돌 후의 제2 추정된 속도 벡터 사이의 각도가 임계 각도보다 클 때, 상기 하나 이상의 바운스 세그먼트 중 하나로서 분류하는 단계; 및
    다음 지정된 지면 충돌 후의 상기 주어진 가정의 다음 세그먼트를, 상기 다음 지정된 지면 충돌 전의 상기 제1 추정된 속도 벡터와 상기 다음 지정된 지면 충돌 후의 상기 제2 추정된 속도 벡터 사이의 각도가 상기 임계 각도 미만일 때, 상기 롤 세그먼트로서 분류하는 단계
    를 포함하는, 방법.
  7. 제6항에 있어서, 상기 주어진 가정은 상기 제거하는 단계에서 살아남은 적어도 하나의 가정이고, 상기 3차원 공간에서 움직이는 적어도 하나의 공의 적어도 하나의 3차원 궤적을 명시하는 단계는,
    적어도 상기 비행 세그먼트에서 상기 객체 검출 시스템에 의해 등록된 센서 관찰값들을 이용하여 더 정확한 3D 경로를 삼각측량함으로써 상기 적어도 하나의 가정을 형성하는데 이용되는 상기 등록된 객체들의 3차원 위치들에 대한 데이터를 생성하는 단계; 및
    적어도 상기 비행 세그먼트에 대한 생성된 데이터에 대해 상기 완전한 3차원 물리 모델을 적용함으로써 상기 움직이는 적어도 하나의 공을 확정하는 단계
    를 포함하는, 방법.
  8. 제1항에 있어서, 상기 획득하는 단계는 상기 등록된 관심대상 객체들의 3차원 위치들을 수신하거나 생성하는 단계를 포함하고, 상기 등록된 관심대상 객체들의 대부분은 개개의 센서들에 의한 오검출 및 상기 개개의 센서들 중 각자의 센서들로부터의 오검출 조합들을 포함하는 거짓 양성들인, 방법.
  9. 제8항에 있어서, 상기 개개의 센서들은 3개 이상의 센서를 포함하고, 상기 획득하는 단계는 현재의 시간 슬라이스에 대한 상기 3개 이상의 센서의 각자의 쌍들로부터의 검출들의 각자의 조합들을 만듦으로써 상기 3차원 위치들을 생성하는 단계를 포함하는, 방법.
  10. 제9항에 있어서, 상기 3개 이상의 센서는 2개의 카메라와 레이더 디바이스를 포함하고, 상기 만드는 것은,
    단일의 관심대상 객체의 제1 3차원 위치를 생성하기 위해 상기 2개의 카메라의 스테레오 페어링을 이용하여 상기 2개의 카메라에 의한 상기 단일 관심대상 객체의 검출들을 조합하는 것; 및
    상기 단일 관심대상 객체의 제2 3차원 위치를 생성하기 위해 상기 레이더 디바이스 및 상기 2개의 카메라 중 적어도 하나에 의한 상기 단일의 관심대상 객체의 검출들을 조합하는 것
    을 포함하는, 방법.
  11. 제10항에 있어서, 상기 3개 이상의 센서는 추가 카메라를 포함하고, 상기 만드는 것은, 상기 단일의 관심대상 객체의 제3 3차원 위치 및 상기 단일의 관심대상 객체의 제4 3차원 위치를 생성하기 위해, 상기 추가 카메라와 상기 2개의 카메라 각각의 스테레오 페어링들을 이용하여 상기 추가 카메라 및 상기 2개의 카메라에 의한 상기 단일의 관심대상 객체의 검출들을 조합하는 것을 포함하는, 방법.
  12. 시스템으로서,
    관심대상 객체들을 등록하고 상기 등록된 관심대상 객체들에 대해 더 많은 거짓 양성들을 허용하여 거짓 음성들을 최소화하도록 구성된 객체 검출 시스템의 2개 이상의 센서 및 하나 이상의 제1 컴퓨터; 및
    동작들을 수행하도록 구성된 하나 이상의 제2 컴퓨터
    를 포함하고, 상기 동작들은:
    상기 객체 검출 시스템에 의해 등록된 관심대상 객체들의 3차원 위치들을 획득하는 동작;
    상기 등록된 관심대상 객체들의 3차원 위치들에 적용되는 필터를 이용하여 3차원 공간에서 움직이는 객체들의 가정들(hypotheses)을 형성하는 동작 ― 상기 필터는 특정한 관심대상 객체들에 대한 추정된 3차원 속도 벡터들이 시간에 걸쳐 3차원 공간에서 움직이는 객체에 대략적으로 대응할 때 상기 등록된 관심대상 객체들 중 특정한 관심대상 객체들 간의 연결들을 허용함 ―;
    상기 객체 검출 시스템에 의해 등록된 적어도 하나의 추가적인 관심대상 객체와, 상기 형성하는 동작 동안, 이루어진 연결들에 의해 더 이상 확장되지 않는 상기 가정들의 적절한 서브세트를 제거하는 동작;
    상기 제거하는 동작에서 살아남은 적어도 하나의 가정의 형성에서 이용되는 상기 등록된 관심대상 객체들의 3차원 위치들에 대한 데이터에 대해 완전한 3차원 물리 모델을 적용함으로써, 3차원 공간에서 움직이는 적어도 하나의 공의 적어도 하나의 3차원 궤적을 명시하는 동작; 및
    3차원 공간에서 움직이는 상기 적어도 하나의 공의 적어도 하나의 3차원 궤적을 디스플레이를 위해 출력하는 동작
    을 포함하고,
    상기 필터를 이용하여 3차원 공간에서 움직이는 객체들의 가정들을 형성하는 동작은,
    주어진 가정에 대한 등록된 검출의 수가 임계값 미만일 때 3차원 공간에서 움직임의 제1 모델을 이용하는 동작 ― 상기 제1 모델은 제1 레벨의 복잡성을 가짐 ―; 및
    상기 주어진 가정에 대한 등록된 검출의 수가 상기 임계값보다 크거나 같을 때 3차원 공간에서 움직임의 제2 모델을 이용하는 동작 ― 상기 제2 모델은 상기 제1 모델의 제1 레벨의 복잡성보다 큰 제2 레벨의 복잡성을 가짐 ―
    을 포함하는, 시스템.
  13. 제12항에 있어서, 상기 2개 이상의 센서는 카메라 및 적어도 하나의 레이더 디바이스를 포함하는, 시스템.
  14. 제12항에 있어서, 상기 2개 이상의 센서는 하이브리드 카메라-레이더 센서를 포함하는, 시스템.
  15. 제12항에 있어서, 상기 3차원 공간에서의 움직임의 제1 모델은, 등록된 관심대상 객체의 제1 3차원 위치가 상기 주어진 가정을 상기 주어진 가정에 의해 예측된 방향과 대략 동일한 방향으로 확장할 때, 상기 제1 3차원 위치를 상기 주어진 가정에 연결하는 선형 모델이고, 상기 3차원 공간에서의 움직임의 제2 모델은 3차원 공간에서 움직임의 단기 예측들을 수행하도록 훈련된 순환 신경망 모델인, 시스템.
  16. 제12항에 있어서, 상기 3차원 공간에서의 움직이는 객체들의 가정들을 형성하는 동작은,
    상기 주어진 가정에 대한 등록된 검출의 수 및 상기 임계값에 따라, 상기 제1 모델 또는 상기 제2 모델을 이용하여 상기 주어진 가정에 대한 등록된 검출에 대한 다음 3차원 위치를 예측하는 동작;
    상기 예측된 다음 3차원 위치의 미리정의된 거리 내의 3차원 위치들의 세트를 발견하기 위해, 다음 시간 슬라이스에 대해 상기 객체 검출 시스템에 의해 등록된 관심대상 객체들의 모든 3차원 위치를 포함하는 공간 데이터 구조를 검색하는 동작;
    상기 3차원 위치들의 세트가 널 세트(null set)일 때 상기 주어진 가정에 대한 상기 예측된 다음 3차원 위치를 이용하는 동작;
    상기 3차원 위치들의 세트가 단일의 3차원 위치만을 포함할 때 상기 주어진 가정에 대한 상기 단일 3차원 위치를 이용하는 동작; 및
    상기 3차원 위치들의 세트가 2개 이상의 3차원 위치를 포함할 때,
    소팅된 세트(sorted set)를 형성하기 위해 상기 예측된 다음 3차원 위치에 대한 근접성에 기초하여 상기 2개 이상의 3차원 위치를 소팅하는 동작,
    2보다 큰 미리정의된 임계수를 넘는 상기 소팅된 세트 내의 임의의 덜 근접한 3차원 위치들을 제거하는 동작, 및
    상기 소팅된 세트에 남아 있는 상기 2개 이상의 3차원 위치를 이용하여 상기 주어진 가정을 가정들 그룹 내의 2개 이상의 가정으로 브랜칭하는 동작
    을 포함하는, 시스템.
  17. 제12항에 있어서, 상기 주어진 가정에 대한 등록된 검출의 수가 상기 임계값보다 크거나 같을 때 상기 3차원 공간에서 움직이는 객체들의 가정들을 형성하는 동작은,
    로컬 최소 수직 위치를 갖는 상기 주어진 가정 내의 데이터 포인트를 식별하는 동작;
    상기 주어진 가정 내의 상기 데이터 포인트 전과 후의 추정된 3차원 속도 벡터들의 각자의 수직 성분들을 체크하는 동작; 및
    상기 각자의 수직 성분들 중 제1 성분이 음수이고 상기 각자의 수직 성분들 중 제2 성분이 양수일 때 상기 데이터 포인트를 지면 충돌로서 지정하는 동작
    을 포함하는, 시스템.
  18. 제17항에 있어서, 상기 각자의 수직 성분들은 상기 주어진 가정 내의 상기 데이터 포인트 전과 후의 상기 추정된 3차원 속도 벡터들의 평균들로부터 나오고, 상기 동작들은,
    상기 추정된 3차원 속도 벡터들과 연관된 노이즈 레벨, 상기 데이터 포인트의 한쪽 또는 양쪽에 관한 최소 예상된 비행 시간, 또는 상기 노이즈 레벨과 상기 최소 예상된 비행 시간 양쪽 모두에 기초하여, 적어도 하나의 시간 윈도우를 선택하는 동작; 및
    상기 적어도 하나의 시간 윈도우 내에 속하는 상기 데이터 포인트 전과 후의 상기 추정된 3차원 속도 벡터들의 평균들을 컴퓨팅하는 동작
    을 포함하는, 시스템.
  19. 제17항에 있어서, 상기 주어진 가정에 대한 상기 등록된 검출의 수가 임계값보다 크거나 같을 때 상기 3차원 공간에서의 움직이는 객체들의 가정들을 형성하는 동작은, 상기 주어진 가정을 비행 세그먼트, 하나 이상의 바운스 세그먼트 및 롤 세그먼트를 포함하는 별개의 세그먼트들로 분할하는 동작을 포함하고, 상기 분할하는 동작은, 상기 식별하는 동작, 상기 체크하는 동작, 상기 지정하는 동작, 및:
    제1 지정된 지면 충돌 전의 상기 주어진 가정의 제1 세그먼트를 상기 비행 세그먼트로서 분류하는 동작;
    각각의 다음 지정된 지면 충돌 후의 상기 주어진 가정의 다음 세그먼트를, 상기 다음 지정된 지면 충돌 전의 제1 추정된 속도 벡터와 상기 다음 지정된 지면 충돌 후의 제2 추정된 속도 벡터 사이의 각도가 임계 각도보다 클 때, 상기 하나 이상의 바운스 세그먼트 중 하나로서 분류하는 동작; 및
    다음 지정된 지면 충돌 후의 상기 주어진 가정의 다음 세그먼트를, 상기 다음 지정된 지면 충돌 전의 상기 제1 추정된 속도 벡터와 상기 다음 지정된 지면 충돌 후의 상기 제2 추정된 속도 벡터 사이의 각도가 상기 임계 각도 미만일 때, 상기 롤 세그먼트로서 분류하는 동작
    을 포함하는, 시스템.
  20. 제19항에 있어서, 상기 주어진 가정은 상기 제거하는 동작에서 살아남은 적어도 하나의 가정이고, 상기 3차원 공간에서 움직이는 적어도 하나의 공의 적어도 하나의 3차원 궤적을 명시하는 동작은,
    적어도 상기 비행 세그먼트에서 상기 객체 검출 시스템에 의해 등록된 센서 관찰값들을 이용하여 더 정확한 3D 경로를 삼각측량함으로써 상기 적어도 하나의 가정을 형성하는데 이용되는 상기 등록된 객체들의 3차원 위치들에 대한 데이터를 생성하는 동작; 및
    적어도 상기 비행 세그먼트에 대한 생성된 데이터에 대해 상기 완전한 3차원 물리 모델을 적용함으로써 상기 움직이는 적어도 하나의 공을 확정하는 동작
    을 포함하는, 시스템.
  21. 제12항에 있어서, 상기 획득하는 동작은 상기 등록된 관심대상 객체들의 3차원 위치들을 수신하거나 생성하는 동작을 포함하고, 상기 등록된 관심대상 객체들의 대부분은 상기 2개 이상의 센서의 개개의 센서들에 의한 오검출 및 상기 2개 이상의 센서의 개개의 센서들 중 각자의 센서들로부터의 오검출 조합들을 포함하는 거짓 양성들인, 시스템.
  22. 제21항에 있어서, 상기 2개 이상의 센서는 3개 이상의 센서를 포함하고, 상기 획득하는 동작은 현재의 시간 슬라이스에 대한 상기 3개 이상의 센서의 각자의 쌍들로부터의 검출들의 각자의 조합들을 만듦으로써 상기 3차원 위치들을 생성하는 동작을 포함하는, 시스템.
  23. 제22항에 있어서, 상기 3개 이상의 센서는 2개의 카메라와 레이더 디바이스를 포함하고, 상기 만드는 것은,
    단일의 관심대상 객체의 제1 3차원 위치를 생성하기 위해 상기 2개의 카메라의 스테레오 페어링을 이용하여 상기 2개의 카메라에 의한 상기 단일 관심대상 객체의 검출들을 조합하는 것; 및
    상기 단일 관심대상 객체의 제2 3차원 위치를 생성하기 위해 상기 레이더 디바이스 및 상기 2개의 카메라 중 적어도 하나에 의한 상기 단일의 관심대상 객체의 검출들을 조합하는 것
    을 포함하는, 시스템.
  24. 제23항에 있어서, 상기 3개 이상의 센서는 추가 카메라를 포함하고, 상기 만드는 것은, 상기 단일의 관심대상 객체의 제3 3차원 위치 및 상기 단일의 관심대상 객체의 제4 3차원 위치를 생성하기 위해, 상기 추가 카메라와 상기 2개의 카메라 각각의 스테레오 페어링들을 이용하여 상기 추가 카메라 및 상기 2개의 카메라에 의한 상기 단일의 관심대상 객체의 검출들을 조합하는 것을 포함하는, 시스템.
  25. 명령어들을 인코딩한 비일시적인 컴퓨터 판독가능한 매체로서, 상기 명령어들은 2개 이상의 센서를 포함하는 객체 검출 시스템과 연관된 데이터 처리 장치로 하여금,
    거짓 음성(false negative)들을 최소화하게끔 등록된 관심대상 객체들(objects of interest)에 대해 더 많은 거짓 양성(false positive)들을 허용하도록 구성된 객체 검출 시스템에 의해 등록된 관심대상 객체들의 3차원 위치들을 획득하는 동작;
    상기 등록된 관심대상 객체들의 3차원 위치들에 적용되는 필터를 이용하여 3차원 공간에서 움직이는 객체들의 가정들(hypotheses)을 형성하는 동작 ― 상기 필터는 특정한 관심대상 객체들에 대한 추정된 3차원 속도 벡터들이 시간에 걸쳐 3차원 공간에서 움직이는 객체에 대략적으로 대응할 때 상기 등록된 관심대상 객체들 중 특정한 관심대상 객체들 간의 연결들을 허용함 ―;
    상기 객체 검출 시스템에 의해 등록된 적어도 하나의 추가적인 관심대상 객체와, 상기 형성하는 동작 동안, 이루어진 연결들에 의해 더 이상 확장되지 않는 상기 가정들의 적절한 서브세트를 제거하는 동작;
    상기 제거하는 동작에서 살아남은 적어도 하나의 가정의 형성에서 이용되는 상기 등록된 관심대상 객체들의 3차원 위치들에 대한 데이터에 대해 완전한 3차원 물리 모델을 적용함으로써, 3차원 공간에서 움직이는 적어도 하나의 공의 적어도 하나의 3차원 궤적을 명시하는 동작; 및
    3차원 공간에서 움직이는 상기 적어도 하나의 공의 적어도 하나의 3차원 궤적을 디스플레이를 위해 출력하는 동작
    을 포함하는 동작들을 수행하게 하고,
    상기 필터를 이용하여 3차원 공간에서 움직이는 객체들의 가정들을 형성하는 동작은,
    주어진 가정에 대한 등록된 검출의 수가 임계값 미만일 때 3차원 공간에서 움직임의 제1 모델을 이용하는 동작 ― 상기 제1 모델은 제1 레벨의 복잡성을 가짐 ―; 및
    상기 주어진 가정에 대한 등록된 검출의 수가 상기 임계값보다 크거나 같을 때 3차원 공간에서 움직임의 제2 모델을 이용하는 동작 ― 상기 제2 모델은 상기 제1 모델의 제1 레벨의 복잡성보다 큰 제2 레벨의 복잡성을 가짐 ―
    을 포함하는, 비일시적인 컴퓨터 판독가능한 매체.
  26. 제25항에 있어서, 상기 3차원 공간에서의 움직임의 제1 모델은, 등록된 관심대상 객체의 제1 3차원 위치가 상기 주어진 가정을 상기 주어진 가정에 의해 예측된 방향과 대략 동일한 방향으로 확장할 때, 상기 제1 3차원 위치를 상기 주어진 가정에 연결하는 선형 모델이고, 상기 3차원 공간에서의 움직임의 제2 모델은 3차원 공간에서 움직임의 단기 예측들을 수행하도록 훈련된 순환 신경망 모델인, 비일시적인 컴퓨터 판독가능한 매체.
  27. 제25항에 있어서, 상기 3차원 공간에서의 움직이는 객체들의 가정들을 형성하는 동작은,
    상기 주어진 가정에 대한 등록된 검출의 수 및 상기 임계값에 따라, 상기 제1 모델 또는 상기 제2 모델을 이용하여 상기 주어진 가정에 대한 등록된 검출에 대한 다음 3차원 위치를 예측하는 동작;
    상기 예측된 다음 3차원 위치의 미리정의된 거리 내의 3차원 위치들의 세트를 발견하기 위해, 다음 시간 슬라이스에 대해 상기 객체 검출 시스템에 의해 등록된 관심대상 객체들의 모든 3차원 위치를 포함하는 공간 데이터 구조를 검색하는 동작;
    상기 3차원 위치들의 세트가 널 세트(null set)일 때 상기 주어진 가정에 대한 상기 예측된 다음 3차원 위치를 이용하는 동작;
    상기 3차원 위치들의 세트가 단일의 3차원 위치만을 포함할 때 상기 주어진 가정에 대한 상기 단일 3차원 위치를 이용하는 동작; 및
    상기 3차원 위치들의 세트가 2개 이상의 3차원 위치를 포함할 때,
    소팅된 세트(sorted set)를 형성하기 위해 상기 예측된 다음 3차원 위치에 대한 근접성에 기초하여 상기 2개 이상의 3차원 위치를 소팅하는 동작,
    2보다 큰 미리정의된 임계수를 넘는 상기 소팅된 세트 내의 임의의 덜 근접한 3차원 위치들을 제거하는 동작, 및
    상기 소팅된 세트에 남아 있는 상기 2개 이상의 3차원 위치를 이용하여 상기 주어진 가정을 가정들 그룹 내의 2개 이상의 가정으로 브랜칭하는 동작
    을 포함하는, 비일시적인 컴퓨터 판독가능한 매체.
  28. 제25항에 있어서, 상기 주어진 가정에 대한 등록된 검출의 수가 상기 임계값보다 크거나 같을 때 상기 3차원 공간에서 움직이는 객체들의 가정들을 형성하는 동작은,
    로컬 최소 수직 위치를 갖는 상기 주어진 가정 내의 데이터 포인트를 식별하는 동작;
    상기 주어진 가정 내의 상기 데이터 포인트 전과 후의 추정된 3차원 속도 벡터들의 각자의 수직 성분들을 체크하는 동작; 및
    상기 각자의 수직 성분들 중 제1 성분이 음수이고 상기 각자의 수직 성분들 중 제2 성분이 양수일 때 상기 데이터 포인트를 지면 충돌로서 지정하는 동작
    을 포함하는, 비일시적인 컴퓨터 판독가능한 매체.
  29. 제28항에 있어서, 상기 각자의 수직 성분들은 상기 주어진 가정 내의 상기 데이터 포인트 전과 후의 상기 추정된 3차원 속도 벡터들의 평균들로부터 나오고, 상기 동작들은,
    상기 추정된 3차원 속도 벡터들과 연관된 노이즈 레벨, 상기 데이터 포인트의 한쪽 또는 양쪽에 관한 최소 예상된 비행 시간, 또는 상기 노이즈 레벨과 상기 최소 예상된 비행 시간 양쪽 모두에 기초하여, 적어도 하나의 시간 윈도우를 선택하는 동작; 및
    상기 적어도 하나의 시간 윈도우 내에 속하는 상기 데이터 포인트 전과 후의 상기 추정된 3차원 속도 벡터들의 평균들을 컴퓨팅하는 동작
    을 포함하는, 비일시적인 컴퓨터 판독가능한 매체.
  30. 제28항에 있어서, 상기 주어진 가정에 대한 상기 등록된 검출의 수가 임계값보다 크거나 같을 때 상기 3차원 공간에서의 움직이는 객체들의 가정들을 형성하는 동작은, 상기 주어진 가정을 비행 세그먼트, 하나 이상의 바운스 세그먼트 및 롤 세그먼트를 포함하는 별개의 세그먼트들로 분할하는 동작을 포함하고, 상기 분할하는 동작은, 상기 식별하는 동작, 상기 체크하는 동작, 상기 지정하는 동작, 및:
    제1 지정된 지면 충돌 전의 상기 주어진 가정의 제1 세그먼트를 상기 비행 세그먼트로서 분류하는 동작;
    각각의 다음 지정된 지면 충돌 후의 상기 주어진 가정의 다음 세그먼트를, 상기 다음 지정된 지면 충돌 전의 제1 추정된 속도 벡터와 상기 다음 지정된 지면 충돌 후의 제2 추정된 속도 벡터 사이의 각도가 임계 각도보다 클 때, 상기 하나 이상의 바운스 세그먼트 중 하나로서 분류하는 동작; 및
    다음 지정된 지면 충돌 후의 상기 주어진 가정의 다음 세그먼트를, 상기 다음 지정된 지면 충돌 전의 상기 제1 추정된 속도 벡터와 상기 다음 지정된 지면 충돌 후의 상기 제2 추정된 속도 벡터 사이의 각도가 상기 임계 각도 미만일 때, 상기 롤 세그먼트로서 분류하는 동작
    을 포함하는, 비일시적인 컴퓨터 판독가능한 매체.
KR1020237015000A 2020-11-03 2021-10-28 하나 이상의 센서에 의해 등록된 미확인 검출들을 이용한 3차원 객체 추적 Active KR102817038B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063109290P 2020-11-03 2020-11-03
US63/109,290 2020-11-03
PCT/EP2021/079919 WO2022096353A1 (en) 2020-11-03 2021-10-28 Three-dimensional object tracking using unverified detections registered by one or more sensors

Publications (2)

Publication Number Publication Date
KR20230101815A KR20230101815A (ko) 2023-07-06
KR102817038B1 true KR102817038B1 (ko) 2025-06-04

Family

ID=78516794

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237015000A Active KR102817038B1 (ko) 2020-11-03 2021-10-28 하나 이상의 센서에 의해 등록된 미확인 검출들을 이용한 3차원 객체 추적

Country Status (7)

Country Link
US (2) US11995846B2 (ko)
EP (1) EP4196237A1 (ko)
JP (1) JP7699208B2 (ko)
KR (1) KR102817038B1 (ko)
CN (1) CN116437989A (ko)
AU (1) AU2021375331A1 (ko)
WO (1) WO2022096353A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201818357D0 (en) * 2018-11-12 2018-12-26 Forsberg Services Ltd Locating system
JP7322320B2 (ja) * 2020-08-14 2023-08-07 トップゴルフ スウェーデン エービー 仮想時間同期を使用した三次元オブジェクト追跡の前の二次元画像データのモーションベースの前処理
KR102817038B1 (ko) 2020-11-03 2025-06-04 탑골프 스웨덴 에이비 하나 이상의 센서에 의해 등록된 미확인 검출들을 이용한 3차원 객체 추적
GB2621269B (en) * 2021-04-27 2024-09-25 Maiden Ai Inc Methods and systems to track a moving sports object trajectory in 3D using a single camera
WO2022232302A1 (en) 2021-04-27 2022-11-03 Maiden Ai, Inc Methods and systems to automatically record relevant action in a gaming environment
US12313743B2 (en) * 2021-08-26 2025-05-27 The Hong Kong University Of Science And Technology Method and electronic device for performing 3D point cloud object detection using neural network
US12223017B2 (en) * 2021-08-27 2025-02-11 Rapsodo Pte. Ltd. Self-organized learning of three-dimensional motion data
WO2023049868A1 (en) 2021-09-24 2023-03-30 Maiden Ai, Inc. Methods and systems to track a moving sports object trajectory in 3d using multiple cameras
US12206977B2 (en) 2021-12-21 2025-01-21 Topgolf Sweden Ab Predictive camera control for tracking an object in motion
CN114726460B (zh) * 2022-06-07 2022-09-20 华中科技大学 一种井间镜像差分电流型地面收发天线装置及其通信方法
US20240017150A1 (en) * 2022-07-14 2024-01-18 Christopher Brigdale System and method of capturing and recording video content of golf ball striking and subsequent flight
US20240115918A1 (en) * 2022-10-06 2024-04-11 Hitters Group, LLC. Apparatus, methods, and systems for providing a baseball facility to allow a plurality of players to hit a baseball onto a single field
GB2623766A (en) * 2022-10-25 2024-05-01 State Of Play Hospitality Ltd Tracking system
SE547381C2 (en) * 2022-10-28 2025-07-22 Topgolf Sweden Ab Ball spin axis determination
US11986699B1 (en) 2022-11-28 2024-05-21 Pga Tour Enterprises, Llc System and method for estimating final resting position of golf balls
EP4394705A1 (en) * 2022-12-28 2024-07-03 Zenseact AB A method and device for calibrating a camera mounted on a vehicle
US12430921B2 (en) * 2023-05-08 2025-09-30 Nec Corporation Optimizing multi-camera multi-entity artificial intelligence tracking systems
US11872464B1 (en) 2023-06-01 2024-01-16 Pga Tour, Inc. Golf play outcome simulation modeling system
SE2330356A1 (en) 2023-08-17 2025-02-18 Topgolf Sweden Ab Managing object tracking
CN116993783B (zh) * 2023-08-22 2025-12-19 华中科技大学 一种三维群目标轨迹匹配方法和装置
WO2025101987A1 (en) * 2023-11-08 2025-05-15 CaddyHack, Inc. Dynamic data collection and systematic processing system
US12350563B1 (en) 2023-11-22 2025-07-08 Topgolf International, Inc. Game with a fully scoreable outfield
US12246231B1 (en) 2023-11-27 2025-03-11 Topgolf International, Inc. Reactive game play
IL309704A (en) * 2023-12-25 2025-07-01 Elta Systems Ltd Automatic target detecting and/or tracking and/or identification
US12418705B2 (en) 2024-01-03 2025-09-16 Pga Tour Enterprises, Llc Platform to manipulate golf data to enable creation of broadcast production graphics
US12169941B1 (en) * 2024-06-13 2024-12-17 Rapsodo Pte. Ltd. System and method for determining a position an object crosses a target plane
US12432392B1 (en) 2024-08-23 2025-09-30 Pga Tour Enterprises, Llc Golf event broadcast production system
US12403375B1 (en) 2024-12-23 2025-09-02 Pga Tour Enterprises, Llc Golf tournament management system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10596416B2 (en) 2017-01-30 2020-03-24 Topgolf Sweden Ab System and method for three dimensional object tracking using combination of radar and image data

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5938545A (en) 1997-06-05 1999-08-17 The United States Of America As Represented By The Secretary Of The Navy Video system for determining a location of a body in flight
US8335345B2 (en) 2007-03-05 2012-12-18 Sportvision, Inc. Tracking an object with multiple asynchronous cameras
US7756296B2 (en) * 2007-03-27 2010-07-13 Mitsubishi Electric Research Laboratories, Inc. Method for tracking objects in videos using forward and backward tracking
WO2009020886A1 (en) 2007-08-03 2009-02-12 Pro Tee Systems, Inc. Golf gaming systems and methods
JP5180733B2 (ja) * 2008-08-19 2013-04-10 セコム株式会社 移動物体追跡装置
EP2345998B1 (en) 2009-12-01 2019-11-20 Honda Research Institute Europe GmbH Multi-object tracking with a knowledge-based, autonomous adaptation of the tracking modeling level
US9036864B2 (en) 2011-08-12 2015-05-19 Edh Holdings (South Africa) (Pty) Ltd. Ball trajectory and bounce position detection
KR102008146B1 (ko) * 2012-12-10 2019-08-07 한국전자통신연구원 공의 궤적 모델 튜닝 방법 및 장치
WO2014178050A2 (en) 2013-04-30 2014-11-06 Mantisvision Ltd. 3d registration of a plurality of 3d models
US9875550B2 (en) 2013-08-28 2018-01-23 Disney Enterprises, Inc. Method and device for tracking sports players with context-conditioned motion models
WO2015084937A1 (en) 2013-12-03 2015-06-11 Edh Us Llc Systems and methods to track a golf ball to and on a putting green
JP6573361B2 (ja) * 2015-03-16 2019-09-11 キヤノン株式会社 画像処理装置、画像処理システム、画像処理方法及びコンピュータプログラム
US10338209B2 (en) * 2015-04-28 2019-07-02 Edh Us Llc Systems to track a moving sports object
KR101912126B1 (ko) * 2016-02-04 2018-10-29 주식회사 골프존뉴딘홀딩스 야구 연습 장치에 이용되는 센싱장치 및 센싱방법과, 이를 이용한 야구 연습 장치 및 이의 제어방법
US10444339B2 (en) 2016-10-31 2019-10-15 Trackman A/S Skid and roll tracking system
US10989791B2 (en) 2016-12-05 2021-04-27 Trackman A/S Device, system, and method for tracking an object using radar data and imager data
US11132533B2 (en) 2017-06-07 2021-09-28 David Scott Dreessen Systems and methods for creating target motion, capturing motion, analyzing motion, and improving motion
US10803598B2 (en) 2017-06-21 2020-10-13 Pankaj Chaurasia Ball detection and tracking device, system and method
US10751569B2 (en) 2017-06-27 2020-08-25 Information Systems Laboratories, Inc. System and method for 3D optical tracking of multiple in-flight golf balls
US10380409B2 (en) * 2017-11-16 2019-08-13 Blast Motion Inc. Method for estimating a 3D trajectory of a projectile from 2D camera images
US10521526B2 (en) 2017-11-20 2019-12-31 Nfl Players, Inc. Hybrid method of assessing and predicting athletic performance
KR101931592B1 (ko) 2017-12-12 2019-03-13 주식회사 골프존 운동하는 볼에 대한 센싱장치 및 이를 이용한 볼에 대한 운동 파라미터 산출방법
US11842572B2 (en) 2018-06-21 2023-12-12 Baseline Vision Ltd. Device, system, and method of computer vision, object tracking, image analysis, and trajectory estimation
US10765944B2 (en) 2018-09-07 2020-09-08 Electronic Arts Inc. Machine learning models for implementing animation actions
KR102573743B1 (ko) 2018-11-26 2023-09-01 트랙맨 에이/에스 사용자를 위한 골프 샷 시뮬레이션 방법 및 장치
US10987566B2 (en) 2019-02-26 2021-04-27 Dish Network L.L.C. System and methods for golf ball location monitoring
KR102807799B1 (ko) 2020-01-21 2025-05-15 트랙맨 에이/에스 스포츠 볼을 추적하는 시스템 및 방법
US10898757B1 (en) 2020-01-21 2021-01-26 Topgolf Sweden Ab Three dimensional object tracking using combination of radar speed data and two dimensional image data
US11537819B1 (en) * 2020-04-30 2022-12-27 Zoox, Inc. Learned state covariances
KR102817038B1 (ko) * 2020-11-03 2025-06-04 탑골프 스웨덴 에이비 하나 이상의 센서에 의해 등록된 미확인 검출들을 이용한 3차원 객체 추적

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10596416B2 (en) 2017-01-30 2020-03-24 Topgolf Sweden Ab System and method for three dimensional object tracking using combination of radar and image data

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANTON JANSSON, Predicting trajectories of golf balls using recurrent neural networks, KTH Royal Institute of Technology(2017.06.30.)
Oliver Birdach 등, A Multiple Hypothesis Approach for a Ball Tracking System, ICVS2009(2009.09.13.)

Also Published As

Publication number Publication date
KR20230101815A (ko) 2023-07-06
US20240273738A1 (en) 2024-08-15
JP2023547207A (ja) 2023-11-09
US12361570B2 (en) 2025-07-15
CN116437989A (zh) 2023-07-14
JP7699208B2 (ja) 2025-06-26
US11995846B2 (en) 2024-05-28
WO2022096353A1 (en) 2022-05-12
AU2021375331A1 (en) 2023-04-27
US20220138969A1 (en) 2022-05-05
EP4196237A1 (en) 2023-06-21

Similar Documents

Publication Publication Date Title
KR102817038B1 (ko) 하나 이상의 센서에 의해 등록된 미확인 검출들을 이용한 3차원 객체 추적
US12322122B2 (en) Motion based pre-processing of two-dimensional image data prior to three-dimensional object tracking with virtual time synchronization
US12330020B2 (en) Three dimensional object tracking using combination of radar data and two dimensional image data
US20200391077A1 (en) System and Method for Three Dimensional Object Tracking Using Combination of Radar and Image Data
US20160306036A1 (en) Systems and methods to track a golf ball to and on a putting green
US20200333462A1 (en) Object tracking
WO2022034245A1 (en) Motion based pre-processing of two-dimensional image data prior to three-dimensional object tracking with virtual time synchronization
HK40089009A (zh) 使用由一个或多个传感器登记的未经验证的检测进行三维物体跟踪
HK40085898A (en) Motion based pre-processing of two-dimensional image data prior to three-dimensional object tracking with virtual time synchronization
HK40076387A (en) Three dimensional object tracking using combination of radar speed data and two dimensional image data

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20230502

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20241028

Comment text: Request for Examination of Application

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20250317

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20250530

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20250530

End annual number: 3

Start annual number: 1

PG1601 Publication of registration