Patent ID: 12248741

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

The following detailed description of example implementations refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.

A geolocation unit (e.g., a global positioning system (GPS device), a global navigation satellite systems (GNSS) device, and/or the like) may determine a location of the geolocation unit based on a radio frequency (RF) signal received from a satellite. The RF signal may include information identifying the satellite and a navigation message. The navigation message may include information identifying a position of the satellite (e.g., information identifying orbital data associated with the satellite) and information identifying a time associated with the position of the satellite. The geolocation unit may utilize the RF signal received from multiple satellites to determine the location of the geolocation unit. For example, the geolocation unit may determine a distance the geolocation unit is from each satellite and may determine the location of the geolocation unit based on the distances through trilateration.

Commonly, the received RF signals include substantial amounts of noise resulting from atmospheric conditions, geographic conditions, and/or the like. The substantial amounts of noise may result in inaccuracies in the determined location. Using heuristic and simulated models of motion may be used to increase the accuracy of the determined location. However, the heuristic and simulated models are complex, thereby increasing an amount of computing resources (e.g., processing resources, memory resources, communication resources, and/or the like) utilized by the geolocation unit. Further, the heurist and simulated models may have difficulty with noise that cannot be expressed formulaically.

In some cases, machine learning models may be used to reduce the inaccuracies in the determined location. However, a large amount of time and computing resources may be needed to obtain the volume and variety of training data required for training the machine learning models to achieve a sufficient degree of accuracy. Further, it may be difficult to obtain training data that includes a large variety of outlier events, such as occlusions and/or blocking of the RF signal that may be experienced by the geolocation unit.

Some implementations described herein relate to a geolocation system for performing a simulation of a geolocation unit moving along a path to generate training data for a machine learning model that is configured to adjust and/or account for inaccuracies of the geolocation unit caused by noise in the RF signal received from one or more satellites. For example, the geolocation system may execute the simulation to generate a simulated RF signal corresponding to an actual or real RF signal received by the geolocation unit as the geolocation unit travels along the path. The geolocation system may modify the RF signal to represent noise in the actual RF signal. Additionally, the geolocation system may randomly modify the modified signal to represent outlier events. The geolocation system may utilize the modified signal and information indicating a true location of the geolocation unit to train the machine learning model to determine a location of the geolocation unit based on the modified signal.

By modifying an RF signal generated based on simulating a geolocation unit traveling along the path, the geolocation system may generate large amounts of training data relative to an amount of training that that may otherwise be available for training the machine learning model. Further, by randomly modifying the modified signal, the training data used to train the machine learning model may include a large variety of outlier events. Using the large amounts of training data, including a large variety of outlier events, to train the machine learning model may improve an accuracy of the machine learning model associated with adjusting and/or accounting for inaccuracies of the geolocation unit resulting from noise in the reported values.

Accordingly, the geolocation system may conserve computing resources (e.g., processing resources, memory resources, communication resources, and/or the like) associated with identifying, obtaining, and/or generating actual historical data to train the model relative to other systems for identifying, obtaining, and/or generating historical data for training the model. Further, by improving the accuracy of the model, the geolocation system may conserve computing resources associated with inaccurately determining the location of the vehicle, performing a corrective action associated with the location of the vehicle being inaccurately determined, and/or the like.

FIGS.1A-1Dare diagrams of one or more example implementations100described herein. As shown inFIGS.1A-1D, the one or more example implementations100include a user device103associated with a geolocation system101. The user device103may include a device, such as a computer, a laptop, a tablet, a smart phone, and/or the like, that includes a geolocation unit for determining a location of the user device103.

