Patent Description:
Object detection systems can capture a variety of information about the objects in an environment, including, for example the appearance of the objects. Associating aspects of a detected object (e.g., the appearance of the object) with another piece of information such as the type of object can be useful in various applications. However, many existing object detection systems require a great deal of manual analysis and input, which can be burdensome. Further, many of the existing systems used to analyze areas are either wasteful of resources due to excessive updating of areas that have not changed or inaccurate due to not providing an up to date representation of the areas. Accordingly, there exists a demand for an effective way to update information associated with the state of an environment.

<CIT> discloses that the identification and tracking of objects from captured sensor data relies upon statistical modeling methods to sift through large data sets and identify items of interest to users of the system. Statistical modeling methods such as Hidden Markov Models in combination with particle analysis and Bayesian statistical analysis produce items of interest, identify them as objects, and present them to users of the system for identification feedback. The integration of a training component based upon the relative cost of sampling sensors for additional parameters, provides a system that can formulate and present policy decisions on what objects should be tracked, leading to an improvement in continuous data collection and tracking of identified objects within the sensor data set. <CIT> addresses the development and real-world expression of algorithms for adaptive processing of multi-sensor data, employing feedback to optimize the linkage between observed data and sensor control. A robust methodology is provided for adaptively learning the statistics of canonical behavior via, for example, a Hidden Markov Model process, or other statistical modeling processes as deemed necessary. This method is then capable of detecting behavior not consistent with typically observed behavior. Once anomalous behavior has been detected, the instant invention, with or without user contribution, can formulate policies and decisions to achieve a physical action in the monitored area.

As explained further in <CIT>, methods to detect anomalous human behavior in collected video data may be used with a sensor management system which has three fundamental components: a Tracking module, which provides the identification of objects of interest and parametric representation (feature extraction) of such objects; an Activity Evaluation module, which provides the statistical characterization of dynamic features using general statistical modeling; and a Sensor Management Agent (SMA) module that optimally controls sensor actions based on the SMA's "world understanding" (belief state). This belief state is driven by the dynamic behavior of objects under interrogation wherein the objects to be interrogated are those items identified within the collected data as objects or artifacts of interest. The Tracking module is an adaptive-sensing system that employs multiple sensors and multiple resolutions within a given modality (e.g., zoom capability in video). When performing sensing, the feature extraction process within the module is performed for multiple sensors and at multiple resolutions. The features also address time-varying data, and therefore they may be sequential. Feature extraction uses multiple methods for video background subtraction, object identification, parametric object representation, and object tracking via particle filters to identify and catalog objects for future examination and tracking. After the Tracking module has performed multi-sensor, multi-resolution feature extraction, the Activity Evaluation module uses generative statistical models to characterize different types of typical/normal behavior. Data observed subsequently is deemed anomalous if it has a low likelihood of being generated by such models. Since the data are generally time varying (sequential), hidden Markov models (HMMs) have been employed, however, other statistical modeling methods may also be used. The statistical modeling method is used to drive the policy-design algorithms employed for sensor management. In the preferred embodiment, HMMs are used to model video data to train the system regarding multiple human behavior classes. A partially observable Markov decision process (POMDP) algorithm is one statistical modeling method that will utilize the aforementioned HMMs to yield an optimal policy for adaptive execution of sensing actions. The optimal policy includes selection from among the multiple sensors and sensor resolutions, while accounting for sensor costs. The policy also determines when to optimally stop sensing and make classification decisions, based upon user provided costs to compute the Bayes risk. In addition, the POMDP may take the action of asking an analyst to examine and label new data that may not necessarily appear anomalous, but for which access to the label would improve algorithm performance. This type of activity is typically called active learning. In this context, the underlying statistical models are adaptively refined and updated as the characteristics of the scene represented by the captured data change, with the sensing policy refined accordingly. The sensor management framework does not rely on the statistical modeling method used, but is also possible with a model-free reinforcement-learning (RL) setting, building upon collected sensor data. The POMDP and RL algorithms have significant potential in solving general multi-sensor scheduling and management problems. The Activity Evaluation module utilizes multiple sensor modalities as well as multiple resolutions within a single modality. For example, this modality comprises captured video with zoom capabilities. The system adaptively performs coarse-to-fine sensing via the multiple modalities, to determine whether observed data are consistent with normal activities.

Captured input data is routed from sensors to a series of tacking software modules which are operative to incorporate incoming data into a series of object states. The Sensor Management Agent (SMA) uses the input object states data to produce an estimate of change for the state data. These hypothesized states data are presented as input to the Activity Evaluation module. The Activity Evaluation module produces a risk assessment evaluation for each input object state and provides this information to the SMA. The SMA determines whether the risk assessment data exceeds an information threshold and issues system alerts based upon the result. The SMA also provides next measurement operational information to the sensors through the Sensor Control module. The system is also operative to provide User feedback as an additional input to the SMA.

Temporal object dynamics are represented via an HMM, with multiple HMMs developed to represent canonical "normal" object behavior. The underlying HMM states serve to capture the variety of object feature manifestations that may be observed for normal behavior. For example, as a person walks, the object features typically exhibit a periodicity that can be captured by an appropriate HMM state-transition architecture. The object features are represented using a discrete HMM with a regularization term to mitigate association of anomalous features to the discrete feature codebook developed while training the system. Variational Bayes methods are used to determine the proper number of HMM states. The instant invention defines the "state" of a moving target by its orientation with respect to the sensor (e.g., video camera). For example, in the preferred embodiment a car or individual may have three principal states, defined by the view of the target from the sensor: (i) front view, (ii) back view and (iii) side view. The number of appropriate states will be determined from the data, using Bayesian model selection.

As disclosed in paragraph [<NUM>] of <CIT>, the generative statistical models (HMMs) will be utilized to provide sensor exploitation by an adaptive learning system module within the Sensor Management Agent (SMA). This is implemented by employing feedback between the observed data and sensor parameters (optimal adaptive sensor management). In particular, POMDP generative models are used to constitute optimal policies for modifying sensor parameters based on observed data. Specifically, the POMDP is defined by a set of states, actions, observations and rewards (costs). Given a sequence of n actions and observations, respectively {a1, a2,. , an} and {o1, o2,. , on}, the statistical models yield a belief bn concerning the state of the environment under surveillance. The POMDP yields an optimal policy for mapping the belief state after n measurements into the optimal next action: bn → an+<NUM>. This policy is based on a finite or infinite horizon of measurements and it accounts for the cost of implementing the measurements defined, for example, in units of time, as well as the Bayes risk associated with making decisions about the state of the environment (normal vs. anomalous behavior). As disclosed in paragraph [<NUM>] of <CIT>, the POMDP gives a policy for when the belief state indicates that sufficient sensing has been undertaken on a given target to make a decision as to whether it is typical/atypical. After T actions and observations, equation (<NUM>) in paragraph [<NUM>] of <CIT> may be used to compute the probability that a given state, across all N targets, is being observed. The belief state in equation (<NUM>) may also be used to compute the probability that target class n is being interrogated.

<NPL>) discloses that a distributed camera network allows for applications such as large-scale tracking or event detection. In most practical systems, resources are constrained. Constraints arise from network bandwidth restrictions, I/O and disk usage from writing images, and CPU usage needed to extract features from the images. Assume that, due to resource constraints, only a subset of sensors can be probed at any given time unit. The paper examines the problem of selecting the 'best' subset of sensors to probe under some user-specified objective - e.g., detecting as much motion as possible. Sensor semantics guide the scheduling of resources. A dynamic probabilistic model of motion correlations between cameras is learned, and used to guide resource allocation for the sensor network.

Aspects and advantages of embodiments of the present disclosure will be set forth in part in the following description, or may be learned from the description, or may be learned through practice of the embodiments. The invention is defined by independent claims <NUM>, <NUM>, <NUM> and <NUM>.

