Systems and methods for automated target identification, classification, and scoring.

A mobile computing device with imaging sensors and machine learning algorithms automates target scoring and classification, addressing the inefficiencies of manual scoring and replacement, enhancing shooting range efficiency.

JP7844753B2Active Publication Date: 2026-04-13ACCUSHOOT INC
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2023-09-13
Publication Date
2026-04-13

AI Technical Summary

Technical Problem

The process of scoring and replacing targets in shooting ranges is disruptive and time-consuming, especially with steel targets, as scoring is difficult and requires manual intervention, affecting range efficiency and participant experience.

Method used

A system utilizing a mobile computing device with imaging sensors and machine learning algorithms to automatically identify, classify, and score shooting targets by analyzing images and determining impact points, employing moving averages and impact classifiers to determine scoring.

Benefits of technology

Enables efficient, real-time target scoring and replacement, reducing disruption and improving range efficiency by automating the scoring process for both paper and steel targets.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007844753000001
    Figure 0007844753000001
  • Figure 0007844753000002
    Figure 0007844753000002
  • Figure 0007844753000003
    Figure 0007844753000003
Patent Text Reader

Abstract

The system is configured to receive images of targets located downrange, identify the targets in the images, classify the targets, and determine the location of a scoring region. The system is further configured to determine the likelihood of an actual hit from a projectile on the target and score the actual projectile hit. The system uses machine vision and machine learning models to classify the targets and determine the hit score.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] [Cross - Reference to Related Applications] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 406,208, filed on September 13, 2022, entitled "SYSTEMS AND METHODS FOR AUTOMATED TARGET IDENTIFICATION, CLASSIFICATION, AND SCORING", the content of which is hereby incorporated by reference in its entirety.

Background Art

[0002] Target shooting is enjoyed by millions of people annually, and according to many reports, the number of people who engage in target shooting on a daily basis has been increasing over the past decade and continues to grow. In the United States alone, it is estimated that over 52 million people shoot targets on a daily basis. There are many different types of recreational shooting activities, from simple plinking with handguns or rifles at paper or steel targets, to highly skilled long - distance rifle shooting competitions that require advanced training and skills, to fun and fast - paced pistol shooting at popping or stationary targets, or shotgun shooting at skeet, trap, sporting clays, etc. Separate from recreational shooting, the number of professional target shooters, such as law enforcement agencies, military, and security guards, who practice as part of their profession, is increasing. The number of people at shooting ranges continues to grow, and these participants, regardless of whether their purpose is sports, recreation, self - defense, or public defense, desire to improve their skills. However, in crowded shooting ranges that permit paper targets, it can be disruptive to have to cold - stop the range in order to move downrange for the purpose of target setup, confirmation, scoring, and replacement. Similarly, in any of a number of shooting competitions, after cold - stopping the range, competitors must be permitted to move downrange to confirm, score, and replace targets.

[0003] The process of scoring and replacing targets can be disruptive to other shooters at the range, and in some cases, participants may need to walk 100 yards, 300 yards, 600 yards, or even over 1000 yards to check, score, and replace targets. This is very time-consuming. Especially in a mixed shooting range, if there is only one shooter who wants to clear the range to replace targets, the remaining shooters must stop firing, put their weapons in safe places, and wait while that person moves downrange.

[0004] Scoring a target is a relatively simple process, as many targets include scoring rings. Participants can visually identify the target, see where the projectile penetrated it, and assign scores based on the number of penetrations and the score for each penetration. However, when steel targets are used, scoring these shots is extremely difficult, if not impossible, as shooting at steel targets is primarily a binary effect: a satisfying ping if the projectile hits its mark, or silence if the shooter misses. Most steel targets are not replaced even if they develop dents or holes, making it very difficult to pinpoint new dents from existing ones and thus very difficult to determine the exact point of impact on a steel target.

[0005] Whether the target is a replaceable paper target or a more permanent target such as a steel target, it would be advantageous if the system could automatically score the shooting target. This, among other things, provides improved efficiency in practice or competition. These and other advantages will be readily apparent from the disclosures below. [Overview of the Initiative]

