MACHINE LEARNING-BASED TECHNIQUES FOR OPTIMIZING CONFIGURATION PARAMETERS IN TARGET DETECTION ALGORITHMS OR OTHER ALGORITHMS

A method includes obtaining an image of a scene and identifying one or more statistics associated with each of multiple processing regions within the image, where each processing region represents a portion of the image. The method also includes generating a probability of each of the processing regions containing at least one object of interest based on the statistics associated with the processing regions. The method further includes allocating multiple processing windows to one or more of the processing regions based on the probabilities, where the processing windows are smaller than the processing regions. In addition, the method includes performing object detection within the allocated processing windows.

TECHNICAL FIELD

This disclosure is generally directed to object detection systems and other detection systems. More specifically, this disclosure is directed to machine learning-based techniques for optimizing configuration parameters in target detection algorithms or other algorithms.

BACKGROUND

Various systems perform object detection and tracking or other target detection operations in order to support one or more additional functions. For example, in the defense space, target detection may be performed by satellites, aircraft, or other platforms in order to identify hostile aircraft, missiles, or other objects. In the commercial space, target detection may be performed by aircraft or other platforms to identify nearby objects (such as other aircraft) or to otherwise identify other objects that might pose safety concerns.

SUMMARY

This disclosure relates to machine learning-based techniques for optimizing configuration parameters in target detection algorithms or other algorithms.

In a first embodiment, a method includes obtaining an image of a scene and identifying one or more statistics associated with each of multiple processing regions within the image, where each processing region represents a portion of the image. The method also includes generating a probability of each of the processing regions containing at least one object of interest based on the statistics associated with the processing regions. The method further includes allocating multiple processing windows to one or more of the processing regions based on the probabilities, where the processing windows are smaller than the processing regions. In addition, the method includes performing object detection within the allocated processing windows. In related embodiments, a non-transitory machine readable medium contains instructions that when executed cause at least one processor to perform the method of the first embodiment.

In a second embodiment, an apparatus includes at least one memory configured to store an image of a scene. The apparatus also includes at least one processing device configured to identify one or more statistics associated with each of multiple processing regions within the image, where each processing region represents a portion of the image. The at least one processing device is also configured to generate a probability of each of the processing regions containing at least one object of interest based on the statistics associated with the processing regions. The at least one processing device is further configured to allocate multiple processing windows to one or more of the processing regions based on the probabilities, where the processing windows are smaller than the processing regions. In addition, the at least one processing device is configured to perform object detection within the allocated processing windows.

In a third embodiment, a method includes obtaining a labeled training dataset, where the labeled training dataset includes training images that are known to contain objects, training images that are known to not contain objects, and labels indicating which of the training images contain and do not contain objects. The method also includes training a machine learning model to generate probabilities that processing regions within captured images contain at least one object, where each processing region represents a portion of the corresponding captured image. In related embodiments, an apparatus includes at least one processing device configured to perform the method of the third embodiment. In other related embodiments, a non-transitory machine readable medium contains instructions that when executed cause at least one processor to perform the method of the first embodiment.

DETAILED DESCRIPTION

As noted above, various systems perform object detection and tracking or other target detection operations in order to support one or more additional functions. For example, in the defense space, target detection may be performed by satellites, aircraft, or other platforms in order to identify hostile aircraft, missiles, or other objects. In the commercial space, target detection may be performed by aircraft or other platforms to identify nearby objects (such as other aircraft) or to otherwise identify other objects that might pose safety concerns.

Various algorithms have been developed that attempt to increase the probability of target detection and reduce the probability of false alarms. A false alarm refers to an instance in which a potential object of interest is identified but is eventually determined to not be an actual object of interest. In some cases, the false alarm probability needs to be reduced since identifying potential objects of interest and transmitting information about those potential objects of interest can be subject to processing or throughput constraints. In other words, there may be limited processing resources available for identifying potential objects of interest, or there may be limited communication resources available for transmitting information about those identified potential objects of interest. As a result, reducing the probability of falsely identifying potential objects of interest can help to focus usage of these resources on identifying actual objects of interest.