One example aspect of the present disclosure is directed to a method of updating a sensor based on sensor data and the semantic state associated with an area. The method can include receiving, by a computing system that includes one or more computing devices, sensor data based in part on one or more sensor outputs from one or more sensors. The sensor data can include information associated with one or more states of one or more areas detected by the one or more sensors. The method can include generating, by the computing system, based in part on the sensor data, an estimated semantic state of an area of the one or more areas from a target sensor that can detect the one or more states of the one or more areas. The method can include determining, by the computing system, based in part on a comparison of the estimated semantic state to one or more semantic states of the area from the one or more sensors, an uncertainty level associated with an accuracy of the estimated semantic state. Further, the method can include, responsive to the uncertainty level satisfying one or more update criteria, obtaining, by the computing system, an updated version of the sensor data from the target sensor.

Another example aspect of the present disclosure is directed to one or more tangible, non-transitory computer-readable media storing computer-readable instructions that when executed by one or more processors cause the one or more processors to perform operations. The operations can include receiving sensor data based in part on one or more sensor outputs from one or more sensors. The sensor data can include information associated with one or more states of one or more areas detected by the one or more sensors. The operations can include generating, based in part on the sensor data, an estimated semantic state of an area of the one or more areas from a target sensor that can detect the one or more states of the one or more areas. The operations can include determining, based in part on a comparison of the estimated semantic state to one or more semantic states of the area from the one or more sensors, an uncertainty level associated with an accuracy of the estimated semantic state. Further, the operations can include, responsive to the uncertainty level satisfying one or more update criteria, obtaining an updated version of the sensor data from the target sensor.

Another example aspect of the present disclosure is directed to a computing system comprising one or more processors, and one or more non-transitory computer-readable media storing instructions that when executed by the one or more processors cause the one or more processors to perform operations. The operations can include The operations can include receiving sensor data based in part on one or more sensor outputs from one or more sensors. The sensor data can include information associated with one or more states of one or more areas detected by the one or more sensors. The operations can include generating, based in part on the sensor data, an estimated semantic state of an area of the one or more areas from a target sensor that can detect the one or more states of the one or more areas. The operations can include determining, based in part on a comparison of the estimated semantic state to one or more semantic states of the area from the one or more sensors, an uncertainty level associated with an accuracy of the estimated semantic state. Further, the operations can include, responsive to the uncertainty level satisfying one or more update criteria, obtaining an updated version of the sensor data from the target sensor.

Other example aspects of the present disclosure are directed to other computer-implemented methods, systems, apparatus, tangible, non-transitory computer-readable media, user interfaces, memory devices, and electronic devices for updating a sensor based on sensor data and the semantic state associated with an area.

These and other features, aspects and advantages of various embodiments will become better understood with reference to the following description and appended claims. The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments of the present disclosure and, together with the description, serve to explain the related principles.

Example aspects of the present disclosure are directed to the determination of when to obtain updated sensor data for an area from a sensor based on more recent sensor data for the area provided by one or more other sensors. The disclosed technology can include receiving sensor data that is associated with the state of a target area (e.g., an outdoor area or other geographic area), determining based in part on the sensor data and, in some implementations, a machine learned model, an estimated semantic state of the target area, determining an uncertainty level (e.g., an indication of the level of uncertainty that the sensor data is accurate) based on a comparison of the estimated semantic state of the target area to semantic states of the area determined based on outputs from other sensors, and/or obtaining an updated version of the sensor data when the uncertainty level satisfies one or more uncertainty criteria (e.g., exceeding an uncertainty threshold level).

As such, the disclosed technology can enable more efficient acquisition, from a particular sensor, of sensor data for an area by causing data to be reacquired only when it is likely to be necessary, for instance, because it has been determined, based on data from other sensors, that the area is likely to have changed since the previous acquisition of sensor data by the particular sensor. By acquiring updated sensor data only when it is likely to be necessary, computational resources required to transmit, process and store sensor data may be used more efficiently. In addition, the load on the hardware at the sensor may be reduced. Also, the disclosed technology can more effectively estimate the semantic state associated with a sensor and provide more efficient utilization of computational power and sensor resources through use of sensor data from different sensors used to detect an area.

By way of example, the disclosed technology can include a computing system that exchanges (sends and/or receives) data or information with one or more sensors. The one or more sensors can generate sensor outputs (e.g., photographic images) that are based on one or more areas (e.g., geographic areas) that are detected by the one or more sensors. The one or more sensors can include a variety of sensors that capture various aspects and/or perspectives of the one or more areas at different sensor resolution levels. As obtaining and processing data from a higher resolution sensor can require a greater amount of resource utilization in comparison to a lower resolution sensor, the resource utilization required to obtain sensor data from the one or more sensors can be made more efficient by obtaining sensor data from higher resolution sensors less frequently than lower resolution sensors. The disclosed technology can provide an improved way to obtain sensor data by determining an uncertainty level for sensor data obtained previously using a high resolution sensor, and selectively obtaining updated sensor data from the high resolution sensor when the uncertainty level exceeds an uncertainty level threshold.

In some embodiments, the disclosed technology can include a computing system (e.g., a semantic state system) that can include one or more computing devices (e.g., devices with one or more computer processors and a memory that can store one or more instructions) that can exchange (send and/or receive), process, generate, and/or modify data including one or more information patterns or structures that can be stored on one or more memory devices (e.g., random access memory) and/or storage devices (e.g., a hard disk drive and/or a solid state drive); and/or one or more signals (e.g., electronic signals). The data and/or one or more signals can be exchanged by the computing system with various other devices including remote computing devices that can provide data associated with, or including, a semantic state associated with one or more states of an area (e.g., the amount of roads and buildings in an area); and/or one or more sensor devices that can provide sensor output associated with the state of a geographical area (e.g., satellite imagery at various sensor resolutions) that can be used to determine the state of an area.

The semantic state system can receive sensor data that is based in part on one or more sensor outputs from one or more sensors. The sensor data can include information associated with one or more states of one or more areas (e.g., geographical areas) detected by the one or more sensors. In some embodiments, the one or more sensors can include one or more optical sensors (e.g., one or more cameras), one or more acoustic sensors (e.g., one or more sonar devices), one or more infrared sensors, one or more electromagnetic sensors, one or more radiofrequency signal sensors (e.g., one or more devices that can detect the presence and/or strength of radio waves), or one or more thermal sensors.

The one or more sensors can be configured to detect the state (e.g., a physical state) of the one or more areas including one or more properties or characteristics of the one or more areas. Further, the semantic state system can access a chronometer (e.g., a locally based chronometer or a chronometer at a remote location) that can be used to determine a time of day and/or a duration of one or more events including one or more sensor events associated with detecting the state of the one or more areas, obtaining sensor data from the one or more sensors, and/or the state of the one or more areas at one or more time periods. The one or more properties or characteristics of the one or more areas can include a time of day, a geographic location (e.g., a latitude and longitude associated with the environment), a size (e.g., a height, length, and/or width), mass, weight, volume, color, frequency of one or more signals, magnitude of one or more signals, and/or sound emanations from the one or more areas.

The semantic state system can generate, based in part on the sensor data, an estimated semantic state of an area of the one or more areas from a target sensor of the one or more sensors from which the sensor data has not been received for a predetermined period of time. The duration of the predetermined period of time can vary (e.g., a week long, a day long, or an hour long period of time) based on the purpose for which the semantic state of the area is used (e.g., live traffic reports in an urban environment can have a shorter predetermined period of time before generating the estimated semantic state than a survey of a remote wilderness area).

In some embodiments, the target sensor is configured to detect the state of the one or more areas at a resolution that is higher than a resolution associated with the one or more sensors. For example, the one or more sensors can be located on a satellite that captures images from low orbit and is able to resolve images at a resolution of thirty meters per pixel, and the target sensor can include one or more ground based sensors (e.g., closed circuit cameras) that resolve images at a resolution of <NUM> millimeter per pixel.

In some embodiments, the semantic state system can access a machine learned model (e.g., a machine learned model that has been stored locally and/or a machine learned model that is stored on a remote computing device) that is based in part on a training dataset associated with a plurality of classified image labels and classified image features of one or more images. Further, the estimated semantic state and/or the one or more semantic states can include an embedding vector that is received from the machine learned model in response to input of the sensor data into the machine learned model. As such, the generation of the estimated semantic data can be based in part on accessing the machine learned model.