[0006] One or more computer systems may be configured to perform a specific operation or action by installing software, firmware, hardware, or a combination thereof on the system that causes the system to perform an action while it is running. One or more computer programs may be configured to perform a specific operation or action by including instructions that cause the device to perform an action when executed by a data processing device. One common embodiment includes a method for automatically scoring a shooting target. The method also includes receiving one or more images of a target, generating a bounding box around the target, classifying the target, determining a scoring ring for the target, receiving one or more additional images of the target, determining the difference between a short-term moving average and a long-term moving average based on the received images of the target, filtering the difference between the short-term moving average and the long-term moving average to determine the impact, and running an impact classifier that receives the difference and outputs an impact score. Other embodiments of this embodiment include corresponding computer systems, devices, and computer programs recorded in one or more computer storage devices, each configured to perform the actions of the method.

[0007] The implementation may include one or more of the following features: In this method, receiving one or more images is performed by a video capture device associated with a mobile computing device. This method may be performed on a smartphone. Determining the difference between a short-term moving average and a long-term moving average may include convolving the difference image with an impact kernel. The impact kernel may be a 5x5 uniformly weighted square kernel. The impact classifier may be configured to replace the window around potential impacts in the long-term moving average image with a short-term moving average containing the potential impacts. The method may include replacing the window around potential impacts in the long-term moving average image with a short-term moving average containing the potential impacts over at least five subsequent frames. The window may be at least a 10x10 pixel window. Generating a bounding box around a target may include iteratively correcting one or more corners of the bounding box to generate a corrected bounding box and projecting the corrected bounding box onto a reference target image. The method may include determining the corners of the corrected bounding box by a hill-climbing technique. The method may include determining the coordinates of the impact point and determining that the impact point lies within the scoring ring. Implementations of the described technique may include hardware, methods or processes, or computer software on a computer-accessible medium.

[0008] One general embodiment includes a system for automatically scoring targets, comprising a computing device having one or more processors, wherein the one or more processors are composed of instructions, and the instructions may include: an image analysis module configured to receive one or more images from an imaging sensor associated with the computing device; a target classifier configured to determine one or more boundaries of a target and the geometric boundaries of one or more scoring regions; an impact kernel configured to compare two or more images and determine possible impacts; a machine learning model configured to receive data associated with possible impacts and determine the probability of an actual impact; and a scoring module configured to determine a score for an impact if the probability of an actual impact exceeds a threshold. Other embodiments of this embodiment include corresponding computer systems, apparatuses, and computer programs recorded in one or more computer storage devices, each configured to perform the actions of the method.

[0009] The implementation may include one or more of the following features. In this system, the computing device is a smartphone. The target classifier may be configured to apply object detection to one or more images and determine the corners of a target. Implementations of the described technique may include hardware, methods or processes, or computer software on a computer-accessible medium. [Brief explanation of the drawing]

[0010] The accompanying drawings are part of this disclosure and are incorporated herein by reference. The drawings illustrate examples of embodiments of this disclosure and, together with the description and claims, serve to illustrate, at least partially, various principles, features, or aspects of this disclosure. Specific embodiments of this disclosure are described below more fully with reference to the accompanying drawings. However, various aspects of this disclosure may be implemented in many different forms and should not be construed as being limited to the implementations described herein. Throughout, similar numbers refer to similar elements, but not necessarily to the same or identical elements. [Figure 1] Several embodiments of a system configured for the automatic scoring of shooting targets are shown. [Figure 2] Sample process flows for classifying and scoring targets are shown in several embodiments. [Figure 3] Sample process flows for identifying and classifying targets are shown in several embodiments. [Figure 4] The following are sample process flows for registering targets and determining scoring hits, based on several embodiments. [Figure 5] Figures 5A, 5B, and 5C illustrate methods for initializing a target scoring system to identify a target, according to several embodiments. [Figure 6] The following shows sample process flows for detecting impact on a target, based on several embodiments. [Figure 7] The following are sample process flows for scoring target impacts according to several embodiments. [Figure 8] This document presents sample user interfaces for automated target scoring in software applications, based on several embodiments. [Modes for carrying out the invention]