In some implementations, these algorithms use target-likelihood models for identifying objects of interest that have a higher likelihood of being actual targets to be identified. These target-likelihood models can be based on parametric functions of statistics related to each region of images being processed. The parameters in the target-likelihood models typically need to be optimized for a particular type of scene, background clutter, target characteristics, sensor characteristics, and imaging modality. Currently, the optimization of the parameters in the target-likelihood models is based on the expertise of subject matter experts. These manual approaches are typically iterative and involve setting the model parameters, performing lengthy simulations, and making incremental changes to the model parameters in order to learn the effects of each parameter on the model and detection performance. Unfortunately, this makes the optimization of the parameters in the target-likelihood models time-consuming, slow, and expensive, and the overall results that are obtained can still be sub- optimal even with considerable effort.

This disclosure provides various techniques for optimizing configuration parameters in target detection algorithms or other algorithms. As described in more detail below, one or more images of a scene can be obtained, where target detection is to be performed using the one or more images. The one or more images can be processed in order to generate one or more statistics for each of multiple processing regions within the image(s). Each processing region represents a portion of the image(s), and the one or more statistics relate to the likelihood of a target object of interest being present in each processing region. The one or more statistics can be used to generate a probability of a target object of interest being present in each processing region, and the probabilities for the various processing regions can be used to allocate processing windows to one or more of the processing regions. Each processing window represents a portion of at least one processing region that can be analyzed further in order to perform target detection. This helps to increase or maximize the probability of one or more target objects being detected across the processing regions. Optionally, a position of each processing window may be selected in order to increase or maximize the probability of one or more target objects being detected within the associated processing region.

In some embodiments, one or more machine learning models may generate configuration parameters that are used to allocate the processing windows to the processing regions and optionally to position the processing windows within the processing regions. For example, configuration parameters may be used when converting the statistics associated with the processing regions into probabilities of target objects being detected within those processing regions. Other configuration parameters may be used when determining positions for the processing windows within one or more of the processing regions. The one or more machine learning models can be trained using suitable training data (such as one or more labeled training datasets) in order to optimally allocate the processing windows to the processing regions and optionally to optimally position the processing windows within the processing regions.

In this way, the described techniques help to increase or maximize the probability of target objects being identified successfully, which can help to increase the effectiveness of an overall system that uses or relies upon the successful identification of the target objects. Moreover, this can occur within systems that are more resource-constrained, such as those systems that are more constrained in terms of processing or communication resources available for use (like satellites and drones). Among other reasons, this is because the described techniques can reduce or minimize false alarms, which helps to focus usage of the processing or communication resources on actual target objects of interest. Further, the described techniques allow target-likelihood models or other models to be created faster, easier, and with reduced cost compared to those approaches relying on human experts. In addition, the described techniques allow the target-likelihood models or other models to be retrained as needed, such as when additional or more accurate training data becomes available.

Note that the techniques described in this disclosure may be used in any suitable applications in which resource allocation may be needed or desired based on a number of objects identified. For example, in some cases, the described techniques may be used on satellites, drones, aircraft, or other platforms to identify and track other objects (such as for commercial or defense purposes). In other cases, the described techniques may be used in logistics applications where resource allocations are optimized based on a number of objects identified. While the following discussion often uses a satellite configured to track objects as an example use case, this disclosure is not limited to that specific use case. In general, the described techniques may be broadly applicable to a number of applications, including those involving target detection through sensor-based imaging modalities.

FIGS.1and2illustrate an example application for machine learning-based optimization of configuration parameters for a target detection algorithm or other algorithm according to this disclosure. As shown inFIG.1, an image100of a scene has been captured and is being processed for target detection. In this particular example, the image100captures a portion of the Earth from space, although any other suitable images of any other suitable scenes may be captured and analyzed here. The image100may be obtained in any suitable manner, such as when the image100is captured by a camera or other imaging sensor of a satellite or other platform. The image100may have any suitable resolution and may include image data of any suitable form. The image100may represent a single image or an image forming part of a sequence of images.

The image100is divided into multiple processing regions102, where each processing region102represents a portion of the image100. In this example, the image100is divided into a 4×8 grid of processing regions102, and the processing regions102have equal or substantially equal sizes. However, the specific number, arrangement, and size(s) of the processing regions102can vary depending on the implementation. For example, in some cases, the processing regions102can be generated statically, such as when each image100or collection of images100is divided into the same set of processing regions102(which may be predefined in some instances). In other cases, the processing regions102can be generated dynamically, such as when each image100or collection of images100is divided into processing regions102such that each processing region102captures a similar level or type of clutter across that processing region102. In general, this disclosure is not limited to any specific technique for identifying the processing regions102within one or more images100.