As shown inFIG.1A, and by reference number110, the geolocation system101executes simulations based on simulation information to generate simulation data. The simulation information may include information associated with executing the simulations. For example, the simulation information may include geolocation unit information (e.g., information associated with a geolocation unit associated with the simulation (e.g., a type of geolocation unit, a brand associated with the geolocation unit, a model of the geolocation unit, an accuracy associated with the geolocation unit, and/or the like), motion information (e.g., information identifying a motion type associated with the simulations (e.g., driving, walking, flying, and/or the like), information identifying a path of travel, information identifying a speed of travel, information identifying a quantity of simulations to be executed, location information (e.g., information identifying a geographic area associated with the simulations, map data associated with the geographic area, and/or the like), and/or the like. The above-listed information is intended to be merely examples of types of information that may be included in the simulation information. In practice, the simulation information may include any one or more of the above-listed types of information and/or one or more other types of information not listed above.

In some implementations, the simulation information is input by a user. The user may input the simulation information via a user interface displayed on a client device (e.g., a computer, a laptop, a mobile device, and/or the like) associated with the geolocation system101. The client device may receive the input simulation information and may provide the simulation information to the geolocation system101.

In some implementations, the geolocation system101determines the simulation information. For example, the geolocation system101may determine the simulation information based on information input by a user. The user may input information identifying a type of geolocation unit, an application for which a geolocation unit is to be used, and/or the like via the user interface. The geolocation system101may determine the simulation information based on the input information. As an example, the user may input information identifying a particular type of geolocation unit (e.g., a geolocation unit included in a mobile device, a geolocation unit included in a vehicle, a hand-held geolocation unit, and/or the like). The geolocation system101may determine the simulation information based on the particular type of geolocation unit. For example, the geolocation system101may determine a type of motion associated with the particular type of geolocation unit, an accuracy associated with the particular type of geolocation unit, and/or the like.

In some implementations, the geolocation system101utilizes a simulation engine105to execute the simulations. The simulation engine105may include a path generator107. The path generator107may be configured to generate a path over which the geolocation unit is to travel during a simulation. The path generator107may generate the path based on the information identifying the path of travel, the motion information, the location information, and/or the like.

As an example, the path generator107may determine that the motion type associated with the geolocation unit is traveling based on the motion information. The path generator107may identify a geographic area associated with the simulation and/or a group of roadways included in the geographic area based on the location information. The path generator107may determine a series of locations along the group of roadways based on map data associated with the geographic area and included in the simulation information. The path generator107may generate a path of travel based on the series of locations (e.g., a true path of travel, as shown inFIG.1A).

The simulation engine105may execute the simulation by generating a signal representing an RF signal received by the geolocation unit as the geolocation unit travels along the path of travel. The simulation engine105may determine an initial location (e.g., a location at a time T0) of the geolocation unit (e.g., a vehicle including the geolocation unit, as shown inFIG.1A) based on the true path of travel. The simulation engine105may generate an initial signal corresponding to an RF signal that may be received by the geolocation unit at the initial location. The initial signal may include information that can be used by the geolocation unit to determine a location of the geolocation unit at the time T0. For example, the initial signal may include information identifying a satellite associated with the signal, information identifying a position of the satellite (e.g., information identifying orbital data associated with the satellite) information identifying a time associated with the position of the satellite, and/or the like.

The simulation engine105may determine a frequency at which the geolocation unit receives an RF signal from a satellite (e.g., every 5 milliseconds, every second, every minute, and/or the like) based on the simulation information. For example, the simulation information may include information indicating a type of the geolocation unit. The simulation engine105may determine a frequency at which the type of the geolocation unit receives RF signals from a satellite.

The simulation engine105may determine a next location of the geolocation unit (e.g., a location at time Ti) based on the true path of travel, the frequency at which the geolocation unit receives RF signals from the satellite, a speed at which the geolocation unit is traveling indicated in the simulation information, and/or the like. The simulation engine105may generate a signal corresponding to an RF signal received by the geolocation unit at the next location in a manner similar to that described above. The simulation engine105may generate a series of signals corresponding to RF signals received by the geolocation unit as the geolocation unit travels along the path of travel, in a manner similar to that described above.

The geolocation system101may determine a quantity of simulations based on the simulation information. The geolocation system101may cause the simulation engine105to execute the quantity of simulations to generate a respective series of signals for each simulation, in a manner similar to that described above.

As shown by reference number120, the geolocation system101generates training data from the sets of simulation data. The training data may include a plurality of sets of simulation data. Each set of simulation data, of the plurality of sets of simulation data, may be associated with a respective simulation of the simulations executed by the simulation engine105.

A set of simulation data, of the plurality of sets of simulation data, may be associated with a simulation and may include information identifying the true path of travel associated with the simulation and the series of signals generated based on executing the simulation. To simulate noise that may be included in location information obtained by a physical geolocation unit, the geolocation system101may modify the series of signals.

In some implementations, the geolocation system101may modify the series of signals based on a Gaussian noise included in a corresponding RF signal. The Gaussian noise may be a statistical noise having a probability density function (PDF) equal to that of a normal or Gaussian distribution. The geolocation system101may apply a level of Gaussian noise to the series of signals to modify the series of signals.

In some implementations, the geolocation system101may utilize a set of one or more filters to modify the series of signals. For example, the geolocation system101may cause the series of signals to pass through the set of one or more filters to modify each signal included in the series of signals. The one or more filters may be configured to modify the series of signals based on a distribution associated with noise included in an RF signal received by the geolocation unit.

In some implementations, the geolocation system101may further modify one or more of the modified series of signals to generate one or more outlier signals. The one or more outlier signals may represent an occlusion of an RF signal generated by a satellite, a blocking of the RF signal generated by the satellite, and/or the like. As an example, the geolocation system101may determine, based on location information (e.g., map data) included in the simulation information, that the geolocation unit travels through a tunnel as the geolocation unit travels along the path of travel. The geolocation system101may further modify one or more of the modified series of signals to generate an outlier signal representing an occlusion of an RF signal generated by a satellite caused by the geolocation unit traveling through the tunnel.

In some implementations, the geolocation system101generates the one or more outlier signals by including a larger amount of Gaussian noise (e.g., noise comprising 75%, 80%, 90%, and/or the like of the one or more outlier signals) in one or more of the modified series of signals relative to an amount of Gaussian noise included in other ones of the modified series of signals. The geolocation system101may apply a first level of Gaussian noise to a first group of signals, of the series of signals to modify the first group of signals. The geolocation system101may apply a second level of Gaussian noise to a second group of signals, of the series of signals to generate the one or more outlier signals. A maximum of a range of the first level of Gaussian noise may be less than or equal to a threshold percentage of a minimum of a range of the second level of Gaussian noise.

In some implementations, the first time period is associated with a first set of timestamps of the simulation and the second time period is associated with a second set of timestamps of the simulation. A quantity of the first set of timestamps may be greater than or equal to a threshold percentage of a total quantity of timestamps associated with a combination of the first time period and the second time period. A quantity of the second set of timestamps may be less than the threshold percentage of the total quantity of timestamps.

In some implementations, the geolocation system101generates the one or more outlier signals by time interleaving interrupts (e.g., inserting zeros) into the one or more modified signals. The geolocation system101may time interleave the interrupts into the one or more modified signals to represent an obstacle (e.g., an overpass, a tunnel, a large building, and/or the like) that may interrupt the RF signal transmitted by the satellite.

As shown inFIG.1B, and by reference number130, the geolocation system101trains the geolocation correction model based on the simulation data. In some implementations, the geolocation system101trains the geolocation correction model based on a motion type associated with the geolocation unit. The geolocation system101may determine a type of motion associated with the geolocation unit and/or the training data and may train the geolocation correction model to determine a location for a geolocation unit associated with the type of motion. For example, the geolocation system101may determine that the geolocation unit and/or the training data is associated with a driving type of motion. The geolocation system101may use the training data to train the geolocation correction model to determine a location based on RF signals received by a geolocation unit associated with the driving type of motion (e.g., a geolocation unit included in a vehicle). As another example, the geolocation system101may determine that the geolocation unit and/or the training data is associated with a walking type of motion. The geolocation system101may use the training data to train the geolocation correction model to determine a location based on RF signals received by a geolocation unit associated with the walking type of motion (e.g., a hand-held geolocation unit).

In some implementations, the geolocation system101may use the training data to train the geolocation correction model in near real-time relative to when the training data is generated. As an example, the geolocation system101may cause a modified signal to be stored in a memory (e.g., a queue, a data structure, and/or the like) based on the modified signal passing through the one or more filters used to modify the series of signals.

The geolocation system101may cause the stored modified signal and information identifying a true location of the geolocation unit to be provided to the geolocation correction model as inputs. The geolocation correction model may utilize a neural network to process the inputs and may generate a measured location of the geolocation unit as a result. Alternatively, and/or additionally, the geolocation correction model may utilize a convolutional neural network, a Siamese network, and/or the like to process the inputs.

In some implementations, the neural network is a recurrent neural network such as a long short-term memory (LSTM) network. The recurrent neural network may be a network that is configured to store information associated with past inputs for an amount of time that is determined based on the input data. The stored data may be utilized to determine a context associated with the inputs such as the effect a previous input may have on a current input.

Alternatively, and/or additionally, the neural network may include an autoencoder. The autoencoder may learn a representation for a set of data (e.g., a modified series of signals) by training the neural network to ignore noise included in the data.

The geolocation system101may provide a next stored modified signal and information identifying a true location of the geolocation unit associated with the modified signal as inputs to the geolocation correction model based on the geolocation model outputting the result. The geolocation system101may utilize the neural network to process the inputs and to generate a result in a manner similar to that described above. The process may continue in a similar manner for each modified signal included in the modified series of signals. The geolocation correction model may process each set of training data in a manner similar to that described above. In some implementations, the geolocation system101may train the geolocation correction model in a manner similar to that described below with respect toFIG.2.

In some implementations, the information identifying the true location of the geolocation unit corresponds to a location of the geolocation unit associated with the modified signal. In some implementations, the information identifying the true location of the geolocation unit corresponds to a subsequent or future location of the geolocation unit with respect to the location of the geolocation unit associated with the modified signal. The subsequent or future true location of the geolocation unit may be utilized to account for a time lag associated with an RF signal received by the geolocation unit. For example, the geolocation system101may determine an amount of time associated with an RF signal traveling from the satellite to the geolocation unit. The geolocation system101may determine a distance that the geolocation unit may travel along the path of movement during the amount of time based on information identifying a speed of the geolocation unit and/or an acceleration of the geolocation unit included in the simulation information. The geolocation system101may determine the subsequent or future location of the geolocation unit based on the distance that the geolocation unit may travel along the path of movement during the amount of time. In this way, the geolocation system101may train the geolocation correction model to account for a delay or time lag associated with the RF signal received by the geolocation unit.

In some implementations, the geolocation correction model may determine the amount of time during the training of the geolocation correction model. The geolocation correction model may determine an initial amount of time based on time lags associated with actual RF signals received by geolocation units associated with the type of motion associated with the training data. The geolocation correction model may modify or adjust the amount of time based on comparing a location of the geolocation unit determined by the geolocation correction model and the subsequent or future true location of the geolocation unit.

As shown inFIG.1C, and by reference number140, the geolocation system101deploys the geolocation correction model for use on the user device103. In some implementations, the geolocation system101deploys the geolocation correction model for use on the user device103based on a type of the geolocation unit. For example, the geolocation system101may determine that the geolocation unit is a type of geolocation unit included in a mobile device. The geolocation system101may enable the geolocation correction model to be installed on the mobile device to deploy the geolocation correction model for use on the mobile device (e.g., user device103), may provide the geolocation correction model to a network device to enable the user device103to access, from the network device, the geolocation correction model to process received RF signals, and/or the like.

In some implementations, the network device may be an edge network device included in a multi-access edge computing (MEC) environment. In the MEC environment, computing may be enabled by a network architecture that provides computing capabilities, to the user device103, via computing platforms at or near an edge of the network (e.g., a wireless communication network). Because the MEC environment may provide computing capabilities at or near the edge of the network, increased performance may be achieved over network in which computation is performed topologically and/or physically further from the user device103. For example, the MEC environment may increase performance due to less traffic and/or congestion between the user device103and the edge network device, less latency (e.g., due to the closer proximity to the user device103), and/or the like.

As shown inFIG.1D, and by reference number150, the geolocation correction model generates geolocation information based on geolocation data received from the user device103. The user device103(e.g., the geolocation unit included in the user device103) may obtain geolocation data (e.g., information included in an RF signal received from a satellite) and may utilize the geolocation correction model to determine geolocation information indicating a location of the user device103based on the geolocation data. For example, the geolocation correction model may be deployed on a network device (e.g., the edge network device of the MEC environment). The user device103may provide the geolocation data to the geolocation correction model via the MEC environment. The geolocation correction model may process the geolocation data to determine the geolocation information. The geolocation information may include information indicating a location of the user device103.

As shown by reference number160, the geolocation system101performs geolocation analysis associated with the user device103based on the geolocation information. The geolocation analysis may include processing the geolocation information to determine a location of the user device103, the geolocation unit included in the user device103, a user associated with the user device103, and/or the like.

As shown by reference number170, the geolocation system101performs one or more actions associated with the geolocation information. In some implementations, the one or more actions include providing the geolocation information to the user device103. The user device103may utilize the geolocation information to determine a location of the user device103. In this way, the user device103may determine a more accurate location of the user device103relative to a location of the user device103determined by the user device103and/or the geolocation unit included in the user device103. Further, utilizing the geolocation correction model to generate the geolocation information may enable the user device103to conserve computing resources that would otherwise be utilized to generate the geolocation information.

In some implementations, the one or more actions include generating and/or providing a report associated with a geolocation analysis of the user device103that is based on the geolocation information. The report may include information identifying the location of the user device103. The user device103may receive the report and may provide the information identifying the location of the user device103for display to the user. In this way, the user device103may conserve computing resources that would otherwise be utilized to determine the location of the user device103based on the geolocation information.

In some implementations, the one or more actions include generating and/or providing an alert based on the geolocation information indicating that the user device103is/was located at a particular location. The geolocation data received from the user device103may include information identifying the user device103and/or a user associated with the user device103. The geolocation system101may identify the user device103and/or the user associated with the user device103based on the geolocation data. The geolocation system101may obtain a user profile associated with the user based on the identity of the user and/or the user device103. The geolocation system101may determine that user associated with a service for providing alerts regarding the location of the user (e.g., a service for providing information to the user (e.g., via the user device103) when the user is located a particular location, within a predetermined distance of another user, and/or the like) based on the user profile. The geolocation system101may generate and/or provide an alert to the user and/or to another user (e.g., via another user device103) based on the geolocation information indicating that the user is at the particular location.

As indicated above,FIGS.1A-1Dare provided as an example. Other examples may differ from what is described with regard toFIGS.1A-1D. The number and arrangement of devices shown inFIGS.1A-1Dare provided as an example. In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than those shown inFIGS.1A-1D. Furthermore, two or more devices shown inFIGS.1A-1Dmay be implemented within a single device, or a single device shown inFIGS.1A-1Dmay be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) shown inFIGS.1A-1Dmay perform one or more functions described as being performed by another set of devices shown inFIGS.1A-1D.

FIG.2is a diagram illustrating an example200of training and using a machine learning model in connection with generating geolocation information. The machine learning model training and usage described herein may be performed using a machine learning system. The machine learning system may include or may be included in a computing device, a server, a cloud computing environment, and/or the like, such as the geolocation system101described in more detail elsewhere herein.

As shown by reference number205, a machine learning model may be trained using a set of observations (e.g., Simulation1and Simulation2, as shown inFIG.2). The set of observations may be obtained from historical data, such as data gathered during one or more processes described herein. In some implementations, the machine learning system may receive the set of observations (e.g., as input) from the geolocation system101, as described elsewhere herein.

As shown by reference number210, the set of observations includes a feature set. The feature set may include a set of variables, and a variable may be referred to as a feature. A specific observation may include a set of variable values (or feature values) corresponding to the set of variables. In some implementations, the machine learning system may determine variables for a set of observations and/or variable values for a specific observation based on input received from geolocation system101. For example, the machine learning system may identify a feature set (e.g., one or more features and/or feature values) by extracting the feature set from structured data, by performing natural language processing to extract the feature set from unstructured data, by receiving input from an operator, and/or the like.

As an example, a feature set for a set of observations may include a first feature of Time1, a second feature of Time2, a third feature of Time3, and so on. As shown, for a first observation, the first feature may have a value of measured Loc1-1, the second feature may have a value of measured Loc1-2, the third feature may have a value of measured Loc1-3, and so on. These features and feature values are provided as examples, and may differ in other examples.

As shown by reference number215, the set of observations may be associated with a target variable. The target variable may represent a variable having a numeric value, may represent a variable having a numeric value that falls within a range of values or has some discrete possible values, may represent a variable that is selectable from one of multiple options (e.g., one of multiples classes, classifications, labels, and/or the like), may represent a variable having a Boolean value, and/or the like. A target variable may be associated with a target variable value, and a target variable value may be specific to an observation. In example200, the target variable is Location, which has a value of True for the first observation. The value of True may indicate that the machine learning model accurately determined the location for the observation based on the set of features.

The target variable may represent a value that a machine learning model is being trained to predict, and the feature set may represent the variables that are input to a trained machine learning model to predict a value for the target variable. The set of observations may include target variable values so that the machine learning model can be trained to recognize patterns in the feature set that lead to a target variable value. A machine learning model that is trained to predict a target variable value may be referred to as a supervised learning model.

In some implementations, the machine learning model may be trained on a set of observations that do not include a target variable. This may be referred to as an unsupervised learning model. In this case, the machine learning model may learn patterns from the set of observations without labeling or supervision, and may provide output that indicates such patterns, such as by using clustering and/or association to identify related groups of items within the set of observations.

As shown by reference number220, the machine learning system may train a machine learning model using the set of observations and using one or more machine learning algorithms, such as a regression algorithm, a decision tree algorithm, a neural network algorithm, a k-nearest neighbor algorithm, a support vector machine algorithm, and/or the like. After training, the machine learning system may store the machine learning model as a trained machine learning model225to be used to analyze new observations.

As shown by reference number230, the machine learning system may apply the trained machine learning model225to a new observation, such as by receiving a new observation and inputting the new observation to the trained machine learning model225. As shown, the new observation may include a first feature of measured Loc N−1, a second feature of measured Loc N−2, a third feature of measured Loc N−3, and so on, as an example. The machine learning system may apply the trained machine learning model225to the new observation to generate an output (e.g., a result). The type of output may depend on the type of machine learning model and/or the type of machine learning task being performed. For example, the output may include a predicted value of a target variable, such as when supervised learning is employed. Additionally, or alternatively, the output may include information that identifies a cluster to which the new observation belongs, information that indicates a degree of similarity between the new observation and one or more other observations, and/or the like, such as when unsupervised learning is employed.

As an example, the trained machine learning model225may predict a value of True Loc N for the target variable of Location for the new observation, as shown by reference number235. Based on this prediction, the machine learning system may provide a first recommendation, may provide output for determination of a first recommendation, may perform a first automated action, may cause a first automated action to be performed (e.g., by instructing another device to perform the automated action), and/or the like.

In some implementations, the trained machine learning model225may classify (e.g., cluster) the new observation in a cluster, as shown by reference number240. The observations within a cluster may have a threshold degree of similarity. As an example, if the machine learning system classifies the new observation in a first cluster (e.g., Location True), then the machine learning system may provide a first recommendation. Additionally, or alternatively, the machine learning system may perform a first automated action and/or may cause a first automated action to be performed (e.g., by instructing another device to perform the automated action) based on classifying the new observation in the first cluster.

As another example, if the machine learning system were to classify the new observation in a second cluster (e.g., Location Not True), then the machine learning system may provide a second (e.g., different) recommendation and/or may perform or cause performance of a second (e.g., different) automated action.

In some implementations, the recommendation and/or the automated action associated with the new observation may be based on a target variable value having a particular label (e.g., classification, categorization, and/or the like), may be based on whether a target variable value satisfies one or more threshold (e.g., whether the target variable value is greater than a threshold, is less than a threshold, is equal to a threshold, falls within a range of threshold values, and/or the like), may be based on a cluster in which the new observation is classified, and/or the like.

In this way, the machine learning system may apply a rigorous and automated process to generating geolocation information. The machine learning system enables recognition and/or identification of tens, hundreds, thousands, or millions of features and/or feature values for tens, hundreds, thousands, or millions of observations, thereby increasing accuracy and consistency and reducing delay associated with generating geolocation information relative to requiring computing resources to be allocated for tens, hundreds, or thousands of operators to manually generating geolocation information using the features or feature values.

As indicated above,FIG.2is provided as an example. Other examples may differ from what is described in connection withFIG.2.

FIG.3is a diagram of an example environment300in which systems and/or methods described herein may be implemented. As shown inFIG.3, environment300may include a geolocation system101, which may include one or more elements of and/or may execute within a cloud computing system302. The cloud computing system302may include one or more elements303-313, as described in more detail below. As further shown inFIG.3, environment300may include a network320and/or a user device103. Devices and/or elements of environment300may interconnect via wired connections and/or wireless connections.

The cloud computing system302includes computing hardware303, a resource management component304, a host operating system (OS)305, and/or one or more virtual computing systems306. The resource management component304may perform virtualization (e.g., abstraction) of computing hardware303to create the one or more virtual computing systems306. Using virtualization, the resource management component304enables a single computing device (e.g., a computer, a server, and/or the like) to operate like multiple computing devices, such as by creating multiple isolated virtual computing systems306from computing hardware303of the single computing device. In this way, computing hardware303can operate more efficiently, with lower power consumption, higher reliability, higher availability, higher utilization, greater flexibility, and lower cost than using separate computing devices.

Computing hardware303includes hardware and corresponding resources from one or more computing devices. For example, computing hardware303may include hardware from a single computing device (e.g., a single server) or from multiple computing devices (e.g., multiple servers), such as multiple computing devices in one or more data centers. As shown, computing hardware303may include one or more processors307, one or more memories308, one or more storage components309, and/or one or more networking components310. Examples of a processor, a memory, a storage component, and a networking component (e.g., a communication component) are described elsewhere herein.

The resource management component304includes a virtualization application (e.g., executing on hardware, such as computing hardware303) capable of virtualizing computing hardware303to start, stop, and/or manage one or more virtual computing systems306. For example, the resource management component304may include a hypervisor (e.g., a bare-metal or Type1hypervisor, a hosted or Type2hypervisor, and/or the like) or a virtual machine monitor, such as when the virtual computing systems306are virtual machines311. Additionally, or alternatively, the resource management component304may include a container manager, such as when the virtual computing systems306are containers312. In some implementations, the resource management component304executes within and/or in coordination with a host operating system305.

A virtual computing system306includes a virtual environment that enables cloud-based execution of operations and/or processes described herein using computing hardware303. As shown, a virtual computing system306may include a virtual machine311, a container312, a hybrid environment313that includes a virtual machine and a container, and/or the like. A virtual computing system306may execute one or more applications using a file system that includes binary files, software libraries, and/or other resources required to execute applications on a guest operating system (e.g., within the virtual computing system306) or the host operating system305.

Although the geolocation system101may include one or more elements303-313of the cloud computing system302, may execute within the cloud computing system302, and/or may be hosted within the cloud computing system302, in some implementations, the geolocation system101may not be cloud-based (e.g., may be implemented outside of a cloud computing system) or may be partially cloud-based. For example, the geolocation system101may include one or more devices that are not part of the cloud computing system302, which may include a standalone server or another type of computing device. The geolocation system101may perform one or more operations and/or processes described in more detail elsewhere herein.

Network320includes one or more wired and/or wireless networks. For example, network320may include a cellular network, a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a private network, the Internet, and/or the like, and/or a combination of these or other types of networks. The network320enables communication among the devices of environment300.

User device103includes one or more devices capable of receiving, generating, storing, processing, and/or providing information associated with generating geolocation information, as described elsewhere herein. The user device103may include a communication device and/or a computing device. For example, the user device103may include a wireless communication device, a user equipment (UE), a mobile phone (e.g., a smart phone or a cell phone, among other examples), a laptop computer, a tablet computer, a handheld computer, a desktop computer, a gaming device, a wearable communication device (e.g., a smart wristwatch or a pair of smart eyeglasses, among other examples), an Internet of Things (IoT) device, or a similar type of device. The user device103may communicate with one or more other devices of environment300, as described elsewhere herein.

The number and arrangement of devices and networks shown inFIG.3are provided as an example. In practice, there may be additional devices and/or networks, fewer devices and/or networks, different devices and/or networks, or differently arranged devices and/or networks than those shown inFIG.3. Furthermore, two or more devices shown inFIG.3may be implemented within a single device, or a single device shown inFIG.3may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of environment300may perform one or more functions described as being performed by another set of devices of environment300.

FIG.4is a diagram of example components of a device400, which may correspond to the geolocation system101and/or the user device103. In some implementations, the geolocation system101and/or the user device103may include one or more devices400and/or one or more components of device400. As shown inFIG.4, device400may include a bus410, a processor420, a memory430, a storage component440, an input component450, an output component460, and a communication component470.

Bus410includes a component that enables wired and/or wireless communication among the components of device400. Processor420includes a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor, a field-programmable gate array, an application-specific integrated circuit, and/or another type of processing component. Processor420is implemented in hardware, firmware, or a combination of hardware and software. In some implementations, processor420includes one or more processors capable of being programmed to perform a function. Memory430includes a random access memory), a read only memory, and/or another type of memory (e.g., a flash memory, a magnetic memory, and/or an optical memory).