The machine learned model can be generated using a classification dataset including classifier data that includes a set of classified features and a set of classified object labels associated with training data that is based on, or associated with, a plurality of training inputs used to train the machine learned model to achieve a desired output (e.g., detecting one or more objects, such as buildings or waterways, in a satellite image). The classification dataset can be based in part on inputs to one or more sensors (e.g., visual inputs to cameras on satellites and/or at ground level) that have been used to generate one or more sensor outputs. For example, the machine learned model can be created using a set of cameras that capture training data including still images and video from one or more geographic areas over a period of time. The geographic areas can include various objects including buildings (e.g., houses and/or apartment buildings), streets, vehicles, people, waterbodies, and/or waterways.

In some embodiments, the machine learned model can be based in part on one or more classification techniques including a neural network, linear regression, logistic regression, random forest classification, boosted forest classification, gradient boosting, a support vector machine, or a decision tree. The semantic state system can use various techniques to estimate the semantic state of an area, either in combination with the machine learned model or without the machine learned model. For example, the semantic state system can use one or more techniques including Kalman filtering, Bayesian inference, Hidden Markov models, one or more genetic algorithms, edge matching, greyscale matching, gradient matching, and/or pose clustering.

The one or more semantic states can include a set of attributes (e.g., a set of attributes for each of the one or more semantic states). In some embodiments, the estimated semantic state and the one or more semantic states can include a set of attributes associated with the one or more states of the area from the target sensor and the one or more sensors not including the target sensor respectively. For example, the set of attributes can include a building concentration (e.g., the number of buildings, including houses, apartment buildings, and/or office buildings within an area); a road concentration (e.g., the amount of streets, roads, and/or paths within an area), a waterbody concentration, a forest concentration (e.g., the amount of an area that includes one or more trees or other foliage), or a vehicle concentration (e.g., the number of vehicles, including one or more automobiles, buses, trains that are in an area).

The semantic state system can determine an uncertainty level associated with an accuracy of the data previously-obtained using the target sensor. The uncertainty level can include a probability that the estimated semantic state is the same as an updated semantic state of the area based on the updated version of the sensor data from the target sensor. For example, the uncertainty level can indicate a probability that the estimated semantic state is an accurate reflection of the actual state of the area (e.g., the actual state of the area at the time the estimated semantic state was generated) as would be indicated by the updated version of the sensor data from the target sensor. Further, the uncertainty level can be based in part on a comparison of the estimated semantic state to one or more semantic states of the area from the one or more sensors not including the target sensor. For example, the comparison of the estimated semantic state to one or more semantic states can include a comparison of the types or number of semantic state attributes, which can be weighted according to their significance or importance.

In response to the uncertainty level satisfying one or more update criteria, the semantic state system can obtain an updated version of the sensor data from the target sensor. For example, the one or more update criteria can include the uncertainty level exceeding a threshold uncertainty level (e.g., the uncertainty level is greater than fifty percent). In this way, the sensor data can be updated more frequently through use of a lower threshold uncertainty level and less frequently through use of a higher threshold uncertainty level. Obtaining, an updated version of the sensor data from the target sensor can include sending one or more signals to the target sensor or a computing device associated with the target sensor. The one or more signals can include a request for the updated version of the sensor data.

The semantic state system can determine one or more characteristics of the one or more sensors. The one or more characteristics can include a type of the one or more sensors (e.g., optical sensors and/or thermal sensors), a resolution of the one or more sensors, or a sampling rate of the one or more sensors (e.g., the frequency with which the one or more sensors detect an area, generate sensor outputs, and/or send sensor data). With respect to the resolution of the one or more sensors, the semantic state system can determine one or more sensor resolutions of the one or more sensors (e.g., accessing sensor type data including the sensor resolution for a sensor). The one or more sensor resolutions can be based in part on an amount of change in the one or more states of the one or more areas that the one or more sensors are able to detect (i.e., sensors with a greater resolution can detect a smaller amount of change in the one or more states of an area). In some embodiments, the uncertainty level determined for the most recent data provided by the target sensor may be dependent on the sensor resolutions of the one or more sensors not including the target sensor. For instance, the uncertainty level can be inversely proportional to the one or more sensor resolutions of the one or more sensors not including the target sensor.

The semantic state system can determine a set of the attributes that is based in part on a similarity of the one or more characteristics between the target sensor and the one or more sensors not including the target sensor. In some embodiments, the comparison of the estimated semantic state to the one or more semantic states can be based in part on the set of attributes (e.g., comparing the set of attributes in the estimated semantic state to the set of attributes in the one or more semantic states). In some embodiments, the semantic state system can determine a semantic relatedness level for the sensor data received from the one or more sensors. The semantic relatedness level can be based in part on how many of the set of attributes in the estimated semantic state are in the one or more semantic states of the area from the one or more sensors not including the target sensor. In some embodiments, the uncertainty level can be based in part on the semantic relatedness level (e.g., the semantic relatedness level can be used as a factor in determining the uncertainty level).

In some embodiments, the semantic state system can modify the machine learned model based in part on training data that includes one or more error rates or one or more uncertainty levels associated with the one or more sensors over a plurality of time periods. In this way, the machine learned model can adapt over time based on actual sensor data that is received and feedback based on whether the output was correct.

The semantic state system can determine a state change rate that is based in part on an amount of one or more changes in the one or more semantic states of the area over a plurality of time periods. For example, an area that is transformed, in a short period of time, from wilderness into a heavily populated urban zone, will have a very high state change rate. In some embodiments, the uncertainty level associated with the target sensor can be based in part on the state change rate (e.g., a greater state change rate can correspond to a greater uncertainty level).

The semantic state system can determine an adjacent semantic state based in part on one or more semantic states of the one or more areas that are adjacent to the area. Further, the semantic state system can determine one or more differences between the estimated semantic state of the area and the adjacent semantic state. The uncertainty level can be based in part on an extent of the one or more differences between the estimated semantic state and the adjacent semantic state (e.g., a greater difference between the semantic state and the adjacent semantic state can correspond to a greater uncertainty level).

The semantic state system can determine a staleness level for the target sensor. The staleness level can be based in part on the duration since the sensor data was most recently received from the target sensor (i.e., the staleness level increases the longer time that passes between receiving sensor data from a sensor). The staleness level can be based in part on an expectation of the rate at which sensor data from a sensor is received. For example, a sensor that provides traffic updates on a stretch of highway may have a very high staleness level after thirty minutes, whereas a sensor that provides moose migration updates may have a low staleness level if a sensor update is provided on a daily basis. In some embodiments, the uncertainty level can be based in part on the staleness level (e.g., the uncertainty level will increase as the staleness level increases).

An example embodiment of the present disclosure is directed to a computer-implemented method of determining when to obtain updated sensor data. The method can include receiving, by a computing system comprising one or more computing devices, sensor data corresponding to an area. The sensor data can be derived at least in part from one or more sensor outputs from one or more sensors. Further, the method can include determining, by the computing system, based at least in part on the sensor data, a first semantic state of the area. The method can include determining, by the computing system, based in part on a comparison of the first semantic state to a second semantic state of the area, in which the second semantic state can be generated based on target sensor data derived from a sensor output of a target sensor, an uncertainty level indicative of an accuracy of the target sensor data. Further, the method can include, responsive to the uncertainty level satisfying one or more update criteria, obtaining, by the computing system, an updated version of the target sensor data from the target sensor.

In some embodiments, the sensor data and the target sensor data can both be representative of one or more states of the area. Further, the target sensor data can represent the one or more states of the area at a higher resolution than does the sensor data.

In some embodiments, the sensor data can be more recently obtained than the target sensor data. In some embodiments, the first and second semantic states can define respective locations within semantic state space.

The systems, methods, devices, and non-transitory computer-readable media in the disclosed technology can provide a variety of technical effects and benefits to the overall process of generating an estimated semantic state for an area based on sensor outputs and determining whether the semantic state for the area should be updated. The disclosed technology can reduce or eliminate the need for manual collection of information from the sensors associated with an area. In contrast with manual examination, analysis, and selection of sensor output (e.g., visual inspection of imagery from one or more satellites) to determine when to update imagery for an area, the disclosed technology can identify one or more sensors for which updated imagery should be retrieved based on the imagery received from other sensors that collect sensor imagery for an area.