In an ideal case, all image data associated with each processing region102can be processed in order to perform target object detection. However, in reality, many image processing platforms may lack the processing, memory, communication, or other resources needed to perform target object detection across all processing regions102of all images100being captured and analyzed. In these or other situations, a number of processing windows104may be distributed across each image100. Each processing window104represents a portion of at least one processing region102that can be analyzed further in order to perform target object detection. For example, an image processing platform may be able to analyze the image data within a specified number of processing windows104in order to determine whether at least one object of interest is detected within any of those processing windows104.

Because of this, the allocation of the processing windows104to the processing regions102represents an allocation problem in which it is determined how to optimally allocate a fixed number of resources (the processing windows104) spatially within the image100in order to increase or maximize the probability of success target detection while reducing or minimizing the probability of false alarms. As described below, this process can be governed by one or more spatial statistics associated with the image data within the processing regions102. For example, assume there are fifty processing windows104that can be allocated to the processing regions102. One goal here can include determining how to distribute the processing windows104to the processing regions102in order to enable target detection within the image100based on the statistics of the processing regions102. The allocation of the processing windows104to the processing regions102ideally enables a maximum number of targets to be identified within the processing windows104across all of the processing regions102.

As shown inFIG.2, an example process200illustrates how the processing windows104may be allocated to the processing regions102. In this example, various statistics202have been generated for the processing regions102associated with the image100. Here, a single statistic202is shown for each processing region102, although multiple statistics202may be generated for each processing region102.

The statistics202identify or relate to the likelihood of a target object of interest being present in each processing region102. The specific statistics202that are used and the specific calculations of those statistics202can vary based on the application. That is, the likelihood of a target object of interest being present in each processing region102can vary based on (among other things) the specific contents of the image100being processed and the application. For instance, in this example, the process200may be used in an application for identifying aircraft or other target objects that are near or over a specified geographic area (such as central North America). Based on the specific image100shown inFIG.1, the statistics202shown inFIG.2may be generated. Here, the first three columns of statistics202may be zero since the first three columns of processing regions102of the image100do not capture the specified geographic area or areas near the specified geographic area. The next two columns of statistics202may be relatively low since the next two columns of processing regions102of the image100are closer to the specified geographic area. The last three columns of statistics202may be relatively high since the last three columns of processing regions102of the image100include the specified geographic area. If another image is captured with the specified geographic area more centered in the image, the columns of statistics202may include higher values in the central processing regions102and lower values moving left and right. Note that while this example is relatively simplistic, it is provided merely to illustrate how the statistics202can vary based on the specific image being processed and the intended application.

A target probability determination function204processes the statistics202associated with one or more images100in order to generate probabilities206. Each of the probabilities206represents a probability of at least one target object of interest being present in the corresponding processing region102given the contents of the image(s)100. In other words, the target probability determination function204converts the statistics202associated with the processing regions102of the image(s)100into corresponding normalized probabilities206that target objects may be present within those processing regions102. The target probability determination function204may be said to implement a probability function Pr(qk|γk), where qkrepresents a specific processing region102and γkrepresents the statistic(s)202associated with that specific processing region102.

In some embodiments, the target probability determination function204may be implemented using a trained machine learning model. For example, the machine learning model may be trained to process statistics202for the processing regions102in order to generate the probabilities206of target objects being present in the processing regions102. As a particular example, a linear support vector machine (SVM) or other machine learning model may be used, where the linear SVM or other machine learning model generates a weighted sum of multiple statistics202for each processing region102. The weights used to produce the weighted sum for each processing region102may represent configuration parameters of the machine learning model and can be denoted as (α1, . . . , αN). Note, however, that the machine learning model used to implement the target probability determination function204may support any other suitable function for determining the probabilities206.

A processing window allocation function208processes the probabilities206in order to generate allocations210of processing windows104to the processing regions102. Each allocation210here represents a number of processing windows104allocated to the corresponding processing region102. For example, the processing window allocation function208can assign fewer or no processing windows104to those processing regions102having zero or lower probabilities206of being associated with target objects. The processing window allocation function208can assign more processing windows104to those processing regions102having higher probabilities206of being associated with target objects. In some cases, the number of processing windows104assigned to each specific processing region102can be based on a ratio involving the probability206for that specific processing region102and the sum of all probabilities206across all processing regions102. As a particular example, the number of processing windows104assigned to each specific processing region102may be determined as follows.