Storage component440stores information and/or software related to the operation of device400. For example, storage component440may include a hard disk drive, a magnetic disk drive, an optical disk drive, a solid state disk drive, a compact disc, a digital versatile disc, and/or another type of non-transitory computer-readable medium. Input component450enables device400to receive input, such as user input and/or sensed inputs. For example, input component450may include a touch screen, a keyboard, a keypad, a mouse, a button, a microphone, a switch, a sensor, a global positioning system component, an accelerometer, a gyroscope, an actuator, and/or the like. Output component460enables device400to provide output, such as via a display, a speaker, and/or one or more light-emitting diodes. Communication component470enables device400to communicate with other devices, such as via a wired connection and/or a wireless connection. For example, communication component470may include a receiver, a transmitter, a transceiver, a modem, a network interface card, an antenna, and/or the like.

Device400may perform one or more processes described herein. For example, a non-transitory computer-readable medium (e.g., memory430and/or storage component440) may store a set of instructions (e.g., one or more instructions, code, software code, program code, and/or the like) for execution by processor420. Processor420may execute the set of instructions to perform one or more processes described herein. In some implementations, execution of the set of instructions, by one or more processors420, causes the one or more processors420and/or the device400to perform one or more processes described herein. In some implementations, hardwired circuitry may be used instead of or in combination with the instructions to perform one or more processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software.