Further, the disclosed technology can, by receiving sensor outputs from one or more sensors that use fewer resources (e.g., less network bandwidth to send sensor outputs for lower resolution images and/or lower computational resource utilization to generate and process lower resolution images), allow higher resolution images to be captured, processed, and sent at a more optimal frequency (e.g., when changes occur as opposed to being captured on a fixed schedule regardless of whether or not changes to the semantic state of the area have occurred). In addition, physical resources associated with obtaining the updated sensor data (e.g. fuel/energy used by a vehicle which is tasked with collecting street view images) may also be utilized more efficiently.

As the disclosed technology can estimate a semantic state for an area, the number of sensors from which sensor outputs are gathered can be reduced. Accordingly, in a system that includes a combination of various types of sensors that return different types of sensor outputs, at different resource utilization costs (e.g., utilization of processing resources, network resources, and/or expenses), lower resource utilization sensors can be more intensively used without necessarily having to sacrifice up to date sensor outputs.

The disclosed technology also offers the benefits of the semantic state for an area that can be based on sensor outputs from various different types of sensors (e.g., a combination of cameras and radio frequency sensors) that capture different types of sensor outputs that nonetheless can be used to capture similar attributes for the semantic state of an area. For example, the disclosed technology can capture one or more cellular signals that result from cell phone usage in an area. Based on the one or more cellular signals, the disclosed technology can generate a semantic state of an area based on the frequency and type of the one or more cellular signals (e.g., the type and frequency of cellular emissions in an area can denote the existence of a cell tower or the presence of cell phones that can indicate the area is populated).

Accordingly, the disclosed technology provides more effective generation of an estimated semantic state of an area based in part on one or more sensors outputs, including a combination of different sensor types at various resolutions. The disclosed technology can estimate an uncertainty level associated with the sensors to determine when to update the sensor outputs in a more effective manner than merely receiving sensor outputs at a fixed rate or by manually determining that sensor outputs are needed.

Reference now will be made in detail to embodiments, one or more examples of which are illustrated in the drawings. Each example is provided by way of explanation of the embodiments, not limitation of the present disclosure. In fact, it will be apparent to those skilled in the art that various modifications and variations can be made to the embodiments without departing from the scope of the present disclosure. Thus, it is intended that aspects of the present disclosure cover such modifications and variations.

With reference now to the <FIG>, example aspects of the present disclosure will be disclosed in greater detail. <FIG> depicts a diagram of an example system <NUM> according to example embodiments of the present disclosure. The system <NUM> can include a computing system <NUM>; a remote computing device <NUM>; a communication network <NUM>; an object recognition component <NUM>; sensor data <NUM> (e.g., data associated with one or more physical objects, one or more areas, and/or one or more semantic states); and one or more sensors <NUM>.

The computing system <NUM> can receive sensor data (e.g., information associated with one or more objects detected or recognized one or more sensors associated with the remote computing device <NUM>) from the remote computing device <NUM> via a communication network <NUM>. The network <NUM> can include any type of communications network, such as a local area network (e.g. intranet), wide area network (e.g. Internet), cellular network, or some combination thereof. The network <NUM> can also include a direct connection. In general, communication can be carried via network <NUM> using any type of wired and/or wireless connection, using a variety of communication protocols (e.g. TCP/IP, HTTP, SMTP, FTP), encodings or formats (e.g. HTML or XML), and/or protection schemes (e.g. VPN, secure HTTP, or SSL).

The computing system <NUM> can include one or more computing devices including a tablet computing device, a device that is able to be worn (e.g., a smart watch or a smart band), a laptop computing device, a desktop computing device, a mobile computing device (e.g., a smartphone), and/or a display device with one or more processors.

The object recognition component <NUM>, which can operate or be executed on the remote computing device <NUM>, can interact with the computing system <NUM> via the network <NUM> to perform one or more operations including detection and/or determination of one or more states of one or more areas; and/or generation of an estimated semantic state of an area. In some embodiments, the object recognition component <NUM> can include a machine learned model that can be used to detect and/or recognize objects in an area and which can also be used in the generation of one or more semantic states including an estimated semantic state of an area.

The object recognition component <NUM> can be implemented on the remote computing device <NUM>. The object recognition component <NUM> can implement object detection and/or recognition of one or more objects in one or more areas. Further, the object recognition component <NUM> can assist in the generation of one or more semantic states based on one or more sensory outputs from the one or more sensors <NUM>. The sensory outputs can be associated with one or more images, electrical signals, sounds, or other detectable states associated with one or more objects in one or more areas and can be used to generate the sensor data <NUM> by the remote computing system <NUM>.

The object recognition component <NUM> can be operated or executed locally on the remote computing device <NUM>, through a web application accessed via a web browser implemented on the computing system <NUM>, or through a combination of remote execution or operation on computing system <NUM> and local execution or operation on a remote computing device which can include the remote computing device <NUM>.

In some embodiments, the remote computing device <NUM> can include one or more computing devices including servers (e.g., web servers). The one or more computing devices can include one or more processors and one or more memory devices. The one or more memory devices can store computer-readable instruction to implement, for example, one or more applications that are associated with the sensor data <NUM>.

The one or more sensors <NUM> include one or more sensors (e.g., optical sensors, audio sensors, and/or radio wave frequency sensors) that can detect the state of geographic areas that can be associated with sets of geographic coordinates (e.g., latitude and longitude). The sensor data <NUM> associated with the sensor outputs from the one or more sensors <NUM> can include map data, image data, geographic imagery, and/or rasterizations based on non-visual states (e.g., states not visible to the naked eye including electric emissions and/or thermal states). Further, the sensor data <NUM> as determined or generated by the remote computing device <NUM> can include data associated with the state or characteristics of one or more objects and/or one or more semantic states including for example, images, sounds, and/or electrical emissions from one or more areas (e.g., geographic areas).

<FIG> depicts an example computing device <NUM> that can be configured to perform semantic state based sensor updating according to example embodiments of the present disclosure. The computing device <NUM> can include one or more portions of one or more systems (e.g., one or more computing systems) or devices (e.g., one or more computing devices) including the computing system <NUM> and/or the remote computing device <NUM>, which are shown in <FIG>. As shown, the computing device <NUM> an include a memory <NUM>; an object recognition component <NUM> that can include one or more instructions that can be stored on the memory <NUM>; one or more processors <NUM> configured to execute the one or more instructions stored in the memory <NUM>; a network interface <NUM> that can support network communications; one or more mass storage devices <NUM> (e.g., a hard disk drive or a solid state drive); one or more output devices <NUM> (e.g., one or more display devices); a sensor array <NUM> (e.g., one or more optical and/or audio sensors); one or more input devices <NUM> (e.g., one or more touch detection surfaces); and/or one or more interconnects <NUM> (e.g., a bus used to transfer one or more signals or data between computing components in a computing device). The one or more processors <NUM> can include any processing device that can, for example, process and/or exchange (send or receive) one or more signals or data associated with a computing device.

For example, the one or more processors <NUM> can include single or multiple core devices including a microprocessor, microcontroller, integrated circuit, and/or logic device. The memory <NUM> and the storage memory <NUM> are illustrated separately, however, the components <NUM> and <NUM> can be regions within the same memory module. The computing device <NUM> can include one or more additional processors, memory devices, network interfaces, which may be provided separately or on a same chip or board. The components <NUM> and <NUM> can include one or more computer-readable media, including, but not limited to, non-transitory computer-readable media, RAM, ROM, hard drives, flash drives, and/or other memory devices.