[0011] According to several embodiments, a system is described that can quickly identify targets, classify targets including identifying their scoring rings, and score hits to targets at a shooting range. In some cases, the system is stored and runs on a consumer mobile computing device (e.g., 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 targets, classify targets, determine shot impacts to targets, and score hits to targets. In some cases, the system is configured to prompt the shooter regarding a shooting stage. For example, the system may be configured for use in a CMP high-power rifle competition, and the system may prompt the user that in the current stage, they need to fire 20 rounds downrange from an off-hand position within a 20-minute time frame. In some cases, the system is aware of the expected number of shots during a shooting stage (called a series of shots) and may prompt the user with information relevant to the current shooting stage, such as the number of shots, time frame, and firing position. In some cases, the shooter may input information associated with the firing stage, such as, for example, the number of shots the system should anticipate, the type of small arms used, and the distance to the target. In some cases, the system is manually started and stopped, and identifies shots on the target only during the time the system is running.

[0012] In some cases, the systems described operate near real-time on a single consumer recording device, such as a mobile phone, using only a moderate amount of training data. As used herein, the terms “real-time” and “near real-time” are broad terms and, 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 perceived latency for humans. In other words, a system that outputs analyzed data within less than one second, such as those described herein, is considered near real-time. Systems operating in real-time or near real-time may limit the computational complexity for machine learning, or at least in the training model, which the method can be used to characterize specific target acquisition, classification, and scoring.

[0013] Conventional methods for automated target scoring have relied on acoustic triangulation, optical triangulation, and piezoelectric sensor triangulation. Acoustic triangulation has been attempted by using acoustic chamber targets that use the projectile's Mach wave to determine the projectile's position as it passes through the target. Acoustic triangulation automated scoring systems work 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 can then be used from multiple audio sensors (e.g., microphones) to determine the projectile's position as it passes through the target.

[0014] Optical triangulation automatic scoring systems use three or more lasers, such as infrared lasers. These three or more lasers are used to triangulate the projectile's position as it passes through the target. Piezoelectric sensor triangulation systems rely on a series of piezoelectric sensors on a plate that sense the vibrations caused by the projectile impacting the target.

[0015] Figure 1 shows a system 100 configured to automatically identify targets, classify targets, determine impacts on targets, and score shooting strings. System 100 may include a computing resource 102, which may be a mobile computing device associated with a participant at a shooting range, and may include one or more of several mobile computing devices, such as a smartphone, tablet computer, laptop computer, or other suitable computing device. Computing resource 102 typically includes one or more processors 104 and memory 106 that stores one or more modules 108. Modules 108 may store instructions that, when executed, cause one or more processors 104 to perform various operations. Computing resource 102 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 may store DOPE (Data On Previous Engagement), which can enable data tracking over time, as well as comparative data between different shooters, different small arms, different ammunition, different targets, different environments, etc.

[0016] Storage systems can further enable historical trend analysis, which can be used to show shooter performance over time, including improved tracking. Analyzing data storage can also provide performance forecasts, rankings, and social characteristics, among other benefits.

[0017] The system may incorporate one or more imaging sensors 110, such as any suitable video camera. In some cases, the imaging sensors 110 may be associated with a computing resource 102. For example, in some embodiments, the computing resource 102 may be a smartphone with a built-in camera 110.

[0018] The camera 110 may be directed to capture an image of the target 112. The target may be located at any distance from the shooter, and the camera 110 may be aimed and / or zoomed in 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 photograph the target at closer range through optical or digital zoom.

[0019] The computing resource 102 may include, among other things, instructions (e.g., module 108) that enable the computing device to initialize a target 118, detect impacts on the target 114, and score impacts on the target 116. In some embodiments, the step of identifying a target is optional, and in some cases, the system is configured to detect a scoring ring and does not need to perform additional steps of identifying or classifying a target.

[0020] Figure 2 shows a decision tree 200 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 targets. For example, in some conventional systems, the scoring system may be pre-programmed with targets that the shooter aims at. 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 area. In the illustrated embodiment, the system is configured to automatically decide and determine scoring rings and areas without prior data on the type of target. For example, the system may have one or more video capture devices that can 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, bodycam, wearable computing device, or any other computing device that a user may carry to a shooting range.

[0021] The mobile device can activate the camera and capture one or more frames of the target 202. The computing device can have instructions to analyze 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 at block 204, the target is registered with the system 206 and the scoring ring and area are determined. The system can capture additional image frames containing the target and look for differences between one frame and the next that may be correlated with landing on the target. The frames can be compared and at block 208, a moving average can be generated. A moving average is a basic mathematical and statistical technique applied in image analysis and machine learning for various purposes including noise reduction, feature extraction, and trend analysis. They involve the calculation of the average value of pixel intensities or other data points within a moving window or kernel across an image or dataset. Using the moving average, meaningful features can be extracted from an image. For example, by sliding a small window across the image and calculating the average pixel value within that window, important information can be emphasized. For example, in edge detection, the moving average can highlight areas with rapid changes in pixel intensity and help identify the edges or boundaries of the target and the scoring area. Edge detection can also be used to identify landing on the target.

[0022] In some examples, the moving average is used in time series data analysis. As an example, to detect anomalies, the moving average can be used to establish the baseline behavior of a system. Data points that deviate significantly from this baseline can be flagged as anomalies or outliers. These anomalies can be further analyzed to determine landing on the target.

[0023] When sequential moving averages are generated, they can be combined as a long-term moving average. In block 210, the moving average image can be compared to the long-term moving average to determine the difference from one frame to subsequent frames that indicates the change to the target most likely to be associated with landing on the target.

[0024] In block 212, the landing is selected and classified. For example, the system determines the boundaries of the scoring ring, determines the position of each landing, and associates the position of each landing with the score of the landing.

[0025] Returning to block 204, if the target has not been previously detected and classified, for example, if the shooter is initializing the system or has replaced the target, the system determines in block 214 whether the target has been detected. If not, in block 216, the system proceeds to detect the target. If the target is detected, the system classifies the target in block 218, for example, by identifying the boundaries of the target, the boundaries of the scoring ring, and the value of the scoring ring.

[0026] If the system does not detect the target, the system can 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. When the target is detected, the system can classify the target and determine its size, as well as the relative position and size of the scoring ring or region.

[0027] Figure 3 further illustrates the initial steps the system may take to identify and classify target 300 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 finer-grained understanding by not only recognizing objects but also specifying their location through bounding boxes. In some embodiments, the object detection algorithm typically outputs bounding boxes surrounding the detected objects. These bounding boxes consist of the coordinates (x,y) of the top-left corner of the object and dimensions (width and height) that define the spatial extent of the object in the image.

[0028] In block 302, 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 general-purpose with respect to the target, so that the system can detect any target regardless of size or shape. In block 304, if the target is found in the same position 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 position in subsequent images involves determining a moving average of the images to determine the target's position, size, and shape.

[0029] In block 306, targets are classified by choice. 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, and silhouette targets.

[0030] The target classifier can be applied to images within a bounding box. Therefore, the system determines which reference target image to apply.

[0031] In block 308, the system registers the target in a reference target image. In some cases, this involves applying contrast adjustments 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 can be applied as a score, and the optimal corner can be found by applying a hill-climbing technique, which can be correlated with the initial position of the image. The hill-climbing technique is an optimization algorithm used to find the maximum (or minimum) value of a given objective function. By iteratively taking small steps in the direction of higher values, the algorithm can determine the highest and lowest values, and thus can be used to determine the boundary of the target and / or the boundary of the target's scoring zone. In some cases, object detection is combined with semantic segmentation to provide a pixel-level object mask. This allows for a more accurate understanding of object boundaries in the image, such as the target boundary and the scoring ring boundary.

[0032] In block 310, the system initializes and registers the target and begins searching for impact points over a subsequent moving average.

[0033] Figure 4 illustrates the process 400 for registering a target 300 and determining the impact point on the target. In block 402, the target may be re-registered, for example, by performing a hill-climbing technique to explore a new set of the target's best corners. In some cases, the hill-climbing search uses mean squared distance in perceptual space techniques. 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, including 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 way.

[0034] The mean squared distance between two points (represented as their respective feature vectors) is generated by determining the squared differences between the 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.

[0035] In block 404, the system may apply a transformation matrix that can be used to map a set of corners to an image. In some cases, the image to which the coordinates are mapped may have dimensions of 160 pixels, or less than 160 pixels.

[0036] In block 406, the moving average image is updated, and in some cases, the long-term moving average is approximately 10 seconds or longer, and the short-term moving average is 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 is equivalent to averaging approximately 3 frames to determine the short-term moving average.

[0037] In block 408, the system determines the difference between moving averages. For example, a long-term moving average might be associated with a static target that hasn't changed for about 10 seconds 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 in the image, such as a bullet impact on the target. The system can convolve any difference image with a simple impact kernel, which may be a 5x5 uniformly weighted square kernel, to find the largest block unit location in the difference image. A kernel typically refers to a convolutional filter that can be used to process and modify pixel values ​​for features extraction, etc. The square kernel can be convolved (or moved) across the image, and at each location, the kernel's value can be multiplied by the corresponding neighboring pixel value, and the results can be summed to produce a new pixel value in the output image. Naturally, the size of the kernel may be changed to adjust the range of neighborhoods considered during the convolution, and may include any of the entire set of aperture kernels with non-uniform weights, or may have any suitable size.

[0038] The convolution returns a set of potential impacts on the target. This set of potential impacts can be further filtered, for example, by using simple statistics of the window surrounding the flagged differences. In some cases, the window is chosen to be a 16x16 window with the differences in the center. Naturally, other window sizes are perfectly 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 impacts at exactly the same location.

[0039] In block 410, impacts on the target are determined. In some cases, this is achieved by passing a filtered set of differences to an impact classifier for scoring. If the difference score exceeds a threshold, the location is marked as an impact, and another window may be placed around that impact. In some cases, a 10x10 window is placed around the impact location in the long-term average, and the short-term average is used over 5 to 10 subsequent frames. This ensures that the same impact is not detected again. Thus, differences are windowed by the first window, and if the difference exceeds the threshold score, the difference is windowed by a second window smaller than the first window. Windowed differences 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. In some cases, if the difference score falls below a threshold, the difference is marked as a false impact, and the system does not need to evaluate and classify it again.

[0040] According to some embodiments, the system may receive audio data associated with a fired shot and determine that a shot has been fired based on the audio data. In some cases, the audio data correlates with a target image, and the system can convolve a differential target image in response to the audio data indicating that a shot has been fired. In some cases, the system may not need to convolve the differential images sequentially. In this case, the system may determine that a shot has been fired through the audio data, then update a short-term moving average, and convolve the differential images to find the shot. In some cases, the system is configured to distinguish a shot fired by a user aiming at a target from one fired by another shooter in the shooting range. In this way, the system can know when a shooter of interest will fire a shot, even if other active shooters are in the shooting range.

[0041] In some cases, audio data may be used in impact detection, for example, by correlating the audio of a fired shot with the impact that appears on the target image.

[0042] Figures 5A–5C illustrate and illustrate the initialization of a scoring system by identifying and classifying targets. In some cases, the system can automatically determine the target boundaries, but in some embodiments, user input may define the target boundaries. For example, using a human-computer interface (e.g., a touchscreen, mouse, stylus, touchpad, etc.), a human can draw a boundary around a target to help the system identify the target. However, in many embodiments, the system uses machine vision to identify the target and its boundaries. Figure 5A shows an image 500 captured by a camera associated with the system. The image may include a target stand 502, a target 504, a target fixing clip 506, and other features within the field of view. The system may determine an initial bounding box 508 around the identified target by means of a trained target detection model, etc. In some embodiments, a user may define the initial bounding box by means of drawing on a computer display using a human-computer interface, etc. The human-computer interface may be any suitable interface, and in some cases, it may be a touchscreen, pen, mouse, trackball, etc. The initial bounding box may not precisely match the edges and corners of the target, especially if the bounding box is user-defined. The initial bounding box and target image are sometimes referred to as the initialization frame. The initialization frame may be converted to a Lab color space containing components for luminance, the green-to-red axis, and the blue-to-yellow axis to generate perceptual uniformity. In some cases, the luminance channel is equalized via contrast-limited adaptive histogram equalization (CLAHE).

[0043] Figure 5B shows a target whose coordinates have been determined as described above, where the coordinates often represent a quadrilateral that can be projected onto the reference target image 510. The reference target image 510 can also be converted to Lab color space, and the 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 the possible deltas are small changes to the coordinates, and a better solution can be determined by the squared perceptual difference.

[0044] Figure 5C shows the best coordinates determined by the minimum difference across several random restarts of the hill-climbing algorithm. These coordinates can then be used to apply the updated bounding box 512. Thus, even if the target image is distorted, such as when the target appears as a parallelogram rather than a rectangle due to the camera's field of view, the initial bounding box can be modified to match the shape of the target presented in the image captured by the camera.

[0045] 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, and only the scoring rings matter. Therefore, in some cases, the system is configured to identify the scoring rings and not the target boundary. In addition, the system only needs to identify the scoring rings, not classify 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 set of scoring rings. The system may assign a score value to each ring, such as 10 points for the bullseye and 9 points for the next largest ring. Similarly, the system may identify a target with five bullseye-sized circles spaced apart across the entire 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 larger, radially spaced scoring rings to which smaller values ​​may be assigned than the bullseye-sized rings. Therefore, the system may omit the step of classifying the target and only focus on the size and location of the scoring rings.

[0046] Figure 6 illustrates and explains impact detection and scoring of detected impacts. A machine learning model can be run to determine whether the difference between image frames is likely to be an impact of a projectile on target 504. Target 504 may be re-registered, for example, by applying a hill-climbing technique using possible corner coordinates, as in the target initialization step. The difference is windowed (602a, 602b, 602c) by comparing the short-term moving average difference with the long-term moving average to generate a difference image 612 between the current target and the long-term target average.

[0047] The difference image can be convolved with an impact kernel (e.g., a windowed kernel that scans the image difference). Any point that is several standard deviations over the long-term exponential moving average (EMA) of the maximum convolution value is flagged as a possible impact 604a, 604b, 604c.

[0048] The possible impact points 604a–604c are fed to a machine learning model (e.g., a classifier) ​​606 that determines whether the difference is likely to be an actual impact point. If the difference is above a threshold, the system marks the difference as an actual impact point 608. However, if the difference is below the threshold, the system marks the difference as a false impact point 610.

[0049] Figure 7 illustrates and explains the scoring of impacts on target 504. Different scoring zones may be determined by the system by computer vision, by referencing registered targets from previous shooting sessions, by retrieving stored target models from a known target database, or by some other method. The scoring zone 702 on the target may be represented as a combined region of one or more simple shapes (e.g., ellipse, rectangle, circle, triangle, etc.). The coordinates of the detected impact 704 may be normalized and converted to axes implied by a reference image. In other words, the impact may be superimposed on a reference image, and the reference image can be used for the coordinates of the impact. 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 the center of the target, for example. The system can then determine whether the impact is entirely within a single scoring zone or penetrates the scoring zone boundary, thereby enabling the system to accurately score the impact. The system may use simple geometric shapes to determine whether a significant portion of a given impact lies within one of the simple shapes of each target zone.

[0050] In some embodiments, the system uses the impact coordinates for further analysis. For example, grouping can be quantified by generating and storing the coordinates of a given firing string, and this can be 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 angles and can be determined by center-to-center and edge-to-edge. Furthermore, grouping can be used to define pose, grip, or motion errors in the firing string. Grouping can be quantified, including group size, group rotation, or other metrics.

[0051] Scoring can be quantified using any appropriate metric. In some cases, scoring is point-based, where points awarded for each zone of the target are 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 type of scoring. In some cases, timed scoring is used, where total time is reflected in the score, and time is increased as a penalty for missed shots. In some cases, group size is used to determine scoring, and extra or missed shots may incur a penalty to the group size. Naturally, other metrics and combinations of metrics may be determined by the system to score a particular shooting string.

[0052] The system may be configured to return the impact coordinates and time of each shot for each shot within a firing string, so that the firing string can be evaluated (ranged) using several metrics that combine position and time. For example, the time between shots may be measured, or shots after a buzzer or other start signal may be tracked and stored along with precision metrics.

[0053] In some cases, once impacts are identified, the system may draw bounding boxes surrounding one or more of the impacts. When a firing string ends, the system may draw bounding boxes containing each of the shots in the group and determine a metric based on the bounding boxes to determine the score.

[0054] As shown in Figure 8, which illustrates a user interface 800 of a system developed and operable according to some of the embodiments described herein, the system may be configured to determine a bounding box 802 that can pass through the center of the outermost impact or along the edge of the impact. The system may determine any of several metrics, but are not limited to, group size 804, group width 806, group height 808, bounding box rotation angle, MOA, elevation offset 810, windage offset 812, and may further determine a firing distance 814 which may be manually entered or determined based on the flight time of the detected projectile.

[0055] For example, the system may be configured to register the sound of a gunshot, the shock wave from the explosion of a projectile or gunpowder, the movement of a small arms or shooter, or any other indicator that a shot has been fired. The system can then detect when impact occurs on the target, determine the time of flight of the ammunition, and determine the target distance based on the small arms, ammunition, and / or propellant charge. 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 function of a built-in image capture device. In some cases, an external zoom lens may be used to capture an image frame by the mobile computing device. For example, a mobile phone may be coupled with a spotting scope, which provides optical zoom through the spotting scope, allowing the mobile computing device to capture a clearer image of a target that may be downrange. Some mobile computing devices may rely on digital zoom to capture one or more images of targets located downrange.

[0056] The system can further determine and display the number of shots fired in the current shooting string (816) and the average split time for each shot (818), which can be useful in timed shooting competitions. The system can further display the score associated with each shot (820) and the cumulative score for the shooting string (822).

[0057] The system may include one or more processors and one or more computer-readable media capable of storing various modules, applications, programs, or other data. The computer-readable media may, when executed by one or more processors, contain instructions that cause the processors to perform the operations of the system as described herein.

[0058] 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, but not limited to, exemplary types of hardware logic components that may be used include field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standards (ASSPs), system-on-chip systems (SoCs), and composite programmable logic devices (CPLDs). Additionally, each processor(s) may have its own local memory, which may also store 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.

[0059] Embodiments may be provided as a computer program product including a non-temporary machine-readable storage medium storing instructions (in compressed or uncompressed form) used to program a computer (or other electronic device) to perform a process or method described herein. The computer-readable medium may include removable and non-removable media implemented in any way or technique for storing information such as volatile and / or non-volatile memory, computer-readable instructions, data structures, program modules, or other data. The machine-readable storage medium includes, but is 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 temporary machine-readable signals (in compressed or uncompressed form). Examples of machine-readable signals include, but are not limited to, signals that can be configured to be accessed by a computer system or machine hosting or running a computer program, whether or not they are modulated using a carrier wave (including signals downloaded over the Internet or other networks).

[0060] Those skilled in the art will recognize that any process or method disclosed herein can be modified in many ways. The process parameters and the order of steps described and / or illustrated herein are given only as examples and can be changed as desired. For example, the steps illustrated and / or described herein may be shown and described in a particular order, but these steps do not necessarily have to be performed in the order shown or described.

[0061] 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 beyond those disclosed. Furthermore, any step of any method disclosed herein may be combined with any one or more steps of any other method disclosed herein.

[0062] This disclosure describes exemplary embodiments and is not intended to limit in any way the scope of the embodiments and the appended claims. Embodiments are described above using functional components that demonstrate implementations of specified functions and their relationships. The boundaries of these functional components are arbitrarily defined herein for the convenience of explanation. Alternative boundaries can be defined to the extent that the specified functions and their relationships are adequately performed.

[0063] The foregoing descriptions of specific embodiments sufficiently reveal the general nature of the embodiments of the Disclosure so that others can readily modify and / or adapt such specific embodiments for various uses without excessive experimentation and without departing from the general concept of the embodiments of the Disclosure, by applying the knowledge of those skilled in the art. Such adaptations and modifications are therefore intended to be within the meaning and scope of equivalents of the embodiments disclosed, based on the teachings and guidance presented herein. Since the expressions and terms herein are for illustrative purposes only and not for limitation, they should be interpreted by those skilled in the art in light of the teachings and guidance presented herein.

[0064] The breadth and scope of the embodiments of this disclosure should not be limited by any of the exemplary embodiments described above, but should be defined solely in accordance with the following claims and their equivalents.

[0065] In particular, conditional language such as "can," "could," "might," or "may," unless otherwise specified or understood differently in the context in which they are used, is generally intended to convey that certain features, elements, and / or behaviors may be included in certain implementations but not in others. Thus, such conditional language is not generally intended to imply that features, elements, and / or behaviors are required in some way in one or more implementations, or that one or more implementations necessarily include logic for determining whether these features, elements, and / or behaviors are included or should be performed in any particular implementation, with or without user input or prompting.

[0066] Unless otherwise stated herein, the terms “connected to” and “coupled to” (and their derivatives) should be interpreted as allowing both direct and indirect (i.e., through other elements or components) connections. In addition, the terms “a” or “an” should be interpreted as meaning “at least one of” as used herein. Finally, for ease of use, the terms “including” and “having” (and their derivatives) should be interpreted as unrestricted and not precluding additional components as used herein.

[0067] 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 fired small arms. Naturally, it is impossible to describe all possible combinations of elements and / or methods for the purpose of illustrating the various features of this disclosure; however, those skilled in the art will recognize that many further combinations and substitutions of the disclosed features are possible. Thus, various modifications to this disclosure can be made without departing from the scope or spirit of this disclosure. Furthermore, other embodiments of this disclosure may become apparent from consideration of the specification and the accompanying drawings, as well as from the implementation of the disclosed embodiments presented herein. The examples presented herein and in the accompanying drawings should be considered in all respects as illustrative and not restrictive. Certain terms are used herein, but they are used only in a general and descriptive sense and not for restrictive purposes.

[0068] 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, for example, by dividing it among more software programs or routines, or by integrating it 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 lack or include such functionality, or when the amount of functionality provided is altered. In addition, 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 in different ways, for example, by dividing a single data structure into multiple data structures, or by integrating 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 lack or include such information, or when the amount or type of information stored is altered. The various methods and systems shown in the figures and described herein represent exemplary 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.

[0069] From the foregoing, it will be understood that while specific implementations have been described herein for illustrative purposes, various modifications can be made without departing from the spirit and scope of the appended claims and the elements described herein. In addition, while specific embodiments are presented below in the form of specific claims, the inventors intend various embodiments in the form of any available claims. For example, while some embodiments are described here as being embodied in a particular configuration, other embodiments may be embodied in the same way. Various modifications and changes can be made, as will be obvious to those skilled in the art who are interested in this disclosure. It is intended to encompass all such modifications and changes, and therefore the above description should be considered illustrative rather than restrictive.

Claims

1. A method for automatically scoring shooting targets, Receiving one or more images of the target, To generate a bounding box around the aforementioned target, Classifying the aforementioned targets, Determining the scoring ring for the aforementioned target, Receiving one or more additional images of the aforementioned target, Based on the received image of the target, the difference between the short-term moving average and the long-term moving average is determined. The difference between the short-term moving average and the long-term moving average is filtered to determine the target, The process involves receiving the difference and executing a projectile classifier that outputs the projectile score. A method that includes this.

2. The method according to claim 1, wherein the reception of the one or more images is performed by a video capture device associated with a mobile computing device.

3. The method described above is the method according to claim 1, which is performed on a smartphone.

4. The method according to claim 1, wherein determining the difference between a short-term moving average and a long-term moving average includes convolving the difference image with an impact kernel.

5. The method according to claim 4, wherein the impact kernel is a 5x5 square kernel with uniform weights.

6. The method according to claim 1, wherein generating a bounding box around the target includes iteratively modifying one or more corners of the bounding box to generate a modified bounding box, and projecting the modified bounding box onto a reference target image.

7. The method according to claim 6, further comprising determining the corners of the modified boundary box by a hill climbing technique.

8. The method according to claim 1, further comprising determining the coordinates of the impact and determining that the coordinates of the impact are within the scoring ring.

9. A system for automatically scoring targets, A computing device having one or more processors and one or more computer-readable media. The computer-readable medium comprises, and when executed by the one or more processors, includes instructions that cause the processors to perform an action, and the instructions are An image analysis module configured to receive one or more images from an imaging sensor associated with the computing device, A target classifier configured to determine one or more boundaries of the target and to determine the geometric boundaries of one or more scoring zones, An impact kernel configured to compare two or more images and determine possible impact points, A machine learning model configured to receive data associated with the aforementioned possible impacts and to determine the actual probability of an impact, A scoring module configured to determine the score of the impact when the probability of the actual impact exceeds a threshold, and Includes, The scoring module is configured to determine the coordinates of the impact and to determine that the impact is within the scoring zone of the target. The scoring module is configured to convolve an impact kernel across difference images in order to identify the location of the impact.

Citation Information

Patent Citations

  • Automatic target scoring method based on video analysis

    CN106408527A

  • Target scoring method and device based on image recognition

    CN112800888A

  • Firing training system

    JP2020041743A

  • Shooting Game for Multiple Players with Dynamic Shot Position Recognition and Remote Sensors

    US20180202775A1

  • Target shooting system

    US20210065395A1