The number and arrangement of components shown inFIG.4are provided as an example. Device400may include additional components, fewer components, different components, or differently arranged components than those shown inFIG.4. Additionally, or alternatively, a set of components (e.g., one or more components) of device400may perform one or more functions described as being performed by another set of components of device400.

FIG.5is a flowchart of an example process500associated with systems and methods for generating geolocation information. In some implementations, one or more process blocks ofFIG.5may be performed by a device (e.g., geolocation system101). In some implementations, one or more process blocks ofFIG.5may be performed by another device or a group of devices separate from or including the device, such as a user device (e.g., user device103) and/or the like. Additionally, or alternatively, one or more process blocks ofFIG.5may be performed by one or more components of a device400, such as processor420, memory430, storage component440, input component450, output component460, communication component470, and/or the like.

As shown inFIG.5, process500may include receiving simulation information (block510). For example, the device may receive simulation information associated with iteratively simulating movement of a geolocation unit, as described above. The simulation information may identify a type of the geolocation unit. The device may generate simulated true paths, associated with the true simulation locations, and time lengths of iterations of the simulation based on the type of the geolocation unit.

Alternatively, and/or additionally, the simulation information may identify a geographical area. The device may generate simulated true paths, associated with the true simulation locations, based on the geographical features of the geographical area. In some implementations, the simulation information may identify a desired level of accuracy associated with the geolocation correction model determining a true location of the active geolocation unit. The convergence threshold may be based on the desired level of accuracy.