The memory <NUM> can store sets of instructions for applications including an operating system that can be associated with various software applications or data. The memory <NUM> can be used to operate various applications including a mobile operating system developed specifically for mobile devices. As such, the memory <NUM> can perform functions that allow the software applications to access data including wireless network parameters (e.g., identity of the wireless network, quality of service), and invoke various services including telephony, location determination (e.g., via global positioning service (GPS) or WLAN), and/or wireless network data call origination services. In other implementations, the memory <NUM> can be used to operate or execute a general-purpose operating system that operates on both mobile and stationary devices, such as smartphones and desktop computers, for example. In some embodiments, the object recognition component <NUM> can include a machine learned model that can be used to detect and/or recognize objects. Further, the object recognition component <NUM> can be used to detect and/or recognize one or more objects or features in one or more areas and in the generation of one or more semantic states.

The sensor array <NUM> can include one or more sensors that can detect changes in the state of an environment that includes one or more objects. For example, the sensor array <NUM> can include one or more optical sensors, motion sensors, thermal sensors, audio sensors, haptic sensors, pressure sensors, humidity sensors, and/or electromagnetic sensors. The one or more input devices <NUM> can include one or more devices for entering input into the computing device <NUM> including one or more touch sensitive surfaces (e.g., resistive and/or capacitive touch screens), keyboards, mouse devices, microphones, and/or stylus devices. The one or more output devices <NUM> can include one or more devices that can provide a physical output including visual outputs, audio outputs, and/or haptic outputs. For example, the one or more output devices <NUM> can include one or more display components (e.g., LCD monitors, OLED monitors, and/or indicator lights), one or more audio components (e.g., loud speakers), and/or one or more haptic output devices that can produce movements including vibrations.

The software applications that can be operated or executed by the computing device <NUM> can include the object recognition component <NUM> shown in <FIG>. Further, the software applications that can be operated or executed by the computing device <NUM> can include native applications or web-based applications.

In some implementations, the computing device <NUM> can be associated with or include a positioning system (not shown). The positioning system can include one or more devices or circuitry for determining the position of a device. For example, the positioning device can determine actual or relative position by using a satellite navigation positioning system (e.g. a GPS system, a Galileo positioning system, the GLObal Navigation satellite system (GLONASS), the BeiDou Satellite Navigation and Positioning system), an inertial navigation system, a dead reckoning system, based on IP address, by using triangulation and/or proximity to cellular towers or Wi-Fi hotspots, beacons, and the like and/or other suitable techniques for determining position. The positioning system can determine a user location of the user device. The user location can be provided to the remote computing device <NUM> for use by the sensor data provider in determining travel data associated with the computing system <NUM>.

The one or more interconnects <NUM> can include one or more interconnects or buses that can be used to exchange (e.g., send and/or receive) one or more signals (e.g., electronic signals) and/or data between components of the computing device <NUM> including the memory <NUM>, the object recognition component <NUM>, the one or more processors <NUM>, the network interface <NUM>, the one or more mass storage devices <NUM>, the one or more output devices <NUM>, the sensor array <NUM>, and/or the one or more input devices <NUM>.

The one or more interconnects <NUM> can be arranged or configured in different ways including as parallel or serial connections. Further the one or more interconnects <NUM> can include one or more internal buses to connect the internal components of the computing device <NUM>; and one or more external buses used to connect the internal components of the computing device <NUM> to one or more external devices. By way of example, the one or more interconnects <NUM> can include different interfaces including Industry Standard Architecture (ISA), Extended ISA, Peripheral Components Interconnect (PCI), PCI Express, Serial AT Attachment (SATA), HyperTransport (HT), USB (Universal Serial Bus), Thunderbolt, and/or IEEE <NUM> interface (FireWire).

<FIG> depicts an example of semantic state based sensor updating according to example embodiments of the present disclosure. <FIG> includes an illustration of an environment <NUM>, one or more portions of which can be detected, recognized, and/or processed by one or more systems (e.g., one or more computing systems) or devices (e.g., one or more computing devices) including, the computing system <NUM> shown in <FIG>, the remote computing device <NUM> shown in <FIG>, and/or the computing device <NUM> shown in <FIG>. Further, the detection, recognition, and/or processing of one or more portions of the environment <NUM> can be implemented as an algorithm on the hardware components of one or more devices or systems (e.g., the computing system <NUM>, the remote computing device <NUM>, and/or the computing device <NUM>) to, for example, generate one or more semantic states and output based on detection of one or more areas. As shown in <FIG>, the environment <NUM> includes a sensor <NUM>, a sensor <NUM>, a sensor <NUM>, an area <NUM>, an area <NUM>; and a computing system <NUM>.

The environment <NUM> includes three different types of sensors (e.g., sensors that generate sensor data based on the detection of different types of states, events, and/or changes in an object detected by the sensors). For example, the sensor <NUM> can be a satellite that generates image data based on the detection of a terrestrial area from a low Earth orbit (e.g., an orbit with an altitude of two thousand kilometers or less); the sensor <NUM> can be a satellite that generates image data based on the detection of a terrestrial area from a low Earth orbit at a higher resolution than the sensor <NUM>; and the sensor <NUM> can be a sensor that detects one or more signals (e.g., electronic signals) from electronic devices including cellular telephones. The sensors <NUM>, <NUM>, and <NUM> can, as shown in <FIG>, generate sensor data for the area <NUM> and the area <NUM> respectively.

The computing system <NUM> (e.g., a computing system that includes the features of the remote computing device <NUM>) can receive one or more signals or data from the sensors <NUM>, <NUM>, and <NUM>. Further, the computing system <NUM> can send one or more signals to the sensors <NUM>, <NUM>, <NUM> including one or more signals requesting sensor data. Based on the one or more signals or data received from the sensors <NUM>, <NUM>, <NUM>, the computing system <NUM> can generate semantic states associated with the area <NUM> and the area <NUM>. Due to the differences in the states that are detected by the sensors <NUM>, <NUM>, and <NUM>, the one or more signals or data received by the computing system <NUM> from each of the sensors <NUM>, <NUM>, and <NUM> can be used to determine different values for different attributes of a semantic state associated with the areas <NUM> and <NUM>.

For example, when the sensor <NUM> generates image data associated with the visual state of area <NUM> at a resolution of ten meters per pixel and the sensor <NUM> generates image data associated with the visual state of area <NUM> at a resolution of fifty centimeters per pixel (i.e., twenty times greater than the resolution of sensor <NUM>) the greater resolution of the sensor <NUM> can allow for the capture of details that the senor <NUM> does not capture. Further, the sensor <NUM> and sensor <NUM> can generate image data of the area <NUM> that can be used by the computing system <NUM> to generate a semantic state that includes a house density attribute associated with the number of houses in the area <NUM>. Because houses are large objects, the difference in the resolution of sensor <NUM> and sensor <NUM> may not result in a significant difference in generating a semantic state that includes a housing density attribute. However, if the computing system <NUM> generates a semantic state that includes a mail box density attribute associated with the density of mail boxes in the area <NUM>, then the image data from the sensor <NUM> will be of high enough resolution to resolve a mailbox, but the low resolution of the sensor <NUM> may not. As such, even though the sensor <NUM> and the sensor <NUM> are generating the same type of data (e.g., image data), the semantic state attributes that the computing system <NUM> can generate based on the image data from the sensor <NUM> and the sensor <NUM> can be different.

In the case in which the sensor data for the sensor <NUM> is out of date (e.g., the sensor data has not been updated for a predetermined amount of time), an estimated semantic state of the area <NUM> can be determined based on the sensor data received from the sensor <NUM>. Based on an uncertainty level generated for the estimated semantic state, an uncertainty level can be determined, and when the uncertainty level exceeds an uncertainty threshold level, sensor data from the sensor <NUM> can be obtained. In this way, sensor data can be obtained in a manner that is timely and also conserves computational and other resources by not obtaining sensor data from potentially resource expensive higher resolution sensors when the uncertainty level of an estimated semantic state does not exceed an uncertainty level threshold.

In another example, the sensor <NUM> can generate sensor data based on the detection of cell phone activity in the area <NUM>. The sensor <NUM> can include sensor data, that was most recently obtained six months ago, that includes one or more images of the area <NUM> that are indicative of the area <NUM> being an uninhabited forest. The computing system <NUM> can generate an estimated semantic state of the area <NUM> based in part on sensor data from the sensor <NUM> which detects one or more signals indicative of a modest level of wireless activity in area <NUM> over the course of the past three months, the computing system <NUM> can determine that an uncertainty level for the sensor <NUM> satisfies one or more update criteria and that the computing system <NUM> can send one or more signals requesting updated sensor data from the sensor <NUM>.