Here, T represents the total resource budget (such as the total number of processing windows104available for allocation), and R represents the total number of processing regions102. Also, xkrepresents the number of processing windows104allocated to the kthprocessing region102.

A processing window positioning function212processes the allocations210in order to determine how to position the processing windows104within the processing regions102to which those processing windows104have been allocated. Depending on the implementation, a processing window104may be positioned completely within the associated processing region102, or a processing window104may be positioned partially within the associated processing region102and partially within one or more neighboring processing regions102. In some embodiments, the processing window positioning function212may be implemented using a trained machine learning model. For example, the machine learning model may be trained to process image data and allocations210in order to determine optimal positions for the processing windows104within images100. As a particular example, the machine learning model may be trained to perform thresholding after applying a set of spatial filters to the image data contained in each processing region102that has been allocated one or more processing windows104. The weights used to produce the weighted sum for the spatial filters for each processing window candidate can be denoted as (β1, . . . , βM). These parameters can be tuned to specify the processing window positioning function212towards determining the position(s) of the processing window(s)104that increase or maximize the probability of target object detection. Note that the machine learning model used to implement the processing window positioning function212may support any suitable function for determining positions of the processing windows104.

Additional details regarding the functions of the process200are provided below. It should be noted that the functions shown in or described with respect toFIGS.1and2can be implemented in any suitable device(s) and in any suitable manner. For example, in some embodiments, at least some of the functions shown in or described with respect toFIGS.1and2can be implemented or supported using one or more software applications or other software instructions that are executed by one or more processors of an electronic device, such as one or more processors in a satellite, drone, or other platform. In other embodiments, at least some of the functions shown in or described with respect toFIGS.1and2can be implemented or supported using dedicated hardware components. In general, the functions shown in or described with respect toFIGS.1and2can be performed using any suitable hardware or any suitable combination of hardware and software/firmware instructions. Also, the functions shown in or described with respect toFIGS.1and2can be performed by a single device or by multiple devices, such as when one device captures images100and another device processes the images100.

AlthoughFIGS.1and2illustrate one example of an application for machine learning-based optimization of configuration parameters for a target detection algorithm or other algorithm, various changes may be made toFIGS.1and2. For example, the image100and its related processing regions102and processing windows104shown inFIG.1are for illustration only. The contents of images100, the definitions of processing regions102, and the allocations of processing windows104can vary widely depending on the circumstances. Also, the specific statistics202, probabilities206, and allocations210that are generated can vary widely depending on the circumstances.

FIG.3illustrates an example device300supporting machine learning-based optimization of configuration parameters for a target detection algorithm or other algorithm according to this disclosure. For example, the device300may represent at least part of a platform that analyzes images100using the process200in order to perform target object detection. Note, however, that the same type of device300as shown inFIG.3may be used for other or additional purposes. For instance, the device300may represent a server or other computing device that is used to train one or more machine learning models for use by a separate platform that performs the process200.

As shown inFIG.3, the device300denotes a computing device or system that includes at least one processing device302, at least one storage device304, at least one communications unit306, and at least one input/output (I/O) unit308. The processing device302may execute instructions that can be loaded into a memory310. The processing device302includes any suitable number(s) and type(s) of processors or other processing devices in any suitable arrangement. Example types of processing devices302include one or more microprocessors, microcontrollers, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or discrete circuitry.

The memory310and a persistent storage312are examples of storage devices304, which represent any structure(s) capable of storing and facilitating retrieval of information (such as data, program code, and/or other suitable information on a temporary or permanent basis). The memory310may represent a random access memory or any other suitable volatile or non-volatile storage device(s). The persistent storage312may contain one or more components or devices supporting longer-term storage of data, such as a read only memory, hard drive, Flash memory, or optical disc.

The communications unit306supports communications with other systems or devices. For example, the communications unit306can include a network interface card or a wireless transceiver facilitating communications over a wired or wireless network. The communications unit306may support communications through any suitable physical or wireless communication link(s).