In some implementations, the simulation information includes sets of true location data and corresponding simulated measured data of the plurality of executed simulations. The true location data may be associated with simulation paths of a plurality of executed simulations. The corresponding simulated measured data may be generated based on applying Gaussian noise to the simulation paths.

As further shown inFIG.5, process500may include generating a plurality of simulated true paths for simulations of the movement of the geolocation unit (block520). For example, the device may generate a plurality of simulated true paths for simulations of the movement of the geolocation unit, as described above.

As further shown inFIG.5, process500may include executing the simulations to correspondingly generate sets of simulation data (block530). For example, the device may execute the simulations to correspondingly generate sets of simulation data, as described above. The simulations may be executed based on simulation parameters that were configured based on at least one of a characteristic of the user device or a geographical region.

In some implementations, the device may configure a simulation engine to execute the simulations. Configuring the simulation engine may include configuring ranges for one or more simulation parameters of the set of simulation parameters based on the simulation information.

As further shown inFIG.5, process500may include modifying the sets of simulation data to generated modified sets of simulation data representing distortion of a signal received by the geolocation unit during the simulations (block540). For example, the device may modify the sets of simulation data to generate modified sets of simulation data representing distortion of a signal received by the geolocation unit during the simulations, as described above. In some implementations, the modified sets of simulation data correspond to simulated measured paths.