<FIG> depicts an example of semantic state based sensor updating according to example embodiments of the present disclosure. <FIG> includes an illustration of an environment <NUM>, one or more portions of which can be detected, recognized, and/or processed by one or more systems (e.g., one or more computing systems) or devices (e.g., one or more computing devices) including a semantic processing system audio component <NUM> that can include one or more portions of the computing system <NUM> shown in <FIG>, the remote computing device <NUM> shown in <FIG>, and/or the computing device <NUM> shown in <FIG>. Further, the detection, recognition, and/or processing of one or more portions of the environment <NUM> can be implemented as an algorithm on the hardware components of one or more devices or systems (e.g., the computing system <NUM>, the remote computing device <NUM>, and/or the computing device <NUM>) to, for example, generate one or more semantic states and output based on detection of one or more areas. As shown in <FIG>, the environment <NUM> includes a semantic processing system audio output component <NUM>.

The environment <NUM> includes four different sensors, each of which detects a different state of an area. In this example, the sensor <NUM> can be a low resolution (e.g., a sensor that generates lower resolution sensor data than the sensor <NUM>) satellite-based sensor that detects an area (not shown); the sensor <NUM> can be a high resolution (e.g., a sensor that generates higher resolution sensor data than the sensor <NUM>) satellite-based sensor that detects the same area as the sensor <NUM>; the sensor <NUM> can be a ground based sensor that generates very high resolution sensor data (e.g., sensor data that is higher resolution than sensor <NUM> and <NUM>) based on detection of the same area as the area detected by the sensor <NUM>; and the sensor <NUM> that detects one or more wireless signals from the same area as the sensor <NUM>.

As shown in <FIG>, the direction indicated by the arrows between the sensors <NUM>, <NUM>, <NUM>, and <NUM>, can indicate the sensors that are useful (e.g., that have a lower resolution and/or that have intersecting semantic state attributes based on different sensor inputs) for generating an estimated semantic state for a sensor that has not been updated recently (e.g., within a predetermined time period). For example, the sensor <NUM> can be useful for generating an estimated semantic state (e.g., semantic state associated with housing density in an area) for an area detected by the sensor <NUM> and/or the sensor <NUM>, since the resolution of the sensor <NUM> is lower than the sensor <NUM>. The sensor <NUM> and/or the sensor <NUM> could be used to generate an estimated semantic state of an area detected by the sensor <NUM>, however, since the sensor data from the sensor <NUM> and the sensor <NUM> are of higher resolution and of the same type as the sensor <NUM>, the sensor <NUM> and the sensor <NUM> can be used to determine the actual semantic state of the area detected by the sensor <NUM> without receiving sensor data from the sensor <NUM> or generating an estimated semantic state.

In another example, the sensor <NUM> can be useful in generating an estimated semantic state for an area (e.g., road beacon density) detected by the sensor <NUM> and/or the sensor <NUM>, since the sensor <NUM> detects one or more wireless signals which can be correlated with the number of road beacons that produce one or more wireless signals. In contrast, the sensor <NUM> and the sensor <NUM> are not high resolution enough to detect road beacons due to the road beacons being too small and accordingly cannot be used to generate a semantic state associated with the road beacon density in the area detected by the sensor <NUM> and/or the sensor <NUM>.

In another example, the sensor <NUM> can generate an estimated semantic state for the sensor <NUM> and the sensor <NUM> can generate an estimated semantic state for the sensor <NUM>. The sensor <NUM> and the sensor <NUM> can generate sensor data that includes images, however, the images are from a different perspective (e.g., sensor <NUM> is from a satellite perspective and sensor <NUM> is from a ground based perspective), hence the sensor data generated by the sensor <NUM> and the sensor <NUM> is of a different type and both the sensor <NUM> and the sensor <NUM> can detect features of the area detected by the sensor <NUM> that not detected by the other sensor (e.g., the sensor <NUM> can detect portions of the ground that are below cloud cover that can obscure the ground from the sensor <NUM>).

<FIG> depicts an example of semantic state based sensor updating according to example embodiments of the present disclosure. <FIG> includes an illustration of an environment <NUM>, one or more portions of which can be detected, recognized, and/or processed by one or more systems (e.g., one or more computing systems) or devices (e.g., one or more computing devices) including a computing system <NUM> that can include one or more portions of the computing system <NUM> shown in <FIG>, the remote computing device <NUM> shown in <FIG>, and/or the computing device <NUM> shown in <FIG>. Further, the detection, recognition, and/or processing of one or more portions of the environment <NUM> can be implemented as an algorithm on the hardware components of one or more devices or systems (e.g., the computing system <NUM>, the remote computing device <NUM>, and/or the computing device <NUM>) to, for example, generate one or more semantic states and output based on detection of one or more areas. As shown in <FIG>, the environment <NUM> includes a computing system <NUM>, a sensor <NUM>, and a sensor <NUM>.