The I/O unit308allows for input and output of data. For example, the I/O unit308may provide a connection for user input through a keyboard, mouse, keypad, touchscreen, or other suitable input device. The I/O unit308may also send output to a display or other suitable output device. Note, however, that the I/O unit308may be omitted if the device300does not require local I/O, such as when the device300represents a satellite, drone, or other platform that can be accessed remotely.

In some cases, the device300includes or is coupled to one or more imaging sensors314. Each imaging sensor314may be used to capture one or more images of one or more scenes. Depending on the implementation, the device300may include a single imaging sensor314or multiple imaging sensors314. Each imaging sensor314represents any suitable device configured to capture images. Each imaging sensor314may capture images having any suitable resolution and any suitable form. As particular examples, each imaging sensor314may represent a camera or other imaging sensor configured to capture illumination in the visible spectrum of light, infrared spectrum of light, ultraviolet spectrum of light, or any combination thereof.

In some embodiments, instructions executed by the processing device302include instructions that implement the functionality related to the process200. Thus, for example, the instructions when executed may cause the processing device302to obtain one or more images100, divide the images100into processing regions102, allocate processing windows104to the processing regions102, position the processing windows104within the processing regions102, and process image data within the processing windows104. The instructions when executed may also cause the processing device302to store, output, or use the results of the image data processing, such as by using or transmitting information about one or more detected target objects. In other embodiments, instructions executed by the processing device302include instructions that cause the processing device302to train one or more machine learning models for use during the process200.

AlthoughFIG.3illustrates one example of a device300supporting machine learning-based optimization of configuration parameters for a target detection algorithm or other algorithm, various changes may be made toFIG.3. For example, computing and communication devices and systems come in a wide variety of configurations, andFIG.3does not limit this disclosure to any particular computing or communication device or system.

FIG.4illustrates an example method400for machine learning-based optimization of configuration parameters for a target detection algorithm or other algorithm according to this disclosure. For ease of explanation, the method400is described as being performed using the device300ofFIG.3, which may be used to perform the process200ofFIG.2using one or more images100ofFIG.1. However, the method400may be performed using any other suitable device(s) and with any other suitable image(s) and process(es).

As shown inFIG.4, one or more images to be processed for target identification are obtained at step402. This may include, for example, the processing device302receiving one or more images100captured using one or more imaging sensors314. If necessary or desirable, any suitable pre-processing of the one or more images100may occur here, such as filtering to remove noise. Processing regions within the image(s) are identified at step404. This may include, for example, the processing device302dividing each image100into multiple processing regions102. As noted above, the processing regions102may be generated statically or dynamically, such as when each image100or collection of images100is divided into the same set of processing regions102or is divided into processing regions102that capture a similar level or type of clutter across each processing region102. One or more statistics are identified for each processing region at step406. This may include, for example, the processing device302calculating one or more statistics202for each processing region102based on the image data contained in that processing region102.

Processing windows are allocated to the processing regions in order to increase or maximize an overall target detection probability across the processing regions at step408. This may include, for example, the processing device302performing the target probability determination function204in order to process the statistics202and generate probabilities206for the processing regions102of the image(s)100. Each probability206can represent the probability of the associated processing region102containing one or more target objects of interest. In some cases, this may include the processing device302using a trained machine learning model to perform the target probability determination function204and generate the probabilities206. This may also include the processing device302performing the processing window allocation function208in order to allocate processing windows104to one or more of the processing regions102based on the probabilities206determined for the processing regions102. In some cases, this may include the processing device302using Equation (1) above to allocate the processing windows104to one or more of the processing regions102. In general, the processing device302may typically allocate more processing windows104to processing regions102having higher probabilities206and fewer/no processing windows104to processing regions102having lower probabilities206.

The processing windows are positioned in order to increase or maximize an overall target detection probability within individual processing regions at step410. This may include, for example, the processing device302performing the processing window positioning function212in order to process the allocations210of the processing windows104to the processing regions102and identify positions for those processing windows104within the image(s)100. In some cases, this may include the processing device302using a trained machine learning model to perform the processing window positioning function212and identify positions of the processing windows104within the image(s)100. Note that each processing window104may be positioned at any suitable location within the associated processing region102or across two or more neighboring processing regions102.