In some implementations, the device may apply a first level of Gaussian noise to a true simulation path of the simulation for a first time period of the simulation. The device may apply a second level of Gaussian noise to the true simulation path of the simulation for a second time period of the simulation. A maximum of a range of the first level of Gaussian noise may be less than or equal to a threshold percentage of a minimum of a range of the second level of Gaussian noise.

The first level of Gaussian noise may be applied to simulate distortion of a geolocation signal received by the geolocation unit during the simulation. The second level of Gaussian noise may be applied to simulate an anomaly in the geolocation signal. The device may determine a frequency of applying the second level of Gaussian noise, a distance of a simulation path corresponding to the movement of the geolocation unit, and/or a time length of the simulation based on a set of simulation parameters associated with the simulation.

In some implementations, the first time period may be associated with a first set of timestamps of the simulation and the second time period may be associated with a second set of timestamps of the simulation. A quantity of the first set of timestamps may be greater than or equal to a threshold percentage of a total quantity of timestamps associated with a combination of the first time period and the second time period. A quantity of the second set of timestamps may be less than the threshold percentage of the total quantity of timestamps.

As further shown inFIG.5, process500may include training, using the modified sets of simulation data, a geolocation correction model (block550). For example, the device may train, using the modified sets of simulation data, a geolocation correction model based on differences between true location data of the plurality of simulated true paths and simulated measured data of the simulated measured paths, as described above. The modified sets of simulation data may indicate the differences based on mapping, based on a simulated timing of an associated simulation, true simulation locations of the true location data to corresponding measured locations of the simulated measured data. The geolocation correction model may comprise a neural network that is associated with at least one or an autoencoder model or a long short-term memory model. The autoencoder model may iteratively configure the simulation parameters of the executed simulations. The long short-term model may iteratively identify dependencies associated with simulated measured data and true location data of the executed simulations. In some implementations, the geolocation correction model may be associated with a geolocation application installed on the user device.

