JP2025530567A - Systems and methods for improving marksmanship through machine learning - Google Patents
Systems and methods for improving marksmanship through machine learningInfo
- Publication number
- JP2025530567A JP2025530567A JP2025539626A JP2025539626A JP2025530567A JP 2025530567 A JP2025530567 A JP 2025530567A JP 2025539626 A JP2025539626 A JP 2025539626A JP 2025539626 A JP2025539626 A JP 2025539626A JP 2025530567 A JP2025530567 A JP 2025530567A
- Authority
- JP
- Japan
- Prior art keywords
- shooter
- shot
- target
- score
- data
- 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.)
- Pending
Links
Classifications
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F41—WEAPONS
- F41A—FUNCTIONAL FEATURES OR DETAILS COMMON TO BOTH SMALLARMS AND ORDNANCE, e.g. CANNONS; MOUNTINGS FOR SMALLARMS OR ORDNANCE
- F41A33/00—Adaptations for training; Gun simulators
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F41—WEAPONS
- F41G—WEAPON SIGHTS; AIMING
- F41G3/00—Aiming or laying means
- F41G3/26—Teaching or practice apparatus for gun-aiming or gun-laying
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/147—Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/107—Static hand or arm
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B19/00—Teaching not covered by other main groups of this subclass
- G09B19/003—Repetitive work cycles; Sequence of movements
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B9/00—Simulators for teaching or training purposes
- G09B9/003—Simulators for teaching or training purposes for military purposes and tactics
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F41—WEAPONS
- F41G—WEAPON SIGHTS; AIMING
- F41G3/00—Aiming or laying means
- F41G3/26—Teaching or practice apparatus for gun-aiming or gun-laying
- F41G3/2616—Teaching or practice apparatus for gun-aiming or gun-laying using a light emitting device
- F41G3/2694—Teaching or practice apparatus for gun-aiming or gun-laying using a light emitting device for simulating a target
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Educational Technology (AREA)
- Educational Administration (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Radar, Positioning & Navigation (AREA)
- Entrepreneurship & Innovation (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Biomedical Technology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Image Analysis (AREA)
Abstract
身体の動き改善システムは、ビデオデータを受信し、その動きに関連付けられた1つまたは複数の身体ランドマークを追跡してアクション中の身体ランドマークの動きを決定し、身体ランドマークの動きをアクションのスコアと相関させ、機械学習技法を使用して、アクションのスコアに有害な動きを決定するように構成される。システムはまた、アクションのスコアを改善するために参加者にドリルを推奨することができる。The physical movement improvement system is configured to receive the video data, track one or more physical landmarks associated with the movement to determine the movement of the physical landmarks during the action, correlate the movement of the physical landmarks with a score for the action, and determine movements that are detrimental to the score for the action using machine learning techniques. The system can also recommend drills to the participant to improve the score for the action.
Description
[関連出願への相互参照]
本出願は、2022年9月13日に出願された「SYSTEMS AND METHODS FOR MARKSMANSHIP IMPROVEMENT THROUGH MACHINE LEARNING」と題する米国仮特許出願第63/406,245号、および2022年9月13日に出願された「SYSTEMS AND METHODS FOR AUTOMATED TARGET IDENTIFICATION, CLASSIFICATION, AND SCORING」と題する米国仮特許出願第63/406,208号、および2022年9月13日に出願された「SYSTEMS AND METHODS FOR MARKSMANSHIP DIGITIZING AND ANALYZING」と題する米国仮特許出願第63/406,241号の利益を主張するものであり、これらの内容は参照によりその全体が本明細書に組み込まれる。
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Patent Application No. 63/406,245, entitled "SYSTEMS AND METHODS FOR MARKSMANSHIP IMPROVEMENT THROUGH MACHINE LEARNING," filed September 13, 2022, and U.S. Provisional Patent Application No. 63/406,208, entitled "SYSTEMS AND METHODS FOR AUTOMATED TARGET IDENTIFICATION, CLASSIFICATION, AND SCORING," filed September 13, 2022, and U.S. Provisional Patent Application No. 63/406,241, entitled "SYSTEMS AND METHODS FOR MARKSMANSHIP DIGITIZING AND ANALYZING," filed September 13, 2022, the contents of which are incorporated herein by reference in their entireties.
標的射撃は、年間数百万人に楽しまれており、多くの報告によると、日常的に標的射撃を行う人の数は、過去10年間で増加しており、増加し続けている。米国だけでも、5200万人を超える人々が日常的に標的を射撃していると推定される。紙製の標的または鋼製の標的に対するハンドガンまたはライフルを用いたシンプルなプリンキングから、高度な訓練および技能を必要とする熟練した長距離ライフル射撃競技、さらには、飛び出る標的または静止した標的に対するピストルでの楽しくテンポの速い射撃、またはスキート、トラップ、スポーツ用クレイなどに対するショットガン射撃まで、多くの異なる種類のレクリエーション射撃活動がある。レクリエーション射撃とは別に、法執行機関、軍隊、および警備員など、職業の一貫として練習する標的シューターの数は増加している。 Target shooting is enjoyed by millions of people annually, and by many reports, the number of people who regularly practice target shooting has increased over the past decade and continues to grow. In the United States alone, it is estimated that over 52 million people regularly shoot targets. There are many different types of recreational shooting activities, ranging from simple plinking with a handgun or rifle at paper or steel targets, to skilled long-range rifle shooting competitions, which require advanced training and skill, to fun, fast-paced pistol shooting at popping or stationary targets, or shotgun shooting at skeet, trap, sporting clays, etc. Apart from recreational shooting, an increasing number of target shooters practice as part of their professions, such as law enforcement, the military, and security guards.
参加者の多くは、自身の現在のスキルレベルに満足しているが、スキルの向上を望む射手の数は増加している。しかしながら、場合によっては、参加者の多くは、向上させる方法を知らない。射撃練習場にいる人の数は増え続けており、これらの参加者は、スポーツ、レクリエーション、自己防衛、公的防衛のどれが目的であるかにかかかわらず、スキルの向上を望んでいる。しかしながら、個別の射撃指示がない場合、または多くの場合たとえ個別の指示があったとしても、改善点、および正確さ(accuracy)に影響を与える問題を数値化することは困難であり得る。さらに、多くの参加者は、上達方法を知らない。 While many participants are satisfied with their current skill level, there is an increasing number of shooters who want to improve their skills. However, in some cases, many participants do not know how to improve. The number of people at shooting ranges continues to grow, and these participants, whether for sport, recreation, self-defense, or public defense, want to improve their skills. However, without individual shooting instruction, and often even if individual instruction is provided, it can be difficult to quantify improvement and issues affecting accuracy. Furthermore, many participants do not know how to improve.
したがって、参加者の癖を分析し、向上のためのフィードバックおよび推奨を提供することができるシステムおよび方法が必要とされている。さらに、消費者向けの機器を使用して、ほぼリアルタイムで前述の利益を提供することができるシステムが必要とされている。これらおよび他の利点は、以下の開示から容易に明らかになるであろう。 Therefore, there is a need for a system and method that can analyze participants' habits and provide feedback and recommendations for improvement. Furthermore, there is a need for a system that can provide the aforementioned benefits in near real time using consumer-grade devices. These and other advantages will be readily apparent from the disclosure that follows.
1つまたは複数のコンピュータのシステムは、動作中にシステムにアクションを実行させるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがシステム上にインストールされることにより、特定の動作またはアクションを実行するように構成され得る。1つまたは複数のコンピュータプログラムは、データ処理装置によって実行されると、装置にアクションを実行させる命令を含むことにより、特定の動作またはアクションを実行するように構成され得る。1つの一般的な態様は、射撃パフォーマンスを向上させるための方法を含む。方法はまた、シューターのビデオデータを受信することと、シューターの1つまたは複数の身体ランドマークを決定することと、ショット中に1つまたは複数の身体ランドマークを追跡してショット動作データを生成することと、ショットのスコアを決定することと、ショット動作データをスコアに関連付けることと、後続のショットにおける動作データを変えるための推奨を生成することとを含む。この態様の他の実施形態は、それぞれが方法のアクションを実行するように構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータプログラムを含む。 One or more computer systems may be configured to perform specific operations or actions by installing software, firmware, hardware, or a combination thereof on the system that causes the system to perform the actions during operation. One or more computer programs may be configured to perform specific operations or actions by including instructions that, when executed by a data processing device, cause the device to perform the actions. One general aspect includes a method for improving shooting performance. The method also includes receiving video data of a shooter, determining one or more body landmarks of the shooter, tracking the one or more body landmarks during a shot to generate shot motion data, determining a score for the shot, associating the shot motion data with the score, and generating recommendations for altering the motion data for subsequent shots. Other embodiments of this aspect include corresponding computer systems, devices, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the method.
実装形態は、以下の特徴のうちの1つまたは複数を含み得る。この方法では、シューターの1つまたは複数の身体ランドマークを決定することは、身体ランドマークを接続することによってワイヤフレームモデルを生成することを含み得る。ショット動作データをスコアに関連付けることは、分類および回帰木機械学習モデルを実行して、ショット動作データとスコアとの間の因果関係を識別することを含み得る。方法は、シューターのビデオデータの画像分析を通じて、シューターのグリップを決定することを含み得る。方法は、シューターのグリップを分析することと、表示画面上に、グリップを変えるためのグリップ推奨を提供することとを含み得る。ショットのスコアを決定することは、標的ビデオデータを受信することと、受信された標的ビデオデータに対して画像分析を実行することと、標的への命中(hit)を決定することと、命中のスコアを決定することとを含み得る。ビデオデータを受信することは、携帯電話によってビデオデータをキャプチャすることを含む。1つまたは複数の身体ランドマークを決定することは、17個の身体ランドマークを決定することを含む。1つまたは複数の身体ランドマークを追跡することは、1つまたは複数の身体ランドマークの各々の周囲に境界ボックスを生成することを含む。方法は、機械学習モデルを実行してショット動作データをスコアと相関させることを含み得る。機械学習モデルは、標的の中心を外れた命中をもたらす動作データを決定するように構成される。説明された技法の実装形態は、ハードウェア、方法もしくはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含み得る。 Implementations may include one or more of the following features. In this method, determining one or more body landmarks of the shooter may include generating a wireframe model by connecting the body landmarks. Associating the shot motion data with the score may include executing a classification and regression tree machine learning model to identify a causal relationship between the shot motion data and the score. The method may include determining the shooter's grip through image analysis of the shooter's video data. The method may include analyzing the shooter's grip and providing, on a display screen, a grip recommendation for changing the grip. Determining the score of the shot may include receiving target video data, performing image analysis on the received target video data, determining a hit on the target, and determining a score for the hit. Receiving video data includes capturing the video data with a mobile phone. Determining one or more body landmarks includes determining 17 body landmarks. Tracking the one or more body landmarks includes generating a bounding box around each of the one or more body landmarks. The method may include executing a machine learning model to correlate the shot motion data with the score. The machine learning model is configured to determine motion data that results in off-center hits on the target. Implementations of the described techniques may include hardware, methods or processes, or computer software on a computer-accessible medium.
1つの一般的な態様は、身体の動きの因果的結果を改善するための方法を含む。方法はまた、身体動作のビデオデータを受信することと、身体動作のビデオデータ内で視認可能な1つまたは複数の身体ランドマークを決定することと、アクション中に1つまたは複数の身体ランドマークを追跡することと、1つまたは複数の身体ランドマークを追跡することに少なくとも部分的に基づいて、動作データを生成することと、動作データに関連付けられたスコアを決定することと、動作データをスコアに関連付けることと、後続のアクションにおける動作データを変えるための推奨を生成することとを含む。この態様の他の実施形態は、それぞれが方法のアクションを実行するように構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータ記憶デバイスに記録されたコンピュータプログラムを含む。 One general aspect includes a method for improving the causal outcome of a physical movement. The method also includes receiving video data of the physical movement, determining one or more body landmarks visible in the video data of the physical movement, tracking the one or more body landmarks during the action, generating motion data based at least in part on tracking the one or more body landmarks, determining a score associated with the motion data, associating the motion data with the score, and generating a recommendation for altering the motion data in a subsequent action. Other embodiments of this aspect include corresponding computer systems, apparatuses, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the method.
実装形態は、以下の特徴のうちの1つまたは複数を含み得る。この方法では、ビデオデータを受信することは、モバイルコンピューティングデバイスによってビデオデータをキャプチャすることを含む。方法は、機械学習モデルを実行して動作データをスコアと相関させることを含み得る。機械学習モデルは、低減されたスコアをもたらす動作データを決定するように構成される。方法は、機械学習モデルによって、動作データに基づいて予測スコアを予測することを含み得る。方法は、予測スコアをスコアと比較することを含み得る。説明された技法の実装形態は、ハードウェア、方法もしくはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含み得る。 Implementations may include one or more of the following features. In the method, receiving video data includes capturing the video data with a mobile computing device. The method may include executing a machine learning model to correlate the behavioral data with a score. The machine learning model is configured to determine behavioral data that results in a reduced score. The method may include predicting, by the machine learning model, a predicted score based on the behavioral data. The method may include comparing the predicted score to the score. Implementations of the described techniques may include hardware, a method or process, or computer software on a computer-accessible medium.
添付の図面は、本開示の一部であり、本明細書に組み込まれる。図面は、本開示の実施形態の例を示し、説明および特許請求の範囲と併せて、本開示の様々な原理、特徴、または態様を少なくとも部分的に説明する働きをする。本開示の特定の実施形態は、添付の図面を参照して以下でより完全に説明される。しかしながら、本開示の様々な態様は、多くの異なる形態で実装され得、本明細書に記載される実装形態に限定されるものと解釈されるべきではない。全体を通して、同様の番号は同様の要素を指すが、必ずしも同じまたは同一の要素を指すとは限らない。
身体ランドマークおよびポーズ推定 Body landmarks and pose estimation
いくつかの実施形態によれば、コンピュータビジョンおよび機械学習を使用して、現在のトレーニング技術の手作業かつ労力を要するという特性を大幅に低減するシステムが説明され、したがって、継続的に学習および適応するシステムを提供する。いくつかの実施形態によれば、システムは、参加者のポーズを追跡および推定し、とりわけ、ポーズ、動き、予期、反動、グリップ、スタンスなど、参加の質に影響を与える正および負の要因を決定することができる、マシンビジョンおよび機械学習システムを含む。これは、主に、いくつかの身体ランドマークを同時に追跡することができ、場合によっては、1つまたは複数の身体ランドマークの動きを射撃技能の正確さに関連付けることができるコンピュータビジョンシステムによって実行され得る。一例として、システムは、3個、または5個、または11個、または17個、または21個、または25個、または30個、またはそれ以上の数の身体ランドマークなど、任意の数の身体ランドマークを識別および追跡し得る。システムは、2次元または3次元であり得るランドマークの位置を追跡するので、システムは、ランドマークの動きを、ダウンレンジに向けて発射された弾丸および個々の弾丸のスコアリングと関連付けることができる。ダウンレンジに向けて発射された弾丸の検出は、反動、銃声、銃口爆風に関連する圧力波、標的命中、または他の何らかのマーカに応答した参加者の手または手首(または他の身体マーカ)の動きなど、1つまたは複数の適切なマーカの動きによって決定され得る。 According to some embodiments, a system is described that uses computer vision and machine learning to significantly reduce the manual and labor-intensive nature of current training techniques, thus providing a system that continuously learns and adapts. According to some embodiments, the system includes a machine vision and machine learning system that can track and estimate a participant's pose and determine positive and negative factors that affect the quality of participation, such as pose, movement, anticipation, recoil, grip, and stance, among others. This may be primarily performed by a computer vision system that can simultaneously track several body landmarks and, in some cases, correlate the movement of one or more body landmarks with the accuracy of the shooting skill. By way of example, the system may identify and track any number of body landmarks, such as three, five, eleven, seventeen, twenty-one, twenty-five, thirty, or more body landmarks. Because the system tracks the location of landmarks, which may be in two or three dimensions, the system can correlate the movement of the landmarks with bullets fired downrange and the scoring of individual bullets. Detection of a bullet fired downrange may be determined by the movement of one or more suitable markers, such as the movement of a participant's hand or wrist (or other body marker) in response to recoil, the sound of a gunshot, a pressure wave associated with a muzzle blast, a target hit, or some other marker.
システムはさらに、1つ、2つ、3つ、またはそれよりも多くの視点から参加者を監視し、各身体ランドマークの動きを分析し得、さらに、ショットの正確さを監視し、身体ランドマークの動きを正確さと相関させ得る。正確さに基づいて、システムは、完璧ではない正確さの原因となる身体動作の分析をさらに提供し得、正確さを上げるために身体動作を改善する方法をさらに提案し得る。 The system may further monitor the participant from one, two, three, or more viewpoints, analyze the movement of each body landmark, and further monitor the accuracy of the shot and correlate the movement of the body landmark with the accuracy. Based on the accuracy, the system may further provide an analysis of the body movements that contribute to the less-than-perfect accuracy and may further suggest ways to improve the body movements to increase accuracy.
概して参加者に向けられた1つまたは複数のカメラと、標的に向けられた1つまたは複数のカメラとによってモーションキャプチャは実行され得る。場合によっては、カメラのうちの1つまたは複数は、例えば、スマートフォン、タブレット、ラップトップ、携帯情報端末、およびウェアラブルデバイス(例えば、腕時計、眼鏡、ボディカム、スマートハットなど)などのモバイルコンピューティングデバイスに関連付けられる。場合によっては、ウェアラブルデバイスには、加速度計、振動センサ、動作センサ、または動作データをシステムに提供するための他のセンサなどのセンサが含まれ得る。いくつかの実施形態では、システムは、身体マーカ位置を経時的に追跡し、モーションプロット(motion plot)を生成する。 Motion capture may be performed generally with one or more cameras pointed at the participant and one or more cameras pointed at a target. In some cases, one or more of the cameras are associated with mobile computing devices such as smartphones, tablets, laptops, personal digital assistants, and wearable devices (e.g., watches, glasses, body cams, smart hats, etc.). In some cases, the wearable devices may include sensors such as accelerometers, vibration sensors, motion sensors, or other sensors to provide motion data to the system. In some embodiments, the system tracks body marker positions over time and generates a motion plot.
図1Aを参照すると、1つまたは複数のカメラは、シューター100の1つまたは複数のビューをキャプチャし得る。カメラは、シューターが、銃を引き抜き、照準を定め、ショットを発射し、リロードし、および/または位置を調整する際、シューターのビデオデータをキャプチャし得る。コンピュータシステムは、ビデオデータを受信し、ビデオデータを分析し、図1Bにあるような、シューターに関連付けられたモデルを作成し得る。場合によっては、コンピュータシステムは、身体ランドマークを識別し、身体ランドマークを、シューターのポーズおよび身体ランドマークの動きを追跡するワイヤフレームモデル102に接続する。いくつかの事例では、身体ランドマークは、鼻、左耳、左目、左腰、左膝103、右耳、右目、右腰、左足首、左肘、左手首、右膝104、右足首、右肘106、右手首108、左肩、および右肩110のうちの1つまたは複数を含み得る。当然ながら、他の身体ランドマークも可能であるが、本開示全体を通して効率性のために、これらの17個の身体ランドマークに焦点を当てる。いくつかの実施形態では、単一のカメラが、身体ランドマークのうちの1つまたは複数に関連付けられた2次元動作データをキャプチャし得る。いくつかの例では、2つ以上のカメラを使用して、身体ランドマークのうちの1つまたは複数の身体ランドマークの3次元動作データをキャプチャし得る。 1A , one or more cameras may capture one or more views of a shooter 100. The cameras may capture video data of the shooter as he or she draws, aims, fires, reloads, and/or adjusts position. A computer system may receive the video data, analyze the video data, and create a model associated with the shooter, such as that in FIG. 1B . In some cases, the computer system may identify body landmarks and connect them to a wireframe model 102 that tracks the shooter's pose and movement of the body landmarks. In some instances, the body landmarks may include one or more of the nose, left ear, left eye, left hip, left knee 103, right ear, right eye, right hip, left ankle, left elbow, left wrist, right knee 104, right ankle, right elbow 106, right wrist 108, left shoulder, and right shoulder 110. Of course, other body landmarks are possible, but for efficiency, we will focus on these 17 body landmarks throughout this disclosure. In some embodiments, a single camera may capture two-dimensional motion data associated with one or more of the body landmarks. In some examples, two or more cameras may be used to capture three-dimensional motion data of one or more of the body landmarks.
身体ランドマークは、射撃ストリング(例えば、射撃セッション)中など、経時的に追跡され得、身体ランドマークのうちの1つまたは複数の身体ランドマークの動きは、この時間の間追跡され得る。場合によっては、2次元の動きは、左右の動きおよび垂直方向の動きに対応するx方向およびy方向で追跡される。場合によっては、身体ランドマークの3次元の動きは、x、y、およびz方向で追跡される。 Body landmarks may be tracked over time, such as during a shooting string (e.g., a shooting session), and the movement of one or more of the body landmarks may be tracked during this time. In some cases, two-dimensional movement is tracked in the x and y directions, corresponding to side-to-side and vertical movement. In some cases, three-dimensional movement of a body landmark is tracked in the x, y, and z directions.
図2を参照すると、選択された身体ランドマーク200のグラフが示されている。身体ランドマークは、レビューのために個々の身体ランドマークまたは身体ランドマークの組合せに焦点を当てるために、ユーザによってユーザ選択可能である。例えば、一番上の線202は、水平方向における右利きのシューターの右手首を表し、3番目の線203は、経時的な右手首の垂直方向を表す。図から分かるように、モーションキャプチャの過程では手首の動きは上下に動く。場合によっては、システムは、射撃ストリング中に、1つまたは複数の身体ランドマークの動きをイベントまたはステージと相関させ得る。 Referring to FIG. 2, a graph of selected body landmarks 200 is shown. The body landmarks are user-selectable by the user to focus on individual body landmarks or combinations of body landmarks for review. For example, the top line 202 represents the right wrist of a right-handed shooter in the horizontal direction, and the third line 203 represents the vertical direction of the right wrist over time. As can be seen, wrist movement moves up and down during the motion capture process. In some cases, the system may correlate the movement of one or more body landmarks with events or stages during the shooting string.
例えば、第1のステージ204の間、右手首は比較的低い位置にあり、システムは、この位置および動きを、開始の準備が整っている状態と相関させ得る。右手首が非常に短い間隔で上方に移動している様子を示す第2のステージ206は、ホルスターからピストルを引き抜く動作と相関関係があり得る。第3のステージ208は、右手首が垂直面内でほぼ安定したままであることを示すが、動きに鋭いピーク207a~207cがあり、これは、ピストルから発射されるショットと相関関係があり得る。 For example, during the first stage 204, the right wrist is in a relatively low position, and the system may correlate this position and movement with a state of readiness to launch. The second stage 206, showing the right wrist moving upward in a very short interval, may correlate with the act of drawing a pistol from a holster. The third stage 208 shows the right wrist remaining fairly stable in the vertical plane, but with sharp peaks 207a-207c in movement, which may correlate with a shot being fired from the pistol.
第4のステージ210の間、右手首は下方に動き、発射位置に戻る。システムは、この動きをリロード動作と相関させ得る。場合によっては、システムは、同様の動きを様々なステージと相関させるために、教師あり学習であり得るトレーニングデータでトレーニングされる。 During the fourth stage 210, the right wrist moves downward and returns to the firing position. The system may correlate this movement with a reloading motion. In some cases, the system is trained with training data, which may be supervised learning, to correlate similar movements with various stages.
第5のステージ212の間、シューターの右手首は、シューターが照準を定める際に最初上方に動き、次いで、標的上に落ち着き、その後、動きのピーク213a~213cが続き、これは、ダウンレンジに向けて発射されるショットと相関関係があり得る。 During the fifth stage 212, the shooter's right wrist initially moves upward as the shooter takes aim, then settles on the target, followed by peaks of movement 213a-213c, which may correlate with the shot being fired downrange.
第6のステージ214では、右手首は、再び下方に動いて初期位置に戻り、これは、ピストルをホルスターに収める動作と相関関係があり得る。 In the sixth stage 214, the right wrist again moves downward to its initial position, which may correlate with the act of holstering the pistol.
本例は、垂直方向におけるシューターの右手首に焦点を当てているが、どの身体ランドマークでも視認および分析することができ、動きまたは動きの組合せを、身体ランドマークのグループを含む、シューターによるイベントまたはアクションと相関させることができることは明らかである。 While this example focuses on the shooter's right wrist in the vertical direction, it is clear that any body landmark can be viewed and analyzed, and movements or combinations of movements can be correlated with events or actions by the shooter that involve groups of body landmarks.
図3を参照すると、垂直方向における右手首の動き302および右肘の動き304の鋭いピークを示す、射撃ステージ300のクローズアップ図が描かれている。システムは、動作データを分析し、ショットがいつ発射されたかを自動的に決定することができる。システムは、手首および/または肘の垂直運動における鋭いピークを発射されたショットと相関させるように構成され得る。図3に示すように、矢印306の各々は、発射されたショットと一致し得る。加えて、オーディオデータを動作データと相関させて、ショットがいつ発射されたかに関して追加のキューを提供し得る。場合によっては、オーディオデータは、発射されたショットに関する追加の詳細を提供するために、動作データと組み合わせられ、および/または同期され得る。動作データは、シューター、シューターの癖、シューターの姿勢、およびシューターの正確さを向上させるための努力の一環としてシューターの注意を引くことができる他のキューに関する追加情報を推測するために使用され得る。 Referring to FIG. 3, a close-up view of the shooting stage 300 is depicted, showing sharp peaks in the vertical movement of the right wrist 302 and the right elbow 304. The system can analyze the motion data and automatically determine when a shot was fired. The system can be configured to correlate sharp peaks in the vertical movement of the wrist and/or elbow with fired shots. As shown in FIG. 3, each of the arrows 306 may correspond to a fired shot. Additionally, audio data can be correlated with the motion data to provide additional cues as to when a shot was fired. In some cases, audio data can be combined and/or synchronized with the motion data to provide additional detail about the fired shot. The motion data can be used to infer additional information about the shooter, the shooter's habits, the shooter's posture, and other cues that may catch the shooter's attention as part of an effort to improve the shooter's accuracy.
図4を参照すると、動作データ400は、シューターの右手首402および右肘404について表示される。場合によっては、システムは、正規化された動作データを表し得る動作データに傾向曲線406を適用し得る。加えて、システムは、動作データ400に基づいて推論および/または決定を行い得る。例えば、図4に示すように、408において、シューターが小火器を標的に向け、小火器をしっかりと保持しようと試みると、410において、シューターは手首および肘を下げ、その直後に、ショットが発射される412。システムは、このパターンを認識し、ショットの直前に手首および/または肘を下げる動きが、シューターが小火器の反動を予期して、それに備えようとしていることの証拠であると決定し得る。多くの場合、シューターはショットが発射されるときに起こる反動を予期して小火器を標的から外すので、反動を予期するとショットの正確さが劇的に低下する。シューターの正確さを低下させる可能性がある動作データの同様の例としては、とりわけ、フリンチ、プレイグニッションプッシュ、トリガージャーク、目を閉じることが含まれる。 Referring to FIG. 4 , motion data 400 is displayed for a shooter's right wrist 402 and right elbow 404. In some cases, the system may apply a trend curve 406 to the motion data, which may represent normalized motion data. Additionally, the system may make inferences and/or decisions based on the motion data 400. For example, as shown in FIG. 4 , at 408, a shooter aims a firearm at a target and attempts to hold the firearm steady; at 410, the shooter lowers their wrist and elbow, and shortly thereafter, a shot is fired 412. The system may recognize this pattern and determine that the lowering of the wrist and/or elbow immediately prior to the shot is evidence that the shooter is anticipating and preparing for the recoil of the firearm. In many cases, the shooter moves the firearm away from the target in anticipation of the recoil that will occur when the shot is fired, dramatically reducing the accuracy of the shot. Similar examples of behavioral data that may reduce a shooter's accuracy include flinching, pre-ignition pushing, trigger jerking, and closing the eyes, among others.
場合によっては、システムは、反動予期に関する情報をシューターに提供し、反動予期に関するシューターの動作データを改善するための努力の一環として1つまたは複数のドリルまたは練習セッションを含み得る情報を提供し得る。例えば、システムは、空撃ち、装填スキップ(例えば、模擬弾の弾倉に実弾を混合させること)、または他のスキル構築ドリルを含み得る練習レジメンを識別し得る。 In some cases, the system may provide the shooter with information regarding recoil anticipation, information that may include one or more drills or practice sessions as part of an effort to improve the shooter's performance data regarding recoil anticipation. For example, the system may identify practice regimens that may include dry firing, skipping reloads (e.g., mixing live ammunition with a magazine of dummy ammunition), or other skill-building drills.
図4はまた、シューターの姿勢にドリフトが生じていることを示す。例えば、第1のショット412の前は、シューターの右手首および右腕は、第1の垂直高さ414に位置しており、第2のショット416の前は、シューターの右手首および右肘は、第1の垂直高さよりも高い第2の垂直高さ418に位置している。このデータは、シューターが第1のショットから第2のショットまでに同じ位置に戻らなかったことを示しており、結果として、シューターのサイトピクチャ(sight picture)がわずかに異なることとなり、連続ショットの正確さを低下させ得る。 Figure 4 also shows drift in the shooter's posture. For example, before the first shot 412, the shooter's right wrist and right arm are at a first vertical height 414, and before the second shot 416, the shooter's right wrist and right elbow are at a second vertical height 418, higher than the first vertical height. This data indicates that the shooter did not return to the same position between the first and second shots, resulting in a slightly different sight picture for the shooter, which may reduce the accuracy of subsequent shots.
図5を参照すると、動作データ500によってさらにドリフトが示されている。右利きのシューターの右手首502および右肘504に関連付けられた動作データは、動作データがショットの直前の身体部分の下降を示す反動予期を示すだけでなく、シューターの手首および肘が射撃ストリング中に継続的に上方にドリフトすることを証明する傾向線506も示している。シューターがショットの合間に同じ位置に戻らないと、ストリング内で発射されるショットの正確さおよび精度(precision)が劇的に低下する可能性がある。 Referring to FIG. 5, motion data 500 further illustrates drift. Motion data associated with a right-handed shooter's right wrist 502 and right elbow 504 not only shows recoil anticipation, indicating a downward movement of body parts immediately prior to the shot, but also shows trend lines 506 demonstrating a continuous upward drift of the shooter's wrist and elbow during the firing string. If the shooter does not return to the same position between shots, this can dramatically reduce the accuracy and precision of shots fired within the string.
場合によっては、システムは、身体ランドマークのうちの1つまたは複数の身体ランドマークにおけるドリフトを認識し、この情報をシューターに提供し得る。場合によっては、システムは、モバイルコンピューティングデバイスに関連付けられた表示画面上に情報を提供する。例えば、システムは、シューターに関連付けられたモバイルコンピューティングデバイス上に実装され得、モバイルコンピューティングデバイス上の表示画面は、情報、指示または練習ドリルをシューターに提供して、ドリフトおよびそれから生じる正確さ問題を改善し得る。 In some cases, the system may recognize drift in one or more of the body landmarks and provide this information to the shooter. In some cases, the system provides information on a display screen associated with a mobile computing device. For example, the system may be implemented on a mobile computing device associated with the shooter, and the display screen on the mobile computing device may provide information, instructions, or practice drills to the shooter to improve drift and resulting accuracy issues.
同様に、システムは、身体ランドマークの動きを、シューターの位置または姿勢における他の修正可能な欠陥と相関させ得る。例えば、身体ランドマークの動作データ600を示す図6および図7を参照すると、動作データ600は、射撃ストリング中の複数の身体ランドマークの動きを示す。一番下の線グラフは、シューターが右足の位置を変更したことを証明する右足首動作データ602を示す。射撃ストリング中に位置を変更すると、サイトピクチャ、正確さ、精度、および射撃に関連付けられた他のメトリックに影響を与える可能性が高い。システムは、足の位置の変化がショットのスコアリングに関して正であったか負であったかを決定し得、姿勢のこの変化に基づいて、シューターに推奨を提供し得る。システムは、足の再配置の前および後の両方で発射されたショット604a~604eの射撃の正確さおよび/または精度を見て、足を動かすことが射撃パフォーマンスに与えた影響が正であるか負であるかを決定し得る。 Similarly, the system may correlate the movement of body landmarks with other correctable imperfections in the shooter's position or posture. For example, referring to FIGS. 6 and 7, which illustrate body landmark motion data 600, the motion data 600 illustrates the movement of multiple body landmarks during a shooting string. The bottom line graph illustrates right ankle motion data 602, demonstrating that the shooter changed the position of their right foot. Changing position during a shooting string likely impacts the sight picture, accuracy, precision, and other metrics associated with shooting. The system may determine whether the change in foot position was positive or negative with respect to the scoring of the shot and may provide recommendations to the shooter based on this change in posture. The system may look at the shooting accuracy and/or precision of shots 604a-604e fired both before and after the foot repositioning to determine whether moving the foot had a positive or negative impact on shooting performance.
場合によっては、システムは、標的のスコアリング(例えば、ショットの正確さおよび/または精度)を身体ランドマークおよび動きと相関させ、個々の身体ランドマークのどの位置が、良くも悪くもシューターの射撃パフォーマンスに影響を与えたかをシューターに示すことができる。 In some cases, the system can correlate target scoring (e.g., shot accuracy and/or precision) with body landmarks and movements to show the shooter which positions of individual body landmarks influenced the shooter's shooting performance, for better or worse.
システムは、機械学習を通じて、特定のポーズ、動き、および組合せを射撃パフォーマンスに関連付けるように構成され得る。場合によっては、身体ランドマークの動きおよび動きの組合せは、射撃パフォーマンスの向上に関連付けられ得、他のものは、射撃パフォーマンスの低下に関連付けられ得る。 Through machine learning, the system can be configured to associate specific poses, movements, and combinations with shooting performance. In some cases, body landmark movements and movement combinations may be associated with improved shooting performance, while others may be associated with decreased shooting performance.
システムは、動作データを正規化して、すべてのセッション中の各身体部分の位置の正規化された座標を生成し得る。スコアおよびその移動平均は、信号によって、例えば、それをユーザインターフェースに表示することによって表され得る。動作データおよび/またはスコアは、ほぼリアルタイムで分析可能であるか、または後の分析のために保存可能なデータファイルに記憶され得る。 The system may normalize the motion data to generate normalized coordinates for each body part's position during every session. The score and its running average may be represented by a signal, for example, by displaying it on a user interface. The motion data and/or score may be analyzed in near real time or stored in a data file that can be saved for later analysis.
動作データは、各ショットのxおよびy座標などのショットパターンデータに関連付けられてもよく、ショット座標は、ショットが発射された時間に発生する動作データに時間的に関連付けられてもよい。追加的に、スコアは、ショットに割り当てられ、ショットデータととも保存され得る。 Motion data may be associated with shot pattern data, such as the x and y coordinates of each shot, and the shot coordinates may be temporally associated with the motion data occurring at the time the shot was fired. Additionally, a score may be assigned to the shot and stored with the shot data.
1つまたは複数の機械学習手法を動作データおよびショットデータに適用して、動きとショットの正確さとの間の相関関係を生成し得る。例えば、いくつかの実施形態では、畳み込みディープニューラルネットワーク(CNN)は、動きおよびショットデータの集合中の特徴を位置特定するように設計され得る。分類を目的とした他の深層学習モデルも、動作データとショットデータとを相関させて、正確さの向上または正確さの低下につながるパターンを識別するために使用され得る。属性の任意の集合を属性の他の任意の集合と相関させる変換が使用される可能性もある。 One or more machine learning techniques may be applied to the motion and shot data to generate correlations between motion and shot accuracy. For example, in some embodiments, a convolutional deep neural network (CNN) may be designed to locate features in the motion and shot data collection. Other deep learning models for classification purposes may also be used to correlate motion and shot data to identify patterns that lead to improved or decreased accuracy. Transformations may also be used that correlate any set of attributes with any other set of attributes.
図8Aは、シューター800のサンプルカメラアングルを示し、図8Bは、システムが、選択された身体ランドマークを含むシューターの身体の動きを追跡することを可能にする、結果として得られたシューターのワイヤフレームモデル802を示す。図から分かるように、システムは、射撃ストリング全体にわたってシューターのポーズ、スタンス、および動きを決定することができる。ワイヤフレームモデルは、とりわけ、シューターの鼻または顎804、右肩806、右肘808、右手首810、腰812、左大腿骨814、左膝816、左下腿818、左足首820、右大腿骨822、右膝824、右下腿826、および右足首828のうちの1つまたは複数を含み得る、各主要関節および身体アーチファクトの表現を含み得る。場合によっては、システムは、様々なシューターからの動作データおよび動作データと相関関係のあるそれらのシューターの過去のパフォーマンスでトレーニングされ得る。この場合、システムは、特定のポーズおよび/または動きが射撃パフォーマンスに与える影響を決定することができる。場合によっては、システムは、単一のシューターからの動作データに依存して、そのシューターがシューターのパフォーマンスを向上させるために調整および/またはさらなるトレーニング演習を行うのを支援し得る。 FIG. 8A shows a sample camera angle of a shooter 800, and FIG. 8B shows the resulting wireframe model 802 of the shooter, which allows the system to track the shooter's body movements, including selected body landmarks. As can be seen, the system can determine the shooter's pose, stance, and movements throughout the firing string. The wireframe model may include representations of each major joint and body artifact, which may include, among other things, one or more of the shooter's nose or chin 804, right shoulder 806, right elbow 808, right wrist 810, hip 812, left femur 814, left knee 816, left lower leg 818, left ankle 820, right femur 822, right knee 824, right lower leg 826, and right ankle 828. In some cases, the system may be trained with motion data from various shooters and their past performances correlated with the motion data. In this case, the system can determine the impact of specific poses and/or movements on shooting performance. In some cases, the system may rely on performance data from a single shooter to assist that shooter in making adjustments and/or conducting further training exercises to improve the shooter's performance.
図9は、シューターの頭部902と鼻904に関連付けられたx軸動作データ900を示す。図から分かるように、射撃ストリング中、各ショット906a~906dの後に、シューターの頭部は後方に動いており、これは、射撃パフォーマンスと相関関係があり得る。すなわち、システムは、シューターが、例えば標的を見ために各ショットの後に頭部を動かしており、さらに、射撃ストリング中にドリフトし、正確に同じスポットには戻らなかったことで、シューターのパフォーマンスが閾値を下回った可能性があると決定し得る。 Figure 9 shows x-axis motion data 900 associated with the shooter's head 902 and nose 904. As can be seen, the shooter's head moves backward after each shot 906a-906d during the firing string, which may correlate with shooting performance. That is, the system may determine that the shooter is moving their head after each shot, for example to look at the target, and further that they may have drifted during the firing string and not returned to the exact same spot, causing the shooter's performance to fall below a threshold.
場合によっては、システムは、シューターの動きおよび/または標的のスコアリングのいずれかに基づいて、可能性のある原因および結果を決定するロジックで構成され得る。図10Aおよび図10Bを参照すると、図10Aおよび図10Bは、左利きのシューターおよび右利きのシューターのための診断用標的1000をそれぞれ示している。右利き用の標的と左利き用の標的とは互いに鏡像関係にあるので、以下では一方の標的についてのみ説明する。 In some cases, the system may be configured with logic to determine probable cause and effect based on either the shooter's movements and/or the target's scoring. Referring to Figures 10A and 10B, Figures 10A and 10B show diagnostic targets 1000 for left-handed and right-handed shooters, respectively. Because the right-handed and left-handed targets are mirror images of each other, only one target will be described below.
シューターがピストルを標的に向けて保持することができると仮定すると、シューターに関連付けられた動きが、中心を外れた命中の原因となる可能性がある。中心を外れた命中が標的の1つの側に規則的に集まっている場合、中心を外れた命中の原因となる可能性がある問題がいくつか考えられる。例えば、ショットのグループが12:00の位置に着弾した場合、システムは、シューターが手首を上に折り曲げている1002(例えば、反動に乗っている)と決定し得、これは、反動を予期して起こることが多い。 Assuming the shooter is able to hold the pistol at the target, movements associated with the shooter may be the cause of off-center hits. If the off-center hits are regularly clustered to one side of the target, there are several possible issues that could be causing the off-center hits. For example, if a group of shots lands at the 12:00 position, the system may determine that the shooter is bending their wrist upward 1002 (e.g., riding the recoil), which often occurs in anticipation of the recoil.
ショットのグループが1:30の位置1004に着弾した場合、これは、銃口を右に押しやるショットを予期して手の付け根がピストルの床尾を左に押すヒーリング(heeling)として知られるグリップエラーを示すものであり得る。 If the group of shots lands at the 1:30 mark 1004, this may indicate a grip error known as heeling, where the heel of the hand pushes the pistol butt to the left in anticipation of the shot, which forces the muzzle to the right.
ショットのグループが3:00の位置1006に着弾した場合、これは、射撃を行う手の親指が圧力を加えすぎて、ピストルの側面を右に押し、銃口を右に押しやることを示すものであり得る。 If a group of shots lands at the 3:00 position 1006, this may be an indication that the thumb of the shooting hand is applying too much pressure, pushing the side of the pistol to the right and forcing the muzzle to the right.
ショットのグループが4:30の位置1008に着弾した場合、これは、シューターが射撃中グリップを強く締めすぎていること(例えば、ロブスタリング(lobstering))を示すものであり得る。引き金を引くと、照星が下がり、それにより、右利きのシューターの場合、ショットが低く右に逸れる。 If the group of shots lands at the 4:30 position 1008, this may be an indication that the shooter is gripping the gun too tightly while firing (e.g., lobstering). Pulling the trigger will lower the front sight, causing the shot to drift low and to the right for a right-handed shooter.
ショットのグループが6:00の位置1010に着弾した場合、これは、手首を下方に折り曲げて前方に押し出していることを示すものであり得る。これは、反動を制御し、銃口が持ち上がるのを防止するための無意識の努力であることが多い。 If a group of shots lands at the 6:00 position 1010, this may be an indication of the wrist bending downward and forward, often in an unconscious effort to control recoil and prevent muzzle lift.
ショットのグループが7:00の位置1012に着弾した場合、これは、引き金を乱暴に引いたり(jerk)叩くように押したりする(slap)ことを示すものであり得る。これは、照準が標的と合った瞬間にシューターが引き金を引こうとしていることを示し得る。 If a group of shots lands at the 7:00 position 1012, this may indicate a trigger jerk or slap. This may indicate the shooter is about to pull the trigger just as the sights are on target.
ショットのグループが8:00の位置1014に着弾した場合、これは、シューターがショット中にグリップを強く締めすぎていることを示すものであり得る。 If a group of shots lands at the 8:00 position 1014, this may be an indication that the shooter is tightening their grip too much during the shot.
ショットのグループが9:00の位置1016に着弾した場合、これは、指が引き金に浅くかかっていることを示すものであり得る。これにより、典型的には、シューターは、最終的に引き金を後方に引く際に斜めに引くこととなり、銃を左に押す傾向がある。 If a group of shots lands at the 9:00 position 1016, this may be an indication that the finger is too light on the trigger. This typically causes the shooter to pull the trigger at an angle when finally pulling it back, tending to push the gun to the left.
ショットのグループが10:30の位置1018に着弾した場合、これは、シューターが反動を予期して押しておりフォロースルーが不十分であることを示すものであり得る。 If a group of shots lands at the 10:30 position 1018, this may be an indication that the shooter is pushing in anticipation of recoil and not following through well.
システムは、射撃ストリング中に標的命中を確認し、身体ランドマークの動きと組み合わせて、シューターが反動予期、引き金制御エラー、および/またはグリップエラーをしてしまっているかどうかを決定するようにプログラムされ得る。システムは、個々のシューターに対してこの決定を行うことができ、特定の射撃問題に対処するための練習演習および練習ストリングを推奨することができる。 The system can be programmed to verify target hits during the firing string and, in combination with body landmark movements, determine whether the shooter is engaging in recoil anticipation, trigger control errors, and/or grip errors. The system can make this determination for each individual shooter and recommend practice exercises and practice strings to address their specific shooting issues.
場合によっては、システムは、以前の射撃セッション、記録、スコア、および分析を含み得る、シューターに関連付けられたDOPE(Data On Previous Engagement)にアクセスすることができる。 In some cases, the system may have access to DOPE (Data On Previous Engagement) associated with the shooter, which may include previous shooting sessions, records, scores, and analysis.
リアルタイムのスコアリングとともに、完全な射撃セッションを記録および記憶することができるので、ユーザは、シューターのパフォーマンスを向上または低下させるシューターの姿勢または技法の欠点、ミス、および変化を識別および/または強調表示する機械学習システムからの決定とともに、それらをレビューすることができる。 Complete shooting sessions can be recorded and stored, along with real-time scoring, so users can review them along with decisions from the machine learning system that identify and/or highlight flaws, mistakes, and changes in the shooter's posture or technique that improve or detract from the shooter's performance.
本明細書で説明されるように、すべての利用可能な情報源を同期させることから相乗効果が生まれる。 As described herein, synergies arise from synchronizing all available information sources.
診断用標的が示されている図10Aおよび図10Bを引き続き参照すると、基本的な従来のMLモデルは、標的ショットパターンφ∈Φをシューター挙動β∈Bにマッピングし、これは、fTΦ→Bと表される。挙動は、3次元(3D)動作データに時間を加えたものを含む4次元(4D)現象であり得る。ショットパターンΦは、進化する3D現象(2Dに時間を加えたもの)の2次元(2D)投影である。このモデルは、因果仮説(causal hypotheses)に基づき得る。 Continuing with reference to Figures 10A and 10B, which show diagnostic targets, a basic conventional ML model maps a target shot pattern φ∈Φ to a shooter behavior β∈B, which is denoted as f T Φ→B. The behavior can be a four-dimensional (4D) phenomenon involving three-dimensional (3D) motion data plus time. The shot pattern Φ is a two-dimensional (2D) projection of the evolving 3D phenomenon (2D plus time). This model can be based on causal hypotheses.
エキスパートは、複雑なシューター挙動のはるかに大きな集合B*⊃Bを調べ、それをショットパターンのより大きな集合Φ*にマッピングし得、これは、fXP:B*→Φと表される。挙動β∈B*は、4D現象であり得、ショットパターンφ∈Φ*は、2D現象である。エキスパートは、シューターの生理学的運動学および心理学についての自身の理解ならびに射撃の物理学にしたがってモデルを適合させるので、これは原則として因果モデルであると推測され得る。 An expert can examine a much larger set of complex shooter behaviors, B * ⊃ B, and map them to a larger set of shot patterns Φ * , denoted as f XP : B * → Φ. The behaviors β∈B * can be a 4D phenomenon, and the shot patterns φ∈Φ * are 2D phenomena. Since the expert adapts the model according to his or her understanding of the shooter's physiological kinematics and psychology, as well as the physics of shooting, this can be inferred to be a causal model in principle.
エキスパートの学習のための比較的単純な反復モデルは、観察されたシューター挙動からショットパターンを予測することを含み得、これは、fXP:B*→Φと表される。次いで、モデルは、予測されたショットパターンと実際のショットパターンとの間の差分を評価し得、これは、δ(φ’,φ)と表される。次いで、モデルは、差分δ(φ’,φ)に基づいて、因果関係を考慮した予測モデルfXPを適応させ得る。これは、nショットドリルごとに繰り返され得る。 A relatively simple iterative model for expert learning may involve predicting shot patterns from observed shooter behavior, denoted as f XP :B * →Φ. The model may then evaluate the difference between the predicted shot pattern and the actual shot pattern, denoted as δ(φ',φ). The model may then adapt a causal predictive model f XP based on the difference δ(φ',φ). This may be repeated for each n-shot drill.
この種の学習モデルは、シューター挙動β∈B*を3D現象として扱い、ショットパターンφ∈Φ*を2D現象として扱う。場合によっては、B*を4D現象として扱うか、Φ*を3D現象として扱うか、またはその両方を扱うようにモデルが強化される。いくつかの実施形態によれば、ポーズ分析方法は、B**の3D投影(2Dに時間を加えたもの)によって4Dシューター挙動B*を表す。 This type of learning model treats the shooter behavior β∈B * as a 3D phenomenon and the shot pattern φ∈Φ * as a 2D phenomenon. In some cases, the model is enhanced to treat B * as a 4D phenomenon, Φ * as a 3D phenomenon, or both. According to some embodiments, pose analysis methods represent the 4D shooter behavior B * by a 3D projection (2D plus time) of B ** .
モデルは、決定関数fG:Φ→D(Dはバイナリ変数)を実行することによって、良いショットパターン(例えば、ブルズアイの周囲に密集した)を残りの「良くない」ショットパターンから客観的に識別することができる。モデルはまた、シューター挙動E*をショットパターンφがどの程度(なぜ)「良くない」かに関連付けるように構成され得る。 The model can objectively distinguish good shot patterns (e.g., clustered around the bull's-eye) from the remaining "bad" shot patterns by implementing a decision function fG :Φ→D, where D is a binary variable. The model can also be configured to relate the shooter behavior E * to how (and why) a shot pattern φ is "bad."
いくつかの実施形態では、シューター挙動についてのサンプリングされた時間信号は、データセット内の単一のラインとして単一のドリルについて低減され得る。ドリル内の身体ランドマークの各々の身体ランドマークのX-Y座標のセットの周囲に境界ボックスが導出され得る。境界ボックスは、シューター挙動Bと表され得る。したがって、ある期間中に身体ランドマークの各々に対してシューター挙動があり得る。場合によっては、シューター挙動BおよびショットパターンΦは、半径および角度として極座標で表される。シューター挙動B(いくつかの例では17である)は、(x,y)座標または(r,θ)表現を有する2Dである。ショットパターンφ∈Φは、シューター挙動β∈Bの因果的結果であり、方法は、観測不可能な第3の次元のシューター挙動βのプロキシとしてショットパターンΦを扱うことができる。方法は、シューター挙動β∈Bおよびショットパターンφ∈Φを特徴とし扱い、スコアs∈SをMLモデルの標的として扱い、これは、fML:BxΦ→Sと表される。 In some embodiments, the sampled time signal for the shooter behavior can be reduced for a single drill as a single line in the dataset. A bounding box can be derived around the set of X-Y coordinates of each of the body landmarks in the drill. The bounding box can be represented as shooter behavior B. Thus, there can be a shooter behavior for each of the body landmarks during a period of time. In some cases, shooter behavior B and shot pattern Φ are represented in polar coordinates as a radius and an angle. Shooter behavior B (which in some examples is 17) is 2D, with (x, y) coordinates or an (r, θ) representation. Shot pattern φ∈Φ is a causal consequence of shooter behavior β∈B, and the method can treat shot pattern Φ as a proxy for the unobservable third-dimensional shooter behavior β. The method treats shooter behavior β∈B and shot pattern φ∈Φ as features and score s∈S as a target in the ML model, which is represented as fML :BxΦ→S.
モデルは、低いスコアと高いスコアをもたらすパターン(β,φ,s)∈ΨL,ΨHについて分析され得る。このために、暗黙的または明示的なクラスタリング技法が使用される可能性がある。場合によっては、モデルfML:BxΦ→Sを、特定のシューターのための複数のドリルおよび複数のシューターのためのドリルに対して構築することができる。場合によっては、特定のドリル(β,φ,s)およびモデルfML:BxΦ→Sが与えられると、実際のスコアs∈Sと予測スコアs’∈Sを比較することによってモデル品質を評価することができる。これらの比較から、いくつかのモデルは順次更新される可能性がある。 The model may be analyzed for patterns (β, φ, s)∈Ψ L ,Ψ H that result in low and high scores. For this, implicit or explicit clustering techniques may be used. In some cases, a model f ML :BxΦ→S can be built for multiple drills for a particular shooter and drills for multiple shooters. In some cases, given a particular drill (β, φ, s) and a model f ML :BxΦ→S, model quality can be evaluated by comparing the actual score s∈S with the predicted score s′∈S. From these comparisons, several models may be updated sequentially.
いくつかの実施形態では、低スコアのドリル(β,φ,s)をΨに対して評価して、観測可能なシューター挙動βおよび観測不可能なシューター挙動のプロキシとしてのショットパターンφの17個の構成要素のうちのどれが低スコアの原因である可能性が高いかを決定することができる。これは、説明可能なモデルにとって最も容易であり得る。観測不可能な挙動は、上記のような診断用標的における通常のラベルによって説明され得る。いくつかの事例では、シューター診断アプリケーションは、照準不整合に起因する低スコアを区別することもでき、おそらく、標的ブルズアイ以外の重心の周囲に密集するショットとして理解することが最も容易である。場合によっては、システムは、低減されたスコアが取得されたと決定し、スコアを改善するための推奨を生成する。本明細書で使用されるように、「低減されたスコア」という用語は、ターゲットスコア未満であるスコアを意味するために使用される。ターゲットスコアは、完璧なスコア、参加者の過去の最高スコア、参加者の平均スコア、または何らかの他のメトリックであり得る。例えば、射撃競技では、所与のショットの最高スコアは「10」であることが多い。この場合、低減されたスコアとは「10」より低いスコアのことである。同様に、他のスポーツでも、所望のスコア未満であるスコアが割り当てられ得る。例えば、サッカーのペナルティキックでは、ゴールが決まった場合と比較して、ゴールを外した場合は低減されたスコアとなるバイナリ結果であり得る。ゴルフショットに関して言えば、ゴルファーは、ドライバーで平均して275ヤード飛ばし得る。低減されたスコアは、ゴルファーのドライバーショットの平均飛距離を下回る250ヤードを飛ばすドライバーショットによるものであり得、システムは、挙動を観察し、どの挙動(複数可)が低減されたスコアをもたらしたかを決定し得る。 In some embodiments, a low-scoring drill (β, φ, s) can be evaluated against Ψ to determine which of the 17 components of the observable shooter behavior β and the shot pattern φ, as proxies for unobservable shooter behavior, are likely responsible for the low score. This may be easiest for an explainable model. Unobservable behavior may be explained by the usual labels in the diagnostic target, as described above. In some cases, the shooter diagnostic application may also distinguish low scores due to aim misalignment, perhaps easiest understood as shots clustered around a center of gravity other than the target bullseye. In some cases, the system may determine that a reduced score was obtained and generate recommendations to improve the score. As used herein, the term "reduced score" is used to mean a score that is less than a target score. The target score may be a perfect score, a participant's best previous score, a participant's average score, or some other metric. For example, in shooting competitions, the highest score for a given shot is often "10." In this case, a reduced score is a score below "10." Similarly, in other sports, a score that is less than a desired score may be assigned. For example, in soccer, a penalty kick could have a binary outcome of a reduced score if the goal is missed compared to a goal. In terms of golf shots, a golfer may average 275 yards with their driver. A reduced score could be due to a driver shot that travels 250 yards, which is less than the golfer's average driver distance, and the system could observe the behavior and determine which behavior(s) resulted in the reduced score.
いくつかの実施形態によれば、システムは、次の2つの決定のために人工知能(AI)および/または機械学習(ML)に依存する:シューターの動きおよびショット着弾位置を検出すること、およびシューター挙動がどのようにショット着弾位置につながるかについてシューター挙動を分析すること。動きを検出することについて説明したが、シューター挙動がどのようにショット着弾位置につながるかについて分析する方法は複数ある。第1に、エキスパートベースの手法は、各ドリルについての個々のシューターの挙動を、良いショットをもたらすとされるものについてのエキスパートの評価と比較することを利用する。第2に、単一のシューターまたは複数のシューターによる射撃挙動(「ドリル」)の反復からモデルを構築することによって、データベースの手法が実施される。これは、どの挙動が良いショットと相関しているかを決定するAI/MLベースの発見ストラテジーであると見なされ得る。 According to some embodiments, the system relies on artificial intelligence (AI) and/or machine learning (ML) for two decisions: detecting shooter movement and shot landing locations, and analyzing shooter behavior for how it leads to shot landing locations. While detecting movement has been discussed, there are multiple ways to analyze how shooter behavior leads to shot landing locations. First, an expert-based approach utilizes comparing individual shooter behavior for each drill with expert assessments of what is believed to result in a good shot. Second, a data-based approach is implemented by building a model from repetitions of shooting behaviors ("drills") by a single shooter or multiple shooters. This can be considered an AI/ML-based discovery strategy that determines which behaviors correlate with good shots.
場合によっては、AI/MLを使用して、プロトタイプの「理想的な」挙動が事前に知られている場合、これらの事前に知られている挙動のモデルを単一のシューターまたは複数のシューターのデータに適合させることができるという意味で、エキスパートベースの分析を自動化および強化し得る。 In some cases, AI/ML can be used to automate and augment expert-based analysis in the sense that, when the "ideal" behavior of a prototype is known a priori, models of these a priori known behaviors can be fitted to data from a single shooter or multiple shooters.
その観点から、トランスフォーマMLモデルは、言語フラグメント間の推論された関係のための事前トレーニングされたデータベースモデル(シューター挙動とショット着弾位置との間の関係を推論することに類似する)をデータベースの適応の追加のステージと組み合わせることで、自動化および拡張されたエキスパートベースの分析を模倣し得る。 From that perspective, Transformer ML models can mimic automated and augmented expert-based analysis by combining pre-trained database models for inferred relationships between language fragments (similar to inferring relationships between shooter behavior and shot impact locations) with an additional stage of database adaptation.
図11を参照すると、システムは、シューターの手1100に関するキーポイントを決定する。キーポイントは、手首、手、および指の各可動関節、ならびに互いに対するそれらのそれぞれの場所および位置と一致し得る。システムは、キーポイントをシューターの手のワイヤフレームモデル1102に接続し得、これにより、ポーズおよび動きの正確な監視が可能になる。図11は、シューターが使用しているグリップを決定するために使用され得る、シューターの手に関連付けられた複数のキーポイントを示す。例えば、シューターの手のキーポイントを参照することによって、システムは、シューターが、サムスフォワード、サムオーバー、カップアンドソーサ、リストグリップ、トリガーガードゲーマー、または別のスタイルのグリップを使用していることを決定し得る。異なるグリップおよび手によって加えられる圧力がピストルに動きを与える可能性があり、システムは、異なるまたは修正されたグリップの方がより良いパフォーマンスをもたらすと決定する場合がある。 Referring to FIG. 11 , the system determines key points related to the shooter's hand 1100. The key points may correspond to each mobile joint in the wrist, hand, and fingers, and their respective locations and positions relative to one another. The system may connect the key points to a wireframe model 1102 of the shooter's hand, allowing for accurate monitoring of pose and movement. FIG. 11 illustrates multiple key points associated with the shooter's hand that can be used to determine the grip the shooter is using. For example, by referencing the key points on the shooter's hand, the system may determine that the shooter is using a thumbs-forward, thumbs-over, cup-and-saucer, wrist grip, trigger-guard gamer, or another style of grip. Different grips and pressure applied by the hand may impart movement to the pistol, and the system may determine that a different or modified grip would result in better performance.
システムは、シューターの位置および動きに関連付けられた信号を受信し、信号を処理して、シューターのスタンスおよびグリップのミスを見つける。加えて、単一フレーム分析を組み合わせることによって(例えば、時間にわたる分析である、特定の瞬間における異なる身体部分間の相対位置から洞察を見出すことによって)、シューターの位置の変化に起因するミスを識別することが可能である。 The system receives signals associated with the shooter's position and movement, processes the signals, and detects errors in the shooter's stance and grip. Additionally, by combining single-frame analysis (e.g., analysis over time, finding insights from the relative positions of different body parts at a particular moment), it is possible to identify errors caused by changes in the shooter's position.
加えて、システムは、ピストル上の手の位置に焦点を当てることができる。手追跡機械学習モデルを使用して、ビデオフレーム内の各指の各骨の位置を追跡することができる。システムは、時間にわたって各指の位置に関連付けられた信号を受信する。 Additionally, the system can focus on the position of the hand on the pistol. A hand tracking machine learning model can be used to track the position of each bone in each finger within the video frames. The system receives signals associated with the position of each finger over time.
図12Aおよび図12Bを参照すると、モバイルコンピューティングデバイス上で実行され、モバイルコンピューティングデバイスに関連付けられた1つまたは複数の撮像センサから画像データを受信し得るアプリケーションプログラムが示されている。本明細書で説明される実施形態のいずれかと同様に、方法およびプロセスは、コンピューティングデバイス上で実行されることができる、アプリケーションプログラムまたは命令のセットにプログラムされることができる。場合によっては、アプリケーションプログラムは、モバイルコンピューティングデバイス上で実行することができ、オーディオ/ビデオキャプチャ、分析、スコアリング、推奨、トレーニング演習、および他のフィードバックは、モバイルコンピューティングデバイスを用いて実行することができる。場合によっては、システムは、同じシューターの異なるビューをキャプチャする複数のビデオキャプチャデバイスからビデオおよび/またはオーディオを受信する。システムは、パフォーマンスを向上させるために、シューターの複数の異なるビューを、分析およびシューターへのフィードバックに使用し得る。 12A and 12B, an application program that may execute on a mobile computing device and receive image data from one or more imaging sensors associated with the mobile computing device is shown. Similar to any of the embodiments described herein, methods and processes may be programmed into an application program or set of instructions that may be executed on a computing device. In some cases, the application program may execute on the mobile computing device, and audio/video capture, analysis, scoring, recommendations, training exercises, and other feedback may be performed using the mobile computing device. In some cases, the system receives video and/or audio from multiple video capture devices that capture different views of the same shooter. The system may use the multiple different views of the shooter for analysis and feedback to the shooter to improve performance.
図12Aに示すように、モバイルコンピューティングデバイス1200上のアプリケーションとして実行されるシステムは、シューター1202のビデオフレームをキャプチャし、経時的に追跡するための身体ランドマークを確立し、シューターのワイヤフレームモデル1203を作成し、発射されたショット1204を追跡し、シューター1202にフィードバックを提供する。図示のように、システムは、シューターのスタンス、図示の例では「Weaver」スタンスを識別し、ショット数1204を追跡し、各ショットに関するフィードバック1206を提供し得る。例えば、ストリングの開始後7秒時点で行われたショットは、質量中心への命中を示す。システムは、8秒時点で1.2秒続くリロード動作1208を識別し、続いて11秒時点でのショットを識別し、このショットでは、シューターが反動を予期しており、ショットが中心から外れたことを示している。場合によっては、システムのこの機能は、シューターのパフォーマンスを向上させるために、ショットを追跡し、フィードバックを提供し、姿勢、グリップ、スタンス、トリガープルなどを改善するための提案をするドリルインストラクタと見なされ得る。 As shown in FIG. 12A , a system running as an application on a mobile computing device 1200 captures video frames of a shooter 1202, establishes body landmarks for tracking over time, creates a wireframe model 1203 of the shooter, tracks fired shots 1204, and provides feedback to the shooter 1202. As shown, the system may identify the shooter's stance, in the illustrated example the "Weaver" stance, track the number of shots 1204, and provide feedback 1206 regarding each shot. For example, a shot fired 7 seconds after the start of the string indicates a center-of-mass hit. The system identifies a reload motion 1208 at 8 seconds, lasting 1.2 seconds, followed by a shot at 11 seconds, indicating the shooter anticipated recoil and delivered an off-center shot. In some cases, this functionality of the system may be viewed as a drill instructor, tracking shots, providing feedback, and making suggestions for improving posture, grip, stance, trigger pull, etc., to improve the shooter's performance.
図12Bは、モバイルコンピューティングデバイスがそのビデオキャプチャデバイスを標的に向け得るSpotterモダリティにおいてシステムによって表示され得る追加の画面1210を示す。場合によっては、モバイルコンピューティングデバイスは、内部レンズまたは外部レンズを使用して、標的のより良好なビューを得ることができ、モバイルコンピューティングデバイスは、より良好な標的画像を得るために、スポッティングスコープまたは他の種類の光学もしくは電子望遠ズームレンズに結合され得る。 FIG. 12B shows an additional screen 1210 that may be displayed by the system in the Spotter modality, in which a mobile computing device may aim its video capture device at a target. In some cases, the mobile computing device may use an internal or external lens to get a better view of the target; the mobile computing device may be coupled to a spotting scope or other type of optical or electronic telephoto zoom lens to get a better target image.
システムは、Spotter、Drill Instructor、DOPE、Locker(シューターが所有している異なる小火器についての情報が記憶され得る)、およびプログラム設定などの異なるモード間でトグルされ得る。Spotterモードは、標的命中を見ることができる標的のビューを有する追加の画面1210を示し得る。システムはまた、とりわけ、発射に使用される小火器1212aおよび弾薬1212bの組合せ、標的までの距離1214、標的の種類1216、射撃ストリングの時間1218、発射されたショットの数、標的命中の数1220、およびスコア1222などの他の情報を表示し得る。また、標的1224の画像を示してもよく、標的1224の画像上に命中1226をさらに強調表示してもよい。Spotterモードは、経過時間、命中、スコア、およびショット数を含む情報をリアルタイムで示し得ることを理解されたい。加えて、システムは、後の再生、レビュー、および分析のために、射撃ストリングに関連付けられたデータを記憶し得る。例えば、Drill Instructorモードは、シューターおよび小火器と弾薬との組合せに関連付けられたDOPEをレビューし、シューターによる特定の小火器でのミスの詳細な分析を提供し、シューターのパフォーマンスを向上させるためにミスを改善するための演習または提案を提供し得る。 The system can be toggled between different modes, such as Spotter, Drill Instructor, DOPE, Locker (which can store information about different firearms owned by the shooter), and program settings. Spotter mode may show an additional screen 1210 with a target view where target hits can be viewed. The system may also display other information, such as the firearm 1212a and ammunition 1212b combination used in the shot, distance to the target 1214, target type 1216, firing string time 1218, number of shots fired, number of target hits 1220, and score 1222, among others. An image of the target 1224 may also be shown, and hits 1226 may be further highlighted on the image of the target 1224. It should be understood that Spotter mode may show information in real time, including elapsed time, hits, score, and number of shots. Additionally, the system may store data associated with the firing string for later playback, review, and analysis. For example, the Drill Instructor mode may review the DOPEs associated with the shooter and the firearm and ammunition combination, provide a detailed analysis of the shooter's misses with a particular firearm, and provide exercises or suggestions for improving the misses to improve the shooter's performance.
図13A、図13B、および図13Cを参照すると、データキャプチャ1300のための例示的なアーキテクチャが示されている。いくつかの実施形態によれば、射撃練習場1301には、画像センサ、プロジェクタ、およびコンピューティングデバイスなどの1つまたは複数のセンサが装備されていてもよい。図13Aは、シューター1302の視点からダウンレンジを見た射撃練習場1301を示す。図13Bは、側面から見た射撃練習場1301を示し、図13Cは、上面から見た射撃練習場1301を示す。 With reference to Figures 13A, 13B, and 13C, an exemplary architecture for data capture 1300 is shown. According to some embodiments, a shooting range 1301 may be equipped with one or more sensors, such as image sensors, projectors, and computing devices. Figure 13A shows the shooting range 1301 from the perspective of a shooter 1302 looking downrange. Figure 13B shows the shooting range 1301 from a side view, and Figure 13C shows the shooting range 1301 from a top view.
射撃練習場内には1つまたは複数のカメラ1304が取り付けられ、複数の角度からシューターのビデオをキャプチャし得る。カメラ1304は、限定はしないが、とりわけ、CCDカメラ、サーマルカメラ、デュアルサーマルカメラ1305(例えば、熱キャプチャ能力と光キャプチャ能力の両方を有するキャプチャデバイス)を含む、任意の適切な種類のビデオキャプチャデバイスであり得る。カメラ1304は、練習場内の任意の適切な位置に、例えば、とりわけ、シューター1304a、1304bの側面に、シューター1304cの正面に面して、頭上1304dに、取り付けられ得る。 One or more cameras 1304 may be mounted within the shooting range to capture video of the shooter from multiple angles. The cameras 1304 may be any suitable type of video capture device, including, but not limited to, a CCD camera, a thermal camera, a dual thermal camera 1305 (e.g., a capture device with both thermal and optical capture capabilities), among others. The cameras 1304 may be mounted in any suitable location within the range, such as to the sides of the shooters 1304a, 1304b, facing the front of the shooter 1304c, or overhead 1304d, among others.
場合によっては、カメラ1304は、シューターの複数を角度でキャプチャするために1つまたは複数のカメラ1304を支持するための可搬式構造を提供するガントリシステムに取り付けられてもよい。 In some cases, the camera 1304 may be mounted on a gantry system that provides a portable structure to support one or more cameras 1304 to capture multiple angles of the shooter.
いくつかの実施形態では、画面1308上に画像を投影するためにプロジェクタ1306が設けられ得る。場合によっては、プロジェクタは、任意の標的画像を画面上または射撃壁上に投影してもよく、シューターは、(例えば、実弾を発射することなく)空撃ちを練習することができ、システムは、投影された画像上の命中を登録することができる。例えば、画像は、画面上に標的を示し得、シューターは、標的に向かって空撃ちし得る。システムは、引き金を引いた時点の照準点を登録し、投影された標的画像上に命中を表示することができる。引き金が引かれたときに小火器の銃身を通してレーザを発射してショットが標的に着弾したであろう場所を示す互換性のあるデバイスが存在する。熱撮像カメラ1304は、レーザ命中位置を検出し得、システムは、投影された標的上に命中を表示するように構成され得、システムは、さらに、その命中を登録およびスコアリングし得る。このようにして、シューターは、専用の射撃練習場に移動する必要なしに、自分の小火器を用いて射撃シミュレータを使用して練習することができる。システムは、射撃の悪い癖を改善するために空撃ち練習を推奨し得る。 In some embodiments, a projector 1306 may be provided to project an image onto a screen 1308. In some cases, the projector may project an arbitrary target image onto the screen or shooting wall, allowing the shooter to practice dry shots (e.g., without firing live ammunition) and the system to register hits on the projected image. For example, the image may show a target on the screen, and the shooter may dry-fire at the target. The system may register the aim point at the time the trigger is pulled and display the hit on the projected target image. Compatible devices exist that fire a laser through the barrel of a firearm when the trigger is pulled to indicate where the shot would have landed on the target. The thermal imaging camera 1304 may detect the laser hit location, and the system may be configured to display the hit on the projected target, which may then register and score the hit. In this way, shooters can practice using a shooting simulator with their own firearms without having to travel to a dedicated shooting range. The system may encourage dry-fire practice to improve poor shooting habits.
図14は、複数ソース同期で構成されたシステムを示す。いくつかの実施形態では、シューター1402は、複数のビデオキャプチャデバイス1404で異なる角度からキャプチャされる。システムは、スタンス、ポーズ、および動きなどの特徴をシューター1406から取得する。システムは、キャプチャされたオーディオ信号1408を分析して、ビデオショット検出を補完し得る。すなわち、システムは、ビデオとオーディオの両方を分析し、例えば、オーディオ波形内のスパイクを小火器の突然の銃口の持ち上がりと相関させることによって、シューターによって発射されたショットを検出し得る。 Figure 14 illustrates a system configured for multi-source synchronization. In some embodiments, a shooter 1402 is captured from different angles by multiple video capture devices 1404. The system obtains features such as stance, pose, and movement from the shooter 1406. The system may analyze the captured audio signal 1408 to complement the video shot detection. That is, the system may analyze both the video and audio and detect shots fired by the shooter, for example, by correlating spikes in the audio waveform with a sudden muzzle lift of the firearm.
システムは、発射された射撃の検出を含む、第1の射撃ストリング、リロード、第2の射撃ストリングなどの射撃ステージ1410を検出するように構成され得る。システムは、追加的に、射撃エラー1412を識別および決定し、射撃エラーに対処するために、エラーならびにドリルおよび演習を識別し得る。エラー検出は反復され得、さらなるエラー修正1414が提案され得る。システムはまた、ショット検出とオーディオデータとの相関を含めて、本明細書で説明されるように、ショット検出1416を組み込み得る。 The system may be configured to detect shooting stages 1410, such as first firing string, reload, second firing string, etc., including detection of fired shots. The system may additionally identify and determine shooting errors 1412, identify errors, and drills and exercises to address shooting errors. Error detection may be iterated and further error corrections 1414 may be suggested. The system may also incorporate shot detection 1416, as described herein, including correlation of shot detection with audio data.
システムは、標的のビデオ画像などの画像1418をさらにキャプチャし、標的上の命中を登録し得、これは、引き金を引く前および引いている間の動作データと相関させられ得る。本明細書で説明されるように、システムは、ショット位置1420を決定し、発射されたショットのうちの1つまたは複数のショットのスコア1422を最終的に決定し得る。したがって、システムのいくつかの実施形態は、時間集約的でスケーラブルでないライブトレーニング環境を、自動化された適応的な仮想シナリオベースのトレーニングソリューションに変えるインテリジェントなチュータリング(tutroing)/適応トレーニングソリューションを提供する。 The system may further capture images 1418, such as video images of the target, and register hits on the target, which may be correlated with motion data before and during the trigger pull. As described herein, the system may determine shot location 1420 and ultimately determine a score 1422 of one or more of the shots fired. Some embodiments of the system thus provide an intelligent tutroing/adaptive training solution that transforms a time-intensive, non-scalable live training environment into an automated, adaptive, virtual scenario-based training solution.
いくつかの実施形態によれば、モデルは、プロセッサに様々な動作を実行させる、1つまたは複数のプロセッサによって実行される命令に基づく。例えば、方法は、コンマ区切り値(CSV)ファイルとして記憶され得る(可能な限り多くの)ポーズ分析ファイルを収集することを含み得る。 According to some embodiments, the model is based on instructions executed by one or more processors that cause the processors to perform various operations. For example, the method may include collecting (as many as possible) pose analysis files, which may be stored as comma-separated value (CSV) files.
図15は、システムによって決定されるショット境界ボックス1500を示す。「drillparser.py」スクリプトは、ポーズ分析ファイルを組み合わせるように構成され得る。次いで、システムは、例えば、17個のポーズランドマークの各々について、CSVファイル内のショットを見つけ得、ショットは、ショットまで(ショットを含む)の1.0秒の時間ウィンドウにおけるx-y座標の周囲に方向付けられた境界ボックス1500を導出し、次いで、境界ボックス1500の角度φ1502、寸法l1504、およびw1506をスコアのための決定木モデルにおける要素として使用する。「allshots」手法は、CSVファイルベースでデータを処理するので、境界ボックス1500は、結果とし得られるデータセット内の1行として、すべてのショットの周囲に描かれる。「oneshot」および「oneshotd」手法は、各ショットを個々に扱い得るので、ショットの境界ボックス1500は、単一のショットの周囲の無限小ボックスであり得、したがって、データセット内の各行は、1つのショットである。「oneshotd」手法は、追加で、17個のポーズランドマークの周囲の境界ボックスの方向を時間順にさらに方向付けするが、「oneshot」手法は時間を無視する。 Figure 15 shows the shot bounding box 1500 determined by the system. The "drillparser.py" script can be configured to combine the pose analysis files. The system can then find the shot in the CSV file for each of the 17 pose landmarks, derive a bounding box 1500 oriented around the x-y coordinates in a 1.0-second time window up to and including the shot, and then use the angle φ 1502, dimensions l 1504, and w 1506 of the bounding box 1500 as elements in a decision tree model for scoring. Because the "allshots" method processes data on a CSV file basis, a bounding box 1500 is drawn around all shots as a single row in the resulting dataset. Because the "oneshot" and "oneshotd" methods can treat each shot individually, the shot bounding box 1500 can be an infinitesimal box around a single shot; therefore, each row in the dataset is one shot. The "oneshotd" method additionally orients the bounding box around the 17 pose landmarks in time order, while the "oneshot" method ignores time.
したがって、システムは、各ショットの周囲の方向付けされた境界ボックスを導出することができ、これは、身体ランドマークの周囲のボックスの方向に方向付けされ得る。 The system can therefore derive an oriented bounding box around each shot, which can be oriented in the direction of the box around the body landmark.
3)これらのデータセットは、BigMLにおいて以下のように処理される: 3) These datasets are processed in BigML as follows:
1.SourceオブジェクトとしてBigMLにアップロード 1. Upload to BigML as a Source object
2.SourceオブジェクトをDatasetオブジェクトに変換 2. Convert a Source object to a Dataset object
3.DatasetオブジェクトをTraining(80%)/Test(20%)データセットに分割。 3. Split the Dataset object into Training (80%) and Test (20%) datasets.
4.Trainingデータセットから選択された要素を使用してツリーモデルを構築 4. Build a tree model using elements selected from the training dataset.
5.適切なModelおよびTestデータセットを使用してBatchPredictionsを作成 5. Create BatchPredictions using the appropriate model and test dataset.
6.次のステップのためにModelをJSON PMLオブジェクトとしてダウンロード 6. Download the model as a JSON PML object for the next step.
4)「modelannotator.py」スクリプトは、説明動作のために必要に応じてモデルPMLファイルに注釈付けする。場合によっては、この注釈は、そのノードからツリー内で到達可能なすべてのターゲット(スコア)値のリストである「ターゲット」属性を各ノードに追加することのみから構成される。 4) The "modelannotator.py" script annotates the model PML file as needed for explanation operations. In some cases, this annotation consists simply of adding a "target" attribute to each node that is a list of all target (score) values reachable in the tree from that node.
5)「itemexplainer.py」スクリプトは、(仮想の)プルーニングされた注釈付きモデルを使用して、新しいドリルに対するどのポーズ要素が不満足なスコアの予測をもたらすかを「説明する」。 5) The "itemexplainer.py" script uses the (hypothetical) pruned annotated model to "explain" which pose elements for a new drill result in an unsatisfactory score prediction.
6)当然ながら、予測されたスコアが実際のスコアと著しく異なるインスタンスを使用して、機械学習を通じてモデルトレーニングを繰り返すことによってモデルを調整することができる。 6) Of course, the model can be tuned by repeating model training through machine learning using instances where the predicted scores differ significantly from the actual scores.
ショットサンプルから導出された要素は、以下の要素のうちの1つまたは複数を含み得る:境界ボックス回転(-π≦φ≦π)を伴うshot_phi、shot_l-境界ボックス長、shot_w-境界ボックス幅、shot_lw-境界ボックス面積、shot_theta-境界ボックス中心回転(-π≦φ≦π)、shot_r-境界ボックス中心半径。境界ボックス1500は、ショットサンプルの周囲に描かれる。 The elements derived from the shot sample may include one or more of the following elements: shot_phi with bounding box rotation (-π≦φ≦π), shot_l - bounding box length, shot_w - bounding box width, shot_lw - bounding box area, shot_theta - bounding box center rotation (-π≦φ≦π), shot_r - bounding box center radius. A bounding box 1500 is drawn around the shot sample.
非常に類似した手法を使用して、身体ランドマークサンプルから要素を導出することができる。身体ランドマークは時間とともに動くので、各身体ランドマークを同様に使用して、長さ、幅、面積、および回転を有する境界ボックスを作成し、ショット要素に相関させることができる。 A very similar technique can be used to derive elements from body landmark samples. As body landmarks move over time, each body landmark can similarly be used to create a bounding box with length, width, area, and rotation that can be correlated to shot elements.
場合によっては、システムは、シューターのマシンビジョンのために1つまたは複数のカメラを使用し、1つまたは複数の身体ランドマーク(場合によっては、最大17個以上の身体ランドマーク)を決定し、射撃ドリル中に経時的にこれらのランドマークの各々の動きを追跡するように構成される。システムは、時間制限付きの身体ランドマークの動きをスコアリングされたショットと相関させ、ショットが良いか悪いかを決定することができる。良いショットは、シューター、小火器、および弾薬の組合せに対するDOPEに相対的なものであり得る。例えば、単一のショットが、シューターの平均的なショットよりも照準点に近い場合、これは良いショットとして分類され得る。さらに、時間をかけていくつかのショットを調べることによって、システムは、シューター挙動を良いショットまたは悪いショットと相関させることができる。さらに、シューター挙動(例えば、身体ランドマークの動き)を分析することによって、システムは、標的の結果を見なくても、ショットが良いショットであるか悪いショットであるかを予測することができる。例えば、良いショットは、標的の9または10リング内のショットと考えられ、悪いショットは、9リングの外側のショットである。射手の熟練度(expertise)によって、良いショットと悪いショットの定義は様々であり得る。一例として、非常に熟練したシューターの場合、10リングの外側にあるものはすべて、悪いショットと見なされ得る。 In some cases, the system is configured to use one or more cameras for machine vision of the shooter, determine one or more body landmarks (possibly up to 17 or more), and track the movement of each of these landmarks over time during a shooting drill. The system can correlate the timed body landmark movement with scored shots to determine whether a shot is good or bad. A good shot may be relative to the DOPE for the shooter, firearm, and ammunition combination. For example, if a single shot is closer to the aimpoint than the shooter's average shot, it may be classified as a good shot. Furthermore, by examining several shots over time, the system can correlate shooter behavior with good or bad shots. Furthermore, by analyzing shooter behavior (e.g., body landmark movement), the system can predict whether a shot is good or bad without seeing the target outcome. For example, a good shot is considered a shot within the 9 or 10 ring on the target, while a bad shot is one outside the 9 ring. The definition of a good or bad shot may vary depending on the shooter's expertise. As an example, for a highly skilled shooter, anything outside the 10 ring may be considered a bad shot.
最後に、シューター挙動を標的正確さと相関させることによって、システムは、正確さの低下を引き起こす挙動に関する出力をシューターに提供することができる。さらに、システムは、正確さの低下を引き起こす挙動に対処するために、1つまたは複数の特定のドリルをシューターに推奨し得る。 Finally, by correlating shooter behavior with target accuracy, the system can provide the shooter with output regarding behaviors that cause accuracy degradation. Additionally, the system can recommend one or more specific drills to the shooter to address the behaviors that cause accuracy degradation.
図16は、身体ランドマーク因子をショットサンプルと相関させるための決定木モデル1600のいくつかの実施形態を示す。決定木アルゴリズムは、決定木を使用して予測を行う機械学習アルゴリズムである。それは、決定およびそれらの可能な結果をツリー状のモデルに従う。場合によっては、アルゴリズムは、ツリーの各ノードにおける最も重要な特徴に基づいてデータをサブセットに再帰的に分割することで機能する。 Figure 16 shows some embodiments of a decision tree model 1600 for correlating body landmark factors with shot samples. A decision tree algorithm is a machine learning algorithm that uses decision trees to make predictions. It follows a tree-like model of decisions and their possible outcomes. In some cases, the algorithm works by recursively splitting the data into subsets based on the most important features at each node of the tree.
身体ランドマークデータから、身体の動きの運動学的特性を表すために様々な特徴が抽出される。これらの特徴には、経時的な身体ランドマーク位置、ショットの発射前と発射時を含む時間の間の身体ランドマークの動きを記述する境界ボックス、ランドマーク間の相対距離、および動きの動的側面を捉える時間導関数が含まれる。モデル収束を促進するために、特徴スケーリングが実行される。 From the body landmark data, various features are extracted to represent the kinematic characteristics of body movement. These features include body landmark positions over time, bounding boxes describing the movement of body landmarks during times including before and during the shot, relative distances between landmarks, and time derivatives capturing the dynamic aspects of the movement. Feature scaling is performed to facilitate model convergence.
いくつかの実施形態において、図16に示される決定木はモデルのコアとして機能する。これは、解釈可能性を維持しながら、データ内の複雑な非線形関係を解明する能力について選択される。ツリーの深さは、交差検証または所定の最大深さのような技法を通して過剰適合を最小限にするように最適化される。分離基準の選択は、ジニ不純度に基づくか情報利得に基づくかにかかわらず、特定の問題に依存する。過剰な分岐(branch)を制御するために、リーフあたりのサンプルを強制的に最小数にするなどのプルーニング方法が適用される。 In some embodiments, the decision tree shown in Figure 16 serves as the core of the model. It is selected for its ability to unravel complex nonlinear relationships in the data while maintaining interpretability. The depth of the tree is optimized to minimize overfitting through techniques such as cross-validation or a predetermined maximum depth. The choice of separation criterion, whether based on Gini impurity or information gain, depends on the specific problem. Pruning methods, such as enforcing a minimum number of samples per leaf, are applied to control excessive branching.
モデルのトレーニングは、決定木の再帰的構築を含み得る。ツリーは、身体ランドマークと相関するノードを有する。例えば、left_ankle_phiノード1602は、right_wrist_lwノード1604とright_knee_phiノード1606とに分岐し得、これらの枝(branch)は、右足首動作データの境界ボックスの回転が、右手首の境界ボックスエリアまたは右膝に関連付けられた境界ボックスの回転と組み合わせて、結果として得られるショット着弾位置にどのように影響を与えるかを示すことができる。同様に、決定木は、ショット着弾位置を特徴の組合せと相関させることができる。各ノードにおいて、トレーニングデータは、特徴値に基づいて区分化され、平均二乗誤差またはクロスエントロピーなどの選択された損失関数を最適化する。交差検証を介してハイパーパラメータを微調整することができ、様々なメトリックを使用してモデルのパフォーマンスを評価する。 Training a model may involve the recursive construction of a decision tree. The tree has nodes that correlate with body landmarks. For example, left_ankle_phi node 1602 may branch to right_wrist_lw node 1604 and right_knee_phi node 1606, which may indicate how the rotation of the bounding box of the right ankle motion data, combined with the rotation of the bounding box area of the right wrist or the bounding box associated with the right knee, affects the resulting shot landing location. Similarly, a decision tree may correlate shot landing location with a combination of features. At each node, the training data is partitioned based on feature values to optimize a selected loss function, such as mean squared error or cross-entropy. Hyperparameters can be fine-tuned via cross-validation, and various metrics are used to evaluate the model's performance.
リアルタイム動作中、発射されるショットごとに新しい身体ランドマークデータが利用可能になるに伴い、決定木モデルは連続的に更新される。ライブランドマークデータから導出された各入力特徴ベクトルについて、モデルは決定木をトラバースし、リーフノードに到達する。リーフノードに割り当てられたラベル(肯定的または否定的な結果を示す)は、モデルの予測として利用される。図示の例では、0.80と0.82の値の間の右肩境界ボックス長は、リーフノード1608および1610に示される、シューターのパフォーマンスの予測された結果と一致する。 During real-time operation, the decision tree model is continuously updated as new body landmark data becomes available for each shot fired. For each input feature vector derived from live landmark data, the model traverses the decision tree and arrives at a leaf node. The label assigned to the leaf node (indicating a positive or negative outcome) is used as the model's prediction. In the illustrated example, right shoulder bounding box lengths between values of 0.80 and 0.82 match the predicted outcome of the shooter's performance, shown in leaf nodes 1608 and 1610.
このモデルの文脈では、肯定的な結果は、特定の動作の実行の成功または所望のショット着弾位置の達成を意味する。逆に、否定的な結果は、不正確な動作、所望の姿勢からの逸脱、または中心を外れたショット着弾位置を示す。 In the context of this model, a positive outcome denotes successful execution of a particular movement or achievement of the desired shot landing location. Conversely, a negative outcome indicates an inaccurate movement, deviation from the desired position, or an off-center shot landing location.
モデルのパフォーマンスは、正確さ、精度、再現率、F1スコア、および受信者動作特性(ROC)曲線下面積を含むがこれらに限定されないメトリックを通して厳密に評価される。肯定的および否定的な結果を分類する際のモデルの習熟度を数値化するために混同行列が採用される。 Model performance is rigorously evaluated through metrics including, but not limited to, accuracy, precision, recall, F1 score, and area under the receiver operating characteristic (ROC) curve. A confusion matrix is employed to quantify the model's proficiency in classifying positive and negative outcomes.
図17は、いくつかのノードにおける様々な値を示す注釈付きモデル1700を示す。例えば、射撃ストリング中、右手首1702の境界ボックスのエリアは、0.47、0.51、0.57、0.59、および0.61の値を示す。これは、ショットが発射されていた射撃ストリング中に、シューターが、表示された値によって定義されたエリア内で自分の右手首を動かしたことを示す。右手首1702の下の枝を辿り、値の平均を下回った値については、システムは、左膝1704が特定のパターンで動いたことを識別し、これを良いショットまたは悪いショットのいずれかと相関させて、右手首の動きと左膝の動きとの組合せにおける因果関係を探すことができる。他の特徴についてもモデル内で同様に注釈を付けることができる。注釈付き特徴は、特徴ベクトルで記憶され、異なる特徴がどのように組み合わされて特定のショットパフォーマンスをもたらすかについての分析のために発射された各ショットと相関され得る。 Figure 17 shows an annotated model 1700 showing various values at several nodes. For example, during the firing string, the bounding box area for the right wrist 1702 shows values of 0.47, 0.51, 0.57, 0.59, and 0.61. This indicates that the shooter moved their right wrist within the area defined by the displayed values during the firing string when shots were being fired. Following the branch below the right wrist 1702, for values below the average of the values, the system can identify that the left knee 1704 moved in a specific pattern and correlate this with either good or bad shots, looking for a causal relationship in the combination of right wrist movement and left knee movement. Other features can be similarly annotated in the model. The annotated features can be stored in a feature vector and correlated with each shot fired for analysis of how different features combine to result in a particular shot performance.
図18は、様々な特徴およびそれらの互いの相互関係へのより深いダイブを可能にするプルーニングされたモデル1800を示す。例えば、right_knee_phi1802の特徴(例えば、射撃ストリング中の右膝の動きに関連付けられた境界ボックスの回転)をレビューすると、0.8、0.82、および0.9の値を確認することができる。これらの値が与えられると、right_knee_phi値が0.9の場合、第1の結果ノード1806において1つの結果が得られることが分かる。right_knee_phi1802が0.8または0.82であり、right_shoulder_l境界ボックス長1804が0.09である場合、第2の結果ノード1808および第3の結果ノード1810において2番目の結果が得られることが分かる。場合によっては、第2の結果ノード1808は、悪い射撃パフォーマンスに関連付けられ、第3のノード1810は、良い射撃パフォーマンスに関連付けられる。これらの非線形の因果関係は、機械学習モデルによって決定され得、システムは、1つまたは複数の機械学習アルゴリズムを実行することによって、どの動きがより良い射撃結果をもたらしどの動きがより悪い射撃結果をもたらすかを決定することができるようになる。 FIG. 18 shows a pruned model 1800 that allows for a deeper dive into various features and their interrelationships with one another. For example, reviewing the right_knee_phi 1802 feature (e.g., the bounding box rotation associated with the right knee's movement during the shooting string) reveals values of 0.8, 0.82, and 0.9. Given these values, we can see that a right_knee_phi value of 0.9 results in one outcome at the first result node 1806. We can see that a right_knee_phi 1802 of 0.8 or 0.82 and a right_shoulder_l bounding box length 1804 of 0.09 results in a second outcome at the second result node 1808 and the third result node 1810. In some cases, the second result node 1808 is associated with poor shooting performance, and the third node 1810 is associated with good shooting performance. These nonlinear causal relationships can be determined by machine learning models, allowing the system to determine which movements result in better and worse shooting outcomes by running one or more machine learning algorithms.
場合によっては、分離フォレスト(isolation forest)は、リーフごとのリーフインスタンスが同一となるようにツリーのデータセットを符号化する。ノード分割は、子ターゲット値の不純度を低減するためではなく、ランダムに選択されてもよい。場合によっては、ノードにおけるトレーニングインスタンスが同じターゲット値を有するとき、ノードはリーフである。いくつかの例では、トレーニングデータセット内の希少なインスタンスは、普通(less rare)のインスタンスよりも早くリーフに到達する。いくつかの実施形態によれば、新しい異常なインスタンスは、フォレスト内のすべてのツリーについてツリーの深さに対して短い経路を有し、これにより、異常の識別がより効率的になる。 In some cases, an isolation forest encodes a dataset of trees such that leaf instances per leaf are identical. Node splits may be chosen randomly rather than to reduce impurity in child target values. In some cases, a node is a leaf when all training instances at the node have the same target value. In some examples, rare instances in the training dataset reach the leaf sooner than less rare instances. According to some embodiments, new anomalous instances have a shorter path relative to the tree depth for all trees in the forest, making anomaly identification more efficient.
場合によっては、分類および回帰木(CART)は、結果変数が他の値に基づいてどのように予測されるかを説明する予測モデルである。CARTスタイルの決定木は、各フォークが予測変数の分割であり、各エンドノードが結果変数の予測を含むものである。これは、ターゲット変数に関して均質であるセグメントに特徴空間を区分化するために二分木(binary tree)を構築するものであり、特定の基準に基づいて入力特徴に対してバイナリ分割を行い、ツリー状の構造を作成する再帰的アルゴリズムである。CARTスタイルの決定木は、1つまたは複数の身体ランドマークの動作データに基づいてショットの結果を予測するのに役立ち得る。CARTスタイルの決定木は、マルチカテゴリ分類器(例えば、N>1)であり、分離木(isolation tree)は、単一カテゴリ分類器(例えば、「異常か否か」)である。場合によっては、CARTスタイルの決定木は、M<N個のカテゴリを「異常ではない」と指定し、N-M個を「異常」と指定し、ルートノードまでN-M個の「異常」を有するリーフに到達する枝をプルーニングすることによって、分離木にすることができる。これは、M<N個の「異常ではない」インスタンスで分離木をトレーニングすることに類似し得、これにより、不純度低減分割および不純な「異常ではない」リーフが可能になる。 In some cases, a classification and regression tree (CART) is a predictive model that describes how an outcome variable is predicted based on other values. A CART-style decision tree is one in which each fork is a partition of the predictor variable and each end node contains a prediction for the outcome variable. It is a recursive algorithm that builds a binary tree to partition feature space into segments that are homogeneous with respect to the target variable, performing binary partitions on input features based on specific criteria to create a tree-like structure. CART-style decision trees can be useful for predicting the outcome of a shot based on motion data of one or more body landmarks. CART-style decision trees are multi-category classifiers (e.g., N > 1), while isolation trees are single-category classifiers (e.g., "abnormal or not"). In some cases, a CART-style decision tree can be made into an isolation tree by designating M < N categories as "not abnormal" and N - M as "abnormal," and pruning branches that reach leaves with N - M "abnormal" categories all the way to the root node. This can be analogous to training a separating tree with M<N "non-anomalous" instances, which allows for impurity reduction splits and impure "non-anomalous" leaves.
図19Aは、1つまたは複数のビデオカメラを含む1つまたは複数の撮像デバイスを収容するための可搬式取付構造を提供し得るガントリ1900システムを示す。場合によっては、構造は、1つまたは複数の支柱1902および1つまたは複数のクロスバー1904を含む。ガントリ構造1900は、シューターの周囲に配置されてもよく、場合によっては、シューターのダウンレンジに配置されてもよい。例えば、ガントリ1900では、シューターの上方約1フィート(≒3m)~8フィート(≒2.4m)、かつシューターの前方1フィート(≒3m)~15フィート(≒4.5m)の間の位置にクロスバー1904が配置され得る。いくつかの例では、カメラは、各支柱上およびクロスバー上に配置される。したがって、いくつかの実施形態では、2つ、3つ、またはそれ以上のカメラがガントリ上に配置され、それらのカメラのうちのいくつかはシューターに向けられ、1つまたは複数のカメラは追加的に標的に向けてダウンレンジに向けられ得る。 FIG. 19A shows a gantry 1900 system that can provide a portable mounting structure for housing one or more imaging devices, including one or more video cameras. In some cases, the structure includes one or more support columns 1902 and one or more crossbars 1904. The gantry structure 1900 can be positioned around the shooter or, in some cases, downrange from the shooter. For example, the gantry 1900 can have the crossbar 1904 positioned approximately 1 foot (≒3 m) to 8 feet (≒2.4 m) above the shooter and between 1 foot (≒3 m) and 15 feet (≒4.5 m) in front of the shooter. In some examples, a camera is positioned on each support column and on the crossbar. Thus, in some embodiments, two, three, or more cameras can be positioned on the gantry, with some of the cameras pointed toward the shooter and one or more additional cameras pointed downrange toward the target.
図19B、図19C、および図19Dは、ガントリ1900に取り付けられたカメラによってキャプチャされた様々なビューを示す。第1のカメラ1908は、クロスバー1904または支柱1902に取り付けられ得、シューターの左側面図(図19B)をキャプチャするように配置される。カメラは、シューターの全身をキャプチャするように構成されてもよいし、シューターの上半身と頭部とをキャプチャするように構成されてもよい。 Figures 19B, 19C, and 19D show various views captured by cameras mounted on the gantry 1900. A first camera 1908 may be mounted on the crossbar 1904 or support 1902 and positioned to capture a left side view of the shooter (Figure 19B). The camera may be configured to capture the shooter's entire body or the shooter's upper body and head.
第2のカメラ1910は、クロスバー1904または支柱1902に取り付けられ、シューターの右側面図(図19C)をキャプチャするように構成され得る。カメラは、シューターの全身をキャプチャするように構成されてもよいし、シューターの上半身と頭部とをキャプチャするように構成されてもよい。場合によっては、第1のカメラ1908および第2のカメラ1910は、一方のカメラがシューターの全身をキャプチャし、他方のカメラが、シューターの身体の一部のみをキャプチャするように異なる視野を利用する。 A second camera 1910 may be mounted on the crossbar 1904 or support 1902 and configured to capture a right side view (FIG. 19C) of the shooter. The camera may be configured to capture the shooter's entire body, or the shooter's upper body and head. In some cases, the first camera 1908 and the second camera 1910 utilize different fields of view, such that one camera captures the shooter's entire body and the other camera captures only a portion of the shooter's body.
第3のカメラ1912は、クロスバー1904上に配置され得、シューターの俯瞰図1914(図19D)をキャプチャするように構成され得る。様々な角度からシューターの動きをキャプチャするようにカメラを配置することによって、システムは、各カメラからのビデオデータを相関させ、選択された身体ランドマークの3次元動作データを決定することができる。 A third camera 1912 may be positioned on the crossbar 1904 and configured to capture an overhead view 1914 (FIG. 19D) of the shooter. By positioning the cameras to capture the shooter's movements from various angles, the system can correlate the video data from each camera and determine three-dimensional motion data for selected body landmarks.
第4のカメラは、標的1916(図19E)および標的への着弾1918のビデオデータをキャプチャするように配置され得る。カメラの各々からのビデオデータは、同期および分析されて、いつショットが発射されたかを決定し、発射されたショットを標的上の登録された命中または外れと相関させ得る。 A fourth camera may be positioned to capture video data of the target 1916 (FIG. 19E) and the impact of the shots on the target 1918. The video data from each of the cameras may be synchronized and analyzed to determine when shots were fired and to correlate the fired shots with registered hits or misses on the target.
図20は、本明細書で説明されるシステムおよび方法とともに使用可能なコンピュータプログラムユーザインターフェース2000を示す。例えば、コンピュータプログラムは、1つまたは複数のカメラからビデオデータを受信し、ビデオデータを同期させ、いつショットが発射されたかを決定し、標的上の命中または外れを登録およびスコアリングするように構成され得る。ユーザインターフェース2000は、シューターがビデオキャプチャを開始することを可能にする記録開始ボタン2002を含み得る。場合によっては、射撃ストリングは時間であってもよく、記録開始ボタンはさらにタイマを開始してもよい。ユーザインターフェースは、セッションに関連付けられたタイマ2004をさらに含み得る。ユーザインターフェースは、ユーザに関連付けられたモバイルコンピューティングデバイス上に、または施設に関連付けられたモバイルコンピューティングデバイス上に提示され得る。例えば、ガントリシステムが施設に設置され得、施設に関連付けられたコンピューティングデバイスは、ガントリシステムに接続され、ビデオデータを受信し、本明細書で説明される実施形態のパフォーマンスフィードバックを提供するように構成され得る。 FIG. 20 illustrates a computer program user interface 2000 usable with the systems and methods described herein. For example, the computer program may be configured to receive video data from one or more cameras, synchronize the video data, determine when shots were fired, and register and score hits or misses on the target. The user interface 2000 may include a start record button 2002 that enables the shooter to begin video capture. In some cases, the shooting string may be time, and the start record button may further start a timer. The user interface may further include a timer 2004 associated with the session. The user interface may be presented on a mobile computing device associated with the user or on a mobile computing device associated with the facility. For example, a gantry system may be installed at the facility, and a computing device associated with the facility may be connected to the gantry system and configured to receive video data and provide performance feedback for the embodiments described herein.
ユーザインターフェースは、テレビ、タッチスクリーンディスプレイ、タブレット画面、スマートフォン画面、または任意の他の視覚的コンピュータインターフェースなどの任意の適切なディスプレイ上に提供され得る。図21をさらに参照すると、ユーザインターフェース2000は、例えば、射撃ストリングのビデオおよび射撃ストリング2102中の動きなどの、射撃ストリングに関連付けられた印を表示し得る。ビデオは、再生ウィンドウ内に表示され得、再生、一時停止、音量調節、およびビデオのスクラブのためのコントロール2104を提供する。加えて、異なるビュー2106を選択するためのコントロールがあってもよく、すなわち、コントロールにより、視聴者は、射撃ストリング中に異なるカメラによってキャプチャされたビデオクリップを選択することができ、個々にまたは並列ビューなどの統合ビューで射撃ストリングの異なるビューを見ることができる。これらのビューは、視聴者が同じイベントの異なるビューを同時に見ることができるように同期され得る。 The user interface may be provided on any suitable display, such as a television, touchscreen display, tablet screen, smartphone screen, or any other visual computer interface. Further referring to FIG. 21 , the user interface 2000 may display indicia associated with the shooting string, such as video of the shooting string and movements during the shooting string 2102. The video may be displayed in a playback window, providing controls 2104 for playing, pausing, adjusting the volume, and scrubbing the video. Additionally, there may be controls for selecting different views 2106, i.e., controls that allow the viewer to select video clips captured by different cameras during the shooting string to view different views of the shooting string, either individually or in an integrated view, such as a side-by-side view. These views may be synchronized to allow the viewer to view different views of the same event simultaneously.
ユーザインターフェース2000は、標的2110をさらに示してもよく、システムが標的に登録した命中2112を識別し得る。ユーザインターフェース2000は、ストリングの平均スコア2116とともに、直近のショットのスコア2114をさらに表示してもよい。当然ながら、ユーザの所望に応じて、他の情報が表示されてもよく、これには、トレーニングのヒント、中心を外れたショットの原因となる動作データ、または射撃ストリング中の他のミスが含まれ得る。 The user interface 2000 may further show a target 2110 and may identify hits 2112 registered by the system on the target. The user interface 2000 may further display the score 2114 of the most recent shot, along with the average score 2116 for the string. Of course, other information may be displayed as desired by the user, including training tips, motion data that may account for off-center shots, or other mistakes during the shooting string.
図22は、ユーザが身体ランドマーク選択2202を指定することができるユーザインターフェース2000の追加の図を示す。加えて、ユーザインターフェース2000は、ユーザがY座標の動きまたはX座標の動きの詳細を指定することを可能にする、信号設定2204のための選択を提供する。ユーザインターフェース2000は、ユーザ選択に応答して、その選択に関連付けられた動作データ2206を表示し得る。この種のレビューおよび分析により、シューターは、射撃ストリング中の個々の身体ランドマークの動きを非常に具体的に確認することができ、加えて、レビューのために水平方向の動き、垂直方向の動き、またはその両方を具体的に確認することができる。 FIG. 22 shows an additional view of a user interface 2000 that allows a user to specify a body landmark selection 2202. In addition, the user interface 2000 provides a selection for signal settings 2204, allowing the user to specify details of Y coordinate movement or X coordinate movement. In response to a user selection, the user interface 2000 may display motion data 2206 associated with that selection. This type of review and analysis allows the shooter to very specifically identify the movement of individual body landmarks during the shot string, and additionally, to specifically identify horizontal movement, vertical movement, or both for review.
図23は、説明されるシステムおよび方法の実施形態によって採用される機能(feature)および技術のうちのいくつかを示す。多くの実施形態では、開示されるシステムは、参加者(例えば、シューター)の身体ランドマークを追跡ためにマシンビジョン(例えば、コンピュータビジョン)2302を利用し、また、自動標的スコリング2304を提供するために標的の変化を追跡する。システムおよび方法はまた、ショット時間検出2308を可能にするためにオーディオ処理2306を利用し得、これは、また、コンピュータビジョン技法と組み合わせられ得る。開示されたシステムおよび方法はまた、ポーズ、姿勢、動き、グリップ、トリガープルなどを含む、シューターの位置補正2312を提供するために信号処理2310を利用し得る。本明細書で説明されるシステムおよび方法はまた、中心を外れたショットの因果関係を決定するために機械学習2314を適用し、これには、とりわけ、シューターのポーズ、グリップ2316、トリガープル、スタンス、身体ランドマークの動きに関する分析が含まれ得る。 FIG. 23 illustrates some of the features and techniques employed by embodiments of the described systems and methods. In many embodiments, the disclosed systems utilize machine vision (e.g., computer vision) 2302 to track the body landmarks of a participant (e.g., the shooter) and track target changes to provide automatic target scoring 2304. The systems and methods may also utilize audio processing 2306 to enable shot time detection 2308, which may also be combined with computer vision techniques. The disclosed systems and methods may also utilize signal processing 2310 to provide shooter position correction 2312, including pose, posture, movement, grip, trigger pull, etc. The systems and methods described herein also apply machine learning 2314 to determine the causality of off-center shots, which may include analysis of the shooter's pose, grip 2316, trigger pull, stance, and body landmark movement, among other factors.
図24は、本明細書で説明される実施形態による方法2400を示す。システムは、ビデオデータおよび任意選択でオーディオデータを受信し得る。システムは、標的のビデオデータに対する画像処理を通じてショットを検出し2402、スコアリングするように構成され得る。システムは、ビデオデータを処理して、発射されたショットおよびシューターのポーズ分析2404を決定し得る。加えて、システムは、ショット検出のためにオーディオデータを分析し得る2406。 Figure 24 shows a method 2400 according to an embodiment described herein. The system may receive video data and optionally audio data. The system may be configured to detect 2402 and score shots through image processing on the video data of the target. The system may process the video data to determine fired shots and a shooter pose analysis 2404. Additionally, the system may analyze audio data for shot detection 2406.
ショット検出2402は、標的内のショットの座標(例えばx,y座標)を提供する2408。シューターのポーズ分析2404は、射撃プロセス中の身体ランドマークの座標(例えばx,y座標および任意選択でz座標)を提供する2410。オーディオショット検出2406は、ショットの正確な時間を提供する2412。射撃分析は、ショットおよび身体データを受信する1つまたは複数の機械学習アルゴリズムを含み得、機械学習アルゴリズムを通して、小火器および弾薬の組合せでのシューターのショットパフォーマンスの因果を検出および予測し、これは、射撃分析2414の実施と呼ばれることがある。例えば、システムの実施形態は、とりわけ、セッションスコア2416、射撃位置推奨2418、射撃ミス、およびグリップ分析2420のうちの1つまたは複数を生成し得る。 Shot detection 2402 provides 2408 coordinates (e.g., x, y coordinates) of the shot within the target. Shooter pose analysis 2404 provides 2410 coordinates (e.g., x, y coordinates and optionally z coordinates) of body landmarks during the shooting process. Audio shot detection 2406 provides 2412 the precise time of the shot. Shooting analysis may include one or more machine learning algorithms that receive the shot and body data and, through the machine learning algorithms, detect and predict the causality of the shooter's shot performance with the firearm and ammunition combination, which may be referred to as performing shooting analysis 2414. For example, an embodiment of the system may generate one or more of a session score 2416, shooting position recommendations 2418, shot misses, and grip analysis 2420, among others.
図25は、マシンビジョンおよび機械学習を使用して、参加者の身体ランドマークを追跡し、改善のための推奨を生成するためのサンプルプロセス2500のフローを示す。本明細書で述べるように、本明細書で説明されるシステムおよび方法は、再現性および正確な身体運動学から利益を得る、スポーツイベントなどのあらゆる競技に使用することができる。いくつかのそのような競技には、射撃に加えて、アーチェリー、ゴルフ、ボウリング、ダーツ、ランニング、水泳、棒高跳び、フットボール、野球、バスケットボール、ホッケー、および多くの他の種類のスポーツが含まれる。いずれにしても、システムは、参加者の身体ランドマークを追跡し、パフォーマンスを向上させるために身体動作を変える方法を決定するように構成される。 Figure 25 shows a flow diagram of a sample process 2500 for using machine vision and machine learning to track a participant's body landmarks and generate recommendations for improvement. As noted herein, the systems and methods described herein can be used in any competition, such as a sporting event, that benefits from repeatability and accurate body kinematics. In addition to shooting, some such competitions include archery, golf, bowling, darts, running, swimming, pole vaulting, football, baseball, basketball, hockey, and many other types of sports. In any case, the system is configured to track a participant's body landmarks and determine how to modify their body movements to improve performance.
ブロック2502において、システムは、参加者のビデオデータを受信する。これは、単一の画像キャプチャデバイス、または2つの画像キャプチャデバイス、または3つ以上の画像キャプチャデバイスから取得され得る。画像キャプチャデバイスは、参加者の連続画像をキャプチャするように構成された任意の適切な撮像デバイスであり得、モバイルコンピューティングデバイスに通常組み込まれているカメラを含む、任意の消費者向けまたはプロ仕様のビデオカメラを含み得る。 At block 2502, the system receives video data of the participants, which may be obtained from a single image capture device, or two image capture devices, or three or more image capture devices. The image capture devices may be any suitable imaging devices configured to capture continuous images of the participants, and may include any consumer or professional video camera, including cameras typically built into mobile computing devices.
ブロック2504において、システムは、参加者の1つまたは複数の身体ランドマークを決定する。身体ランドマークは、任意の関節、身体部分、四肢、または関節、四肢、もしくは身体部分に関連付けられた位置に関連付けられ得る。場合によっては、システムは、1つまたは複数の身体ランドマークに基づいてワイヤフレームを生成し、ワイヤフレームモデルを生成する際にすべての身体ランドマークは使用しない場合がある。 At block 2504, the system determines one or more body landmarks for the participant. A body landmark may be associated with any joint, body part, limb, or location associated with a joint, limb, or body part. In some cases, the system generates a wireframe model based on one or more body landmarks and may not use all body landmarks in generating the wireframe model.
ブロック2506において、活動のパフォーマンス中身体ランドマークを追跡して動作データを生成する。非限定的な例として、ゴルフクラブのスイング中追跡され得るゴルファーの手、手首、腕、頭部、肩、胴体、ウェスト、膝、足首、および足に対して身体ランドマークが作成され得る。 In block 2506, body landmarks are tracked during performance of the activity to generate motion data. As a non-limiting example, body landmarks may be created for a golfer's hands, wrists, arms, head, shoulders, torso, waist, knees, ankles, and feet, which may be tracked during a golf club swing.
ブロック2508において、スコアが決定され、パフォーマンスに関連付けられる。説明したように、発射体を伴う活動では、スコアは、発射体の軌道または到達地点と関連付けられ得る。ゴルフの場合、例えば、スコアは、標的までの距離、方向、近さ、または参加者の平均もしくは過去のパフォーマンスに関連付けられたメトリックに基づき得る。要するに、パフォーマンスの結果の品質を評価するために任意のメトリックが使用され得る。 At block 2508, a score is determined and associated with the performance. As described, in activities involving a projectile, the score may be associated with the trajectory or destination of the projectile. In the case of golf, for example, the score may be based on distance, direction, or proximity to the target, or a metric associated with the participant's average or past performance. In short, any metric may be used to evaluate the quality of the performance results.
ブロック2510において、スコアがパフォーマンスに関連付けられる。すなわち、経時的なパフォーマンスの傾向を決定するか、またはある実行者を別の実行者と比較するために、パフォーマンスと決定されたスコアとを結び付け、それを後の分析のために記憶し得る。 In block 2510, the score is associated with the performance. That is, the performance may be linked to the determined score and stored for later analysis to determine trends in performance over time or to compare one performer to another.
ブロック2512において、システムは、結果を改善するために後続のパフォーマンスにおける動きを変えるための推奨を生成する。場合によっては、推奨は、小火器のグリップ、ゴルフクラブ、バット、スティックなどを含む手に関与している可能性がある。推奨はまた、重量配分の変更または移動を含み得る。推奨は、手、頭部、肩、身体、脚、足、または他の身体部分の動きを含み得る。多くの場合、推奨は、後続の試行におけるパフォーマンスのスコアを改善するために、1つまたは複数の身体ランドマークの動きを変えるための提案を含む。 In block 2512, the system generates recommendations for altering movements in subsequent performances to improve results. In some cases, the recommendations may involve the hands, including gripping a firearm, golf club, bat, stick, etc. The recommendations may also include changes or shifts in weight distribution. The recommendations may include movements of the hands, head, shoulders, body, legs, feet, or other body parts. Often, the recommendations include suggestions for altering the movement of one or more body landmarks to improve the performance score in subsequent attempts.
音響小火器シグネチャAcoustic Small Arms Signature
いくつかの実施形態によれば、消費者向けのオーディオ記録機器(例えば、iPhone(登録商標)、タブレット、電話、ビデオカメラ)を使用して、所与の環境において特定の弾薬を発射するシューターの小火器の音響音のシグネチャを迅速に計算することができるシステムが説明される。場合によっては、システムは、入力オーディオまたはオーディオ/視覚ファイルを受信し、キャプチャされた記録内の音に基づいて、小火器のシグネチャを計算することができる。記録は、限定はしないが、セキュリティカメラ、交通カメラ、ビデオカメラ、テレビカメラ、スマートフォンまたはタブレットなどのモバイルデバイスレコーダ、ならびに他のキャプチャデバイスなど、任意の適切なオーディオおよび/またはビデオキャプチャデバイスによってキャプチャされ得る。場合によっては、キャプチャデバイスは、容易に入手可能な消費者向けの記録デバイスである。音響シグネチャは、発砲された小火器からの音響シグネチャに基づいて、小火器の型、モデル、サイレンサー、弾薬の種類、弾薬の製造元、および他の特性を決定することをさらに含み得る。 According to some embodiments, a system is described that can quickly calculate the acoustic sound signature of a shooter's firearm firing a specific ammunition in a given environment using consumer audio recording equipment (e.g., iPhone®, tablet, phone, video camera). In some cases, the system can receive an input audio or audio/visual file and calculate the firearm signature based on the sounds in the captured recording. The recording can be captured by any suitable audio and/or video capture device, such as, but not limited to, a security camera, a traffic camera, a video camera, a television camera, a mobile device recorder such as a smartphone or tablet, and other capture devices. In some cases, the capture device is a readily available consumer recording device. The acoustic signature can further include determining the make, model, silencer, ammunition type, ammunition manufacturer, and other characteristics of the firearm based on the acoustic signature from the fired firearm.
この能力を使用して、シューターのショットを検出し、典型的な射撃練習場の他のシューターのショットから分離することができ、これは、自動スコアリングなどに有用であり得る。この能力のバージョンは、録音から特定の小火器および弾薬を識別するために使用され得る。 This capability can be used to detect and separate a shooter's shots from those of other shooters in a typical shooting range, which may be useful for automated scoring, etc. A version of this capability could be used to identify specific firearms and ammunition from recordings.
場合によっては、説明される解決策は、適度な量のトレーニングデータのみを使用して、携帯電話などの単一の消費者記録デバイス上でほぼリアルタイムで動作する。本明細書で使用される場合、「リアルタイム」または「ほぼリアルタイム」という用語は、広義の用語であり、本開示の文脈では、入力データを受信することと、入力データを処理することと、人間が待ち時間をほとんどまたは全く知覚せずにデータ分析の結果を出力することとに関する。言い換えると、分析されたデータを1秒未満内に出力する、本明細書に説明されるようなシステムは、ほぼリアルタイムと見なされる。リアルタイムまたはほぼリアルタイムで動作するシステムは、方法が適切な弾薬を発射する特定の小火器を特徴付けるために使用することができる機械学習のための、または少なくともトレーニングモデルでの計算量を制限し得る。さらに、ML技法を使用しない方法があり、これは、多数のサンプルに対してモデルを適応させない(「トレーニングしない」)ことを意味する。これらの他の方法のうちのいくつかは、良好に機能し得るが、同時に、例えば、「一致」を求めてシグネチャの大きな辞書を検索することなど、より計算集約的であったり、または計算負荷をショット識別時間にシフトしたりし得る。 In some cases, the described solutions operate in near real time on a single consumer recording device, such as a mobile phone, using only a modest amount of training data. As used herein, the terms "real time" or "near real time" are broad terms that, in the context of this disclosure, relate to receiving input data, processing the input data, and outputting the results of data analysis with little or no human-perceived latency. In other words, a system such as that described herein that outputs analyzed data within less than one second is considered near real time. A system that operates in real time or near real time may limit the amount of computation for machine learning, or at least training models, that the method can use to characterize a particular firearm that fires the appropriate ammunition. Additionally, there are methods that do not use ML techniques, meaning that they do not adapt ("train") the model to a large number of samples. Some of these other methods may perform well but may also be more computationally intensive or shift the computational load to shot identification time, for example, by searching a large dictionary of signatures for "matches."
銃声を分析するために人工知能(AI)を利用する従来の手法は、小火器および弾薬の種類によって射撃音を分類するためにディープニューラルネットワーク(DNN)を使用するという単純な手法を提示している。従来の手法では、DNNは、各小火器および適切な弾薬の種類の多数の射撃音で事前トレーニングされる必要があった。これらの音は、同じ録音デバイス上でキャプチャされたものでも同じ射撃条件でキャプチャされたものでもない可能性がある。これにより、環境および記録デバイスにかかわらず、小火器および弾薬の種類を分類するためのトレーニングされたDNNインスタンスの汎化能力が潜在的に向上する。しかしながら、それは、任意の記録デバイスを使用して任意の環境で特定の小火器および弾薬の種類の射撃音を識別する能力を低下させる。 Previous approaches that utilize artificial intelligence (AI) to analyze gunfire present a simple approach of using deep neural networks (DNNs) to classify gunfire sounds by firearm and ammunition type. In previous approaches, the DNNs had to be pre-trained with numerous gunfire sounds for each firearm and appropriate ammunition type. These sounds may not have been captured on the same recording device or under the same firing conditions. This potentially improves the generalization ability of the trained DNN instance to classify firearm and ammunition types regardless of the environment and recording device. However, it reduces the ability to identify gunfire sounds for a specific firearm and ammunition type in any environment using any recording device.
従来の手法は、分類に対する二段階の手法を説明している。例えば、いくつかの従来の手法は、比較的一般的な事前トレーニングされたDNNインスタンスの事前トレーニングされたインスタンスを近似分類器(予測器)として使用し、分類器出力に対して追加のトレーニング可能なステップを使用してDNN予測を改善し得る。場合によっては、DNNは、射撃音の時変スペクトログラムの有限長の時間セグメントを画像として扱い、各小火器と弾薬のペアのプールされた画像を、他の小火器と弾薬のペアのプールされた画像と区別する。この手法は、異なる環境または異なる弾薬からの音を分類することに特に長けていない一般的なDNNインスタンスの使用を含む、いくつかの欠点を有する。 Previous techniques have described a two-stage approach to classification. For example, some previous techniques use a pre-trained instance of a relatively general pre-trained DNN instance as an approximate classifier (predictor), and may use an additional trainable step on the classifier output to improve the DNN prediction. In some cases, the DNN treats finite-length time segments of the time-varying spectrogram of gunfire sounds as images, distinguishing pooled images of each firearm and ammunition pair from pooled images of other firearm and ammunition pairs. This approach has several drawbacks, including the use of a general DNN instance that is not particularly adept at classifying sounds from different environments or different ammunition.
いくつかの実施形態によれば、説明されるシステムは、時変スペクトログラムの時間セグメントから作成された画像にトレーニング可能な重み付けマスクを重ね合わせ、特定のデバイスを用いて特定の環境で記録されたシューターの小火器および弾薬の射撃音のわずかなインスタンスを使用してマスクを調整するための単純なトレーニング方法を提供する。重み付けマスクのみをトレーニングすることは、DNN自体をトレーニングするよりもはるかに計算集約的ではない。したがって、いくつかの実施形態によれば、DNNは、トレーニングされなくてもよいし、従来の方法よりもはるかに低い程度にトレーニングされてもよく、重み付けマスクは、トレーニングを受ける。この手法にはいくつかの利点がある。 According to some embodiments, the described system superimposes a trainable weighting mask onto an image created from a time segment of a time-varying spectrogram, providing a simple training method for adjusting the mask using a small number of instances of a shooter's small arms and ammunition fire recorded in a particular environment with a particular device. Training only the weighting mask is much less computationally intensive than training the DNN itself. Thus, according to some embodiments, the DNN may not be trained or may be trained to a much lesser extent than traditional methods, while the weighting mask is trained. This approach has several advantages.
例えば、抽象的に言えば、調整されたマスクは、小火器、弾薬、環境および記録デバイスの組合せに対するシグネチャとして見なされ得る。このシグネチャは、要素のその組合せシグネチャのカタログを検索するために使用されるのではなく、所与の記録デバイスを使用した特定の環境での小火器および弾薬に対するDNNの分類性能を向上させるように、スペクトログラム入力を調整するために使用される。次いで、強化されたDNN分類を使用して、シューターのショットの検出および他のシューターのショットとの区別を改善することができる。 For example, abstractly, the adjusted mask can be viewed as a signature for the combination of firearm, ammunition, environment, and recording device. This signature is not used to search a catalog of that combination signature of elements, but rather is used to adjust the spectrogram input to improve the DNN's classification performance for firearms and ammunition in a particular environment using a given recording device. The enhanced DNN classification can then be used to improve detection of the shooter's shots and distinction from those of other shooters.
この手法は、必要とされる計算の強度において有意な利点を示し、はるかに高速な分析が可能で、多くの異なる環境において多数の小火器に使用することができる。例えば、特定のシューターのためのトレーニングデータセットは小さいので、確率的勾配降下法を使用してオンラインで、または勾配降下法を使用してオフラインで重み付けマスクを更新することができる。言い換えると、トレーニングデータは、所与の環境において特定の小火器と弾薬との組合せを使用する特定のシューターのためのものであり得、異なる環境において多数のシューターからデータ点を集約する場合と比べて、はるかに小さいデータセットとなる。 This approach offers significant advantages in the computational intensity required, allowing for much faster analysis and can be used for a large number of firearms in many different environments. For example, the training data set for a particular shooter is small, allowing the weighting mask to be updated online using stochastic gradient descent or offline using gradient descent. In other words, the training data can be for a specific shooter using a specific firearm and ammunition combination in a given environment, resulting in a much smaller data set than would be possible if data points were aggregated from a large number of shooters in different environments.
加えて、両方のアルゴリズムは、重み付け行列更新の各反復においてDNNによって計算された関数の勾配を推定し得る。これは計算上法外なわけではないが、勾配の符号または粗く量子化されたバージョンだけで十分であることが判明する場合がある。その単純化は、主に、DNNが各入力において単調増加関数を計算するか単調減少関数を計算するかに依存する。DNNによって計算された関数の特性を調査する文献は多く存在する。しかしながら、この質問に対する簡単な答えを見つけることは容易ではない。いくつかの事例では、DNNは、内部層のすべてが線形またはアフィン活性化関数を使用し、出力層が単調非減少活性化関数を使用する場合にそうなる。 In addition, both algorithms may estimate the gradient of the function computed by the DNN at each iteration of the weight matrix update. While this is not computationally prohibitive, it may turn out that just the sign of the gradient or a coarsely quantized version of it is sufficient. The simplification mainly depends on whether the DNN computes a monotonically increasing or monotonically decreasing function at each input. There is a large literature investigating the properties of functions computed by DNNs. However, finding a simple answer to this question is not easy. In some cases, a DNN does this when all of its internal layers use linear or affine activation functions and the output layer uses a monotonically non-decreasing activation function.
したがって、いくつかの実施形態では、開示されるシステムは、特定の記録デバイスを使用した特定の環境での小火器と弾薬のペアを迅速にフィンガープリントすることができる。言い換えると、本明細書で説明されるシステムおよび方法は、ある環境での小火器および弾薬の組合せの音響シグネチャを非常に迅速に決定することができる。これにより、システムは、分析された音響シグネチャを他の小火器および弾薬の組合せから区別することができる。これは、例えば、自動標的スコアリングを実行するシステムと組み合わせて、あるシューターを別のシューターと区別することが重要である混雑した射撃練習場において特に有用であり得る。小火器と弾薬のペアを区別することができることによって、スコアリングシステムは、特定の小火器と弾薬の組合せが利用され、それが標的への命中と時間的に一致する可能性があることを決定することができるので、誤検出および外れたショットの数が減少し得る。いくつかの例では、システムは、モバイルコンピューティングデバイス上で実行され、射撃練習場で使用され得る。モバイルコンピューティングデバイスが、関心のあるシューターの一般的な方向に向けられたマイクロフォンを有する場合、関心のあるシューターによって発射されたショットは、概して、関心のあるシューターによって発射されたショットによって支配されるオーディオファイルを有し、これは、発射されたショットが関心のあるシューターからのものであるかどうかを決定するのを助け得る。場合によっては、記録デバイス(例えば、モバイルコンピューティングデバイス)は、モバイルコンピューティングデバイスが自動標的スコアリングなどのために標的に向けられたカメラを有する場合など、ダウンレンジに向けられたマイクロフォンを有し、その場合、関心のあるシューターによって発射されたショットの音量は、その練習場にいる他のシューターと区別するのがより困難になる音量である。これらの場合、説明される実施形態は、機械学習アルゴリズムのトレーニング、または重み付けマスクのトレーニングを使用して、意図されたシューターによって発射されたショットを、その練習場にいる他のすべてのシューターから迅速に区別し得る。 Thus, in some embodiments, the disclosed system can quickly fingerprint a firearm and ammunition pair in a particular environment using a specific recording device. In other words, the systems and methods described herein can very quickly determine the acoustic signature of a firearm and ammunition combination in an environment. This allows the system to distinguish the analyzed acoustic signature from other firearm and ammunition combinations. This can be particularly useful, for example, in crowded shooting ranges where distinguishing one shooter from another is important, in combination with a system performing automated target scoring. By being able to distinguish between firearm and ammunition pairs, the scoring system can determine that a particular firearm and ammunition combination is utilized and that it is likely to coincide in time with a hit on the target, thereby reducing the number of false positives and missed shots. In some examples, the system can be executed on a mobile computing device and used at a shooting range. If the mobile computing device has a microphone pointed in the general direction of the shooter of interest, shots fired by the shooter of interest will generally have an audio file dominated by shots fired by the shooter of interest, which may help determine whether the shots fired are from the shooter of interest. In some cases, the recording device (e.g., the mobile computing device) has a microphone pointed downrange, such as when the mobile computing device has a camera pointed at the target for automatic target scoring, in which case the volume of shots fired by the shooter of interest will be more difficult to distinguish from other shooters at the range. In these cases, the described embodiments may use training of machine learning algorithms or training of weight masks to quickly distinguish shots fired by the intended shooter from all other shooters at the range.
場合によっては、分類器は、時間周波数スペクトログラムの形態の特徴抽出に依存する。メル周波数ケプストラム係数(MFCC)ベクトルは、スペクトログラムの周波数表現のための代替の生のパワースペクトル密度ベクトル(PSD)として使用することができる。当初、メル周波数ケプストラム(MFC)は、音声処理、および音声波形に情報が符号化されると考えられる方法のために開発された。場合によっては、MFCは、小火器フィンガープリント目的に適用され得る。本開示を通して使用されるように、「小火器フィンガープリント」は、特定の小火器および弾薬の組合せを識別する、音響シグネチャ、または特定の音もしくは音の画像を指すために使用される。 In some cases, classifiers rely on feature extraction in the form of time-frequency spectrograms. Mel-frequency cepstrum coefficient (MFCC) vectors can be used as an alternative raw power spectral density vector (PSD) for the frequency representation of a spectrogram. Mel-frequency cepstrum (MFC) was originally developed for audio processing and the way information is thought to be encoded in audio waveforms. In some cases, MFC can be applied for firearm fingerprinting purposes. As used throughout this disclosure, "firearm fingerprint" is used to refer to an acoustic signature, or a specific sound or sound image, that identifies a particular firearm and ammunition combination.
場合によっては、MFCCは、限定はしないが、i)信号セグメントをウィンドウ処理し、信号セグメントの高速フーリエ変換(FFT)を計算することと、ii)線形FFT係数をMEL周波数フィルタバンク係数に組み合わせることと、iii)それらの係数の対数をとることと、iv)対数MELフィルタバンク係数の離散コサイン変換(DCT)を計算することとを含む、一連のステップを実行することによって生成され得る。信号セグメントのFFTは、一般に、適用された周波数におけるピークを生じるとともに、典型的にはピーク周波数の両側にあるサイドローブと呼ばれる他のピークを生じる。DCTは、場合によっては、異なる周波数で振動するコサイン関数の和の観点から、データ点の有限シーケンスを表す。場合によっては、開示されるステップよりも少ないまたは多いステップが、射撃音に基づいて小火器フィンガープリントに到達するために実装され得る。例えば、場合によっては、上述のステップi)、ii)、およびiii)のみが射撃音に使用されてもよい。 In some cases, the MFCC may be generated by performing a series of steps, including, but not limited to, i) windowing a signal segment and computing a Fast Fourier Transform (FFT) of the signal segment; ii) combining the linear FFT coefficients with MEL frequency filter bank coefficients; iii) taking the logarithm of those coefficients; and iv) computing a Discrete Cosine Transform (DCT) of the logarithmic MEL filter bank coefficients. The FFT of a signal segment generally produces a peak at the applied frequency, as well as other peaks, typically called sidelobes, on either side of the peak frequency. The DCT optionally represents a finite sequence of data points in terms of a sum of cosine functions oscillating at different frequencies. In some cases, fewer or more steps than those disclosed may be implemented to arrive at a firearm fingerprint based on gunfire sounds. For example, in some cases, only steps i), ii), and iii) above may be used for gunfire sounds.
いくつかの実施形態によれば、MFCCまたはPSD係数は、時間周波数スペクトログラムを数個の独立したカテゴリに分類するようにトレーニングされたDNNへの入力として使用され得る。例えば、MFCCおよび/またはPSD係数は、提案のように2つのカテゴリ、または(小火器、弾薬)ペアに対応する数個のカテゴリ、またはk>2個の属性のタプルに対応するより大きい数のカテゴリを入力し得る。 According to some embodiments, the MFCC or PSD coefficients may be used as input to a DNN trained to classify the time-frequency spectrogram into several independent categories. For example, the MFCC and/or PSD coefficients may input two categories as proposed, or several categories corresponding to pairs (firearms, ammunition), or a larger number of categories corresponding to tuples of k>2 attributes.
場合によっては、DNNは、すべての分類器出力の中で最大分類器出力が表すクラスが何であれその「近傍に」新しい射撃音を配置し得る。例えば、射撃音は、k-NNアルゴリズムなどの最近傍手法を通して最初に分類され得る。後続の分析により射撃音がさらに分類され得る。 In some cases, the DNN may place a new gunshot sound "near" whatever class is represented by the largest classifier output among all classifier outputs. For example, a gunshot sound may initially be classified through a nearest neighbor technique, such as a k-NN algorithm. Subsequent analysis may further classify the gunshot sound.
DNNの内部層は、入力の属性の異なるセットを表し得る。これらも同様に、射撃音の分類およびトレーニングに使用され得る。 The inner layers of the DNN can represent different sets of input attributes. These can also be used for gunfire sound classification and training.
最適化理論の観点から、DNNをトレーニングすることは、本質的に、複数の局所最適解を有する表面を定義し、DNNは、新しい入力を最も適切な局所最適解に導くと考えることができる。いくつかの実施形態では、1つまたは複数のトレーニング可能な層を事前トレーニングされたDNNの後に置くことは、射撃音のためのより最適な属性の異なるセットを抽出することと考えられ得る。 From an optimization theory perspective, training a DNN can be thought of as essentially defining a surface with multiple local optima, and the DNN directing new inputs to the most appropriate local optima. In some embodiments, placing one or more trainable layers after a pre-trained DNN can be thought of as extracting a different set of more optimal attributes for gunfire sounds.
場合によっては、重み付け係数を含むことがあるトレーニング可能な層を事前トレーニングされたDNNの前に置くことは、関心のあるシューターのショットが、事前トレーニングされたDNNがすべての分類器出力の中で最大分類器出力が表すクラスが何であれその「近傍に」配置するすべてのショットの最も肯定的な例となるように事前トレーニングされたDNNを調整することと考えられ得る。場合によっては、決定閾値は、いくつかの有用な基準のためにトレーニング可能な入力層または別のテストデータセットを調整するために使用されるトレーニングデータセットのための混同行列を最適化するように調整され得る。 In some cases, placing a trainable layer, possibly including weighting coefficients, in front of the pre-trained DNN can be thought of as tuning the pre-trained DNN so that the shooter's shot of interest is the most positive example of all shots that the pre-trained DNN places "near" whatever class the maximum classifier output represents among all classifier outputs. In some cases, the decision threshold can be tuned to optimize a confusion matrix for the training dataset used to tune the trainable input layer or another test dataset for some useful criterion.
いくつかの実施形態によれば、ショットオーディオのウィンドウ処理されたセグメントのFFTは、O(n log n)時間で計算することができる。MFCCを計算することは、同じ時間オーダーを有するが、2つのO(n log n)演算を計算することを含む。場合によっては、MFCCは、FFTよりも大幅に優れているとは限らず、省略されることがある。 According to some embodiments, the FFT of a windowed segment of shot audio can be computed in O(n log n) time. Computing the MFCC has the same time order, but involves computing two O(n log n) operations. In some cases, the MFCC is not significantly better than the FFT and may be omitted.
いくつかの実施形態によれば、MEL周波数対数スペクトル(ケプストラムを得るための離散コサイン変換(DCT)は省略)は、O(n)という余分な計算コストだけで、生のFFTよりも改善されている。したがって、いくつかの例では、ケプストラムが得られるDCTではなく、MEL周波数対数スペクトルが使用される。 According to some embodiments, the MEL frequency log spectrum (omitting the discrete cosine transform (DCT) to obtain the cepstrum) provides an improvement over the raw FFT, with only an extra computational cost of O(n). Therefore, in some examples, the MEL frequency log spectrum is used rather than the DCT to obtain the cepstrum.
一般に、FFTのような(畳み込みニューラルネットワーク(CNN)の層から構成される)DNNによって計算される関数を計算するための高速な形式はない。FFTは、本質的に任意のCNNの構成には一般に存在しないFFTカーネルの規則性を利用する。しかしながら、本明細書で説明される例は、入力時間信号のFFTがあり、CNNから構成される事前トレーニングされたDNNは、周波数領域において実装され得る。 In general, there is no fast form for computing functions computed by DNNs (composed of layers of convolutional neural networks (CNNs)), such as FFTs. FFTs exploit regularities in the FFT kernel that are inherently absent in any CNN architecture. However, the examples described herein take an FFT of the input time signal, and the pre-trained DNNs composed of CNNs can be implemented in the frequency domain.
非限定的な例として、以下のDNNベースの迅速にトレーニング可能なカテゴリ認識器が、小火器と弾薬との組合せの音響シグネチャを迅速に決定するために実装され得る。 As a non-limiting example, the following DNN-based rapidly trainable category recognizer can be implemented to rapidly determine the acoustic signature of a firearm and ammunition combination:
f:RM→RKは、トレーニングされたディープニューラルネットによる、実数値のM次元入力ベクトルからクラス確率のK次元ベクトルへのアナログ変換を表すものとする。最終的な離散的出力マッピングΨ:RK→N≦Kは、K個のクラスの中で最も可能性の高いものを選択する。 Let f:RM→RK represent the analog transformation of a real-valued M-dimensional input vector into a K-dimensional vector of class probabilities by a trained deep neural network. The final discrete output mapping Ψ:RK→N≦K selects the most likely of the K classes.
システムは、トレーニングされたDNNをクラスkのための強化されたバイナリ分類器に拡張するように構成され得る。場合によっては、システムは、迅速にトレーニング可能な入力段を、重み付け行列Wと入力ベクトルxとのアダマール積
Γ:RK×N≦K→Rは、クラスkの単一のクラス確率を提供する。拡張されたDNNは、以下の関数を実装し得る: Γ: RK×N≦K→R provides a single class probability for class k. An extended DNN may implement the following function:
同じクラスkのすべてのインスタンスである追加の入力ベクトルのセット
ここで、0<α<1は、ζがWに与える相対的な寄与を重み付けする適応定数である。ζ内のすべてのベクトルに対して、ターゲット値はd(n)=1.0である。反復は、ζ内の各zについて収束するまで行われる。ここで、relu[...]は、引数行列(argument matrix)の要素ごとのrelu()を示す。 where 0<α<1 is an adaptive constant that weights the relative contribution of ζ to W. For all vectors in ζ, the target value is d(n) = 1.0. Iterations are performed for each z in ζ until convergence. Here, relu[...] denotes element-wise relu() of the argument matrix.
小火器の発砲は、例えば、チャンバ内でガスが膨張し、銃身を通って出ることで生じる銃口爆風、および発射体によって発生する弾道衝撃波などの複数の音響事象を引き起こし、これらは、ほとんどの場合、超音速であるが、場合によっては亜音速であることもある。音響事象は、小火器シグネチャを生成する変数の結果であり、とりわけ、小火器の種類、型、モデル、銃身の長さ、弾薬の種類、火薬の量と種類(identity)、発射体の重量、ならびに発射体の形状を含み得る。 Firing a small arms fire produces multiple acoustic events, such as the muzzle blast caused by the expansion of gases in the chamber and exiting through the barrel, and the ballistic shock wave generated by the projectile, which are often supersonic but may also be subsonic in some cases. The acoustic events are the result of variables that produce the firearm signature, which may include, among others, the type, make, and model of the firearm, barrel length, ammunition type, powder quantity and identity, projectile weight, and projectile shape.
図26は、いくつかの実施形態による、小火器を特定のシューターと相関させるためのサンプルプロセス2600を示す。シューターが練習のために射撃練習場を訪れるとき、その練習場では、他のシューターも小火器を発砲している可能性がある。場合によっては、混在した練習場には、10人、20人、または30人以上のシューターが全員同時に射撃を行っている可能性があり得る。音響システムが、小火器の発砲音が錯綜する中で、関心のあるシューターによって発射されたショットを認識(register)することは非常に困難であり得る。場合によっては、システムは、関心のあるシューターの小火器と、その練習場にいる他のシューターの小火器とを区別するように構成される。 Figure 26 shows a sample process 2600 for correlating firearms with a particular shooter, according to some embodiments. When a shooter visits a shooting range to practice, there may be other shooters at the range firing firearms as well. In some cases, a mixed range may have 10, 20, or even 30 or more shooters all firing at the same time. It may be very difficult for an acoustic system to register shots fired by a shooter of interest amid the clutter of firearm fire. In some cases, the system is configured to distinguish between the firearm of the shooter of interest and the firearms of other shooters at the range.
例えば、ブロック2602において、システムは、シューターのビデオデータを受信し、それにはオーディオデータも含まれている。これは、例えば、マルチカメラシステム、専用マイクロフォン、またはモバイルコンピューティングデバイスなどの消費者向けのオーディオ/ビデオキャプチャデバイスを介して受信され得る。 For example, in block 2602, the system receives video data of the shooter, which also includes audio data. This may be received, for example, via a multi-camera system, a dedicated microphone, or a consumer-grade audio/video capture device such as a mobile computing device.
ブロック2604において、システムは、シューターの身体ランドマークを決定し得る。 In block 2604, the system may determine the shooter's body landmarks.
ブロック2606において、システムは、シューターがショットを発射する間、1つまたは複数の身体ランドマークを追跡し、ショット中の身体ランドマークに関連付けられた動作データを生成し得る。 In block 2606, the system may track one or more body landmarks while the shooter fires the shot and generate motion data associated with the body landmarks during the shot.
ブロック2608において、システムは、オーディオデータを動作データと相関させて、ショットが関心のあるシューターによって発射されたことを決定する。場合によっては、システムは、小火器の発砲を示すオーディオデータを受信し得、これは、音波ファイル内のスパイクとして表され得る。これは、小火器からの反動がシューターの手を変位させたことを示し、したがって、ショットが発射されたことを示す、シューターの手首などの動作データと相関関係があり得る。場合によっては、システムは、シューターの小火器をその練習場の他の小火器と区別するようにトレーニングされる。この場合、システムは、関心のあるシューターから発射されたショットと、その練習場にいる他のシューターから発射されたショットとを区別するようにトレーニングされ得る。 In block 2608, the system correlates the audio data with the motion data to determine that a shot was fired by the shooter of interest. In some cases, the system may receive audio data indicative of a firearm being fired, which may be represented as a spike in the sound wave file. This may be correlated with motion data, such as the shooter's wrist, indicating that recoil from the firearm has displaced the shooter's hand and therefore that a shot has been fired. In some cases, the system is trained to distinguish the shooter's firearm from other firearms at the range. In this case, the system may be trained to distinguish between shots fired by the shooter of interest and shots fired by other shooters at the range.
ブロック2610において、システムは、ショットのスコアを決定し、スコアを、スコアにつながる動作データに関連付けることができる。 In block 2610, the system can determine a score for the shot and associate the score with the action data that led to the score.
ブロック2612において、システムは、スコアと組み合わせて動作データを分析し、シューターが行った任意のミスを決定し、ミスを識別するための提案および/または将来ミスにどのように対処するかを提供し得る。システムはまた、シューターがミスに対処し、射撃パフォーマンスを向上させることを可能にするために、トレーニング演習を提供し得る。 In block 2612, the system may analyze the performance data in combination with the score to determine any mistakes made by the shooter and provide suggestions for identifying mistakes and/or how to address future mistakes. The system may also provide training exercises to enable the shooter to address mistakes and improve their shooting performance.
オンライン学習を使用する例示的なシステム2700を示す図27を参照すると、オーディオ2702が受信され、インクリメンタルスペクトログラム2704に変換される。スペクトログラム2704は、例えば時間ウィンドウによってフレーミングされ(2706)、例えば、ウィンドウ処理された信号のFFTを決定し、線形FFT係数をMEL周波数フィルタバンク係数に組み合わせ、係数の対数を決定し、対数MELフィルタバンク係数のDCTを決定することによって、MFCCを決定するために使用される。決定されたMFCCは、迅速にトレーニング可能な入力段2708に入力され、その後、DNNマルチクラス分類器2710に送達され得る。セレクタ2734は、ショットを分類するために最も高いクラス確率を有する分類器出力kを決定する。迅速にトレーニング可能な入力段2708は、トレーニング可能な重み付けマスク、または単にマスクと呼ばれることがある。マスクは、特定の環境で記録されたようなシューターの小火器および弾薬の射撃音のインスタンスを使用して調整され得る。場合によっては、重み付けマスクのみをトレーニングすることは、DNNをトレーニングするよりもはるかに計算集約的ではない。トレーニングされた(例えば、調整された)重み付けマスクは、小火器、弾薬、環境、および記録デバイスの組合せのシグネチャを表し得る。このシグネチャは、シグネチャのカタログを探索するために必ずしも使用されるのではなく、所与の記録デバイスを使用した特定の環境での小火器および弾薬に対するDNNの分類性能を向上させるように、スペクトログラム入力を調整するために使用される。場合によっては、特定のシューター(例えば、特定の小火器と弾薬の組合せ)のためのトレーニングデータセットは小さいので、確率的勾配降下法を使用することなどによるオンライン手法を使用して、または勾配降下技法を使用することなどによるオフライン手法を使用して重み付けマスクを更新することができる。 Referring to FIG. 27, which illustrates an exemplary system 2700 using online learning, audio 2702 is received and converted into an incremental spectrogram 2704. The spectrogram 2704 is framed (2706), for example, by a time window and used to determine the MFCC, for example, by determining the FFT of the windowed signal, combining the linear FFT coefficients with MEL frequency filter bank coefficients, determining the logarithm of the coefficients, and determining the DCT of the logarithmic MEL filter bank coefficients. The determined MFCC can be input to a rapidly trainable input stage 2708 and then delivered to a DNN multi-class classifier 2710. A selector 2734 determines the classifier output k with the highest class probability to classify the shot. The rapidly trainable input stage 2708 may be referred to as a trainable weighting mask, or simply a mask. The mask can be tuned using instances of the shooter's firearm and ammunition fire as recorded in a particular environment. In some cases, training only the weighting mask is much less computationally intensive than training a DNN. The trained (e.g., tuned) weighting mask may represent the signature of a combination of firearm, ammunition, environment, and recording device. This signature is not necessarily used to search a catalog of signatures, but rather is used to tune the spectrogram input to improve the DNN's classification performance for firearms and ammunition in a particular environment using a given recording device. In some cases, the training data set for a particular shooter (e.g., a particular firearm and ammunition combination) is small, so the weighting mask can be updated using online methods, such as by using stochastic gradient descent, or offline methods, such as by using gradient descent techniques.
DNN分類器2710の内部層は、入力の属性の異なるセットを表し得る。場合によっては、DNNは、複数の局所最適解を有する表面を定義するようにトレーニングされ、DNNは、新しい入力を最も適切な局所最適解に導くように動作することができる。次いで、強化されたDNN分類を使用して、ある小火器からのショットの検出および他のシューターのものとの区別を改善することができる。 Inner layers of the DNN classifier 2710 may represent different sets of attributes of the input. In some cases, the DNN is trained to define a surface with multiple local optima, and the DNN can operate to guide new inputs to the most appropriate local optima. The enhanced DNN classification can then be used to improve detection of shots from one firearm and distinction from those of other shooters.
事前トレーニングされたDNN分類器2710への入力段2708の重み付けマスクWは、重み付けマスクWを最適化するオンライン学習ループ2712によって適応され得る。 The weighting mask W at the input stage 2708 to the pre-trained DNN classifier 2710 can be adapted by an online learning loop 2712 that optimizes the weighting mask W.
オンライン学習ループ2712は、ショット分類器入力段2708、2710、および2734のコピー2714、2716、および2718を含む。新しいショットnが検出されると、オンライン学習ループ2712内の減算器2720は、ショット分類器2714、2716、および2718のコピーからの選択された出力kの結果を、期待される分類d(n)=1.0と比較して、分類誤差項を計算する。 Online training loop 2712 includes copies 2714, 2716, and 2718 of shot classifier input stages 2708, 2710, and 2734. When a new shot n is detected, subtractor 2720 in online training loop 2712 compares the result of the selected output k from the copies of shot classifiers 2714, 2716, and 2718 with the expected classification d(n) = 1.0 to calculate a classification error term.
適応ループのブロック2730は、フレーミングブロック2706からの現在の出力スペクトログラムx(n)について、スペクトログラム入力に関するDNN出力の勾配のベクトル符号を計算する。 Block 2730 of the adaptation loop calculates the vector sign of the gradient of the DNN output with respect to the spectrogram input for the current output spectrogram x(n) from the framing block 2706.
次に、現在の重み付けベクトルWi(n)に対する生のインクリメンタル調整が、フレーマ2706からの現在のショットスペクトログラムと分類器勾配2730の符号ベクトルとの積として、アダマール乗算器2732によって計算される。次いで、ベクトル乗算器2722は、任意の値αによって、生のインクリメンタル調整を重みベクトルWi(n)にスケーリングする。 The raw incremental adjustment to the current weighting vector W i (n) is then calculated by the Hadamard multiplier 2732 as the product of the current shot spectrogram from the framer 2706 and the code vector of the classifier gradient 2730. The vector multiplier 2722 then scales the raw incremental adjustment to the weighting vector W i (n) by an arbitrary value α.
最後に、ベクトル加算器2724が、現在のインクリメンタル調整を現在のWi(n)に加算することによって、予備的な更新された重みを計算する。この予備的な重みは、ベクトルrelu[]演算126によって、更新された重みベクトルWi+1(n)に変換される。 Finally, vector adder 2724 calculates preliminary updated weights by adding the current incremental adjustment to the current W i (n). These preliminary weights are converted into updated weight vector W i+1(n) by vector relu[ ] operation 126.
先ほど説明した重み適応ループ2712は、デルタ演算子2728によって示されるように、重みベクトルが収束するまで、例えば、|Wi(n)-Wi+1(n)|≦δとなるまで反復される。次いで、結果のWi+1(n)が、次のショットを分類するための重みベクトルW(n+1)として選択される。 The weight adaptation loop 2712 described above is repeated until the weight vectors converge, as indicated by the delta operator 2728, e.g., until |Wi(n) - Wi+1(n)| ≤ δ. The resulting Wi+1(n) is then selected as the weight vector W(n+1) for classifying the next shot.
ζが小さいときなど、オフライン学習が使用され得る。場合によっては、オフライン学習は、W=Iに設定し、以下のように勾配降下法を使用してそれを更新することによって開始され得る:
場合によっては、オフライン学習は、オンライン学習とほぼ同じ量の計算を必要とし得る。しかしながら、オンライン学習は、オフライン学習と比較して、オフライン学習が更新関数のすべての反復においてトレーニングデータセットζ全体にアクセスすることを必要とする一方で、確率的勾配降下法がそれを必要としないという利点を有する。オフライン学習は、局所最適解を見つけるという利点を提供するが、オンライン学習は、それを近似するにすぎない場合がある。 In some cases, offline learning can require roughly the same amount of computation as online learning. However, online learning has the advantage over offline learning that offline learning requires access to the entire training dataset ζ at every iteration of the update function, while stochastic gradient descent does not. Offline learning offers the advantage of finding a local optimum, whereas online learning may only approximate it.
現在の引数
ショットを分類するためにDNNを強化することを目的とするシステムがあるが、それらは、事前トレーニングされたネットワークの出力に層を追加して、それを特定のタスクにカスタマイズすることによってそれを行う。事前トレーニングされたネットワークは、画像からなど、多くのレベルのますます抽象的な特徴を抽出し、追加のトレーニング可能な層は、関心のある問題に焦点を当てるために使用される。対照的に、本明細書で説明されるシステムおよび方法の多くははるかに異なる方法で機能し、より効率的で、はるかに迅速で、より正確なシステムを実現する。本明細書で説明されるシステムは、多くの場合、事前トレーニングされたネットワークの入力に単一の層を追加するだけである。いくつかの使用事例では、カメラは、シューターに焦点を当てるのではなく、標的に向けられ、カメラおよびマイクロフォンは、発砲が関心のあるシューターから来たものだとネイティブに決定することはできずに他のショットを拾う。音響シグネチャは、迅速に生成され、多くの場合、カメラおよびマイクロフォンを含むモバイルデバイス(例えば、スマートフォン)上で実行される。モバイルデバイスは、分類および音響シグネチャ決定がモバイルデバイス上で実行されるように、本明細書で説明される構成要素およびシステムを含む命令(例えば、アプリケーション)を実行し得る。場合によっては、事前トレーニングされたネットワークは、ショットの比較的包含的な集合(universe)でトレーニングされ得る。トレーニング可能な入力層は、入力データを予め歪ませて、弾薬および環境での特定の小火器の事前トレーニングされたネットワークによる高い確率の認識を達成し得る。これにより、関心のあるショットを検出し、他のすべてのショットを拒否する可能性が高まり得る。 While some systems aim to enhance DNNs to classify shots, they do so by adding layers to the output of a pre-trained network to customize it for a specific task. The pre-trained network extracts many levels of increasingly abstract features, such as from an image, and additional trainable layers are used to focus on the problem of interest. In contrast, many of the systems and methods described herein work in a much different way, achieving a more efficient, much faster, and more accurate system. The systems described herein often only add a single layer to the input of a pre-trained network. In some use cases, the camera is pointed at the target rather than focused on the shooter, and the camera and microphone pick up other shots without being able to natively determine that the gunfire came from the shooter of interest. Acoustic signatures are generated quickly and are often performed on a mobile device (e.g., a smartphone) that includes the camera and microphone. The mobile device may execute instructions (e.g., an application) that include the components and systems described herein so that classification and acoustic signature determination are performed on the mobile device. In some cases, the pre-trained network may be trained on a relatively comprehensive universe of shots. The trainable input layer may pre-distort the input data to achieve high-probability recognition by the pre-trained network of a particular firearm in the munitions and environment. This may increase the likelihood of detecting shots of interest and rejecting all others.
いくつかの実施形態によれば、本明細書で説明されるシステムおよび方法は、DNNによって計算された関数の勾配が各入力において単調非減少または単調非増加である有用な重み付けマスクに収束する。 According to some embodiments, the systems and methods described herein converge to a useful weighting mask where the gradient of the function computed by the DNN is monotonically non-decreasing or monotonically non-increasing at each input.
DNNを事前トレーニングすることを示す図28を参照すると、プロセス2800が開始し2802、ブロック2804において、最初のオーディオファイル、または次のもしくは後続のオーディオファイルであり得るオーディオファイルが開かれる。オーディオファイルが使用され、システムは、ステップ2806において、最初のおよび/または次のショットをフレーミングするサンプルのブロックをキャプチャする。言い換えると、各ショットは、時間制限付きのサンプルにおいてウィンドウ処理される。ブロック2808において、サンプルに関連付けられたスペクトログラムが生成され、属性でラベル付けされる。 Referring to FIG. 28, which illustrates pre-training a DNN, process 2800 begins 2802, where an audio file is opened in block 2804, which may be the first audio file or the next or subsequent audio file. Using the audio file, the system captures blocks of samples framing the first and/or next shot in step 2806. In other words, each shot is windowed in time-bounded samples. In block 2808, spectrograms associated with the samples are generated and labeled with attributes.
ブロック2810において、システムは、直近のサンプルが最後のショットに関連付けられているかどうかを決定し、関連付けられていない場合、システムはブロック2806に戻り、後続のショットに関連付けられたサンプルのブロックをキャプチャする。関連付けられている場合、システムはブロック2812に進み、ブロック2808において作成されたラベル付けされたスペクトログラムが最後のファイルであるかどうかを決定する。最後のファイルでない場合、システムはブロック2804に戻り、次のオーディオファイルを開くか、またはキャプチャする。システムが、直近のファイルが最後のファイルであると決定した場合、システムはブロック2814に進み、そこでラベル付けされたスペクトログラムが集約される。ブロック2816において、DNNは、ラベル付けされたスペクトログラムでトレーニングされる。システムは、トレーニングされたDNNを得た状態で、ブロック2818で停止する。 In block 2810, the system determines whether the most recent sample is associated with the last shot. If not, the system returns to block 2806 to capture a block of samples associated with a subsequent shot. If so, the system proceeds to block 2812 to determine whether the labeled spectrogram created in block 2808 is the last file. If not, the system returns to block 2804 to open or capture the next audio file. If the system determines that the most recent file is the last file, the system proceeds to block 2814, where the labeled spectrograms are aggregated. In block 2816, a DNN is trained with the labeled spectrograms. The system stops at block 2818 with a trained DNN.
スペクトログラム重み付けを導出することを示す図29を参照すると、プロセス2900は2902で開始し、ブロック2904において、ショットのセットがキャプチャされる。ショットは、オーディオおよび/またはビデオ記録デバイスによってキャプチャされ得るか、または1つもしくは複数のショットに関連付けられたファイルを開くことを含み得る。ブロック2906において、システムは、最初のおよび/または次のショットをフレーミングするサンプルのブロックをキャプチャする。言い換えると、各ショットは、時間制限付きのサンプルにおいてウィンドウ化される。ブロック2908において、サンプルに関連付けられたスペクトログラムが作成され、属性でラベル付けされる。 Referring to FIG. 29, which illustrates deriving spectrogram weights, process 2900 begins at 2902, where a set of shots are captured at block 2904. The shots may be captured by an audio and/or video recording device or may involve opening a file associated with one or more shots. At block 2906, the system captures a block of samples framing the first and/or next shot. In other words, each shot is windowed in time-bounded samples. At block 2908, spectrograms associated with the samples are created and labeled with attributes.
ブロック2910において、システムは、直近のスペクトログラムが最後のショットに関連付けられているかどうかを決定し、関連付けられていない場合、システムはブロック2906に戻り、後続のショットに関連付けられたサンプルのブロックをキャプチャする。関連付けられている場合、システムはブロック2912に進み、ブロック2908において作成されたラベル付けされたスペクトログラムが最後のセットであるかどうかを決定する。最後のセットでない場合、システムはブロック2904に戻り、ショットの次のセットをキャプチャする。システムが、直近のファイルが最後のファイルであると決定した場合、システムはブロック2914に進み、そこでラベル付けされたスペクトログラムが集約される。ブロック2916において、システムは、値が収束するまでW(重み付け)を更新する。システムは、スペクトログラムの重み付けを得た状態で、ブロック2918で停止する。 In block 2910, the system determines whether the most recent spectrogram is associated with the last shot. If not, the system returns to block 2906 to capture a block of samples associated with a subsequent shot. If so, the system proceeds to block 2912 to determine whether the labeled spectrogram created in block 2908 is the last set. If not, the system returns to block 2904 to capture the next set of shots. If the system determines that the most recent file is the last file, the system proceeds to block 2914, where the labeled spectrograms are aggregated. In block 2916, the system updates W (weighting) until the value converges. The system stops at block 2918 with the spectrogram weightings obtained.
図30を参照すると、ショット3000を分類するためのプロセスが示されている。プロセスは、ブロック3002で開始し、ブロック3004において、システムは、ショットをフレーミングするサンプルのブロックをキャプチャする。ブロック3006において、システムは、サンプルのブロックに関連付けられたスペクトログラムを決定する。ブロック3008において、システムは、スペクトログラムと重み行列とのアダマール積を決定する。ブロック3010において、スペクトログラムと重み行列とのアダマール積がDNNに適用される。ブロック3012において、システムは、ショットが問題の小火器のシグネチャに関連付けられているか否かといった二分決定を行う。場合によっては、システムは、小火器の種類および小火器を介して発射された弾薬を識別することができる。例えば、オーディオサンプルを受信すると、システムは、問題の小火器についての事前知識なしに、オーディオサンプル内の小火器の音響シグネチャが、Beretta.45ACPから発射された230グレインの円頭の発射体に対応すると決定することができる。ブロック3014において、プロセスは停止する。 Referring to FIG. 30, a process for classifying a shot 3000 is shown. The process begins at block 3002, where in block 3004 the system captures a block of samples framing the shot. In block 3006, the system determines a spectrogram associated with the block of samples. In block 3008, the system determines the Hadamard product of the spectrogram and a weight matrix. In block 3010, the Hadamard product of the spectrogram and the weight matrix is applied to a DNN. In block 3012, the system makes a binary decision as to whether the shot is associated with the signature of the firearm in question. In some cases, the system can identify the type of firearm and the ammunition fired via the firearm. For example, upon receiving an audio sample, the system can determine, without prior knowledge of the firearm in question, that the acoustic signature of the firearm in the audio sample corresponds to a 230-grain round-nosed projectile fired from a Beretta .45 ACP. At block 3014, the process stops.
システムは、1つまたは複数のプロセッサと、様々なモジュール、アプリケーション、プログラム、または他のデータを記憶し得る1つまたは複数のコンピュータ可読媒体とを含み得る。コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されると、プロセッサに、システムについて本明細書で説明される動作を実行させる命令を含み得る。 The system may include one or more processors and one or more computer-readable media that may store various modules, applications, programs, or other data. The computer-readable media may include instructions that, when executed by one or more processors, cause the processors to perform the operations described herein for the system.
いくつかの実装形態では、プロセッサ(複数可)は、中央処理装置(CPU)、グラフィカル処理ユニット(GPU)、CPUとGPUの両方、マイクロプロセッサ、デジタルシグナルプロセッサ、または当技術分野で知られている他の処理ユニットもしくは構成要素を含み得る。代替的または追加的に、本明細書で説明される機能は、少なくとも部分的に、1つまたは複数のハードウェア論理構成要素によって実行されてもよい。例えば、限定はしないが、使用され得る例示的な種類のハードウェア論理構成要素には、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SoC)、複合プログラマブル論理デバイス(CPLD)などが含まれる。追加的に、プロセッサ(複数可)の各々は、それ自体のローカルメモリを所有してもよく、これも、プログラムモュールプログラムデータおよび/または1つまたは複数のオペレーティングシステムを記憶し得る。1つまたは複数の制御システム、コンピュータコントローラ、およびリモートコントロールは、1つまたは複数のコアを含み得る。 In some implementations, the processor(s) may include a central processing unit (CPU), a graphical processing unit (GPU), both a CPU and a GPU, a microprocessor, a digital signal processor, or other processing units or components known in the art. Alternatively or additionally, the functions described herein may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on a chip (SoCs), complex programmable logic devices (CPLDs), and the like. Additionally, each of the processor(s) may possess its own local memory, which may also store program modules, program data, and/or one or more operating systems. One or more control systems, computer controllers, and remote controls may include one or more cores.
自動標的スコアリングAutomated Target Scoring
場合によっては、説明されるシステムは、適度な量のトレーニングデータのみを使用して、携帯電話などの単一の消費者記録デバイス上でほぼリアルタイムで動作する。本明細書で使用される場合、「リアルタイム」または「ほぼリアルタイム」という用語は、広義の用語であり、本開示の文脈では、入力データを受信することと、入力データを処理することと、人間が待ち時間をほとんどまたは全く知覚せずにデータ分析の結果を出力することとに関する。言い換えると、分析されたデータを1秒未満内に出力する、本明細書に説明されるようなシステムは、ほぼリアルタイムと見なされる。リアルタイムまたはほぼリアルタイムで動作するシステムは、方法が特定の標的取得、分類、およびスコアリングを特徴付けるために使用することができる機械学習のための、または少なくともトレーニングモデルでの計算量を制限し得る。 In some cases, the described systems operate in near real time on a single consumer recording device, such as a mobile phone, using only a modest amount of training data. As used herein, the terms "real time" or "near real time" are broad terms that, in the context of this disclosure, relate to receiving input data, processing the input data, and outputting the results of data analysis with little or no human-perceived latency. In other words, a system such as that described herein that outputs analyzed data within less than one second is considered near real time. A system that operates in real time or near real time may limit the amount of computation for machine learning, or at least training models, that the method can use to characterize specific target acquisition, classification, and scoring.
自動標的スコアリングに対する従来の手法は、音響三角測量、光三角測量、および圧電センサ三角測量に依存するものであった。音響三角測量は、発射体が標的を通過するときに発射体の位置を決定するために発射体のマッハ波を使用する音響室標的を使用することによって試みられてきた。音響三角測量自動スコアリングシステムは、マイクロフォンを使用して、発射体が標的を通過するときに発射体の音波を測定することによって動作する。次いで、多数のオーディオセンサ(例えば、マイクロフォン)からの標的を通過する発射体の音を使用することで、発射体が標的を通過した位置を決定することができる。 Previous approaches to automated target scoring have relied on acoustic triangulation, optical triangulation, and piezoelectric sensor triangulation. Acoustic triangulation has been attempted by using acoustic chamber targets, which use the projectile's Mach waves to determine the projectile's location as it passes through the target. Acoustic triangulation automated scoring systems operate by using microphones to measure the projectile's sound waves as it passes through the target. The sound of the projectile passing through the target from multiple audio sensors (e.g., microphones) can then be used to determine the location where the projectile passed through the target.
光三角測量自動スコアリングシステムは、赤外線レーザなどの3つ以上のレーザを使用する。3つ以上のレーザは、発射体が標的を通過するときに発射体の位置を三角測量するために使用される。圧電センサ三角測量システムは、発射体が標的に衝突することで生じる振動を感知するプレート上の一連の圧電センサに依存する。 Optical triangulation automated scoring systems use three or more lasers, such as infrared lasers, to triangulate the projectile's position as it passes through the target. Piezoelectric sensor triangulation systems rely on an array of piezoelectric sensors on a plate that sense vibrations caused by the projectile impacting the target.
図31は、標的を自動的に識別し、標的を分類し、標的への着弾を決定し、射撃ストリングをスコアリングするように構成されたシステム3100を示す。システム3100は、コンピューティングリソース3102を含み得、これは、射撃練習場の参加者に関連付けられたモバイルコンピューティングデバイスであり得、例えば、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、または他の適切なコンピューティングデバイスなどのいくつかのモバイルコンピューティングデバイスのうちのいずれか1つまたは複数を含み得る。コンピューティングリソース3102は、典型的には、1つまたは複数のプロセッサ3104と、1つまたは複数のモジュール3108を記憶するメモリ3106とを含む。モジュール3108は、実行されると、1つまたは複数のプロセッサ3104に様々な動作を実行させる命令を記憶し得る。コンピューティングリソース3102は、データストレージをさらに含み得、データストレージは、リモートサーバもしくはクラウドベースのストレージシステムなどのリモートストレージ、またはローカルストレージ、またはそれらの組合せであり得る。データストレージは、経時的なデータ追跡を可能にすることができるDOPE(Data On Previous Engagement)、ならびに異なるシューター、異なる小火器、異なる弾薬、異なる標的、異なる環境などの間の比較データを記憶し得る。 FIG. 31 illustrates a system 3100 configured to automatically identify targets, classify targets, determine target impacts, and score firing strings. The system 3100 may include a computing resource 3102, which may be a mobile computing device associated with a shooting range participant and may include any one or more of several mobile computing devices, such as a smartphone, tablet computer, laptop computer, or other suitable computing device. The computing resource 3102 typically includes one or more processors 3104 and a memory 3106 that stores one or more modules 3108. The modules 3108 may store instructions that, when executed, cause the one or more processors 3104 to perform various operations. The computing resource 3102 may further include data storage, which may be remote storage, such as a remote server or cloud-based storage system, or local storage, or a combination thereof. Data storage can store DOPE (Data On Previous Engagement), which can enable data tracking over time, as well as comparative data between different shooters, different firearms, different ammunition, different targets, different environments, etc.
ストレージシステムは、履歴傾向分析をさらに可能にすることができ、これを使用して、追跡の改善を含む、経時的なシューターのパフォーマンスを示すことができる。データストレージを分析して、他の利益の中でもとりわけ、パフォーマンス予測、ランキング、社会的特徴を提供することもできる。 The storage system can further enable historical trend analysis, which can be used to show a shooter's performance over time, including tracking improvements. Data storage can also be analyzed to provide performance predictions, rankings, and social features, among other benefits.
システムは、任意の適切なビデオカメラなどの1つまたは複数の撮像センサ3110を組み込み得る。場合によっては、撮像センサ3110は、コンピューティングリソース3102に関連付けられ得る。例えば、いくつかの実施形態では、コンピューティングリソース3102は、カメラ3110を内蔵したスマートフォンであり得る。 The system may incorporate one or more imaging sensors 3110, such as any suitable video camera. In some cases, the imaging sensor 3110 may be associated with a computing resource 3102. For example, in some embodiments, the computing resource 3102 may be a smartphone with a built-in camera 3110.
カメラ3110は、標的3112の画像をキャプチャするように向けられ得る。標的は、シューターから任意の距離に位置してもよく、カメラ3110は、標的の画像をキャプチャするように照準を定め、および/またはズームされてもよい。いくつかの実施形態では、カメラは、スポッティングスコープまたはカメラレンズなどのレンズに結合され、カメラが、光学またはデジタルズームを通して、標的のより近くで撮影することができるようにし得る。 The camera 3110 may be aimed to capture an image of the target 3112. The target may be located at any distance from the shooter, and the camera 3110 may be aimed and/or zoomed to capture an image of the target. In some embodiments, the camera may be coupled to a lens, such as a spotting scope or camera lens, allowing the camera to capture images closer to the target through optical or digital zoom.
コンピューティングリソース3102は、とりわけ、コンピューティングデバイスが標的を初期化し3118、標的への着弾を検出し3114、標的への着弾をスコアリングする3116ことを可能にする命令(例えば、モジュール3108)を含み得る。 The computing resources 3102 may include, among other things, instructions (e.g., module 3108) that enable the computing device to initialize 3118 targets, detect 3114 target impacts, and score 3116 target impacts.
図32は、標的を検出し、識別し、分類するように構成された決定木3200を示す。いくつかの実施形態によれば、システムは、システムが標的を探し始める前に標的の種類を認識していない。例えば、いくつかの従来のシステムでは、スコアリングシステムは、シューターが照準を定める標的で事前にプログラムされ得る。これにより、システムは、標的のサイズおよび形状、ならびに各スコアリングリングまたは領域の位置および境界を容易に理解する。図示される実施形態では、システムは、標的の種類に関する先験的データなしに、自動的に決定し、スコアリングリングおよび領域を決定するように構成される。例えば、システムは、1つまたは複数のモバイルコンピューティングデバイスに統合され得る1つまたは複数のビデオキャプチャデバイスを有し得る。本明細書で使用される場合、モバイルコンピューティングデバイスとは、携帯電話、スマートフォン、タブレット、ラップトップ、携帯情報端末、スマートグラス、ボディカム、ウェアラブルコンピューティングデバイス、またはユーザが射撃練習場に持ち運び得る何らかの他のコンピューティングデバイスのうちの1つまたは複数であり得る。 Figure 32 shows a decision tree 3200 configured to detect, identify, and classify targets. According to some embodiments, the system does not know the type of target before the system begins searching for the target. For example, in some conventional systems, the scoring system may be pre-programmed with the target against which the shooter will aim. This allows the system to easily understand the size and shape of the target, as well as the location and boundaries of each scoring ring or zone. In the illustrated embodiment, the system is configured to automatically determine and determine the scoring rings and zones without a priori data regarding the type of target. For example, the system may have one or more video capture devices that may be integrated into one or more mobile computing devices. As used herein, a mobile computing device may be one or more of a mobile phone, smartphone, tablet, laptop, personal digital assistant, smart glasses, body cam, wearable computing device, or any other computing device that a user may carry to a shooting range.
モバイルデバイスは、カメラを作動させ、標的3202の1つまたは複数のフレームをキャプチャし得る。コンピューティングデバイスは、任意の適切な画像分析アルゴリズムを使用することによって、1つまたは複数のフレームを分析し、1つまたは複数のフレーム内の標的を識別する命令を有し得る。ブロック3204で標的が検出され、分類された場合、標的はシステム3206に登録され、スコアリングリングおよび領域が決定される。システムは、標的を含む追加の画像フレームをキャプチャし、標的への着弾と相関関係があり得るあるフレームと次のフレームとの差分を探し得る。フレームは比較され得、ブロック3208において、移動平均が生成され得る。移動平均は、ノイズ低減、特徴抽出、および傾向分析を含む様々な目的のために画像分析および機械学習において適用される基本的な数学的および統計的技法である。それらは、画像またはデータセットにわたる移動ウィンドウまたはカーネル内のピクセル強度または他のデータ点の平均値の計算を伴う。移動平均を使用して、画像から意味のある特徴を抽出することができる。例えば、画像上で小さなウィンドウをスライドさせ、そのウィンドウ内の平均ピクセル値を計算することによって、重要な情報を強調することができる。例えば、エッジ検出において、移動平均は、ピクセル強度の急激な変化を有するエリアを強調することができ、標的およびスコアリング領域のエッジまたは境界を識別するのを助ける。エッジ検出を使用して、標的への着弾を識別することもできる。 The mobile device may activate the camera and capture one or more frames of the target 3202. The computing device may have instructions to analyze the one or more frames and identify the target within the one or more frames by using any suitable image analysis algorithm. If the target is detected and classified in block 3204, the target is registered with the system 3206, and a scoring ring and area are determined. The system may capture additional image frames containing the target and look for differences between one frame and the next that may correlate with impact on the target. The frames may be compared, and in block 3208, a moving average may be generated. Moving averages are fundamental mathematical and statistical techniques applied in image analysis and machine learning for a variety of purposes, including noise reduction, feature extraction, and trend analysis. They involve calculating the average value of pixel intensities or other data points within a moving window or kernel across an image or dataset. Moving averages can be used to extract meaningful features from images. For example, important information can be highlighted by sliding a small window over the image and calculating the average pixel value within that window. For example, in edge detection, a moving average can highlight areas with abrupt changes in pixel intensity, helping to identify the edges or boundaries of the target and scoring area. Edge detection can also be used to identify bullet impacts on the target.
いくつかの例では、移動平均は時系列データ分析に使用される。一例として、異常を検出するために、移動平均を使用して、システムのベースライン挙動を確立することができる。このベースラインから大幅に逸脱するデータ点は、異常または外れ値としてフラグ付けされ得る。これらの異常は、標的への着弾を決定するためにさらに分析され得る。 In some instances, moving averages are used in time series data analysis. As one example, moving averages can be used to establish a baseline behavior of a system in order to detect anomalies. Data points that deviate significantly from this baseline can be flagged as anomalies or outliers. These anomalies can be further analyzed to determine target impact.
順次的な移動平均が生成されると、それらは長期移動平均として組み合わされ得る。ブロック3210において、移動平均画像は、長期移動平均と比較されて、標的への着弾に関連付けられている可能性が最も高い標的への変化を示す、あるフレームから後続のフレームへの差分を決定することができる。 Once the sequential moving averages are generated, they may be combined into a long-term moving average. In block 3210, the moving average image may be compared to the long-term moving average to determine differences from one frame to a subsequent frame that indicate changes to the target that are most likely associated with impact on the target.
ブロック3212において、着弾が選択され、分類される。例えば、システムは、スコアリングリングの境界を決定し、各着弾の位置を決定し、各着弾の位置を着弾のスコアに関連付ける。 In block 3212, the impacts are selected and classified. For example, the system determines the boundaries of a scoring ring, determines the location of each impact, and associates the location of each impact with a score for the impact.
ブロック3204に戻り、標的が以前に検出および分類されていない場合、例えば、シューターがシステムを初期化しているか、または標的を取り換えた場合、システムは、ブロック3214において、標的が検出されたかどうかを決定する。そうでない場合、ブロック3216において、システムは、標的を検出することに進む。標的が検出された場合、システムは、ブロック3218において、例えば、標的の境界、スコアリングリングの境界、およびスコアリングリングの値を識別することで、標的を分類する。 Returning to block 3204, if a target has not previously been detected and classified, for example, if the shooter is initializing the system or has replaced a target, the system determines whether a target has been detected in block 3214. If not, in block 3216, the system proceeds to detect the target. If a target has been detected, the system classifies the target in block 3218, for example, by identifying the target boundaries, scoring ring boundaries, and scoring ring values.
システムが標的を検出しなかった場合、システムは、1つまたは複数の追加の画像フレームをキャプチャし、1つまたは複数の追加の画像フレームを分析して、標的が撮像デバイスの視野内に位置すると決定し得る。標的が検出されると、システムは、標的を分類して、そのサイズ、ならびにスコアリングリングまたは領域の相対位置およびサイズを決定することができる。 If the system does not detect the target, the system may capture one or more additional image frames and analyze the one or more additional image frames to determine that the target is located within the field of view of the imaging device. Once the target is detected, the system may classify the target and determine its size, as well as the relative location and size of the scoring ring or region.
図33は、システムが、1つまたは複数の画像フレームを分析することによって、標的3300を識別および分類するために行い得る初期ステップをさらに説明する。オブジェクト検出は、画像またはビデオストリーム内の複数のオブジェクトを識別および位置特定することを伴うコンピュータビジョン技法である。画像全体における単一のオブジェクトクラスの存在を決定する画像分類とは異なり、オブジェクト検出は、オブジェクトを認識するだけでなく、境界ボックスを通してそれらの位置を指定することによって、より粒度の細かい理解を提供する。いくつかの実施形態では、オブジェクト検出アルゴリズムは、典型的には、検出されたオブジェクトを囲む境界ボックスを出力する。これらの境界ボックスは、オブジェクトの左上コーナーの座標(x,y)と、画像内のオブジェクトの空間範囲を定義する寸法(幅および高さ)とから構成される。 Figure 33 further describes the initial steps a system may take to identify and classify a target 3300 by analyzing one or more image frames. Object detection is a computer vision technique that involves identifying and locating multiple objects within an image or video stream. Unlike image classification, which determines the presence of a single object class in an entire image, object detection provides a more granular understanding by not only recognizing objects but also specifying their location through bounding boxes. In some embodiments, object detection algorithms typically output bounding boxes that enclose detected objects. These bounding boxes consist of the coordinates (x, y) of the object's upper-left corner and dimensions (width and height) that define the object's spatial extent within the image.
ブロック3302において、システムは、オブジェクト検出を標的の1つまたは複数の画像に適用し、標的を探索する。いくつかの実施形態では、オブジェクト検出モデルは、標的に関して汎用的であり、これにより、システムは、サイズまたは形状に関係なく、任意の標的を検出することができる。ブロック3304において、後続の画像(例えば、2つ以上の画像、3つ以上の画像、4つ以上の画像など)において同じ位置に標的が見つかった場合、システムは、標的を位置特定したと仮定し、標的の周囲に境界ボックスを定義する。場合によっては、後続の画像において同じ位置にある標的を見つけることは、標的の位置、サイズ、および形状を決定するために画像の移動平均を決定することを含む。 In block 3302, the system applies object detection to one or more images of the target to search for the target. In some embodiments, the object detection model is generic with respect to the target, allowing the system to detect any target regardless of size or shape. In block 3304, if the target is found in the same location in subsequent images (e.g., two or more images, three or more images, four or more images, etc.), the system assumes the target has been located and defines a bounding box around the target. In some cases, finding the target in the same location in subsequent images includes determining a moving average of the images to determine the target's location, size, and shape.
ブロック3306において、標的は任意選択で分類される。オブジェクトを位置特定することに加えて、システムは、オブジェクトを検出し、検出された各オブジェクトを所定のクラスまたはカテゴリに分類するように構成され得る。これにより、システムは、円形標的、卵形標的、矩形標的、シルエット標的などの異なるオブジェクト種類を区別することができる。 At block 3306, the targets are optionally classified. In addition to locating objects, the system may be configured to detect objects and classify each detected object into a predetermined class or category. This allows the system to distinguish between different object types, such as circular targets, oval targets, rectangular targets, silhouette targets, etc.
標的分類器は、境界ボックス内の画像に適用され得る。したがって、システムは、どの基準標的画像を適用するかを決定する。 A target classifier can be applied to the images within the bounding box. Thus, the system determines which reference target image to apply.
ブロック3308において、システムは、標的を基準標的画像に登録する。場合によっては、これは、画像にコントラスト調節を適用することを伴う。これはまた、そのコーナーを調整し、次いで、調整された境界ボックスを基準標的画像上に投影することなどによって、初期境界ボックスを反復的に修正することを伴い得る。両者間の差分はスコアとして適用され得、ヒルクライミング(hill-climbing)技法を適用して最適なコーナーを見つけ出し得、これは、画像の初期位置と相関付けることができる。ヒルクライミング技法は、所与の目的関数の極大値(または極小値)を見つけるために使用される最適化アルゴリズムである。より高い値に至る方向に小さいステップを反復的に行うことによって、アルゴリズムは、最高値、最低値を決定し、したがって、標的の境界を決定するために使用されることができる。場合によっては、オブジェクト検出は、ピクセルレベルのオブジェクトマスクを提供するためにセマンティックセグメンテーションと組み合わされる。これにより、標的境界およびスコアリングリング境界などの、画像内のオブジェクト境界をより正確に理解することができる。 In block 3308, the system registers the target to the reference target image. In some cases, this involves applying a contrast adjustment to the image. This may also involve iteratively modifying the initial bounding box, such as by adjusting its corners and then projecting the adjusted bounding box onto the reference target image. The difference between the two may be applied as a score, and a hill-climbing technique may be applied to find the optimal corner, which can be correlated with the initial position in the image. Hill-climbing is an optimization algorithm used to find the local maximum (or minimum) of a given objective function. By iteratively taking small steps in the direction of higher values, the algorithm determines the highest and lowest values, which can then be used to determine the boundary of the target. In some cases, object detection is combined with semantic segmentation to provide pixel-level object masks. This allows for a more accurate understanding of object boundaries in the image, such as target boundaries and scoring ring boundaries.
ブロック3310において、システムは、標的を初期化して登録し、後続の移動平均にわたって着弾を探し始める。 In block 3310, the system initializes and registers the target and begins looking for impacts over the subsequent moving average.
図34は、標的3300を登録し、標的への着弾を決定するプロセス3400を説明する。ブロック3402において、標的は、ヒルクライミング技法を実行して標的の最良のコーナーの新しいセットを探索することなどによって、再登録され得る。場合によっては、ヒルクライミング探索は、知覚空間技法において平均二乗距離を使用する。例えば、平均二乗距離は、平均二乗知覚誤差とも呼ばれ、標的コーナーなどの知覚データを含む2つのデータ点間の類似性または非類似性を測定するために使用されるメトリックである。場合によっては、各データ点に対して、関連する知覚的特徴(この場合、標的コーナー、エッジ、スコアリングリングなど)が抽出される。特徴は、知覚的特徴のベクトルとして表すことができる視覚的記述子とすることができる。これらの特徴ベクトルは、各データ点についての関連情報を、より簡潔で情報量の多い形で捉える。 Figure 34 illustrates a process 3400 for registering a target 3300 and determining target impacts. In block 3402, the target may be re-registered, such as by performing a hill-climbing technique to search for a new set of best corners for the target. In some cases, the hill-climbing search uses mean-squared distance in a perceptual space technique. For example, mean-squared distance, also known as mean-squared perceptual error, is a metric used to measure the similarity or dissimilarity between two data points that contain perceptual data, such as target corners. In some cases, for each data point, relevant perceptual features (in this case, target corners, edges, scoring rings, etc.) are extracted. Features can be visual descriptors that can be represented as vectors of perceptual features. These feature vectors capture relevant information about each data point in a more concise and informative manner.
2点間の平均二乗距離(それぞれの特徴ベクトルとして表される)は、対応する特徴間の二乗差を決定し、これらの二乗差の平均を計算することによって生成される。結果として得られる平均二乗距離は、知覚空間における2つのデータ点間の非類似性の定量的尺度を提供する。 The mean squared distance between two points (represented as their respective feature vectors) is generated by determining the squared difference between corresponding features and calculating the average of these squared differences. The resulting mean squared distance provides a quantitative measure of the dissimilarity between two data points in perceptual space.
ブロック3404において、システムは、コーナーのセットを画像にマッピングするために使用され得る変換行列を適用し得る。場合によっては、座標がマッピングされる画像は、160ピクセルの寸法を有し、160ピクセル未満の場合もある。 In block 3404, the system may apply a transformation matrix that may be used to map the set of corners to an image. In some cases, the image to which the coordinates are mapped has dimensions of 160 pixels, and in other cases, it may be less than 160 pixels.
ブロック3406において、移動平均画像が更新され、場合によっては、長期移動平均は約10秒以上のものであり、短期移動平均は約0.1秒のものである。場合によっては、ビデオカメラは、毎秒30フレーム超をキャプチャし得る。短期移動平均の場合、これは、短期移動平均を決定するために約3フレームを平均化することに等しい。 In block 3406, the moving average image is updated, with the long-term moving average being approximately 10 seconds or more and the short-term moving average being approximately 0.1 seconds. In some cases, the video camera may capture more than 30 frames per second. For the short-term moving average, this equates to averaging approximately 3 frames to determine the short-term moving average.
ブロック3408において、システムは、移動平均間の差分を決定する。例えば、長期移動平均は、10秒ほど変化していない静的標的に関連付けられ、画像の変化を反映する短期移動平均と比較され得る。したがって、短期移動平均と長期移動平均との間の差分は、標的への着弾など、画像に対する変化を強調する。システムは、任意の差分画像を、場合によっては5×5の均一な重みの正方形カーネルであり得る単純なインパクトカーネル(impact kernel)で畳み込み、差分画像内の最大のブロック単位の位置を探し得る。カーネルは、典型的には、特徴抽出などのためにピクセル値を処理および修正するために使用され得る畳み込みフィルタを指す。正方形カーネルは、画像にわたって畳み込む(または移動する)ことができ、各位置において、カーネルの値を対応する近傍内のピクセル値と乗算することができ、結果を合計して出力画像における新しいピクセル値を生成することができる。当然ながら、カーネルのサイズは、畳み込み中に考慮される近傍の範囲を調整するために変更されてもよく、不均一な重みを有する開口カーネルの全セットのいずれかを含んでもよく、任意の適切なサイズを有してもよい。 In block 3408, the system determines the difference between the moving averages. For example, a long-term moving average may be associated with a static target that has not changed for 10 seconds or so and compared to a short-term moving average that reflects changes in the image. Thus, the difference between the short-term and long-term moving averages highlights changes to the image, such as a bullet hitting the target. The system may convolve any difference image with a simple impact kernel, which may be a 5x5 uniform weight square kernel in some cases, to find the location of the largest block in the difference image. A kernel typically refers to a convolution filter that may be used to process and modify pixel values for feature extraction, etc. The square kernel may be convolved (or moved) across the image, and at each location, the value of the kernel may be multiplied by the pixel values in the corresponding neighborhood, and the results may be summed to generate a new pixel value in the output image. Naturally, the size of the kernel may be varied to adjust the range of the neighborhood considered during the convolution, and may include any of the full set of aperture kernels with non-uniform weights, and may have any suitable size.
畳み込みは、標的に対する潜在的な着弾のセットを返す。潜在的な着弾のセットは、フラグ付けされた差分を囲むウィンドウの単純な統計を使用することなどによって、さらにフィルタリングされ得る。場合によっては、ウィンドウは、ウィンドウの中央に差分を有する16×16ウィンドウとなるように選択される。当然ながら、他のウィンドウサイズも完全に妥当であり、本明細書で説明されるピクセル値は、いくつかの実施形態の例示にすぎない。システムはまた、いくつかのビジネスルールをウィンドウ表示された差分に適用してもよく、例えば、システムは、正確に同じ位置で複数の着弾を検出すべきではない。 The convolution returns a set of potential hits on the target. The set of potential hits may be further filtered, such as by using simple statistics of a window surrounding the flagged difference. In some cases, the window is chosen to be a 16x16 window with the difference in the center of the window. Of course, other window sizes are entirely reasonable, and the pixel values described herein are merely illustrative of some embodiments. The system may also apply some business rules to the windowed differences; for example, the system should not detect multiple hits in the exact same location.
ブロック3410において、標的への着弾が決定される。場合によっては、これは、フィルタリングされた差分のセットをスコアリングのために着弾分類器に渡すことによって達成される。差分のスコアが閾値を上回る場合、その位置が着弾としてマークされ、別のウィンドウがその着弾の周囲に配置され得る。場合によっては、長期平均において10×10ウィンドウが着弾位置の周囲に配置され、短期平均を5~10個の後続のフレームにわたって用いる。これは、同じ着弾が再び検出されないことを保証する。したがって、差分は、第1のウィンドウによってウィンドウ処理され、差分が閾値スコアを超える場合、差分は、第1のウィンドウよりも小さい第2のウィンドウによってウィンドウ処理される。短期移動平均に関連付けられたウィンドウ処理された差分は、少なくとも5フレーム、または少なくとも6フレーム、または少なくとも10フレーム、または少なくとも12フレーム、または少なくとも15フレーム以上の長期移動平均に追加され得る。場合によっては、差分のスコアが閾値を下回る場合、差分は誤った着弾としてマークされ、システムは、それを再び評価および分類する必要はない。 At block 3410, a hit on the target is determined. Optionally, this is accomplished by passing the filtered set of differences to a hit classifier for scoring. If the difference score exceeds a threshold, the location is marked as a hit, and another window may be placed around the hit. Optionally, a 10x10 window is placed around the hit location in the long-term average, and the short-term average is used over 5-10 subsequent frames. This ensures that the same hit is not detected again. Thus, the difference is windowed with a first window, and if the difference exceeds a threshold score, the difference is windowed with a second window smaller than the first. The windowed difference associated with the short-term moving average may be added to a long-term moving average of at least 5 frames, or at least 6 frames, or at least 10 frames, or at least 12 frames, or at least 15 frames or more. Optionally, if the difference score falls below a threshold, the difference is marked as a false hit, and the system does not need to evaluate and classify it again.
いくつかの実施形態によれば、システムは、発射されているショットに関連付けられたオーディオデータを受信し、オーディオデータに基づいてショットが発射されたことを決定し得る。場合によっては、オーディオデータは標的画像と相関関係があり、システムは、ショットが発射されたことを示すオーディオデータに応答して差分標的画像を畳み込むことができる。場合によっては、システムは、差分画像を連続的に畳み込む必要がない場合がある。この場合、システムは、オーディオデータを通して、ショットが発射されたことを決定し、次いで、短期移動平均を更新し、差分画像を畳み込んでショットを探すことができる。場合によっては、システムは、標的に照準を定めたユーザによって発射されたショットを、射撃練習場にいる他のシューターと区別するように構成される。このようにして、システムは、他のアクティブなシューターがその練習場にいる場合であっても、関心のあるシューターがいつショットを発射するかを知ることができる。 According to some embodiments, the system may receive audio data associated with a shot being fired and determine that a shot has been fired based on the audio data. In some cases, the audio data is correlated with a target image, and the system may convolve a differential target image in response to audio data indicating that a shot has been fired. In some cases, the system may not need to continuously convolve a differential image. In this case, the system may determine that a shot has been fired through the audio data, then update a short-term running average and convolve the differential image to look for the shot. In some cases, the system is configured to distinguish shots fired by a user aiming at a target from other shooters on the shooting range. In this way, the system can know when a shooter of interest is about to fire a shot, even if other active shooters are on the range.
場合によっては、オーディオデータは、発射されたショットのオーディオを標的画像上に現れる着弾と相関させることなどによって、着弾検出において使用され得る。 In some cases, audio data can be used in impact detection, such as by correlating the audio of a fired shot with impacts appearing on a target image.
図35A~図35Cは、標的を識別および分類することによってスコアリングシステムを初期化することを図示および説明する。場合によっては、システムは、標的の境界を自動的に決定することができるが、いくつかの実施形態では、ユーザ入力が標的の境界を定義してもよい。例えば、ヒューマン・コンピュータ・インターフェース(例えば、タッチスクリーン、マウス、スタイラス、タッチパッドなど)を使用して、人間は、システムが標的を識別するのを助けるために、標的の周囲に境界を描画することができる。しかしながら、多くの実施形態では、システムは、マシンビジョンを使用して、標的およびその境界を識別する。図35Aは、システムに関連付けられたカメラによってキャプチャされた画像3500を示す。画像は、標的スタンド3502、標的3504、標的固定クリップ3506、および視野内の他の特徴を含み得る。システムは、トレーニングされた標的検出モデルなどによって、識別された標的の周囲の初期境界ボックス3508を決定し得る。いくつかの実施形態では、ユーザは、ヒューマン・コンピュータ・インターフェースを用いてコンピュータディスプレイ上に描画することなどによって、初期境界ボックスを定義し得る。ヒューマン・コンピュータ・インターフェースは、任意の適切なインターフェースであってもよく、場合によっては、タッチスクリーン、ペン、マウス、トラックボールなどである。初期境界ボックスは、特に境界ボックスがユーザによって定義される場合、標的のエッジおよびコーナーに正確に一致しないことがある。初期境界ボックスおよび標的画像は、初期化フレームと呼ばれることがある。初期化フレームは、知覚均一性を生成するために、明度、緑から赤への軸、および青から黄への軸の成分を含むLab色空間に変換され得る。場合によっては、輝度チャネルは、コントラスト制限適応ヒストグラム等化(CLAHE)を介して等化される。 Figures 35A-35C illustrate and describe initializing the scoring system by identifying and classifying a target. In some cases, the system can automatically determine the target's boundaries, but in some embodiments, user input may define the target's boundaries. For example, using a human-computer interface (e.g., a touchscreen, mouse, stylus, touchpad, etc.), a human can draw a boundary around the target to help the system identify it. However, in many embodiments, the system uses machine vision to identify the target and its boundaries. Figure 35A shows an image 3500 captured by a camera associated with the system. The image may include a target stand 3502, a target 3504, a target fixation clip 3506, and other features within the field of view. The system may determine an initial bounding box 3508 around the identified target, such as by a trained target detection model. In some embodiments, a user may define the initial bounding box, such as by drawing it on a computer display using the human-computer interface. The human-computer interface may be any suitable interface, possibly a touchscreen, pen, mouse, trackball, etc. The initial bounding box may not exactly match the edges and corners of the target, especially if the bounding box is user-defined. The initial bounding box and target image may be referred to as an initialization frame. The initialization frame may be converted to Lab color space, which includes components for lightness, a green-to-red axis, and a blue-to-yellow axis, to produce perceptual uniformity. In some cases, the luminance channel is equalized via contrast-limited adaptive histogram equalization (CLAHE).
図35Bは、上述のように標的の座標が決定された標的を示し、座標は、多くの場合、基準標的画像3510上に投影することができる四辺形を意味する。基準標的画像3510もまた、Lab色空間に変換され得、(Lab空間における)二乗差が、投影と標的との間で生成され得る。座標に対してヒルクライミングアルゴリズムが適用され得、ここでの可能なデルタは座標に対する小さな変化であり、二乗知覚差分によってより良い解が決定され得る。 Figure 35B shows a target whose coordinates have been determined as described above, often representing a quadrilateral that can be projected onto a reference target image 3510. The reference target image 3510 can also be converted to Lab color space, and a squared difference (in Lab space) can be generated between the projection and the target. A hill-climbing algorithm can be applied to the coordinates, where a possible delta is a small change to the coordinate, and a better solution can be determined by the squared perceptual difference.
図35Cは、ヒルクライミングアルゴリズムのいくつかのランダムな再始動にわたる最小差などによって決定された最良の座標を示す。次いで、これらの座標は、更新された境界ボックス3512を適用するために使用され得る。したがって、カメラからの視野角により標的が矩形ではなく平行四辺形のように見える場合など、標的画像が歪んでいる場合であっても、初期境界ボックスは、カメラによってキャプチャされた画像内に提示される標的の形状と一致するように修正され得る。 Figure 35C shows the best coordinates, such as determined by minimum difference over several random restarts of the hill climbing algorithm. These coordinates can then be used to apply an updated bounding box 3512. Thus, even if the target image is distorted, such as when the viewing angle from the camera makes the target appear as a parallelogram rather than a rectangle, the initial bounding box can be modified to match the shape of the target as presented in the image captured by the camera.
いくつかの実施形態では、システムは、画像分析を通して、標的のエッジを定義し得る。しかしながら、場合によっては、標的のエッジは、無関係であり、重要であるのは、スコアリングリングのみである。したがって、場合によっては、システムは、スコアリングリングを識別するように構成され、標的境界には関与していない。加えて、システムは、標的を分類するのではなく、スコアリングリングを識別する必要があるのみである。例えば、システムは、1つまたは複数の機械学習モデルを通して、標的が、一連のスコアリングリングを有する中心ブルズアイ標的を表すと決定し得る。システムは、ブルズアイに対して10点、次に大きいリングに対して9点といったように、各リングにスコア値を割り当て得る。同様に、システムは、標的全体にわたって離間された5つのブルズアイサイズの円を有する標的を識別し、これらのスコアリングリングの各々に10ポイントの値を割り当て得る。複数のブルズアイサイズのリングのうちの1つまたは複数は、ブルズアイサイズのリングよりも小さい値を割り当てられ得る、放射状に離間したより大きいスコアリングリングを有し得る。したがって、システムは、標的を分類するステップを省略し、スコアリングリングのサイズおよび位置に焦点を当てるだけでよい。 In some embodiments, the system may define the edges of the target through image analysis. However, in some cases, the edges of the target are irrelevant; only the scoring rings are important. Thus, in some cases, the system is configured to identify the scoring rings and is not concerned with the target boundary. Additionally, the system only needs to identify the scoring rings, rather than classifying the target. For example, the system may determine through one or more machine learning models that a target represents a central bullseye target with a series of scoring rings. The system may assign a score value to each ring, such as 10 points for the bullseye, 9 points for the next larger ring, and so on. Similarly, the system may identify a target with five bullseye-sized circles spaced throughout the target and assign a value of 10 points to each of these scoring rings. One or more of the multiple bullseye-sized rings may have radially spaced larger scoring rings that may be assigned a smaller value than the bullseye-sized rings. Thus, the system need omit the step of classifying the target and only focus on the size and location of the scoring rings.
図36は、着弾検出および検出された着弾のスコアリングを図示および説明する。機械学習モデルを実行して、画像フレーム間の差分が標的3504への発射体の着弾である可能性が高いかどうかを決定し得る。標的3504は、標的初期化ステップにおけるように、可能なコーナー座標を用いてヒルクライミング技法を適用することなどによって、再登録され得る。短期移動平均差分を長期移動平均と比較することによって、差分がウィンドウ処理され(3602a、3602b、3602c)、現在の標的と長期標的平均との間の差分画像3612が生成される。 Figure 36 illustrates and describes impact detection and scoring of detected impacts. A machine learning model may be implemented to determine whether a difference between image frames is likely to be a projectile impact on the target 3504. The target 3504 may be re-registered, such as by applying a hill-climbing technique using possible corner coordinates, as in the target initialization step. The differences are windowed (3602a, 3602b, 3602c) by comparing the short-term moving average difference with the long-term moving average to generate a difference image 3612 between the current target and the long-term target average.
差分画像は、インパクトカーネル(例えば、画像差分をスキャンするウィンドウ処理されたカーネル)で畳み込まれ得る。最大畳み込み値の長期指数移動平均(EMA)にわたるいくつかの標準偏差である任意の点は、着弾の可能性があるもの3604a、3604b、3604cとしてフラグ付けされる。 The difference image may be convolved with an impact kernel (e.g., a windowed kernel that scans the image difference). Any point that is several standard deviations away from the long-term exponential moving average (EMA) of the maximum convolution value is flagged as a possible impact 3604a, 3604b, 3604c.
着弾の可能性があるもの3604a~3604cは、差分が実際の着弾である可能性が高いかどうかを決定する機械学習モデル(例えば、分類器)3606に供給される。差分が閾値を上回る場合、システムは、その差分を実際の着弾としてマークする3608。しかしながら、差分が閾値を下回る場合、システムは、その差分を誤った着弾としてマークする3610。 The potential hits 3604a-3604c are fed to a machine learning model (e.g., a classifier) 3606 that determines whether the difference is likely to be an actual hit. If the difference is above a threshold, the system marks the difference as an actual hit 3608. However, if the difference is below the threshold, the system marks the difference as a false hit 3610.
図37は、標的3504への着弾スコアリングを図示および説明する。コンピュータビジョンに基づいて、以前の射撃セッションからの登録された標的を参照することによって、既知の標的データベースから記憶された標的モデルを取り出すことによって、または何らかの他の方法で、システムによって異なるスコアリングゾーンが決定され得る。標的上のスコアリングゾーン3702は、1つまたは複数の単純な形状(例えば、楕円、長方形、円、三角形など)の結合領域として表され得る。検出された着弾3704の座標は、正規化され、基準画像によって暗示される軸に変換され得る。言い換えると、着弾は、基準画像上に重ね合わされてもよく、基準画像は、着弾の座標のために使用することができる。座標は、x、y値で表されるデカルト座標であり得る。場合によっては、座標は、標的の中心などからの角度および距離として着弾を表す半径方向座標であってもよい。次いで、システムは、着弾が完全に単一のスコアリングゾーン内にあるか、またはスコアリングゾーン境界に侵入するかを決定することができ、これにより、システムは、着弾を正確にスコアリングすることができる。システムは、所与の着弾のかなりの部分が各標的ゾーンの単純な形状のいずれかの中にあるかどうかを決定するために、単純な幾何学形状を使用し得る。 FIG. 37 illustrates and describes scoring of impacts on a target 3504. Different scoring zones may be determined by the system based on computer vision, by referencing registered targets from previous shooting sessions, by retrieving stored target models from a known target database, or in some other manner. Scoring zones 3702 on the target may be represented as connected areas of one or more simple shapes (e.g., ellipses, rectangles, circles, triangles, etc.). Coordinates of detected impacts 3704 may be normalized and transformed to axes implied by a reference image. In other words, the impacts may be overlaid on a reference image, which can be used for the impact's coordinates. The coordinates may be Cartesian coordinates expressed as x, y values. In some cases, the coordinates may be radial coordinates, representing the impact as an angle and distance from, for example, the center of the target. The system can then determine whether the impact is entirely within a single scoring zone or penetrates a scoring zone boundary, allowing the system to accurately score the impact. The system can use simple geometric shapes to determine whether a significant portion of a given impact falls within any of the simple shapes in each target zone.
いくつかの実施形態では、システムは、着弾の座標をさらなる分析に使用する。例えば、所与の射撃ストリングの座標を生成して記憶することによって、グループ化を数値化することができ、これを経時的な改善の尺度として使用することができる。同様に、シューターのMOA(moment of angle)は、インチおよび分角単位のグループサイズの尺度であり、中心から中心およびエッジからエッジまでによって決定することができる。さらに、グループ化を使用して、射撃ストリング中のポーズ、グリップ、またはモーションエラーを定義し得る。グループ化は、グループのサイズ、グループの回転、または他のメトリックを含め、数値化され得る。 In some embodiments, the system uses the coordinates of the shots for further analysis. For example, by generating and storing the coordinates for a given firing string, grouping can be quantified and used as a measure of improvement over time. Similarly, a shooter's MOA (moment of angle) is a measure of group size in inches and arc minutes and can be determined from center to center and edge to edge. Additionally, grouping may be used to define pose, grip, or motion errors during a firing string. Grouping may be quantified, including group size, group rotation, or other metrics.
スコアリングは、任意の適切なメトリックで数値化することができる。場合によっては、スコアリングはポイントベースであり、標的の各ゾーンに付与されたポイントが初期量に加算または初期量から減算される。場合によっては、外れたショットまたは発射された余分なショットは、スコアリングの種類に応じて、負の値またはより高い値としてスコアリングされる。場合によっては、合計時間がスコアに反映されるタイムド・スコアリング(timed scoring)が使用され、外した場合にはペナルティとして時間が増加される。場合によっては、グループサイズがスコアリングを決定するために使用され、余分なショットまたは外れたショットは、グループサイズにペナルティを課すことがある。当然ながら、特定の射撃ストリングをスコアリングするために他のメトリックおよびメトリックの組合せがシステムによって決定されてもよい。 Scoring can be quantified by any suitable metric. In some cases, scoring is point-based, with points awarded to each zone on the target being added to or subtracted from an initial amount. In some cases, missed shots or extra shots fired are scored as negative or higher values, depending on the scoring type. In some cases, timed scoring is used, where total time is reflected in the score, with time being increased as a penalty for misses. In some cases, group size is used to determine scoring, with extra or missed shots penalizing group size. Of course, other metrics and combinations of metrics may be determined by the system to score a particular firing string.
システムは、位置と時間とを組み合わせたいくつかのメトリックを使用して射撃ストリングを評価(range)することができるように、射撃ストリング内の各ショットについて、着弾の座標と各ショットが発生した時間とを返すように構成され得る。例えば、ショット間の時間を測定してもよいし、ブザーもしくは他の開始信号の後のショットを追跡して、精度メトリックとともに記憶してもよい。 The system may be configured to return the coordinates of impact and the time each shot occurred for each shot in a firing string, allowing the firing string to be ranged using some metric combining position and time. For example, the time between shots may be measured, or shots after a buzzer or other initiation signal may be tracked and stored along with accuracy metrics.
場合によっては、着弾が識別されると、システムは、着弾のうちの1つまたは複数を囲む境界ボックスを描画し得る。射撃ストリングが終了すると、システムは、グループ内のショットの各々を含む境界ボックスを描画し得、スコアを決定するために境界ボックスに基づいてメトリックを決定する。 In some cases, once impacts are identified, the system may draw a bounding box around one or more of the impacts. When the firing string ends, the system may draw a bounding box containing each of the shots in the group and determine a metric based on the bounding boxes to determine the score.
本明細書で説明される実施形態のうちのいくつかにしたがって開発され、動作可能であるシステムのユーザインターフェース3800を示す図38に示すように、システムは、最も外側の着弾の中心を通過するか、または着弾のエッジに沿って通過し得る境界ボックス3802を決定するように構成され得る。システムは、限定ではないが、グループサイズ3804、グループ全幅3806、グループ高さ3808、境界ボックス回転角、MOA、仰角オフセット3810、ウィンデージオフセット3812などのいくつかのメトリックのうちのいずれかを決定し得、手動で入力されるか、または検出された発射体の飛行時間に基づいて決定され得る射撃距離3814をさらに決定し得る。 As shown in FIG. 38, which illustrates a user interface 3800 of a system developed and operable in accordance with some of the embodiments described herein, the system may be configured to determine a bounding box 3802 that may pass through the center of the outermost impact or along the edge of the impact. The system may determine any of several metrics, such as, but not limited to, group size 3804, group overall width 3806, group height 3808, bounding box rotation angle, MOA, elevation offset 3810, windage offset 3812, and may further determine a shot distance 3814, which may be manually entered or determined based on the detected projectile's time of flight.
例えば、システムは、発砲音、発射体もしくは火薬の爆発による衝撃波、小火器もしくはシューターの動き、またはショットが発射されたことを示す何らかの他のインジケータを登録するように構成され得る。次いで、システムは、標的への着弾が発生するときを検出し、弾薬の飛行時間を決定し、小火器、弾薬、および/または装薬に基づいて、標的距離を決定し得る。このプロセスは、単純な消費者向けのモバイルコンピューティングデバイスによってほぼリアルタイムで行うことができる。場合によっては、モバイルコンピューティングデバイスは、内蔵画像キャプチャデバイスのズーム機能を利用し得る。場合によっては、モバイルコンピューティングデバイスによって画像フレームをキャプチャするために、外部ズームレンズが使用され得る。例えば、携帯電話がスポッティングスコープに結合されてもよく、スポッティングスコープは、スポッティングスコープを通して光学ズームを提供し、モバイルコンピューティングデバイスが、ダウンレンジであり得る標的のより鮮明な画像をキャプチャすることを可能にする。いくつかのモバイルコンピューティングデバイスは、ダウンレンジに位置する標的の1つまたは複数の画像をキャプチャするためにデジタルズームに依存し得る。 For example, the system may be configured to register the sound of gunfire, shock waves from projectile or gunpowder explosions, firearm or shooter movement, or some other indicator that a shot has been fired. The system may then detect when impact on the target occurs, determine the ammunition's time of flight, and determine target distance based on the firearm, ammunition, and/or propellant. This process can be performed in near real time by a simple consumer-grade mobile computing device. In some cases, the mobile computing device may utilize the zoom capabilities of an on-board image capture device. In some cases, an external zoom lens may be used to capture image frames by the mobile computing device. For example, a mobile phone may be coupled to a spotting scope, which provides optical zoom through the spotting scope, allowing the mobile computing device to capture clearer images of targets that may be downrange. Some mobile computing devices may rely on digital zoom to capture one or more images of targets located downrange.
システムは、現在の射撃ストリングで発射されたショットの数3816、各ショットの平均スプリットタイム3818をさらに決定して表示し得、これらは、時限射撃競技に役立ち得る。システムは、各ショットに関連付けられたスコア3820と、射撃ストリングの累積スコア3822とをさらに示し得る。 The system may further determine and display the number of shots fired in the current shooting string 3816, the average split time for each shot 3818, which may be useful in timed shooting competitions. The system may further display the score 3820 associated with each shot and the cumulative score for the shooting string 3822.
いくつかの実施形態は、迅速に標的を識別し、標的のスコアリングリングを識別することを含めて標的を分類し、射撃練習場における標的への着弾命中をスコアリングすることができる自動化された自動スコアリングシステムをさらに提供する。場合によっては、システムは、消費者向けのモバイルコンピューティングデバイス(例えば、iPhone、タブレット、電話、ビデオカメラ)上に記憶され、実行される。場合によっては、システムは、関心のある標的に向けられたビデオカメラデバイスを含み、システムは、標的を識別し、標的を分類し、標的へのショット着弾を決定し、標的への着弾をスコアリングするように構成される。場合によっては、システムは、射撃ステージに関してシューターにプロンプトを出すように構成される。例えば、システムは、CMPハイパワーライフル競技で利用されるように構成され得、システムは、現在のステージでは20分の時間枠でオフハンドポジションからダウンレンジに20発撃つ必要があるというプロンプトをユーザに出し得る。場合によっては、システムは、射撃ステージ(一連の発射と呼ばれる)中に予想されるショットの数を認識しており、ショットの数、時間枠、および射撃位置など、現在の射撃ステージに関連する情報を用いてユーザにプロンプトを出し得る。場合によっては、シューターが、例えば、とりわけ、システムが予想すべきショットの数、使用される小火器、および標的までの距離など、射撃ステージに関連付けられる情報を入力してもよい。場合によっては、システムは、手動で開始および停止され、システムが開始された時間中にのみ、標的上のショットを識別する。 Some embodiments further provide an automated scoring system capable of quickly identifying targets, classifying targets, including identifying target scoring rings, and scoring target hits at a shooting range. In some cases, the system is stored and executed on a consumer mobile computing device (e.g., an iPhone, tablet, phone, video camera). In some cases, the system includes a video camera device pointed at a target of interest, and the system is configured to identify the target, classify the target, determine shot impacts on the target, and score the target impacts. In some cases, the system is configured to prompt the shooter regarding the shooting stage. For example, the system may be configured for use in a CMP high-powered rifle competition, and the system may prompt the user that the current stage requires firing 20 shots downrange from an off-hand position within a 20-minute time frame. In some cases, the system knows the number of shots expected during the shooting stage (called a firing sequence) and may prompt the user with information related to the current shooting stage, such as the number of shots, the time frame, and the shooting location. In some cases, the shooter may input information associated with the shooting stage, such as the number of shots the system should expect, the firearm to be used, and the distance to the target, among other things. In some cases, the system is started and stopped manually, identifying shots on target only during the time the system is started.
包括的トレーニングシステムComprehensive Training System
上記で説明したように、いくつかの実施形態では、システムは、参加者および/または標的のオーディオおよびビデオをキャプチャするために複数の記録デバイスを使用し得るガントリ式配置を利用する。場合によっては、ズームレンズ、デジタルズーム機能を有するか、またはダウンレンジに位置する標的の画像をキャプチャするためのスポッティングスコープに取り付けられたカメラなどの外部レンズに依存し得る撮像デバイスを標的に向けることができる。場合によっては、システムは、1つもしくは複数のビデオフレームおよび/または1つもしくは複数のオーディオキャプチャデバイスからのオーディオデータなどの複数のソースを同期させるように構成される。場合によっては、システムは、1つまたは複数のオーディオ/ビデオキャプチャデバイスからの複数のビデオフレームとオーディオデータとを同期させるように構成される。 As described above, in some embodiments, the system utilizes a gantry-style arrangement that may use multiple recording devices to capture audio and video of participants and/or targets. In some cases, an imaging device may be aimed at the target, which may have a zoom lens, digital zoom capabilities, or rely on an external lens, such as a camera mounted on a spotting scope, to capture images of targets located downrange. In some cases, the system is configured to synchronize multiple sources, such as one or more video frames and/or audio data from one or more audio capture devices. In some cases, the system is configured to synchronize multiple video frames and audio data from one or more audio/video capture devices.
したがって、説明されるシステムは、混在した練習場にいる場合であっても、シューターが、身体動作を追跡し、技法におけるエラーを識別し、スコアを技法におけるエラーと相関させ、標的を自動的にスコアリングし、参加者の小火器から発射されたショットを他の小火器からのものと区別することを可能にする、包括的な小火器トレーニングソリューションを提供する。 The described system therefore provides a comprehensive firearms training solution that allows shooters, even in mixed ranges, to track body movements, identify errors in technique, correlate scores with errors in technique, automatically score targets, and distinguish shots fired from a participant's firearm from those from other firearms.
システムは、同期、予測、検証に1つまたは複数の機械学習モデルを利用し得、さらに、スコアリングデータを分析し、そのスコアリングデータを動作データと関連付けるようにさらにトレーニングされることで、特定の動作データ(例えば、挙動)とスコアリング傾向との間の相関を決定し得る。一例として、システムは、ショットの前にシューターの手首が下方に枢動することを、典型的に10リングの外側および下方にスコアリングすることと相関させ、シューターがショットの前に小火器の反動を予期していると決定し得る。次いで、システムは、動き/スコア相関に関連する情報とともにフィードバックをユーザに提供し得るだけでなく、1つまたは複数の演習またはドリルも提供して、ユーザが、低減されたスコアをもたらす挙動を認識および対処することを可能にし得る。システムは、多数のシューターがいる混在した練習場にいる場合であっても、関心のあるシューターに関連付けられた小火器の発砲を区別するようにさらにトレーニングされ得る。本明細書の他の箇所で説明されるように、任意の活動またはスポーツからの任意の動作データに対しても同様のプロセスが使用され得る。 The system may utilize one or more machine learning models for synchronization, prediction, and validation, and may be further trained to analyze scoring data and associate it with motion data to determine correlations between specific motion data (e.g., behaviors) and scoring trends. As an example, the system may correlate a shooter's wrist pivoting downward before a shot with typically scoring outside and below the ten-ring and determine that the shooter is anticipating firearm recoil before the shot. The system may then provide feedback to the user with information related to the motion/score correlation, as well as one or more exercises or drills to enable the user to recognize and address behaviors that result in reduced scores. The system may be further trained to distinguish firearm fires associated with a shooter of interest, even when in a mixed range with multiple shooters. As described elsewhere herein, a similar process may be used for any motion data from any activity or sport.
複数のビデオキャプチャデバイスを利用するいくつかの実施形態では、システムは、複数の角度から2次元または3次元で身体動作を追跡し得る。2次元または3次元の身体動作データを、相関、同期、および分析して、2次元または3次元の動作データを決定し得、これらを、結果として得られるスコアとさらに相関させ得る。 In some embodiments utilizing multiple video capture devices, the system may track body motion in two or three dimensions from multiple angles. The two or three dimensional body motion data may be correlated, synchronized, and analyzed to determine two or three dimensional motion data that may be further correlated with the resulting score.
説明されるシステムの実施形態は、シューターが一連のショットを発射することに関連して説明されるが、本明細書で説明されるシステムおよび方法は、任意の種類の身体動作をキャプチャすることに適用可能であるとともに、身体動作がパフォーマンスメトリックにつながり得る他のスポーツに適用可能であることを理解されたい。例えば、本明細書で説明されるシステムの実施形態は、バスケットボールのフリースロー、ゴルフのスイング、フィギュアスケートの要素、アーチェリー、サッカー、野球のスイング、または一連の観察可能な身体ランドマークの動作を時間的に記録することができ、その動作に何らかの観察される因果的結果がある場合、任意の他のスポーツもしくは動きなどの身体動作を追跡、批評、および改善するために使用され得る。 While the described system embodiments are described in the context of a shooter firing a series of shots, it should be understood that the systems and methods described herein are applicable to capturing any type of physical motion, as well as other sports where physical motion can lead to performance metrics. For example, the system embodiments described herein can record the motion of a basketball free throw, a golf swing, a figure skating element, archery, soccer, a baseball swing, or a series of observable physical landmarks over time, and can be used to track, critique, and improve physical motion, such as any other sport or movement, where the motion has any observable causal consequences.
システムは、1つまたは複数のプロセッサと、様々なモジュール、アプリケーション、プログラム、または他のデータを記憶し得る1つまたは複数のコンピュータ可読媒体とを含み得る。コンピュータ可読媒体は、1つまたは複数のプロセッサによって実行されると、プロセッサに、システムについて本明細書で説明される動作を実行させる命令を含み得る。 The system may include one or more processors and one or more computer-readable media that may store various modules, applications, programs, or other data. The computer-readable media may include instructions that, when executed by one or more processors, cause the processors to perform the operations described herein for the system.
いくつかの実装形態では、プロセッサ(複数可)は、中央処理装置(CPU)、グラフィカル処理ユニット(GPU)、CPUとGPUの両方、マイクロプロセッサ、デジタルシグナルプロセッサ、または当技術分野で知られている他の処理ユニットもしくは構成要素を含み得る。代替的または追加的に、本明細書で説明される機能は、少なくとも部分的に、1つまたは複数のハードウェア論理構成要素によって実行されてもよい。例えば、限定はしないが、使用され得る例示的な種類のハードウェア論理構成要素には、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SoC)、複合プログラマブル論理デバイス(CPLD)などが含まれる。追加的に、プロセッサ(複数可)の各々は、それ自体のローカルメモリを所有してもよく、これも、プログラムモュールプログラムデータおよび/または1つまたは複数のオペレーティングシステムを記憶し得る。1つまたは複数の制御システム、コンピュータコントローラ、およびリモートコントロールは、1つまたは複数のコアを含み得る。 In some implementations, the processor(s) may include a central processing unit (CPU), a graphical processing unit (GPU), both a CPU and a GPU, a microprocessor, a digital signal processor, or other processing units or components known in the art. Alternatively or additionally, the functions described herein may be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on a chip (SoCs), complex programmable logic devices (CPLDs), and the like. Additionally, each of the processor(s) may possess its own local memory, which may also store program modules, program data, and/or one or more operating systems. One or more control systems, computer controllers, and remote controls may include one or more cores.
実施形態は、本明細書で説明されるプロセスまたは方法を実行するようにコンピュータ(または他の電子デバイス)をプログラムするために使用される命令(圧縮または非圧縮形式)が記憶された非一時的機械可読記憶媒体を含むコンピュータプログラム製品として提供され得る。コンピュータ可読媒体は、揮発性および/または不揮発性メモリ、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するために任意の方法または技術において実装されるリムーバブルおよび非リムーバブル媒体を含み得る。機械可読記憶媒体は、ハードドライブ、フロッピー(登録商標)ディスク、光ディスク、CD-ROM、DVD、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、フラッシュメモリ、磁気もしくは光学カード、ソリッドステートメモリデバイス、または電子命令を記憶するのに適した他の種類の媒体/機械可読媒体を含むがそれらに限定されない。さらに、実施形態は、一時的機械可読信号(圧縮または非圧縮形式)を含むコンピュータプログラム製品として提供されてもよい。機械可読信号の例には、搬送波を使用して変調されているか否かにかかわらず、コンピュータプログラムをホストまたは実行するコンピュータシステムまたは機械がアクセスするように構成されることができる信号(インターネットまたは他のネットワークを通じてダウンロードされた信号を含む)が含まれるがこれらに限定されない。 Embodiments may be provided as a computer program product including a non-transitory machine-readable storage medium on which are stored instructions (in compressed or uncompressed format) used to program a computer (or other electronic device) to perform the processes or methods described herein. Computer-readable media may include volatile and/or non-volatile memory, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Machine-readable storage media include, but are not limited to, hard drives, floppy disks, optical disks, CD-ROMs, DVDs, read-only memory (ROM), random-access memory (RAM), EPROMs, EEPROMs, flash memory, magnetic or optical cards, solid-state memory devices, or other types of media/machine-readable media suitable for storing electronic instructions. Furthermore, embodiments may be provided as a computer program product including a transitory machine-readable signal (in compressed or uncompressed format). Examples of machine-readable signals include, but are not limited to, signals, whether or not modulated using a carrier wave, that can be configured to be accessed by a computer system or machine that hosts or executes a computer program (including signals downloaded over the Internet or other network).
当業者は、本明細書に開示される任意のプロセスまたは方法が、多くの方法で修正され得ることを認識するであろう。本明細書で説明および/または図示されるプロセスパラメータおよびステップの順序は、例としてのみ与えられ、所望に応じて変更することができる。例えば、本明細書で図示および/または説明されるステップは、特定の順序で示されたり説明されたりし得るが、これらのステップは、必ずしも、示された順序または説明された順序で実行される必要はない。 Those skilled in the art will recognize that any process or method disclosed herein may be modified in many ways. The process parameters and order of steps described and/or illustrated herein are given by way of example only and can be changed as desired. For example, although the steps illustrated and/or described herein may be shown or described in a particular order, these steps do not necessarily have to be performed in the order shown or described.
本明細書で説明および/または図示される様々な例示的な方法は、本明細書で説明または図示されるステップのうちの1つまたは複数を省略する場合があってもよいし、開示されるものに加えて追加のステップを含む場合があってもよい。さらに、本明細書に開示されるような任意の方法のステップは、本明細書に開示されるような任意の他の方法の任意の1つまたは複数のステップと組み合わせられることができる。 The various exemplary methods described and/or illustrated herein may omit one or more of the steps described or illustrated herein or may include additional steps in addition to those disclosed. Furthermore, the steps of any method as disclosed herein may be combined with any one or more steps of any other method as disclosed herein.
本開示は、例示的な実施形態を記載し、そのため、本開示の実施形態の範囲および添付の特許請求の範囲をいかなる形でも限定することを意図するものではない。実施形態は、指定された機能およびその関係の実装形態を示す機能的構成要素を用いて上記で説明されている。これらの機能的構成要素の境界は、説明の便宜上、本明細書において任意に定義されている。指定された機能およびそれらの関係が適切に実行される範囲で、代替の境界を定義することができる。 This disclosure describes exemplary embodiments and is therefore not intended to limit in any way the scope of the embodiments of the present disclosure and the appended claims. The embodiments are described above using functional components that illustrate implementations of specified functions and their relationships. The boundaries of these functional components have been arbitrarily defined herein for convenience of description. Alternate boundaries may be defined to the extent that the specified functions and their relationships are appropriately performed.
特定の実施形態の前述の説明は、本開示の実施形態の一般的な性質を十分に明らかにするので、他の人は、当業者の知識を適用することによって、過度の実験なしに、本開示の実施形態の一般概念から逸脱することなく、そのような特定の実施形態を様々な用途のために容易に修正および/または適合させることができる。したがって、そのような適合および修正は、本明細書に提示される教示および指針に基づいて、開示される実施形態の均等物の意味および範囲内であることが意図される。本明細書における表現または用語は、説明を目的とするものであり、限定を目的とするものではないので、本明細書の用語または表現は、本明細書に提示される教示および指針に照らして当業者によって解釈されるべきである。 The foregoing description of specific embodiments sufficiently clarifies the general nature of the disclosed embodiments so that others, by applying the knowledge of those skilled in the art, can readily modify and/or adapt such specific embodiments for various applications without undue experimentation and without departing from the general concepts of the disclosed embodiments. Therefore, such adaptations and modifications are intended to be within the meaning and range of equivalents of the disclosed embodiments, based on the teaching and guidance presented herein. The phrases or terminology used herein are for the purpose of description, not limitation, and should be interpreted by those skilled in the art in light of the teaching and guidance presented herein.
本開示の実施形態の広さおよび範囲は、上記で説明した例示的な実施形態のいずれによっても限定されるべきではなく、以下の特許請求の範囲およびそれらの均等物にしたがってのみ定義されるべきである。 The breadth and scope of the embodiments of the present disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
とりわけ、「can(することができる)」、「could(する可能性ある)」、「might(し得る/してもよい)」、または「may(し得る/してもよい)」などの条件付き言語は、別段に明記されていない限り、または使用される文脈内で別様に理解されない限り、一般に、特定の実装形態には特定の特徴、要素、および/または動作が含まれるが、他の実装形態には含まない可能性があることを伝えることを意図している。したがって、そのような条件付き言語は、一般に、特徴、要素、および/もしくは動作が何らかの形で1つもしくは複数の実装形態に必要とされること、または1つもしくは複数の実装形態が、ユーザ入力またはプロンプトの有無にかかわらず、これらの特徴、要素、および/または動作が任意の特定の実装形態において含まれるか、または実行されるべきかどうかを決定するためのロジックを必ず含むことを暗示することを意図するものではない。 In particular, conditional language such as "can," "could," "might," or "may," unless expressly stated otherwise or understood otherwise within the context in which it is used, is generally intended to convey that certain implementations include certain features, elements, and/or operations, but may not include them in other implementations. Thus, such conditional language is generally not intended to imply that features, elements, and/or operations are somehow required in one or more implementations, or that one or more implementations necessarily include logic for determining whether those features, elements, and/or operations should be included or performed in any particular implementation, with or without user input or prompting.
別段に記載されていない限り、本明細書で使用される場合、「connected to(に接続された)」および「coupled to(に結合された)」という用語(およびそれらの派生語)は、直接接続と間接(すなわち、他の要素または構成要素を介した)接続の両方を可能にするものと解釈されるべきである。加えて、本明細書で使用される場合、「a」または「an」という用語は、「の少なくとも1つ」という意味であると解釈されるべきである。最後に、使用を容易にするために、本明細書で使用される場合、「含む(including)」および「有する(having)」という用語(およびそれらの派生語)は、追加の構成要素を排除するものではなく、制限のないものとして解釈されるべきである。 Unless otherwise noted, when used herein, the terms "connected to" and "coupled to" (and their derivatives) should be interpreted as allowing for both direct and indirect (i.e., via other elements or components) connections. Additionally, when used herein, the terms "a" or "an" should be interpreted as meaning "at least one of." Finally, for ease of use, when used herein, the terms "including" and "having" (and their derivatives) should be interpreted as open-ended and not excluding additional components.
本明細書および添付の図面は、発砲された小火器の音響シグネチャを決定するためのシステムおよび方法を提供し得るシステム、装置、デバイス、および技法の例を開示する。当然ながら、本開示の様々な特徴を説明する目的で、要素および/または方法のすべての考え得る組合せを説明することは不可能であるが、当業者は、開示された特徴の多くのさらなる組合せおよび置換が可能であることを認識する。したがって、本開示の範囲または趣旨から逸脱することなく、本開示に対して様々な修正が行われ得る。さらに、本開示の他の実施形態は、明細書および添付の図面の考察、ならびに本明細書に提示される開示された実施形態の実施から明らかであり得る。本明細書および添付の図面に提示される例は、あらゆる点で、例示的なものであって限定的なものではないと見なされるべきである。本明細書では特定の用語が採用されるが、それらは一般的かつ説明的な意味でのみ使用されており、限定の目的で使用されるものではない。 This specification and the accompanying drawings disclose examples of systems, apparatus, devices, and techniques that may provide systems and methods for determining the acoustic signature of a fired firearm. It is, of course, not possible to describe every conceivable combination of elements and/or methodologies for purposes of describing various features of the present disclosure, but those skilled in the art will recognize that many further combinations and permutations of the disclosed features are possible. Accordingly, various modifications can be made to the present disclosure without departing from the scope or spirit thereof. Moreover, other embodiments of the present disclosure will be apparent from consideration of the specification and accompanying drawings, as well as from practice of the disclosed embodiments presented herein. The examples presented in this specification and the accompanying drawings are to be considered in all respects as illustrative and not restrictive. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
いくつかの実装形態では、上述したプロセスおよびシステムによって提供される機能が、代替的な方法で、例えば、より多くのソフトウェアプログラムもしくはルーチンの間で分割されて、またはより少ないプログラムもしくはルーチンに統合されて提供され得ることを、当業者は理解するであろう。同様に、いくつかの実装形態では、例示されたプロセスおよびシステムは、他の例示されたプロセスがそれぞれそのような機能を欠くときもしくは含むとき、または提供される機能の量が変えられるときなど、説明されたものよりも多くのまたは少ない機能を提供し得る。加えて、様々な動作は、特定の方法で(例えば、連続してまたは同時に)および/または特定の順序で実行されるものとして示され得るが、当業者は、他の実装形態では、これらの動作が他の順序および他の方法で実行され得ることを理解するであろう。当業者はまた、上述したデータ構造が、例えば、単一のデータ構造を複数のデータ構造に分割させることによって、または複数のデータ構造を単一のデータ構造に統合させることによって、異なる方法で構造化され得ることを理解するであろう。同様に、いくつかの実装形態では、図示されたデータ構造は、他の図示されたデータ構造がそれぞれそのような情報を欠くときもしくは含むとき、または記憶される情報の量もしくは種類が変えられるときなど、説明されたものよりも多くのまたは少ない情報を記憶し得る。図に示され、本明細書で説明される様々な方法およびシステムは、例示的な実装形態を表す。方法およびシステムは、他の実装形態では、ソフトウェア、ハードウェア、またはそれらの組合せで実装され得る。同様に、他の実装形態では、任意の方法の順序が変更されてもよく、様々な要素が追加、並べ替え、結合、省略、修正などされてもよい。 Those skilled in the art will understand that in some implementations, the functionality provided by the processes and systems described above may be provided in alternative ways, such as divided among more software programs or routines or integrated into fewer programs or routines. Similarly, in some implementations, the illustrated processes and systems may provide more or less functionality than described, such as when other illustrated processes, respectively, lack or include such functionality, or when the amount of functionality provided is varied. Additionally, while various operations may be shown as being performed in a particular way (e.g., sequentially or simultaneously) and/or in a particular order, those skilled in the art will understand that in other implementations, these operations may be performed in other orders and in other ways. Those skilled in the art will also understand that the data structures described above may be structured differently, such as by dividing a single data structure into multiple data structures or by combining multiple data structures into a single data structure. Similarly, in some implementations, the illustrated data structures may store more or less information than described, such as when other illustrated data structures, respectively, lack or include such information, or when the amount or type of information stored is varied. The various methods and systems shown in the figures and described herein represent example implementations. In other implementations, the methods and systems may be implemented in software, hardware, or a combination thereof. Similarly, in other implementations, the order of any method may be changed, and various elements may be added, rearranged, combined, omitted, modified, etc.
上記から、例示のために特定の実装形態が本明細書で説明されてきたが、添付の特許請求の範囲およびそこに記載された要素の趣旨および範囲から逸脱することなく、様々な修正が行われ得ることが理解されよう。加えて、特定の態様は特定の請求項の形態で以下に提示されるが、本発明者らは、任意の利用可能な請求項の形態で様々な態様を企図する。例えば、現在、いくつかの態様のみが特定の構成において具現化されるものとして記載されている場合があるが、他の態様も同様にそのように具現化され得る。本開示の利益を有する当業者には明らかであるように、様々な修正および変更が行われ得る。すべてのそのような修正および変更を包含することが意図され、したがって、上記の説明は、限定的な意味ではなく例示的な意味で見なされるべきである。
From the foregoing, it will be understood that, although specific implementations have been described herein for illustrative purposes, various modifications may be made without departing from the spirit and scope of the appended claims and the elements described therein. In addition, while certain aspects are presented below in certain claim forms, the inventors contemplate various aspects in any available claim form. For example, while only some aspects may currently be described as being embodied in a particular configuration, other aspects may likewise be so embodied. Various modifications and changes may be made, as would be apparent to one skilled in the art having the benefit of this disclosure. All such modifications and changes are intended to be encompassed, and therefore the above description should be regarded in an illustrative rather than a limiting sense.
Claims (17)
シューターのビデオデータを受信することと、
前記シューターの1つまたは複数の身体ランドマークを決定することと、
ショット中に前記1つまたは複数の身体ランドマークを追跡してショット動作データを生成することと、
前記ショットのスコアを決定することと、
前記ショット動作データを前記スコアに関連付けることと、
後続のショットにおける前記動作データを変えるための推奨を生成することと
を含む方法。 1. A method for improving shooting performance, comprising:
receiving video data of the shooter;
determining one or more body landmarks of the shooter;
tracking the one or more body landmarks during a shot to generate shot motion data;
determining a score for said shot;
Associating the shot motion data with the score;
generating recommendations for altering the motion data in subsequent shots.
標的ビデオデータを受信することと、
前記受信された標的ビデオデータに対して画像分析を実行することと、
標的への命中を決定することと、
前記命中のスコアを決定することと
を含む、請求項1に記載の方法。 Determining the score for the shot comprises:
receiving target video data;
performing image analysis on the received target video data;
determining a hit on the target;
and determining a score for the hit.
身体動作のビデオデータを受信することと、
前記身体動作の前記ビデオデータ内で視認可能な1つまたは複数の身体ランドマークを決定することと、
アクション中に前記1つまたは複数の身体ランドマークを追跡することと、
前記1つまたは複数の身体ランドマークを追跡することに少なくとも部分的に基づいて、動作データを生成することと、
前記動作データに関連付けられたスコアを決定することと、
前記動作データを前記スコアに関連付けることと、
後続のアクションにおける前記動作データを変えるための推奨を生成することと
を含む方法。 1. A method for improving the causal consequences of bodily movement, comprising:
receiving video data of the body movement;
determining one or more body landmarks visible in the video data of the body movement;
tracking the one or more body landmarks during an action;
generating motion data based at least in part on tracking the one or more body landmarks;
determining a score associated with the motion data;
associating the performance data with the score;
generating recommendations for altering the operational data in subsequent actions.
The method of claim 16 , further comprising comparing the predicted score to the score.
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202263406208P | 2022-09-13 | 2022-09-13 | |
| US202263406245P | 2022-09-13 | 2022-09-13 | |
| US202263406241P | 2022-09-13 | 2022-09-13 | |
| US63/406,208 | 2022-09-13 | ||
| US63/406,245 | 2022-09-13 | ||
| US63/406,241 | 2022-09-13 | ||
| PCT/US2023/032669 WO2024059156A1 (en) | 2022-09-13 | 2023-09-13 | Systems and methods for marksmanship improvement through machine learning |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2025530567A true JP2025530567A (en) | 2025-09-11 |
Family
ID=88297014
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2025539626A Pending JP2025530567A (en) | 2022-09-13 | 2023-09-13 | Systems and methods for improving marksmanship through machine learning |
Country Status (8)
| Country | Link |
|---|---|
| EP (1) | EP4588033A1 (en) |
| JP (1) | JP2025530567A (en) |
| KR (1) | KR20250090286A (en) |
| CN (1) | CN120569769A (en) |
| AU (1) | AU2023341616A1 (en) |
| CA (1) | CA3267467A1 (en) |
| MX (1) | MX2025002961A (en) |
| WO (1) | WO2024059156A1 (en) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10648781B1 (en) * | 2017-02-02 | 2020-05-12 | Arthur J. Behiel | Systems and methods for automatically scoring shooting sports |
| US10876819B2 (en) * | 2018-09-03 | 2020-12-29 | Rod Ghani | Multiview display for hand positioning in weapon accuracy training |
| US10600334B1 (en) * | 2018-12-11 | 2020-03-24 | NEX Team Inc. | Methods and systems for facilitating interactive training of body-eye coordination and reaction time |
-
2023
- 2023-09-13 KR KR1020257011621A patent/KR20250090286A/en active Pending
- 2023-09-13 EP EP23786378.2A patent/EP4588033A1/en active Pending
- 2023-09-13 JP JP2025539626A patent/JP2025530567A/en active Pending
- 2023-09-13 CA CA3267467A patent/CA3267467A1/en active Pending
- 2023-09-13 CN CN202380066092.0A patent/CN120569769A/en active Pending
- 2023-09-13 AU AU2023341616A patent/AU2023341616A1/en active Pending
- 2023-09-13 WO PCT/US2023/032669 patent/WO2024059156A1/en not_active Ceased
-
2025
- 2025-03-12 MX MX2025002961A patent/MX2025002961A/en unknown
Also Published As
| Publication number | Publication date |
|---|---|
| WO2024059156A1 (en) | 2024-03-21 |
| MX2025002961A (en) | 2025-07-01 |
| AU2023341616A1 (en) | 2025-03-27 |
| CN120569769A (en) | 2025-08-29 |
| CA3267467A1 (en) | 2024-03-21 |
| KR20250090286A (en) | 2025-06-19 |
| EP4588033A1 (en) | 2025-07-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN112827168B (en) | Target tracking method, device and storage medium | |
| CN114494353A (en) | Aiming method, device, terminal and storage medium | |
| CN113532193B (en) | Intelligent combat confrontation training system and method for team tactics | |
| US20200200509A1 (en) | Joint Firearm Training Systems and Methods | |
| US12478887B2 (en) | Method for managing and controlling target shooting session and system associated therewith | |
| CN115388705B (en) | Internet of things-based automatic control system and method for light weapon live ammunition shooting training | |
| JP2025530567A (en) | Systems and methods for improving marksmanship through machine learning | |
| JP2025530553A (en) | Systems and methods for automatic target identification, classification, and scoring | |
| US20170199010A1 (en) | System and Method for Tracking and Locating Targets for Shooting Applications | |
| JP2025530566A (en) | Systems and methods for digitizing and analyzing marksmanship skills | |
| US20210396499A1 (en) | Smart shooting system based on image subtraction and knowledge-based analysis engine and method therefor | |
| CN115962677B (en) | A battlefield sound effect simulation system | |
| Irhebhude et al. | Marksmanship evaluation using image processing techniques | |
| CN120708129B (en) | Video acquisition method and system based on deep learning acceleration | |
| Ma | Research on key technologies of basketball object segmentation and tracking based on image analysis | |
| Adam et al. | Real-Time Arrow Detection and Scoring on Archery Targets Using YOLOv8 with Euclidean Distance-Based Zone Estimation | |
| Lin et al. | The design and implementation of shooting training and intelligent evaluation system | |
| CN120239804A (en) | System and method for determining the acoustic signature of a firearm and projectile combination | |
| Izmailov et al. | Neural Network Based Scope Positioning System for First-Person Shooters | |
| HK40043497B (en) | Target tracking method and device and storage medium | |
| HK40043497A (en) | Target tracking method and device and storage medium | |
| Lin et al. | The Training Design and and Intelligent Implementation Evaluation of Shooting System | |
| ƯỚC et al. | DEEP LEARNING-BASED HUMAN POSE ESTIMATION METHODS FOR TRAINING ACTIVITIES: A COMPREHENSIVE REVIEW AND FRAMEWORK DESIGN FOR INTELLIGENT SHOOTING TRAINING SYSTEMS | |
| Varun et al. | Artificial Intelligence Enabled Automated BasNetball Score Point Detection System |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20250513 |