Target identification is performed within each processing window at step412. This may include, for example, the processing device302analyzing the image data from the image(s)100within each processing window104in order to determine whether one or more target objects of interest are present within each processing window104. Information regarding any identified target objects of interest can be stored, output, or used in some manner at step414. This may include, for example, the processing device302initiating transmission of information regarding any identified target objects of interest to an external destination, such as when a satellite transmits information regarding any identified target objects of interest to a ground station, airborne platform, naval platform, or other space-based platform. This may also or alternatively include the processing device302tracking any identified target objects of interest over time or performing other functions related to the identified target objects of interest. In general, information associated with each identified target object of interest may be used for any suitable purpose(s) and in any suitable manner.

AlthoughFIG.4illustrates one example of a method400for machine learning-based optimization of configuration parameters for a target detection algorithm or other algorithm, various changes may be made toFIG.4. For example, while shown as a series of steps, various steps inFIG.4may overlap, occur in parallel, occur in a different order, or occur any number of times (including zero times).

FIG.5illustrates an example method500for training one or more machine learning models for optimization of configuration parameters for a target detection algorithm or other algorithm according to this disclosure. For ease of explanation, the method500is described as being performed using the device300ofFIG.3, which may be used to train one or more machine learning models for use during the process200ofFIG.2. However, the method500may be performed using any other suitable device(s) and for any other suitable process(es).

As shown inFIG.5, a first labeled training dataset is obtained at step502. This may include, for example, the processing device302obtaining a training dataset containing training data with labels or annotations. The training data represents data that is provided to a machine learning model being trained, such as images containing known targets to be identified. The labels or annotations represent correct predictions to be generated by the machine learning model being trained based on the training data, such as correct allocations of processing windows104to processing regions102in order to detect the known targets in the images.

A machine learning model is trained to allocate processing windows to processing regions based on the first labeled training dataset at step504. This may include, for example, the processing device302providing at least some of the training data of the first labeled training dataset to the machine learning model being trained and generating allocations210of processing windows104to processing regions102based on the training data. This may also include the processing device302comparing the allocations210to the labels or annotations of the first labeled training dataset in order to verify if the allocations210would be adequate to detect the known objects in the training data. In some cases, a loss value can be calculated using a loss function, where the loss value identifies the extent of the differences or errors between the actual results generated by the machine learning model and the desired results as defined by the labels or annotations. If the loss value exceeds a threshold, weights or other parameters of the machine learning model can be adjusted, and the same training data or additional training data can be provided to the machine learning model for use in generating additional results. The additional results can be compared to the corresponding labels or annotations, and an updated loss value can be determined. This process can be repeated any number of times, and ideally the loss value decreases over time and eventually falls below the threshold, which can be indicative of the machine learning model being adequately trained. Eventually, an optimum set of configuration parameters for the machine learning model is obtained at step506. This may include, for example, the processing device302identifying a set of configuration parameters (α1, . . . , αN) for use by the target probability determination function204.

Similarly, a second labeled training dataset is obtained at step508. This may include, for example, the processing device302obtaining a training dataset containing training data with labels or annotations. The training data represents data that is provided to another machine learning model being trained, such as images containing known targets to be identified at known positions. The labels or annotations represent correct positions of processing windows104in order to detect the known targets in the images at the known positions.

Another machine learning model is trained to position processing windows based on the second labeled training dataset at step510. This may include, for example, the processing device302providing at least some of the training data of the second labeled training dataset to the other machine learning model being trained and generating positions of processing windows104based on the training data. This may also include the processing device302comparing the positions of the processing windows104to the labels or annotations of the second labeled training dataset in order to verify if the positions of the processing windows104would be adequate to detect the known objects in the training data at the known positions. Again, in some cases, a loss value can be calculated using a loss function, where the loss value identifies the extent of the differences or errors between the actual results generated by the other machine learning model and the desired results as defined by the labels or annotations. If the loss value exceeds a threshold, weights or other parameters of the other machine learning model can be adjusted, and the same training data or additional training data can be provided to the other machine learning model for use in generating additional results. The additional results can be compared to the corresponding labels or annotations, and an updated loss value can be determined. This process can be repeated any number of times, and ideally the loss value decreases over time and eventually falls below the threshold, which can be indicative of the other machine learning model being adequately trained. Eventually, an optimum set of configuration parameters for the other machine learning model is obtained at step512. This may include, for example, the processing device302identifying a set of configuration parameters (β1, . . . , βM) for use by the processing window positioning function212.