As further shown inFIG.5, process500may include generating, based on training the geolocation correction model, a GPS de-noiser to process a geolocation signal of an active geolocation unit to determine a location of the active geolocation unit (block560). For example, the device may generate the GPS de-noiser to process a geolocation signal of an active geolocation unit to determine a location of the active geolocation unit based on the differences between the true location data and the simulated measured data, as described above.

In some implementations, generating the GPS de-noiser comprises enabling the GPS de-noiser to receive, from the active geolocation unit, measured geolocation data associated with the geolocation signal; processing, using the GPS de-noiser, the measured geolocation data to generate corrected geolocation data; perform a geolocation analysis of the active geolocation unit based on the corrected geolocation data, the geolocation analysis is relative to the active geolocation unit being within a threshold distance of a particular geographical location, and perform one or more actions associated with the active geolocation unit being within the threshold distance of the particular geographical location.

In some implementations, the one or more actions may include at least one of: providing, to a user device associated with the active geolocation unit, a notification that the user device is or was within the threshold distance of the particular geographical location; or causing an interface of a geolocation platform to indicate that the user device is or was within a threshold distance of the particular geographical location.

Alternatively, and/or additionally, the one or more actions may include at least one of indicating, via a display of the user device, a location corresponding to the corrected geolocation data or providing, to a geolocation platform, the corrected location to permit the geolocation platform to perform a geolocation analysis associated with the user device.