The environment includes the sensor <NUM> which can be a low resolution optical sensor that is located in a low Earth orbit satellite and can be configured to send sensor data to the computing system <NUM> on a minute to minute basis, and a sensor <NUM> which can be a high resolution optical sensor that is located on a low Earth orbit satellite that also can be configured to send sensor data to the computing system <NUM> on a minute to minute basis. In this example, the sensor <NUM>, due to its greater resolution, can use resources (e.g., bandwidth to send the sensor data) that are five times greater than the sensor <NUM>. Accordingly, to optimize resource usage of the sensor <NUM> and the sensor <NUM>, the computing system <NUM> can generate an estimated semantic state for the sensor <NUM> for an area that is detected by both the sensor <NUM> and the sensor <NUM>. Based on an uncertainty level associated with the estimated semantic state of the area detected by the sensor <NUM> and the sensor <NUM>, the computing system can determine, based on one or more update criteria (e.g., criteria including a threshold uncertainty level that indicates when a sensor's estimated semantic state is too uncertain and sensor data can be requested from the sensor), when to obtain sensor data from the sensor <NUM>. In this way, the computing system can conserve bandwidth utilization associated with receiving sensor data from the sensor <NUM> and can maximize other resources associated with the utilization of scarce sensor resources.

<FIG> depicts a flow diagram of an example method of semantic state based sensor updating according to example embodiments of the present disclosure. One or more portions of the method <NUM> can be executed or implemented on one or more computing devices or computing systems including, for example, the computing system <NUM>, the remote computing device <NUM>, and/or the computing device <NUM>. One or more portions of the method <NUM> can also be executed or implemented as an algorithm on the hardware components of the devices disclosed herein. <FIG> depicts steps performed in a particular order for purposes of illustration and discussion. Those of ordinary skill in the art, using the disclosures provided herein, will understand that various steps of any of the methods disclosed herein can be adapted, modified, rearranged, omitted, and/or expanded without deviating from the scope of the present disclosure.

At <NUM>, the method <NUM> can include receiving sensor data that is based in part on one or more sensor outputs from one or more sensors. The sensor data can include information associated with one or more states of one or more areas (e.g., geographical areas) detected by the one or more sensors. In some embodiments, the one or more sensors can include one or more optical sensors (e.g., one or more cameras), one or more acoustic sensors (e.g., one or more sonar devices), one or more infrared sensors, one or more electromagnetic sensors (e.g., one or more sensors that can detect electrical and magnetic fields), one or more radiofrequency signal sensors (e.g., one or more devices that can detect the presence and/or strength of radio waves), or one or more thermal sensors (e.g., one or more thermometers, thermocouples, and/or thermistors).

Further, the one or more sensors can be associated with and/or located on a variety of devices including one or more satellites (e.g., satellites that orbit the Earth); aerial platforms (e.g., one or more aircraft, helicopters, balloons, blimps, dirigibles, and/or drones); personal electronic devices (e.g., one or more smartphones, tablets, and/or personal digital cameras); ground-based vehicles (e.g., one or more automobiles, buses, and/or trains); and/or marine craft (e.g., boats).

The one or more sensors can be configured to detect the state (e.g., a physical state) of the one or more areas including one or more properties or characteristics of the one or more areas. Further, the semantic state system can access a chronometer (e.g., a locally based chronometer or a chronometer at a remote location) that can be used to determine a date, a time of day, and/or a duration of one or more events including one or more sensor events associated with detecting the state of the one or more areas, obtaining sensor data from the one or more sensors, and/or the state of the one or more areas at one or more time periods.

For example, the one or more sensors can be configured to detect the state of the one or more areas periodically including on a per second, per minute, per hour, per day, per week, per month, and/or per year basis. The one or more properties or characteristics of the one or more areas can include a time of day, a geographic location (e.g., a latitude and longitude associated with the environment), a size (e.g., a height, length, and/or width), mass, weight, volume, color, frequency of one or more signals, magnitude of one or more signals, and/or sound emanations from the one or more areas.

At <NUM>, the method <NUM> can include generating, based in part on the sensor data, an estimated semantic state of an area of the one or more areas from a target sensor of the one or more sensors from which the sensor data has not been received for a predetermined period of time. The duration of the predetermined period of time can vary (e.g., ten minutes long, two hours long, or a thirty second long period of time) based on the purpose for which the semantic state of the area is used (e.g., live reports on tidal conditions on a beach can have a shorter predetermined period of time before generating the estimated semantic state than a survey of an area of water in the middle of the Atlantic ocean).

In some embodiments, the target sensor can be configured to detect the state of the one or more areas at a resolution that is higher than a resolution associated with the one or more sensors. For example, the one or more sensors can be located on a satellite that captures images from low orbit and is able to resolve images at a resolution of ten meters per pixel, and the target sensor can include one or more ground based sensors (e.g., a smartphone camera) that can resolve images at a resolution of <NUM> micrometer per pixel.

At <NUM>, the method <NUM> can include determining an uncertainty level associated with an accuracy, precision, and/or uncertainty of the data previously-obtained using the target sensor. The uncertainty level can include a probability that the estimated semantic state is the same as an updated semantic state of the area based on the updated version of the sensor data from the target sensor. For example, the uncertainty level can indicate a probability and/or likelihood that the estimated semantic state is an accurate and/or true reflection of the actual state of the area (e.g., the actual state of the area at the time the estimated semantic state was generated) as would be indicated by the updated version of the sensor data from the target sensor.

Further, the uncertainty level can be based in part on a comparison of the estimated semantic state to one or more semantic states of the area from the one or more sensors not including the target sensor. For example, the comparison of the estimated semantic state to one or more semantic states can include a comparison of the types or number of semantic state attributes, which can be weighted according to their significance or importance. Further, the determination of the uncertainty level can be based in part on a determination of the frequency with which the sensor data was previously obtained and/or changes in the frequency with which the sensor data was obtained. For example, sensor data that was more recently obtained can have a lower uncertainty level than sensor data that was obtained long ago, and senor data that was frequently updated with no changes detected between updates can have a lower uncertainty level than sensor data that is infrequently updated with large changes detected between updates.

At <NUM>, the method <NUM> can include determining whether, when, or that, one or more update criteria have been satisfied. In some embodiments, uncertainty level (e.g., the uncertainty level determined at <NUM>) can be compared to a threshold uncertainty level. Satisfying the one or more update criteria can include the uncertainty level exceeding the threshold uncertainty level. For example, the one or more update criteria can include the uncertainty level exceeding a threshold uncertainty level (e.g., the uncertainty level is greater than twenty percent). In this way, the sensor data can be updated more frequently through use of a lower threshold uncertainty level (e.g., a threshold uncertainty of ten percent) and less frequently through use of a higher threshold uncertainty level (e.g., a threshold uncertainty level of eighty percent).

In response to satisfying the one or more update criteria, the method <NUM> proceeds to <NUM>. In response to not satisfying the one or more update criteria, the method <NUM> can end or return to a previous part of the method <NUM> including <NUM>, <NUM>, or <NUM>.

At <NUM>, the method <NUM> can include obtaining an updated version of the sensor data from the target sensor. Obtaining, an updated version of the sensor data from the target sensor can include sending one or more signals to the target sensor or a computing device associated with the target sensor. The one or more signals can include a request for the updated version of the sensor data. For example, when the target sensor is a satellite that generates sensor data based on the state of one or more areas on the Earth's surface, a computing device (e.g., the computing system <NUM>) can send a wireless signal to the satellite. The wireless signal can include data requesting updated sensor data from the satellite. In response to receiving the request for the updated version of the sensor data, the satellite can send the updated sensor data to the computing device. The updated sensor data sent from the satellite can include sensor data associated with the state of the one or more areas at the time the sensor data was sent (e.g., real-time sensor data) and/or sensor data that was captured at a previous time period (e.g., sensor data that was captured in the preceding week period).

At <NUM>, the method <NUM> can include determining one or more characteristics of the one or more sensors. The one or more characteristics can include a type of the one or more sensors (e.g., one or more optical sensors, radiofrequency signal sensors, sonic sensors, and/or thermal sensors); a resolution of the one or more sensors (e.g., a resolution associated with the smallest amount of change that the sensor can detect); an operational status of the one or more sensors (e.g., an indication of whether a sensor is operational, whether the one or more sensors are fully or partially operational, whether the sensor is offline or online, when a partially operational sensor will return to being fully operational, and/or when an inoperative sensor will return to being partially or fully operational); and/or a sampling rate of the one or more sensors (e.g., the frequency with which the one or more sensors detect an area, generate sensor outputs, and/or send sensor data). For example, the one or more characteristics of the one or more sensors can include a sensor type indicating that one of the one or more sensors is a geosynchronous satellite in lower Earth orbit at an altitude of one thousand five hundred kilometers and that the satellite has a resolution of twenty meters per pixel.

At <NUM>, the method <NUM> can include determining a set of the attributes that is based in part on a similarity of the one or more characteristics between the target sensor and the one or more sensors not including the target sensor. For example, the one or more characteristics of a pair of sensors (e.g., a target sensor and one other non-target sensor) can include that the two sensors are optical sensors with a resolution of ten meters per pixel and thirty meters per pixel respectively.

Based in part on the similarity between the pair of sensors (both sensors are optical sensors) and the similarity in the resolution of the sensors, the set of attributes associated with the one or more semantic states and the estimated semantic state of an area can be related to the type of information that the pair of sensors can both determine. As such, since the pair of sensors are optical sensors, and have a higher level of similarity, the outputs from the pair of sensors can be used to generate a set of attributes associated with amount of sunlight received in an area. However, if the one or more characteristics of one of the pair of sensors indicated that the sensor was an acoustic sensor (e.g., a sonar device) and the other sensor was an optical sensor, the output from the acoustic sensor would be different enough from the output from the optical sensor that the similarity between the pair of sensors would be low. As such, sensor data from the pair of dissimilar sensors would be less likely to be used to generate a set of attributes associated with the amount of sunlight received in an area.

In some embodiments, the comparison of the estimated semantic state to the one or more semantic states can be based in part on the set of attributes (e.g., comparing the set of attributes in the estimated semantic state to the set of attributes in the one or more semantic states).

At <NUM> the method <NUM> can include determining a semantic relatedness level for the sensor data received from the one or more sensors. The semantic relatedness level can be based in part on how many of the set of attributes in the estimated semantic state are in the one or more semantic states of the area from the one or more sensors not including the target sensor. For example, when the set of attributes in the estimated semantic state is the same as the amount of the set of attributes in the one or more semantic states of the area from the one or more sensors not including the target sensor, the semantic relatedness level would be higher than if none of the set of attributes were in common between the estimated semantic state and the one or more semantic states of the area from the one or more sensors not including the target sensor.

In some embodiments, the uncertainty level can be based in part on the semantic relatedness level (e.g., the semantic relatedness level between sensors can be used as a weighting factor for determining the uncertainty level, such that sensors with a higher semantic relatedness level can have a greater weighting than sensors with a lower semantic relatedness level).

At <NUM>, the method <NUM> can include accessing a machine learned model (e.g., a machine learned model that has been stored locally and/or a machine learned model that is stored on a remote computing device) that is based in part on a training dataset associated with a plurality of classified image labels and classified image features of one or more images (e.g., one or more satellite images, and/or ground-based camera images) and/or other types of detectable states (e.g., an amount of computing network traffic, an amount of wireless transmissions, carbon emissions, noise levels, electricity usage, and/or water usage). Further, the estimated semantic state and/or the one or more semantic states can include an embedding vector that is received from the machine learned model in response to input of the sensor data into the machine learned model. As such, the generation of the estimated semantic data can be based in part on accessing the machine learned model.

The machine learned model can be generated using a classification dataset including classifier data that includes a set of classified features and a set of classified object labels associated with training data that is based on, or associated with, a plurality of training inputs used to train the machine learned model to achieve a desired output (e.g., detecting one or more objects, such as buildings or waterways, in a satellite image). The classification dataset can be based in part on inputs to one or more sensors (e.g., visual inputs to cameras on satellites and/or cameras at ground level) that have been used to generate one or more sensor outputs. For example, the machine learned model can be created using a set of cameras that capture training data including the amount and location of one or more wireless transmissions from one or more geographic areas over a period of time. The geographic areas can include various objects including buildings (e.g., houses, cottages, office buildings, and/or apartment buildings), streets, vehicles, people, natural features, waterbodies, and/or waterways.

In some embodiments, the machine learned model can be based in part on one or more classification techniques including a neural network, a convolutional neural network, linear regression, logistic regression, random forest classification, boosted forest classification, gradient boosting, a support vector machine, or a decision tree. The semantic state system can use various techniques to estimate the semantic state of an area, either in combination with the machine learned model or without the machine learned model. For example, the semantic state system can use one or more techniques including Kalman filtering, Bayesian inference, Hidden Markov models, one or more genetic algorithms, edge matching, greyscale matching, gradient matching, and/or pose clustering.

At <NUM>, the method <NUM> can include modifying the machine learned model based in part on training data that includes one or more error rates or one or more uncertainty levels associated with the one or more sensors over a plurality of time periods. The one or more error rates or the one or more uncertainty levels can be stored in one or more storage devices associated with the machine learned model. The stored one or more error rates and the stored one or more uncertainty levels can then be compared to actual sensor associated with the sensors from which the one or more uncertainty levels or the one or more error rates were generated. For example, the machine learned model can be modified based in part on the extent to which an estimated semantic state determined in part by the machine learned model corresponds to the actual state of an area based on updated sensor data. In this way, the machine learned model can adapt over time based on actual sensor data that is received and feedback based on whether the output was correct.

At <NUM>, the method <NUM> can include determining a state change rate that is based in part on an amount of one or more changes in the one or more semantic states of the area over a plurality of time periods. For example, an area that is transformed, in a short period of time, from a large shopping center with hundreds of stores to and thousands of daily visitors to an abandoned shopping center that is being prepared for demolition, will have a very high state change rate in terms of semantic state associated with the population density of the area even though the semantic state with respect to the building density will not change substantially until after the shopping center is demolished.

Further, a suburban area that is unchanged except for the construction of a new elementary school can have a level of wireless network traffic that is not significantly changed after construction of the elementary school and accordingly the semantic state associated with the population density of the area can also, in some embodiments, not change substantially. In some embodiments, the uncertainty level associated with the target sensor can be based in part on the state change rate (e.g., a greater state change rate can correspond to a greater uncertainty level).

At <NUM>, the method <NUM> can include determining an adjacent semantic state based in part on one or more semantic states of the one or more areas that are adjacent to the area. The one or more areas adjacent to the area can include one or more areas that are geographically adjacent (e.g., areas that share a border) and/or one or more areas that fulfill one or more adjacency criteria associated with a distance between the areas (e.g., the one or more adjacency criteria can be satisfied by an area being within an adjacency threshold distance of another area).

At <NUM>, the method <NUM> can include determining one or more differences between the estimated semantic state of the area and the adjacent semantic state. For example, the one or more differences between the estimated semantic state of the area and the adjacent semantic state can include a comparison of the set of attributes in the estimated semantic state to the set of attributes in the adjacent semantic state to determine how many of the set of attributes are in common between the estimated semantic state and the adjacent semantic state as well as the magnitude of the differences in the set of attributes of between the estimated semantic state and the adjacent semantic state. In some embodiments, the uncertainty level can be based in part on an extent of the one or more differences between the set of attributes that are in common between the estimated semantic state and the adjacent semantic state (e.g., a greater difference between the semantic state and the adjacent semantic state can correspond to a greater uncertainty level).

At <NUM>, the method <NUM> can include determining a staleness level for the target sensor. The staleness level can be based in part on the duration since the sensor data was most recently received from the target sensor (i.e., the staleness level can increase as the time that passes between receiving sensor data from a sensor increases). The staleness level can be based in part on an expectation of the rate at which sensor data from a sensor is received. For example, a sensor that provides traffic updates on a portion of road may have a very high staleness level after thirty minutes, whereas a sensor that provides Canada goose migration updates may have a low staleness level if a sensor update is provided on a daily basis.

Further, the staleness level can be based in part on the completeness of the sensor data that is received from a sensor. For example, a sensor that provides image data for an area can, due to data loss during transmission of the sensor data, include image artifacts that obscure portions of the images derived from the sensor data. Accordingly, the obscured images derived from the sensor data may, due to their low quality, result in older sensor data being used even though more recent sensor data is available. In some embodiments, the uncertainty level can be based in part on the staleness level (e.g., the uncertainty level will increase as the staleness level increases).

At <NUM>, the method <NUM> can include determining one or more sensor resolutions of the one or more sensors (e.g., accessing sensor type data including the sensor resolution for a sensor). The one or more sensor resolutions can be based in part on an amount of change in the one or more states of the one or more areas that the one or more sensors are able to detect (i.e., sensors with a greater resolution can detect a smaller amount of change in the one or more states of an area). For example, one or more signals including data associated with a request for sensor resolution can be sent to the one or more sensors. The one or more sensors, or a computing device associated with the one or more sensors, can send data associated with the sensor resolution of the respective sensors. In some embodiments, the uncertainty level determined for the most recent data provided by the target sensor may be dependent on the sensor resolutions of the one or more sensors not including the target sensor. For instance, the uncertainty level can be inversely proportional to the one or more sensor resolutions of the one or more sensors not including the target sensor.

For instance, server processes discussed herein may be implemented using a single server or multiple servers working in combination. Databases and applications may be implemented on a single system or distributed across multiple systems. Distributed components may operate sequentially or in parallel.

Claim 1:
A computer-implemented method of acquisition of sensor data based on semantic state, the method comprising:
receiving, by a computing system comprising one or more computing devices, sensor data based in part on one or more sensor outputs from one or more sensors, wherein the sensor data comprises information associated with one or more states of one or more areas detected by the one or more sensors;
generating, by the computing system, based in part on the sensor data, an estimated semantic state of an area of the one or more areas from a target sensor that can detect the one or more states of the one or more areas, wherein the target sensor is configured to detect the state of the one or more areas at a resolution that is higher than a resolution associated with the one or more sensors;
determining, by the computing system, based in part on a comparison of the estimated semantic state to one or more semantic states of the area from the one or more sensors, an uncertainty level associated with an accuracy of the estimated semantic state, wherein:
the estimated semantic state and the one or more semantic states comprise a set of attributes associated with the one or more states of the area from the target sensor and the one or more sensors not comprising the target sensor respectively; and
the uncertainty level comprises a probability that the estimated semantic state is the same as an updated semantic state of the area as would be indicated by an updated version of the sensor data from the target sensor;
responsive to the uncertainty level satisfying one or more update criteria, obtaining, by the computing system, the updated version of the sensor data from the target sensor; and
determining, by the computing system, a state change rate based in part on an amount of one or more changes in the one or more semantic states of the area over a plurality of time periods, wherein the uncertainty level of the target sensor is based in part on the state change rate.