The optimum configuration parameters are deployed for use at step514. This may include, for example, the processing device302providing the set of configuration parameters (α1, . . . , αN) and the set of configuration parameters (β1, . . . , βM) to one or more other devices for use or placing the sets of configuration parameters into use by the device performing the training. As a particular example, this may include the processing device302of a server or other computing device initiating transmission of the configuration parameters to one or more satellites, drones, or other platforms for use. These platforms may use the configuration parameters to perform target identification, such as while performing the method400ofFIG.4.

With respect to the machine learning model used to implement the target probability determination function204, this machine learning model may be implemented using a linear support vector machine in some embodiments as noted above. In these embodiments, this machine learning model may be trained as follows. The linear support vector machine can be used to perform classification, where each processing region102is classified as likely or not likely to contain at least one target object. These embodiments therefore support a classification-based approach for optimizing machine learning model parameters and rapidly producing an optimal parameter set for increased or maximum probability of detection while reducing or minimizing false alarms. The labeled training dataset used to train this machine learning model in these embodiments can include aggregations of statistics202for processing regions102with and without targets present. In some cases, the labeled training dataset can contain observations of targets across a representative set of background clutter and noise realizations.

Using this type of labeled training dataset, an SVM-based classifier can be trained on a subset of data from the labeled training dataset using a given set of statistical features (such as raw statistics or transformations of raw statistics). The parameter set for the SVM-based classifier can be determined during training, such as by using stochastic gradient descent (SGD) to minimize hinge loss across the training data with a ridge regularization of the parameters. This produces an optimal parameter set for a linear classifier based on these statistical features. The probability of false alarms and false detections for the linear classifier can be estimated, such as by using the same training dataset, using a separate testing dataset, via cross-validation, or in any other suitable manner. The estimated probability of detection can be easily controlled by varying a scalar misclassification cost hyperparameter.

At this point, the resulting machine learning model can be considered complete, where the feature space that has been learned by the machine learning model is partitioned into two regions with a binary likelihood of either one (at least one target object is likely present) or zero (at least one target object is likely not present). However, the resulting machine learning model can be extended into a continuous probability mapping, such as via the application of an activation function to calculated distances from a hyperplane classification boundary. In other words, distances between the hyperplane separating the binary classes can be converted into continuous values between zero and one (or some other suitable range) using the activation function. There are various activation functions that may be used here, such as a Heaviside, sigmoid, hyperbolic tangent, or rectified linear unit (ReLU) activation function. The activation function that is selected for use here allows for nonlinearity in the probabilities206determined using the resulting machine learning model, which can improve the match between the resulting machine learning model and reality (empirical data).

Note that once a database of suitable training data has been generated or otherwise obtained, training and testing of various machine learning models used to implement the target probability determination function204or other functions may require very little expert knowledge and can be executed very quickly. After training, an optimal parameter set can be produced and can represent the relevant statistics from the training data contained in the database. The generalizability of the machine learning models trained here may only be limited by the fidelity of the database and the statistical features available/used in the machine learning models themselves. Also note that the use of SVM classification allows for a solution that is robust against outliers in data and that optimization through SGD allows for continuous updates to a parameter set given new data to be incorporated into the database. However, the use of SVM classification and SGD optimization is for illustration and explanation only, and other approaches may use other machine learning model architectures and/or other machine learning model optimization techniques. In addition, note that the database used here may include data from any suitable source(s), such as data from high-fidelity simulations and actual operational data.

In some embodiments, the training of an SVM-based classifier may occur as follows. The training of the SVM-based classifier here may be performed in order to numerically arrive at optimum values for a set of configurable parameters (α1, . . . , αN) for regional allocation of processing windows104to processing regions102in order to increase or maximize the probability of target detection. The configurable (hyperplane) parameters here define the SVM classification-based approach, and the configurable parameters can be determined from labeled examples within a database of region statistics. During the training, the following objective function may be used.

This can be rewritten as follows.