In some implementations, generating the GPS de-noiser includes at least one of deploying the GPS de-noiser to the active geolocation unit to permit the active geolocation unit to locally process the geolocation signal, or enabling the GPS de-noiser to receive, from the active geolocation unit, measured geolocation data associated with the geolocation signal and process the measured geolocation data to indicate the location of the active geolocation unit.

AlthoughFIG.5shows example blocks of process500, in some implementations, process500may include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted inFIG.5. Additionally, or alternatively, two or more of the blocks of process500may be performed in parallel.

The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise form disclosed. Modifications and variations may be made in light of the above disclosure or may be acquired from practice of the implementations.

As used herein, the term “component” is intended to be broadly construed as hardware, firmware, or a combination of hardware and software.

Some implementations are described herein in connection with thresholds. As used herein, satisfying a threshold may, depending on the context, refer to a value being greater than the threshold, more than the threshold, higher than the threshold, greater than or equal to the threshold, less than the threshold, fewer than the threshold, lower than the threshold, less than or equal to the threshold, equal to the threshold, etc., depending on the context.

Certain user interfaces have been described herein and/or shown in the figures. A user interface may include a graphical user interface, a non-graphical user interface, a text-based user interface, and/or the like. A user interface may provide information for display. In some implementations, a user may interact with the information, such as by providing input via an input component of a device that provides the user interface for display. In some implementations, a user interface may be configurable by a device and/or a user (e.g., a user may change the size of the user interface, information provided via the user interface, a position of information provided via the user interface, etc.). Additionally, or alternatively, a user interface may be pre-configured to a standard configuration, a specific configuration based on a type of device on which the user interface is displayed, and/or a set of configurations based on capabilities and/or specifications associated with a device on which the user interface is displayed.

To the extent the aforementioned implementations collect, store, or employ personal information of individuals, it should be understood that such information shall be used in accordance with all applicable laws concerning protection of personal information. Additionally, the collection, storage, and use of such information can be subject to consent of the individual to such activity, for example, through well known “opt-in” or “opt-out” processes as can be appropriate for the situation and type of information. Storage and use of personal information can be in an appropriately secure manner reflective of the type of information, for example, through various encryption and anonymization techniques for particularly sensitive information.

It will be apparent that systems and/or methods described herein may be implemented in different forms of hardware, firmware, and/or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and/or methods is not limiting of the implementations. Thus, the operation and behavior of the systems and/or methods are described herein without reference to specific software code—it being understood that software and hardware can be used to implement the systems and/or methods based on the description herein.

Even though particular combinations of features are recited in the claims and/or disclosed in the specification, these combinations are not intended to limit the disclosure of various implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and/or disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of various implementations includes each dependent claim in combination with every other claim in the claim set.

No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items, and may be used interchangeably with “one or more.” Further, as used herein, the article “the” is intended to include one or more items referenced in connection with the article “the” and may be used interchangeably with “the one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, a combination of related and unrelated items, etc.), and may be used interchangeably with “one or more.” Where only one item is intended, the phrase “only one” or similar language is used. Also, as used herein, the terms “has,” “have,” “having,” or the like are intended to be open-ended terms. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise. Also, as used herein, the term “or” is intended to be inclusive when used in a series and may be used interchangeably with “and/or,” unless explicitly stated otherwise (e.g., if used in combination with “either” or “only one of”).