From Equation (4), the expression Pr(Target∈regionj|γj) represents the results from the SVM-based classifier. In some cases, the results from the SVM-based classifier may be binary and indicate either that a processing region102is likely or is not likely to contain one or more target objects based on its statistic(s)202. Thus, the training dataset used with the SVM-based classifier may include image data for processing regions102labeled with “target” and “no target” labels, which can be used to train the SVM-based classifier to set probabilities206to zero for processing regions102that are unlikely to contain targets. An optional probability density estimation may be performed using the training data within the database to train the SVM-based classifier to estimate target probabilities for processing regions102that are likely to contain targets.

AlthoughFIG.5illustrates one example of a method500for training one or more machine learning models for optimization of configuration parameters for a target detection algorithm or other algorithm, various changes may be made toFIG.5. For example, while shown as a series of steps, various steps inFIG.5may overlap, occur in parallel, occur in a different order, or occur any number of times (including zero times). As a particular example, it is possible to train one of the machine learning models described with respect toFIG.5without training another of the machine learning models described with respect toFIG.5.

The following describes example embodiments of this disclosure that implement or relate to machine learning-based techniques for optimizing configuration parameters in target detection algorithms or other algorithms. However, other embodiments may be used in accordance with the teachings of this disclosure.

In a first embodiment, a method includes obtaining an image of a scene and identifying one or more statistics associated with each of multiple processing regions within the image, where each processing region represents a portion of the image. The method also includes generating a probability of each of the processing regions containing at least one object of interest based on the statistics associated with the processing regions. The method further includes allocating multiple processing windows to one or more of the processing regions based on the probabilities, where the processing windows are smaller than the processing regions. In addition, the method includes performing object detection within the allocated processing windows. In related embodiments, a non-transitory machine readable medium contains instructions that when executed cause at least one processor to perform the method of the first embodiment.

In a second embodiment, an apparatus includes at least one memory configured to store an image of a scene. The apparatus also includes at least one processing device configured to identify one or more statistics associated with each of multiple processing regions within the image, where each processing region represents a portion of the image. The at least one processing device is also configured to generate a probability of each of the processing regions containing at least one object of interest based on the statistics associated with the processing regions. The at least one processing device is further configured to allocate multiple processing windows to one or more of the processing regions based on the probabilities, where the processing windows are smaller than the processing regions. In addition, the at least one processing device is configured to perform object detection within the allocated processing windows.

Any single one or any suitable combination of the following features may be used with the first or second embodiment or any related embodiment. The probabilities may be generated by processing the statistics associated with the processing regions using a machine learning model, and the machine learning model may be trained to convert the statistics associated with the processing regions into the probabilities. The machine learning model may include a support vector machine (SVM) classifier. The machine learning model may also include comprises an activation function configured to convert distances from a hyperplane classification boundary associated with the SVM classifier into probabilities along a continuous scale. The machine learning model may be trained to convert the statistics associated with the processing regions into the probabilities using a labeled training dataset. The labeled training dataset may include training images that are known to contain objects, training images that are known to not contain objects, and labels indicating which of the training images contain and do not contain objects. The machine learning model may be trained using stochastic gradient descent to minimize hinge loss across the labeled training dataset while using a ridge regularization of parameters of the machine learning model. The processing windows may be allocated to the one or more processing regions by determining a number of processing windows to allocate to each of the processing regions based on a ratio involving (i) a specified statistic associated with the processing region and (ii) a sum of the specified statistic across all of the processing regions.

In a third embodiment, a method includes obtaining a labeled training dataset, where the labeled training dataset includes training images that are known to contain objects, training images that are known to not contain objects, and labels indicating which of the training images contain and do not contain objects. The method also includes training a machine learning model to generate probabilities that processing regions within captured images contain at least one object, where each processing region represents a portion of the corresponding captured image. In related embodiments, an apparatus includes at least one processing device configured to perform the method of the third embodiment. In other related embodiments, a non-transitory machine readable medium contains instructions that when executed cause at least one processor to perform the method of the first embodiment.

Any single one or any suitable combination of the following features may be used with the third embodiment or any related embodiment. The machine learning model may be trained to convert statistics associated with the processing regions into the probabilities. The machine learning model may be trained using stochastic gradient descent to minimize hinge loss across the labeled training dataset and using a ridge regularization of parameters of the machine learning model. The machine learning model may include a support vector machine (SVM) classifier. The machine learning model may also include an activation function configured to convert distances from a hyperplane classification boundary associated with the SVM classifier into probabilities along a continuous scale. The trained machine learning model may be deployed to a platform for use in performing object detection.