OCCUPANCY GRID DETERMINATION

An occupancy grid determination method includes: determining a predicted occupancy grid based on a previous occupancy grid, the predicted occupancy grid comprising a plurality of first cells corresponding to sub-regions of a region, each of the plurality of first cells including a plurality of predicted indications of probability each indicative of a predicted probability of a respective possible type of occupier of the respective first cell; determining, using machine learning and based on the first sensor measurements, an observed occupancy grid comprising a plurality of second cells corresponding to the sub-regions of the region; and determining an updated occupancy grid based on the observed occupancy grid and the predicted occupancy grid.

BACKGROUND

Vehicles are becoming more intelligent as the industry moves towards deploying increasingly sophisticated self-driving technologies that are capable of operating a vehicle with little or no human input, and thus being semi-autonomous or autonomous. Autonomous and semi-autonomous vehicles may be able to detect information about their location and surroundings (e.g., using ultrasound, radar, lidar, an SPS (Satellite Positioning System), and/or an odometer, and/or one or more sensors such as accelerometers, cameras, etc.). Autonomous and semi-autonomous vehicles typically include a control system to interpret information regarding an environment in which the vehicle is disposed to identify hazards and determine a navigation path to follow.

A driver assistance system may mitigate driving risk for a driver of an ego vehicle (i.e., a vehicle configured to perceive the environment of the vehicle) and/or for other road users. Driver assistance systems may include one or more active devices and/or one or more passive devices that can be used to determine the environment of the ego vehicle and, for semi-autonomous vehicles, possibly to notify a driver of a situation that the driver may be able to address. The driver assistance system may be configured to control various aspects of driving safety and/or driver monitoring. For example, a driver assistance system may control a speed of the ego vehicle to maintain at least a desired separation (in distance or time) between the ego vehicle and another vehicle (e.g., as part of an active cruise control system). The driver assistance system may monitor the surroundings of the ego vehicle, e.g., to maintain situational awareness for the ego vehicle. The situational awareness may be used to notify the driver of issues, e.g., another vehicle being in a blind spot of the driver, another vehicle being on a collision path with the ego vehicle, etc. The situational awareness may include information about the ego vehicle (e.g., speed, location, heading) and/or other vehicles or objects (e.g., location, speed, heading, size, object type, etc.).

A state of an ego vehicle may be used as an input to a number of driver assistance functionalities, such as an Advanced Driver Assistance System (ADAS). Downstream driving aids such as an ADAS may be safety critical, and/or may give the driver of the vehicle information and/or control the vehicle in some way.

SUMMARY

An example apparatus includes: a memory; and a processor communicatively coupled to the memory, and configured to: determine a predicted occupancy grid based on a previous occupancy grid, the predicted occupancy grid comprising a plurality of first cells corresponding to sub-regions of a region, each of the plurality of first cells including a plurality of predicted indications of probability each indicative of a predicted probability of a respective possible type of occupier of the respective first cell; determine, using machine learning and based on first sensor measurements, an observed occupancy grid comprising a plurality of second cells corresponding to the sub-regions of the region; and determine an updated occupancy grid based on the observed occupancy grid and the predicted occupancy grid.

An example occupancy grid determination method includes: determining a predicted occupancy grid based on a previous occupancy grid, the predicted occupancy grid comprising a plurality of first cells corresponding to sub-regions of a region, each of the plurality of first cells including a plurality of predicted indications of probability each indicative of a predicted probability of a respective possible type of occupier of the respective first cell; determining, using machine learning and based on first sensor measurements, an observed occupancy grid comprising a plurality of second cells corresponding to the sub-regions of the region; and determining an updated occupancy grid based on the observed occupancy grid and the predicted occupancy grid.

Another example apparatus includes: means for determining a predicted occupancy grid based on a previous occupancy grid, the predicted occupancy grid comprising a plurality of first cells corresponding to sub-regions of a region, each of the plurality of first cells including a plurality of predicted indications of probability each indicative of a predicted probability of a respective possible type of occupier of the respective first cell; means for determining, using machine learning and based on first sensor measurements, an observed occupancy grid comprising a plurality of second cells corresponding to the sub-regions of the region; and means for determining an updated occupancy grid based on the observed occupancy grid and the predicted occupancy grid.

An example non-transitory, processor-readable storage medium includes processor-readable instructions to cause a processor to: determine a predicted occupancy grid based on a previous occupancy grid, the predicted occupancy grid comprising a plurality of first cells corresponding to sub-regions of a region, each of the plurality of first cells including a plurality of predicted indications of probability each indicative of a predicted probability of a respective possible type of occupier of the respective first cell; determine, using machine learning and based on first sensor measurements, an observed occupancy grid comprising a plurality of second cells corresponding to the sub-regions of the region; and determine an updated occupancy grid based on the observed occupancy grid and the predicted occupancy grid.

DETAILED DESCRIPTION

Techniques are discussed herein for determining and using occupancy grids. For example, measurements from multiple sensors may be obtained and measurements from at least one of the sensors applied to an observation matrix determined using machine learning. Machine learning may be used to select which sensor measurement(s) to use for a particular cell of an observed occupancy grid determined from the sensor measurements, possibly using a combination of measurements from different sensors for the same observed occupancy grid cell. Machine learning may be used to select which occupancy grid cell(s) from one or more observed occupancy grids, each corresponding to a different sensor, to use for a particular cell of a present occupancy grid. The present occupancy grid may be used to update a predicted occupancy grid determined from a previous occupancy grid. Machine learning may be used to derive an image-to-occupancy-grid transformation to transform a camera image, or a set of arrays of information determined from the camera image, to an occupancy grid. Other techniques, however, may be used.

Items and/or techniques described herein may provide one or more of the following capabilities, as well as other capabilities not mentioned. Occupancy grid accuracy and/or reliability may be improved. Occupancy grids may be determined without losing a significant amount of, if any, information from a camera image. Probabilities, beliefs, and/or plausibility of an occupancy grid for dynamic occupancy grid cells may be better predicted. Other capabilities may be provided and not every implementation according to the disclosure must provide any, let alone all, of the capabilities discussed.

Referring toFIG.1, an ego vehicle100includes an ego vehicle driver assistance system110. The driver assistance system110may include a number of different types of sensors mounted at appropriate positions on the ego vehicle100. For example, the system110may include: a pair of divergent and outwardly directed radar sensors121mounted at respective front corners of the vehicle100, a similar pair of divergent and outwardly directed radar sensors122mounted at respective rear corners of the vehicle, a forwardly directed LRR sensor123(Long-Range Radar) mounted centrally at the front of the vehicle100, and a pair of generally forwardly directed optical sensors124(cameras) forming part of an SVS126(Stereo Vision System) which may be mounted, for example, in the region of an upper edge of a windshield128of the vehicle100. Each of the sensors121may include an LRR and/or an SRR (Short-Range Radar). The various sensors121-124may be operatively connected to a central electronic control system which is typically provided in the form of an ECU140(Electronic Control Unit) mounted at a convenient location within the vehicle100. In the particular arrangement illustrated, the front and rear sensors121,122are connected to the ECU140via one or more conventional Controller Area Network (CAN) buses150, and the LRR sensor123and the sensors of the SVS126are connected to the ECU140via a serial bus160(e.g., a faster FlexRay serial bus).

Collectively, and under the control of the ECU140, the various sensors121-124may be used to provide a variety of different types of driver assistance functionalities. For example, the sensors121-124and the ECU140may provide blind spot monitoring, adaptive cruise control, collision prevention assistance, lane departure protection, and/or rear collision mitigation.

The CAN bus150may be treated by the ECU140as a sensor that provides ego vehicle parameters to the ECU140. For example, a GPS module may also be connected to the ECU140as a sensor, providing geolocation parameters to the ECU140.

Referring also toFIG.2, a device200(which may be a mobile device such as a user equipment (UE) such as a vehicle (VUE)) comprises a computing platform including a processor210, memory211including software (SW)212, one or more sensors213, a transceiver interface214for a transceiver215(that includes a wireless transceiver240and a wired transceiver250), a user interface216, a Satellite Positioning System (SPS) receiver217, a camera218, and a position device (PD)219. The processor210, the memory211, the sensor(s)213, the transceiver interface214, the user interface216, the SPS receiver217, the camera218, and the position device219may be communicatively coupled to each other by a bus220(which may be configured, e.g., for optical and/or electrical communication). One or more of the shown apparatus (e.g., the camera218, the position device219, and/or one or more of the sensor(s)213, etc.) may be omitted from the device200. The processor210may include one or more hardware devices, e.g., a central processing unit (CPU), a microcontroller, an application specific integrated circuit (ASIC), etc. The processor210may comprise multiple processors including a general-purpose/application processor230, a Digital Signal Processor (DSP)231, a modem processor232, a video processor233, and/or a sensor processor234. One or more of the processors230-234may comprise multiple devices (e.g., multiple processors). For example, the sensor processor234may comprise, e.g., processors for RF (radio frequency) sensing (with one or more (cellular) wireless signals transmitted and reflection(s) used to identify, map, and/or track an object), and/or ultrasound, etc. The modem processor232may support dual SIM/dual connectivity (or even more SIMs). For example, a SIM (Subscriber Identity Module or Subscriber Identification Module) may be used by an Original Equipment Manufacturer (OEM), and another SIM may be used by an end user of the device200for connectivity. The memory211is a non-transitory storage medium that may include random access memory (RAM), flash memory, disc memory, and/or read-only memory (ROM), etc. The memory211may store the software212which may be processor-readable, processor-executable software code containing instructions that are configured to, when executed, cause the processor210to perform various functions described herein. Alternatively, the software212may not be directly executable by the processor210but may be configured to cause the processor210, e.g., when compiled and executed, to perform the functions. The description may refer to the processor210performing a function, but this includes other implementations such as where the processor210executes software and/or firmware. The description may refer to the processor210performing a function as shorthand for one or more of the processors230-234performing the function. The description may refer to the device200performing a function as shorthand for one or more appropriate components of the device200performing the function. The processor210may include a memory with stored instructions in addition to and/or instead of the memory211. Functionality of the processor210is discussed more fully below.

The configuration of the device200shown inFIG.2is an example and not limiting of the disclosure, including the claims, and other configurations may be used. For example, an example configuration of the UE may include one or more of the processors230-234of the processor210, the memory211, and the wireless transceiver240. Other example configurations may include one or more of the processors230-234of the processor210, the memory211, a wireless transceiver, and one or more of the sensor(s)213, the user interface216, the SPS receiver217, the camera218, the PD219, and/or a wired transceiver.

The device200may comprise the modem processor232that may be capable of performing baseband processing of signals received and down-converted by the transceiver215and/or the SPS receiver217. The modem processor232may perform baseband processing of signals to be upconverted for transmission by the transceiver215. Also or alternatively, baseband processing may be performed by the general-purpose/application processor230and/or the DSP231. Other configurations, however, may be used to perform baseband processing.

The device200may include the sensor(s)213that may include, for example, one or more of various types of sensors such as one or more inertial sensors, one or more magnetometers, one or more environment sensors, one or more optical sensors, one or more weight sensors, and/or one or more radio frequency (RF) sensors, etc. An inertial measurement unit (IMU) may comprise, for example, one or more accelerometers (e.g., collectively responding to acceleration of the device200in three dimensions) and/or one or more gyroscopes (e.g., three-dimensional gyroscope(s)). The sensor(s)213may include one or more magnetometers (e.g., three-dimensional magnetometer(s)) to determine orientation (e.g., relative to magnetic north and/or true north) that may be used for any of a variety of purposes, e.g., to support one or more compass applications. The environment sensor(s) may comprise, for example, one or more temperature sensors, one or more barometric pressure sensors, one or more ambient light sensors, one or more camera imagers, and/or one or more microphones, etc. The sensor(s)213may generate analog and/or digital signals indications of which may be stored in the memory211and processed by the DSP231and/or the general-purpose/application processor230in support of one or more applications such as, for example, applications directed to positioning and/or navigation operations.

The sensor(s)213may be used in relative location measurements, relative location determination, motion determination, etc. Information detected by the sensor(s)213may be used for motion detection, relative displacement, dead reckoning, sensor-based location determination, and/or sensor-assisted location determination. The sensor(s)213may be useful to determine whether the device200is fixed (stationary) or mobile and/or whether to report certain useful information, e.g., to an LMF (Location Management Function) regarding the mobility of the device200. For example, based on the information obtained/measured by the sensor(s)213, the device200may notify/report to the LMF that the device200has detected movements or that the device200has moved, and report the relative displacement/distance (e.g., via dead reckoning, or sensor-based location determination, or sensor-assisted location determination enabled by the sensor(s)213). In another example, for relative positioning information, the sensors/IMU can be used to determine the angle and/or orientation of the other device with respect to the device200, etc.

The IMU may be configured to provide measurements about a direction of motion and/or a speed of motion of the device200, which may be used in relative location determination. For example, one or more accelerometers and/or one or more gyroscopes of the IMU may detect, respectively, a linear acceleration and a speed of rotation of the device200. The linear acceleration and speed of rotation measurements of the device200may be integrated over time to determine an instantaneous direction of motion as well as a displacement of the device200. The instantaneous direction of motion and the displacement may be integrated to track a location of the device200. For example, a reference location of the device200may be determined, e.g., using the SPS receiver217(and/or by some other means) for a moment in time and measurements from the accelerometer(s) and gyroscope(s) taken after this moment in time may be used in dead reckoning to determine present location of the device200based on movement (direction and distance) of the device200relative to the reference location.

The magnetometer(s) may determine magnetic field strengths in different directions which may be used to determine orientation of the device200. For example, the orientation may be used to provide a digital compass for the device200. The magnetometer(s) may include a two-dimensional magnetometer configured to detect and provide indications of magnetic field strength in two orthogonal dimensions. The magnetometer(s) may include a three-dimensional magnetometer configured to detect and provide indications of magnetic field strength in three orthogonal dimensions. The magnetometer(s) may provide means for sensing a magnetic field and providing indications of the magnetic field, e.g., to the processor210.

The transceiver215may include a wireless transceiver240and a wired transceiver250configured to communicate with other devices through wireless connections and wired connections, respectively. For example, the wireless transceiver240may include a wireless transmitter242and a wireless receiver244coupled to an antenna246for transmitting (e.g., on one or more uplink channels and/or one or more sidelink channels) and/or receiving (e.g., on one or more downlink channels and/or one or more sidelink channels) wireless signals248and transducing signals from the wireless signals248to wired (e.g., electrical and/or optical) signals and from wired (e.g., electrical and/or optical) signals to the wireless signals248. The wireless transmitter242includes appropriate components (e.g., a power amplifier and a digital-to-analog converter). The wireless receiver244includes appropriate components (e.g., one or more amplifiers, one or more frequency filters, and an analog-to-digital converter). The wireless transmitter242may include multiple transmitters that may be discrete components or combined/integrated components, and/or the wireless receiver244may include multiple receivers that may be discrete components or combined/integrated components. The wireless transceiver240may be configured to communicate signals (e.g., with TRPs and/or one or more other devices) according to a variety of radio access technologies (RATs) such as 5G New Radio (NR), GSM (Global System for Mobiles), UMTS (Universal Mobile Telecommunications System), AMPS (Advanced Mobile Phone System), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), LTE (Long Term Evolution), LTE Direct (LTE-D), 3GPP LTE-V2X (PC5), IEEE 802.11 (including IEEE 802.11p), WiFi® short-range wireless communication technology, WiFi® Direct (WiFi-D), Bluetooth® short-range wireless communication technology, Zigbee® short-range wireless communication technology, etc. New Radio may use mm-wave frequencies and/or sub-6GHz frequencies. The wired transceiver250may include a wired transmitter252and a wired receiver254configured for wired communication, e.g., a network interface that may be utilized to communicate with an NG-RAN (Next Generation-Radio Access Network) to send communications to, and receive communications from, the NG-RAN. The wired transmitter252may include multiple transmitters that may be discrete components or combined/integrated components, and/or the wired receiver254may include multiple receivers that may be discrete components or combined/integrated components. The wired transceiver250may be configured, e.g., for optical communication and/or electrical communication. The transceiver215may be communicatively coupled to the transceiver interface214, e.g., by optical and/or electrical connection. The transceiver interface214may be at least partially integrated with the transceiver215. The wireless transmitter242, the wireless receiver244, and/or the antenna246may include multiple transmitters, multiple receivers, and/or multiple antennas, respectively, for sending and/or receiving, respectively, appropriate signals.

The user interface216may comprise one or more of several devices such as, for example, a speaker, microphone, display device, vibration device, keyboard, touch screen, etc. The user interface216may include more than one of any of these devices. The user interface216may be configured to enable a user to interact with one or more applications hosted by the device200. For example, the user interface216may store indications of analog and/or digital signals in the memory211to be processed by DSP231and/or the general-purpose/application processor230in response to action from a user. Similarly, applications hosted on the device200may store indications of analog and/or digital signals in the memory211to present an output signal to a user. The user interface216may include an audio input/output (I/O) device comprising, for example, a speaker, a microphone, digital-to-analog circuitry, analog-to-digital circuitry, an amplifier and/or gain control circuitry (including more than one of any of these devices). Other configurations of an audio I/O device may be used. Also or alternatively, the user interface216may comprise one or more touch sensors responsive to touching and/or pressure, e.g., on a keyboard and/or touch screen of the user interface216.

The SPS receiver217(e.g., a Global Positioning System (GPS) receiver) may be capable of receiving and acquiring SPS signals260via an SPS antenna262. The SPS antenna262is configured to transduce the SPS signals260from wireless signals to wired signals, e.g., electrical or optical signals, and may be integrated with the antenna246. The SPS receiver217may be configured to process, in whole or in part, the acquired SPS signals260for estimating a location of the device200. For example, the SPS receiver217may be configured to determine location of the device200by trilateration using the SPS signals260. The general-purpose/application processor230, the memory211, the DSP231and/or one or more specialized processors (not shown) may be utilized to process acquired SPS signals, in whole or in part, and/or to calculate an estimated location of the device200, in conjunction with the SPS receiver217. The memory211may store indications (e.g., measurements) of the SPS signals260and/or other signals (e.g., signals acquired from the wireless transceiver240) for use in performing positioning operations. The general-purpose/application processor230, the DSP231, and/or one or more specialized processors, and/or the memory211may provide or support a location engine for use in processing measurements to estimate a location of the device200.

The device200may include the camera218for capturing still or moving imagery. The camera218may comprise, for example, an imaging sensor (e.g., a charge coupled device or a CMOS (Complementary Metal-Oxide Semiconductor) imager), a lens, analog-to-digital circuitry, frame buffers, etc. Additional processing, conditioning, encoding, and/or compression of signals representing captured images may be performed by the general-purpose/application processor230and/or the DSP231. Also or alternatively, the video processor233may perform conditioning, encoding, compression, and/or manipulation of signals representing captured images. The video processor233may decode/decompress stored image data for presentation on a display device (not shown), e.g., of the user interface216.

The position device (PD)219may be configured to determine a position of the device200, motion of the device200, and/or relative position of the device200, and/or time. For example, the PD219may communicate with, and/or include some or all of, the SPS receiver217. The PD219may work in conjunction with the processor210and the memory211as appropriate to perform at least a portion of one or more positioning methods, although the description herein may refer to the PD219being configured to perform, or performing, in accordance with the positioning method(s). The PD219may also or alternatively be configured to determine location of the device200using terrestrial-based signals (e.g., at least some of the wireless signals248) for trilateration, for assistance with obtaining and using the SPS signals260, or both. The PD219may be configured to determine location of the device200based on a cell of a serving base station (e.g., a cell center) and/or another technique such as E-CID. The PD219may be configured to use one or more images from the camera218and image recognition combined with known locations of landmarks (e.g., natural landmarks such as mountains and/or artificial landmarks such as buildings, bridges, streets, etc.) to determine location of the device200. The PD219may be configured to use one or more other techniques (e.g., relying on the UE's self-reported location (e.g., part of the UE's position beacon)) for determining the location of the device200, and may use a combination of techniques (e.g., SPS and terrestrial positioning signals) to determine the location of the device200. The PD219may include one or more of the sensors213(e.g., gyroscope(s), accelerometer(s), magnetometer(s), etc.) that may sense orientation and/or motion of the device200and provide indications thereof that the processor210(e.g., the general-purpose/application processor230and/or the DSP231) may be configured to use to determine motion (e.g., a velocity vector and/or an acceleration vector) of the device200. The PD219may be configured to provide indications of uncertainty and/or error in the determined position and/or motion. Functionality of the PD219may be provided in a variety of manners and/or configurations, e.g., by the general-purpose/application processor230, the transceiver215, the SPS receiver217, and/or another component of the device200, and may be provided by hardware, software, firmware, or various combinations thereof.

Referring also toFIG.3, an example of a TRP300(e.g., of a base station such as a gNB (general NodeB) and/or an ng-eNB (next generation evolved NodeB) may comprise a computing platform including a processor310, memory311including software (SW)312, and a transceiver315. The processor310, the memory311, and the transceiver315may be communicatively coupled to each other by a bus320(which may be configured, e.g., for optical and/or electrical communication). One or more of the shown apparatus (e.g., a wireless transceiver) may be omitted from the TRP300. The processor310may include one or more hardware devices, e.g., a central processing unit (CPU), a microcontroller, an application specific integrated circuit (ASIC), etc. The processor310may comprise multiple processors (e.g., including a general-purpose/application processor, a DSP, a modem processor, a video processor, and/or a sensor processor as shown inFIG.2). The memory311may be a non-transitory storage medium that may include random access memory (RAM)), flash memory, disc memory, and/or read-only memory (ROM), etc. The memory311may store the software312which may be processor-readable, processor-executable software code containing instructions that are configured to, when executed, cause the processor310to perform various functions described herein. Alternatively, the software312may not be directly executable by the processor310but may be configured to cause the processor310, e.g., when compiled and executed, to perform the functions.

The description herein may refer to the processor310performing a function, but this includes other implementations such as where the processor310executes software and/or firmware. The description herein may refer to the processor310performing a function as shorthand for one or more of the processors contained in the processor310performing the function. The description herein may refer to the TRP300performing a function as shorthand for one or more appropriate components (e.g., the processor310and the memory311) of the TRP300performing the function. The processor310may include a memory with stored instructions in addition to and/or instead of the memory311. Functionality of the processor310is discussed more fully below.

The transceiver315may include a wireless transceiver340and/or a wired transceiver350configured to communicate with other devices through wireless connections and wired connections, respectively. For example, the wireless transceiver340may include a wireless transmitter342and a wireless receiver344coupled to one or more antennas346for transmitting (e.g., on one or more uplink channels and/or one or more downlink channels) and/or receiving (e.g., on one or more downlink channels and/or one or more uplink channels) wireless signals348and transducing signals from the wireless signals348to wired (e.g., electrical and/or optical) signals and from wired (e.g., electrical and/or optical) signals to the wireless signals348. Thus, the wireless transmitter342may include multiple transmitters that may be discrete components or combined/integrated components, and/or the wireless receiver344may include multiple receivers that may be discrete components or combined/integrated components. The wireless transceiver340may be configured to communicate signals (e.g., with the device200, one or more other UEs, and/or one or more other devices) according to a variety of radio access technologies (RATs) such as 5G New Radio (NR), GSM (Global System for Mobiles), UMTS (Universal Mobile Telecommunications System), AMPS (Advanced Mobile Phone System), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), LTE (Long Term Evolution), LTE Direct (LTE-D), 3GPP LTE-V2X (PC5), IEEE 802.11 (including IEEE 802.11p), WiFi® short-range wireless communication technology, WiFi® Direct (WiFi®-D), Bluetooth® short-range wireless communication technology, Zigbee® short-range wireless communication technology, etc. The wired transceiver350may include a wired transmitter352and a wired receiver354configured for wired communication, e.g., a network interface that may be utilized to communicate with an NG-RAN to send communications to, and receive communications from, an LMF, for example, and/or one or more other network entities. The wired transmitter352may include multiple transmitters that may be discrete components or combined/integrated components, and/or the wired receiver354may include multiple receivers that may be discrete components or combined/integrated components. The wired transceiver350may be configured, e.g., for optical communication and/or electrical communication.

The configuration of the TRP300shown inFIG.3is an example and not limiting of the disclosure, including the claims, and other configurations may be used. For example, the description herein discusses that the TRP300may be configured to perform or performs several functions, but one or more of these functions may be performed by an LMF and/or the device200(i.e., an LMF and/or the device200may be configured to perform one or more of these functions).

Referring also toFIG.4, a server400, of which an LMF is an example, may comprise a computing platform including a processor410, memory411including software (SW)412, and a transceiver415. The processor410, the memory411, and the transceiver415may be communicatively coupled to each other by a bus420(which may be configured, e.g., for optical and/or electrical communication). One or more of the shown apparatus (e.g., a wireless transceiver) may be omitted from the server400. The processor410may include one or more hardware devices, e.g., a central processing unit (CPU), a microcontroller, an application specific integrated circuit (ASIC), etc. The processor410may comprise multiple processors (e.g., including a general-purpose/application processor, a DSP, a modem processor, a video processor, and/or a sensor processor as shown inFIG.2). The memory411may be a non-transitory storage medium that may include random access memory (RAM)), flash memory, disc memory, and/or read-only memory (ROM), etc. The memory411may store the software412which may be processor-readable, processor-executable software code containing instructions that are configured to, when executed, cause the processor410to perform various functions described herein. Alternatively, the software412may not be directly executable by the processor410but may be configured to cause the processor410, e.g., when compiled and executed, to perform the functions. The description herein may refer to the processor410performing a function, but this includes other implementations such as where the processor410executes software and/or firmware. The description herein may refer to the processor410performing a function as shorthand for one or more of the processors contained in the processor410performing the function. The description herein may refer to the server400performing a function as shorthand for one or more appropriate components of the server400performing the function. The processor410may include a memory with stored instructions in addition to and/or instead of the memory411. Functionality of the processor410is discussed more fully below.

The transceiver415may include a wireless transceiver440and/or a wired transceiver450configured to communicate with other devices through wireless connections and wired connections, respectively. For example, the wireless transceiver440may include a wireless transmitter442and a wireless receiver444coupled to one or more antennas446for transmitting (e.g., on one or more downlink channels) and/or receiving (e.g., on one or more uplink channels) wireless signals448and transducing signals from the wireless signals448to wired (e.g., electrical and/or optical) signals and from wired (e.g., electrical and/or optical) signals to the wireless signals448. Thus, the wireless transmitter442may include multiple transmitters that may be discrete components or combined/integrated components, and/or the wireless receiver444may include multiple receivers that may be discrete components or combined/integrated components. The wireless transceiver440may be configured to communicate signals (e.g., with the device200, one or more other UEs, and/or one or more other devices) according to a variety of radio access technologies (RATs) such as 5G New Radio (NR), GSM (Global System for Mobiles), UMTS (Universal Mobile Telecommunications System), AMPS (Advanced Mobile Phone System), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), LTE (Long Term Evolution), LTE Direct (LTE-D), 3GPP LTE-V2X (PC5), IEEE 802.11 (including IEEE 802.11p), WiFi® short-range wireless communication technology, WiFi® Direct (WiFi®-D), Bluetooth® short-range wireless communication technology, Zigbee® short-range wireless communication technology, etc. The wired transceiver450may include a wired transmitter452and a wired receiver454configured for wired communication, e.g., a network interface that may be utilized to communicate with an NG-RAN to send communications to, and receive communications from, the TRP300, for example, and/or one or more other network entities. The wired transmitter452may include multiple transmitters that may be discrete components or combined/integrated components, and/or the wired receiver454may include multiple receivers that may be discrete components or combined/integrated components. The wired transceiver450may be configured, e.g., for optical communication and/or electrical communication.

The description herein may refer to the processor410performing a function, but this includes other implementations such as where the processor410executes software (stored in the memory411) and/or firmware. The description herein may refer to the server400performing a function as shorthand for one or more appropriate components (e.g., the processor410and the memory411) of the server400performing the function.

The configuration of the server400shown inFIG.4is an example and not limiting of the disclosure, including the claims, and other configurations may be used. For example, the wireless transceiver440may be omitted. Also or alternatively, the description herein discusses that the server400is configured to perform or performs several functions, but one or more of these functions may be performed by the TRP300and/or the device200(i.e., the TRP300and/or the device200may be configured to perform one or more of these functions).

Referring toFIG.5, a device500includes a processor510, a transceiver520, a memory530, and sensors540, communicatively coupled to each other by a bus550. Even if referred to in the singular, the processor510may include one or more processors, the transceiver520may include one or more transceivers (e.g., one or more transmitters and/or one or more receivers), and the memory530may include one or more memories. The device500may take any of a variety of forms such as a mobile device such as a vehicle UE (VUE). The device500may include the components shown inFIG.5, and may include one or more other components such as any of those shown inFIG.2such that the device200may be an example of the device500. For example, the processor510may include one or more of the components of the processor210. The transceiver520may include one or more of the components of the transceiver215, e.g., the wireless transmitter242and the antenna246, or the wireless receiver244and the antenna246, or the wireless transmitter242, the wireless receiver244, and the antenna246. Also or alternatively, the transceiver520may include the wired transmitter252and/or the wired receiver254. The memory530may be configured similarly to the memory211, e.g., including software with processor-readable instructions configured to cause the processor510to perform functions.

The description herein may refer to the processor510performing a function, but this includes other implementations such as where the processor510executes software (stored in the memory530) and/or firmware. The description herein may refer to the device500performing a function as shorthand for one or more appropriate components (e.g., the processor510and the memory530) of the device500performing the function. The processor510(possibly in conjunction with the memory530and, as appropriate, the transceiver520) may include an occupancy information unit560(which may include an ADAS (Advanced Driver Assistance System) for a VUE). The occupancy information unit560is discussed further herein, and the description herein may refer to the occupancy information unit560performing one or more functions, and/or may refer to the processor510generally, or the device500generally, as performing any of the functions of the occupancy information unit560, with the device500being configured to perform the functions.

One or more functions performed by the device500(e.g., the occupancy information unit560) may be performed by another entity. For example, sensor measurements (e.g., radar measurements, camera measurements (e.g., pixels, images)) and/or processed sensor measurements (e.g., a camera image converted to a bird's-eye-view image) may be provided to another entity, e.g., the server400, and the other entity may perform one or more functions discussed herein with respect to the occupancy information unit560(e.g., using machine learning to determine and/or apply an observation model, analyzing measurements from different sensors to determine a present occupancy grid, etc.).

Referring also toFIG.6, a geographic environment600, in this example a driving environment, includes multiple mobile wireless communication devices, here vehicles601,602,603,604,605,606,607,608,609, a building610, an RSU612(Roadside Unit), and a street sign620(e.g., a stop sign). The RSU612may be configured similarly to the TRP300, although perhaps having less functionality and/or shorter range than the TRP300, e.g., a base-station-based TRP. One or more of the vehicles601-609may be configured to perform autonomous driving. A vehicle whose perspective is under consideration (e.g., for environment evaluation, autonomous driving, etc.) may be referred to as an observer vehicle or an ego vehicle. An ego vehicle, such as the vehicle601may evaluate a region around the ego vehicle for one or more desired purposes, e.g., to facilitate autonomous driving. The vehicle601may be an example of the device500. The vehicle601may divide the region around the ego vehicle into multiple sub-regions and evaluate whether an object occupies each sub-region and if so, may determine one or more characteristics of the object (e.g., size, shape (e.g., dimensions (possibly including height)), velocity (speed and direction), object type (bicycle, car, truck, etc.), etc.).

Referring also toFIGS.7and8, a region700, which in this example spans a portion of the environment600, may be evaluated to determine an occupancy grid800(also called an occupancy map) that indicates an occupier type for each of multiple sub-regions of the region700. For example, the region700may be divided into a grid, which may be called an occupancy grid, with sub-regions710that may be of similar (e.g., identical) size and shape, or may have two or more sizes and/or shapes (e.g., with sub-regions being smaller near an ego vehicle, e.g., the vehicle601, and larger further away from the ego vehicle, and/or with sub-regions having different shape(s) near an ego vehicle than sub-region shape(s) further away from the ego vehicle). The region700and the grid800may be regularly-shaped (e.g., a rectangle, a triangle, a hexagon, an octagon, etc.) and/or may be divided into identically-shaped, regularly-shaped sub-regions for convenience sake, e.g., to simplify calculations, but other shapes of regions/grids (e.g., an irregular shape) and/or sub-regions (e.g., irregular shapes, multiple different regular shapes, or a combination of one or more irregular shapes and one or more regular shapes) may be used. For example, the sub-regions710may have rectangular (e.g., square) shapes. The region700may be of any of a variety of sizes and have any of a variety of granularities of sub-regions. For example, the region700may be a rectangle (e.g., a square) of about 100 m per side. As another example, while the region700is shown with the sub-regions710being squares of about 1 m per side, other sizes of sub-regions, including much smaller sub-regions, may be used. For example, square sub-regions of about 25 cm per side may be used. In this example, the region700is divided into M rows (here, 24 rows parallel to an x-axis indicated inFIG.8) of N columns each (here, 23 columns parallel to a y-axis as indicated inFIG.8).

Each of the sub-regions710may correspond to a respective cell810of the occupancy map and information may be obtained regarding what, if anything, occupies each of the sub-regions710in order to populate cells810of the occupancy map800with an occupancy indication indicative of a type of occupier of the sub-region corresponding to the cell. The information as to what, if anything, occupies each of the sub-regions710may be obtained from one or more of a variety of sources. For example, occupancy information may be obtained from one or more sensor measurements from one or more of the sensors540of the device500. As another example, occupancy information may be obtained by one or more other devices and communicated to the device500. For example, one or more of the vehicles602-609may communicate, e.g., via C-V2X communications, occupancy information to the vehicle601. As another example, the RSU612may gather occupancy information (e.g., from one or more sensors of the RSU612and/or from communication with one or more of the vehicles602-609and/or one or more other devices) and communicate the gathered information to the vehicle601, e.g., directly and/or through one or more network entities, e.g., TRPs.

As shown inFIG.8, each of the cells810may include occupancy information indicating a type of occupier of the sub-region710corresponding to the cell810. As examples, the occupancy information may indicate that the corresponding sub-region710is occupied by a static object (S), or may indicate that the corresponding sub-region710is occupied by a dynamic object (D) that is or may be mobile, or may indicate that the corresponding sub-region710is occupied by free space and is thus empty (E) or unoccupied, or may indicate that the occupancy of the corresponding sub-region is unknown (U), e.g., if there is no information as to a possible occupier of the corresponding sub-region710. Each of the cells810may include respective probabilities of the cell810being static, dynamic, empty, or unknown, with a sum of the probabilities being 1. In the example shown inFIG.8, empty cells are not labeled in the occupancy grid800for sake of simplicity of the figure and readability of the occupancy grid800.

Building a dynamic occupancy grid (an occupancy grid with a dynamic occupier type) may be helpful, or even essential, for understanding an environment (e.g., the environment600) of an apparatus to facilitate or even enable further processing. For example, a dynamic occupancy grid may be helpful for predicting occupancy, for motion planning, etc. A dynamic occupancy grid may, at any one time, comprise one or more cells of static occupier type and/or one or more cells of dynamic occupier type. A dynamic object may be represented as a collection of velocity vectors. For example, an occupancy grid cell may have some or all of the occupancy probability be dynamic, and within the dynamic occupancy probability, there may be multiple (e.g., four) velocity vectors each with a corresponding probability that together sum to the dynamic occupancy probability for that cell810. A dynamic occupancy grid may be obtained, e.g., by the occupancy information unit560, by processing information from multiple sensors, e.g., of the sensors540, such as from a radar system, a camera, etc.

Referring also toFIG.9, the occupancy information unit560may be configured to implement a Bayes Filter approach to predict occupancy grids and update occupancy grids based on an observation model. A functional architecture900illustrates Bayesian filtering. Sensor measurements910(e.g., radar measurements) may be used by an observation model function920(also called an ISM (Interpretive Structural Model) function) that uses a conditional probability of radar measurements and an occupancy grid to determine a present occupancy grid930(also called an observation occupancy grid). The occupancy information unit560may use the present occupancy grid930and a predicted occupancy grid990to perform an update function940of the predicted occupancy grid990to produce an updated occupancy grid950on which the occupancy information unit560may perform a resample function960to produce what then becomes a prior occupancy grid970that may be provided to any appropriate user of the updated occupancy grid (e.g., an autonomous driving application, a motion planner, etc.) and used for prediction of the next occupancy grid. The occupancy information unit560may use the prior occupancy grid970in a prediction function980to determine the predicted occupancy grid990. The occupancy information unit560may perform the prediction function980according to

where Gkis an N×N occupancy grid at time k (i.e., the present occupancy grid930), and is a dynamic occupancy grid (a DOGMa (Dynamic Occupancy Grid Map)), and may be implemented as a particle filter, Gk-1is an occupancy grid at time k-1 (i.e., the prior occupancy grid970), ukis action data, dGkis a differential element, bel(Gk-1) is the update for the prior occupancy grid, and p indicates probability. The occupancy information unit560may perform the update function940for the predicted occupancy grid990according to

where p(Rk|Gk) is the observation model for sensor measurements at time k (in this example, radar measurements Rkat time k), and η is a normalizing constant.

Referring also toFIG.10, the occupancy information unit560may be configured to implement a Bayes Filter approach to predict occupancy grids and update occupancy grids based on an observation model that may use measurements from one or more of multiple sensors. A functional architecture1000illustrates a Bayes Filter approach implemented by the occupancy information unit560for sensor measurements from multiple sensors. The occupancy information unit560may perform an update function1040, a resample function1060, and a prediction function1080similar to the update function940, the resample function960, and the prediction function980discussed above. The prediction function1080and the update function1040may be replaced in some embodiments with an RNN (Recursive Neural Network)/LSTM (Long Short-Term Memory)/transformer architecture. Sensor measurements1011,1012from multiple sensors (e.g., radar measurements, camera measurements (pixel measurements)) may be used in an observation model function1020implemented by the occupancy information unit560to determine a present occupancy grid1030. The observation model function1020may include machine learning (e.g., may include a neural network (e.g., a CNN (Convolutional Neural Network)) to develop an observation model and apply the observation model to the sensor measurements1011,1012to determine the present occupancy grid1030. The occupancy information unit560may implement a neural network with respect to some sensor measurements and not others, e.g., implement a neural network with respect to camera measurements and not with respect to radar measurements (using a classical approach for the radar measurements), or vice versa. The occupancy information unit560may determine the present occupancy grid1030as p(Rk, Ck|Gk), and may implement various architectures to determine the present occupancy grid1030. For example, the occupancy information unit560may determine the present occupancy grid1030as p(Rk, Ck|Gk) in accordance with any of the following relationships

where Rkis a radar frame at time k, and Ckis a camera image at time k. A radar frame at time k may be composed of detection pings, where each ping may have attributes such as position, velocity, RCS (Radar Cross-Section), SNR (Signal-to-Noise Ratio), confidence level, etc. Each camera frame may be a grid (e.g., rectangular grid) of pixels representing RGB (red/green/blue) information (e.g., intensities). For Equation (5), there is an assumption that Gkis a sufficient statistic. In another embodiment, the occupancy information unit560may evaluate measurements from multiple sensors and selectively use the measurement from one sensor or the other, or a combination of the measurements. For example, if a radar measurement indicates a strong probability (e.g., 90%) of an object at a particular location but a camera measurement indicates a weak probability (e.g., 10%) of an object at that location, then the camera measurement may be discarded. In another example, if a radar measurement and a camera measurement both indicate significant probabilities (e.g., 40% and 60%) of an object at a location, then the occupancy information unit560may combine the measurements in some way, e.g., a weighted combination of the measurements.

Referring also toFIG.11, a functional architecture1100may be used to implement Equation (3) for multiple sensor measurement occupancy grid development and use. Implementation of Equation (3) may provide for joint processing of measurements from different sensors. In this example, and others discussed herein, radar points and camera images are used as examples of sensor measurements and a radar system and a camera as examples of sensors, but the discussion is applicable to one or more other sensors and corresponding sensor measurements. Also, in this example and others discussed herein, two sensors and corresponding measurements are used, but more than two sensors may be used. For example, one or more further observation model functions may be implemented, e.g., to consider other sensor measurements and/or other combinations of sensor measurements than observation model functions shown inFIG.11. For example, an observation model function may consider measurements from a third sensor, an observation model may consider measurements from a camera and the third sensor, and/or an observation model may consider measurements from all available sensors, etc.

For the functional architecture1100, the occupancy information unit560may be configured to implement an observation model function1110to apply an observation model to radar points1101to determine a single-sensor occupancy grid1115(here, a radar-based occupancy grid). The occupancy information unit560may also configured to implement an observation model function1120that may use machine learning to develop and apply an observation model of p(Ck|Rk,Gk) to the radar points1101and to a camera image1102to determine a multi-sensor occupancy grid1125. The expression p(Ck|Rk,Gk) indicates an observation model that captures the probability of observing the camera image Ckgiven the observed radar frame Rkand grid state Gk. The probability of observation of a camera image changes based on the grid state and radar frame. For example, if all the cells in the grid are empty, then the probability of observing a camera image that includes vehicles will be very low and vice versa. The occupancy information unit560may combine the single-sensor occupancy grid1115and the multi-sensor occupancy grid1125, e.g., by multiplying the single-sensor occupancy grid1115and the multi-sensor occupancy grid1125. As another example, the occupancy information unit560may selectively use one or more portions of the single-sensor occupancy grid1115and/or selectively use one or more portions of the multi-sensor occupancy grid1125to determine a present occupancy grid for use in an update function1140. For example, one or more portions of the single-sensor occupancy grid1115and one or more portions of the multi-sensor occupancy grid1125may be used to fill the present occupancy grid, with each cell of the present occupancy grid coming from one of the occupancy grids1115,1125. As another example, one or more of the cells of the present occupancy grid may each be determined using a corresponding cell of the single-sensor occupancy grid1115and a corresponding cell of the multi-sensor occupancy grid1125, e.g., multiplying probabilities of the corresponding cells. The present occupancy grid and the predicted occupancy grid may be applied to the update function1140which may be similar to the update function940, e.g., may multiply the present occupancy grid and the predicted occupancy grid. A resample function1160and a prediction function1180may be similar to the resample function960and the prediction function980.

The occupancy information unit560may be configured to perform non-parametric camera image to a BEV (Bird's Eye View) conversion. For example, the occupancy information unit560may be configured to perform a non-parametric camera image to BEV conversion using IPM (Inverse Perspective Mapping) or using a flat road assumption. As another example, the occupancy information unit560may be configured to implement a data-aided and parametric (e.g., downlink-based) camera image to BEV conversion, e.g., by using camera image data collected while driving on roads to develop a BEV conversion model, e.g., using machine learning.

The functional architecture1100may be robust to sensor failures. For example, with the occupancy information unit560configured to implement the update function1140to selectively use the single-sensor occupancy grid and/or the multi-sensor occupancy grid1125, or configured to selectively use one or more portions of the grid1115and/or one or more portions of the grid1125, the functional architecture1100may adapt to sensor failures. For example the occupancy information unit560may avoid using measurements, and/or information derived therefrom, corresponding to a failing sensor.

Referring also toFIG.12, a functional architecture1200may be used to implement Equation (4) for multiple sensor measurement occupancy grid development and use. For the functional architecture1200, the occupancy information unit560may be configured to implement an observation model function1210to apply an observation model to a camera image1201to determine a single-sensor occupancy grid1215(here, a camera-based occupancy grid). The occupancy information unit560may also be configured to implement an observation model function1220that may use machine learning to develop and apply an observation model of p(Rk|Ck,Gk) to the camera image1201and to radar points1202to determine a multi-sensor occupancy grid1225. The occupancy information unit560may combine the single-sensor occupancy grid1215and the multi-sensor occupancy grid1225, e.g., as discussed above with respect to the single-sensor occupancy grid1115and the multi-sensor occupancy grid1125. The occupancy information unit560may implement an update function1240similar to the update function1140or the update function940. A resample function1260and a prediction function1280may be similar to the resample function960and the prediction function980. The functional architecture1200, like the functional architecture1100, may be robust to sensor failures.

Referring also toFIG.13, a functional architecture1300may be used to implement Equation (5) for multiple sensor measurement occupancy grid development and use by performing a camera image to BEV conversion. For the functional architecture1300, the occupancy information unit560may implement an observation model function1310similar to the observation model function1110to operate on radar points1301to determine a radar-based occupancy grid1315, and may implement a resample function1360and a prediction function1380similar to the resample function1160and the prediction function1180, respectively. Also for the functional architecture1300, the occupancy information unit560may be configured to implement a BEV function1320to convert a camera image1302to a bird's-eye-view depiction of the environment captured by the camera. For example, the occupancy information unit560may be configured to segment the camera image1302into a segmented image and apply a probability projection to the segmented image to derive the BEV. The occupancy information unit560may implement a DNN (Deep Neural Network) to perform an observation model function1322to determine an observation model p(Ck|Gk), with Ckbeing the BEV transformed image. The occupancy information unit560may apply the observation model function1322to the BEV to determine a camera-based occupancy grid1325. The occupancy information unit560may implement an update function1340, e.g., to multiply the radar-based occupancy grid1315and the camera-based occupancy grid1325.

Referring also toFIG.14, a functional architecture1400may be used to implement Equation (5) for multiple sensor measurement occupancy grid development and use by leveraging a grid-to-image conversion. For the functional architecture1400, the occupancy information unit560may implement an observation model function1410similar to the observation model function1110to operate on radar points1401to determine a radar-based occupancy grid1415, and may implement a resample function1460and a prediction function1480similar to the resample function1160and the prediction function1180, respectively. Also for the functional architecture1400, the occupancy information unit560may be configured to implement on observation model function1420by implementing a DNN to determine a camera-based occupancy grid1415based on a grid-to-image conversion. The occupancy information unit560may implement an update function1440, e.g., to multiply the radar-based occupancy grid1415and the camera-based occupancy grid1425.

Various architectures may be used for the observation model function1420. For example, the occupancy information unit560may learn intrinsic camera characteristics (i.e., camera characteristics (e.g., lens quality, lens shape, light sensor quality, light sensor density, etc.) that affect captured images, e.g., quality of the images captured). The occupancy information unit560may, for example, apply a CNN to a captured image to perform a loss computation. The CNN may transform the image to a grid frame implicitly. As another example, the occupancy information unit560may apply a CNN to a captured image, and apply a transformation to a grid (e.g., by a VPN (View Parser Network) to determine a loss computation. As another example, the occupancy information unit560may apply a CNN encoder to a captured image, then apply a transformation to a grid, then apply a CNN decoder to determine a loss computation. For example, a PYVA (Projecting Your View Attentively) function may use a transformer for the transformation to the grid. As another example, the occupancy information unit560may use knowledge of intrinsic camera characteristics and extrinsic features (i.e., features extrinsic to the camera (e.g., shape of glass, e.g., a windshield, through which the camera captures images) that may affect captured images). For example, the occupancy information unit560may apply an IPM to the camera image, then apply a CNN including applying weighted heads to determine a loss computation. A CAM2BEV conversion may be performed that pairs IPM with a transformer, which may improve accuracy of this technique. As another example, with knowledge of intrinsic and extrinsic features, the occupancy information unit560may apply a CNN to a camera image, and apply weighted heads (discussed further below) to determine a loss computation with a grid-to-image frame transformation.

Referring also toFIG.15, the occupancy information unit560may be configured to determine the camera-based occupancy grid based on a grid-to-image conversion. The occupancy information unit560may be configured to compute an observation model of p(Ck|Gk,i) where

if the mapping from grid to image is invertible. As shown inFIG.15, an observation model training method1500begins with the occupancy information unit560applying a camera image1510to a CNN1520to determine a set1530of arrays15351-1535nthat comprise a modified image corresponding to the camera image1510(and thus to camera (sensor) measurements). Each of the arrays15351-1535nmay have a lower resolution than the camera image1510. For example, the camera image1510may comprise a 1024×512×3 pixel array, comprising a 1024×512 array of sets of three pixels each for red, green, and blue, and each of the arrays15351-1535nmay comprise a reduced-resolution array of 128×62 cells. Each of the arrays15351-1535nmay correspond to a different mechanism for deriving the respective array from the camera image1510. For example, different arrays may be determined using different frequency filters, e.g., one array determined using an LPF (low-pass filter) and another array determined using an HPF (high-pass filter), or combinations thereof. Arrays may be determined using other distinguishing techniques. Each cell in each array will have a corresponding probability value. The occupancy information unit560may use a known occupancy grid1540corresponding to the camera image1510to perform a head training function1550to train heads, e.g., heads1551,1552, for converting the arrays15351-1535nto an expected occupancy grid1560. Probabilities of the known occupancy grid1540will be either 1 or 0 because the ground truth is known, e.g., from lidar and/or one or more other techniques. The heads are weight vectors, of dimension l×n, that are part of a neural network implemented by the occupancy information unit560(e.g., part of the CNN1520). The heads provide weightings for each of the arrays15351-1535n.

The occupancy information unit560may perform the head training function1550to determine values for the heads such that when the heads are applied to the arrays15351-1535n, the expected occupancy grid1560will adequately match the known occupancy grid1540. To perform the head training function1550, the occupancy information unit560may determine a grid-to-image conversion, and then determine an image-to-grid conversion as the inverse of the grid-to-image conversion. The occupancy information unit560may determine a conversion from the known occupancy grid1540to the arrays15351-1535n, and determine the inverse of this conversion as the image-to-grid conversion for converting the arrays15351-1535n(corresponding to the camera image1510) to the expected occupancy grid1560. The probability for a cell of the expected occupancy grid1560may be a sum of products of weights of the corresponding head and corresponding a corresponding cell (or cells) of each of the arrays15351-1535n. Pixels in the camera image1510may be selected based on the transformation by the CNN1520.

The heads may be non-uniformly mapped to the arrays15351-1535n(and thus to pixels of the camera image1510) and/or to the expected occupancy grid1560. For example, multiple cells in each of the arrays15351-1535ncorresponding to a nearby object (and multiple pixels in the camera image1510) may map to a single cell of the expected occupancy grid and/or a single cell of each of the arrays15351-1535n(or even a single pixel of the camera image1510) may map to multiple cells of the expected occupancy grid1560. Consequently, a single head may be applied to multiple cells of each of the arrays15351-1535nand/or a head may map a single cell of each of the arrays15351-1535nto multiple cells of the expected occupancy grid1560.

Heads can be determined to map directly from the camera image1510to the expected occupancy grid1560. Using heads that map from the arrays15351-1535nto the expected occupancy grid may retain more information from the camera image1510than a mapping directly from the camera image1510to the expected occupancy grid1560.

During an inference stage, the occupancy information unit560determines the arrays15351-1535nand applies the heads determined during training to the arrays15351-1535nto determine the expected occupancy grid1560, which will be the camera-based occupancy grid1425.

Referring again toFIG.14, occupancy grids may be updated using the camera-based occupancy grid1425based on grid-to-image conversion. The prediction function1480may perform a prediction of a grid state to provide a predicted occupancy grid1490to the update function1440. Each grid cell may include multiple state values, e.g., four state values corresponding to static, dynamic, empty, and unknown, with the dynamic state possibly having multiple sub-states (e.g., probabilities of different velocity vectors). The occupancy information unit560may run an inference on the camera image1402by applying the observation model function1320to compute p(Ck|Gk,i) for each grid cell (e.g., four values for each grid cell). The occupancy information unit560may compute a point-wise product for each grid cell by multiplying the predicted occupancy grid1490by the camera-based occupancy grid1425and the radar-based occupancy grid1415to produce an updated occupancy grid. The occupancy information unit560may normalize the probabilities for each grid cell of the updated occupancy grid such that a sum of the probabilities for each grid cell equals 1. The updated occupancy grid may be used to predict the next predicted occupancy grid, and so on.

Referring toFIG.16, with further reference toFIGS.1-15, an occupancy grid determination method1600includes the stages shown. The method1600is, however, an example and not limiting. The method1600may be altered, e.g., by having one or more stages added, removed, rearranged, combined, performed concurrently, and/or having one or more stages each split into multiple stages.

At stage1610, the method1600includes determining a predicted occupancy grid based on a previous occupancy grid, the predicted occupancy grid comprising a plurality of first cells corresponding to sub-regions of a region, each of the plurality of first cells including a plurality of predicted indications of probability each indicative of a predicted probability of a respective possible type of occupier of the respective first cell. For example, the occupancy information unit560(or another entity such as the server400) may perform any of the prediction functions1080,1180,1280,1380,1480to determine a predicted occupancy grid (e.g., the occupancy map800). The processor510, possibly in combination with the memory530, or the processor410possibly in combination with the memory411, may comprise means for determining the predicted occupancy grid.

At stage1620, the method1600includes determining, using machine learning and based on first sensor measurements, an observed occupancy grid comprising a plurality of second cells corresponding to the sub-regions of the region. For example, the occupancy information unit560(or another entity) may perform any of the observation model functions1020,1120,1220,1322,1420to determine an observed occupancy grid, e.g., any of the occupancy grids1030,1125,1225,1325,1425, respectively. The occupancy information unit560may also determine another observed occupancy grid without using machine learning (e.g., using a classical approach), e.g., any of the occupancy grids1115,1215,1315,1415, respectively. The processor510, possibly in combination with the memory530, or the processor410possibly in combination with the memory411, may comprise means for determining the observed occupancy grid.

At stage1630, the method1600includes determining an updated occupancy grid based on the observed occupancy grid and the predicted occupancy grid. For example, the occupancy information unit560(or other entity) may perform any of the update functions1040,1140,1240,1340,1440based on the occupancy grid1030, or the occupancy grid1125(and possibly the occupancy grid1115), or the occupancy grid1225(and possibly the occupancy grid1215), or the occupancy grid1325(and possibly the occupancy grid1315), or the occupancy grid1425(and possibly the occupancy grid1415). The processor510, possibly in combination with the memory530, or the processor410possibly in combination with the memory411, may comprise means for determining the updated occupancy grid.

Implementations of the method1600may include one or more of the following features. In an example implementation, the method1600includes obtaining the first sensor measurements from a first sensor; and obtaining second sensor measurements from a second sensor, wherein determining the observed occupancy grid comprises using, for each of the plurality of second cells, a respective first portion of first information corresponding to the first sensor measurements, a respective second portion of second information corresponding to the second sensor measurements, or a combination thereof. The first information may be sensor measurements (e.g., camera measurements for an image) or information derived from the sensor measurements (e.g., a BEV). The occupancy information unit560(or other entity) may obtain first and second sensor measurements, e.g., the sensor measurements1011,1012(e.g., radar points and a camera image, respectively). The occupancy information unit560(or other entity) may analyze the sensor measurements and use none of the measurements from one sensor and thus only measurements from the other sensor, or use a combination of measurements from the sensors (e.g., using measurement(s) from one sensor or the other for a given cell of the observed occupancy grid, or combining measurements from different sensors to determine a given cell of the observed occupancy grid). The processor510, possibly in combination with the memory530, in combination with the sensors540, or the processor410possibly in combination with the memory411and in combination with the wired receiver454and/or the wireless receiver444and the antenna446, may comprise means for obtaining the first sensor measurements and means for obtaining the second sensor measurements. In a further example implementation, the first information comprises the first sensor measurements and the second information comprises the second sensor measurements, and wherein determining the observed occupancy grid comprises using, for each of the plurality of second cells, at least a first one of the first sensor measurements, at least a second one of the second sensor measurements, or a combination thereof. For example, for the observation model function1020, the occupancy information unit560may select, for determining a given occupancy grid cell, one or more of the sensor measurements1011or one or more of the sensor measurements1012, or a combination of at least one of the sensor measurements1011and at least one of the sensor measurements1012. In another further example implementation, the method1600includes deriving the first information from the first sensor measurements and deriving the second information from the second sensor measurements. For example, in a further example implementation, the first information comprises a bird's-eye view of the region. In another further example implementation, the first information comprises a plurality of first indications of probability each indicative of a first probability of a first respective possible type of occupier of a respective one of the sub-regions and the second information comprises a plurality of second indications of probability each indicative of a second probability of a second respective possible type of occupier of a respective one of the sub-regions. For example, the first information may comprise one of the occupancy grids1125,1225,1325,1425and the second information may comprise one of the occupancy grids1115,1215,1315,1415, and the update function1140,1240,1340,1440may use, for any given cell of the updated occupancy grid, one or more cells of the occupancy grid1115,1215,1315,1415, or one or more cells of the occupancy grid1125,1225,1325,1425, or one or more cells of the occupancy grid1115,1215,1315,1415and one or more cells of the occupancy grid1125,1225,1325,1425(e.g., multiplying the respective cells). In another further example implementation, the method1600includes determining, through machine learning, an occupancy-grid-to-image transformation; determining an image-to-occupancy-grid transformation based on the occupancy-grid-to-image transformation; and determining the first information by applying the image-to-occupancy-grid transformation to third information corresponding to an image corresponding to the first sensor measurements, the first sensor comprising a camera. For example, as discussed with respect toFIG.15, the occupancy information unit560(or other entity) may determine an occupancy-grid-to-image transformation based on the known occupancy grid1540to produce the arrays15351-1535nto an acceptable degree of accuracy. The inverse of the occupancy-grid-to-image transformation may be determined as an image-to-occupancy-grid transformation, and the first information (e.g., the occupancy grid1425) may be determined by applying the image-to-occupancy-grid transformation to third information (e.g., a new set of arrays derived from a new camera image). Alternatively, the transformations may be to and from the camera image1510directly, such that the first information may be determined by applying the image-to-occupancy-grid transformation to a camera image. The processor510, possibly in combination with the memory530, or the processor410possibly in combination with the memory411, may comprise means for determining the occupancy-grid-to-image transformation, means for determining the image-to-occupancy-grid transformation, and means for determining the first information. In a further example implementation, the occupancy-grid-to-image transformation maps between an occupancy grid, comprising a plurality of occupancy grid cells, and the third information, comprising a plurality of third-information regions, and the image-to-occupancy-grid transformation maps between the third information and the occupancy grid, and wherein: the occupancy-grid-to-image transformation maps at least two of the plurality of occupancy grid cells to a single pixel of the plurality of third-information regions; or the occupancy-grid-to-image transformation maps a single occupancy grid cell of the plurality of occupancy grid cells to at least two of the plurality of third-information regions; or the image-to-occupancy-grid transformation maps at least two of the plurality of third-information regions to a single one of the plurality of occupancy grid cells; or the image-to-occupancy-grid transformation maps a single one of the plurality of third-information regions to at least two of the plurality of occupancy grid cells; or a combination of two or more thereof; whereby there is a non-uniform mapping between the occupancy grid and the third information. For example, as discussed with respect toFIG.15, there may be non-uniform mapping (many to one mapping (of cell(s) and/or pixel(s)) or one to many mapping (of cell(s) and/or pixel(s))) between the known occupancy grid1540and the arrays15351-1535nor the camera image1510, and/or non-uniform mapping between the arrays15351-1535n(or the camera image1510) and the expected occupancy grid1560.

Also or alternatively, implementations of the method1600may include one or more of the following features. In an example implementation, the plurality of predicted indications of probability are each indicative of a plausibility of the respective possible type of occupier of the respective first cell actually occupying the respective first cell. For example, the predicted indications of probability may indicate probabilities of a cell being empty, unknown, occupied by a static object, or occupied by a dynamic object (and possibly sub-probabilities of different dynamic characteristics, e.g., different velocity vectors (of different direction and/or speed)).

Implementation Examples

Implementation examples are provided in the following numbered clauses.

Clause 1. An apparatus comprising:a memory; anda processor communicatively coupled to the memory, and configured to:determine a predicted occupancy grid based on a previous occupancy grid, the predicted occupancy grid comprising a plurality of first cells corresponding to sub-regions of a region, each of the plurality of first cells including a plurality of predicted indications of probability each indicative of a predicted probability of a respective possible type of occupier of the respective first cell;determine, using machine learning and based on first sensor measurements, an observed occupancy grid comprising a plurality of second cells corresponding to the sub-regions of the region; anddetermine an updated occupancy grid based on the observed occupancy grid and the predicted occupancy grid.

Clause 2. The apparatus of clause 1, further comprising:a first sensor configured to obtain the first sensor measurements; anda second sensor configured to obtain second sensor measurements;wherein the processor is communicatively coupled to the first sensor and the second sensor, and wherein to determine the observed occupancy grid the processor is configured to use, for each of the plurality of second cells, a respective first portion of first information corresponding to the first sensor measurements, a respective second portion of second information corresponding to the second sensor measurements, or a combination thereof.

Clause 3. The apparatus of clause 2, wherein the first information comprises the first sensor measurements and the second information comprises the second sensor measurements, and wherein to determine the observed occupancy grid the processor is configured to use, for each of the plurality of second cells, at least a first one of the first sensor measurements, at least a second one of the second sensor measurements, or a combination thereof.

Clause 4. The apparatus of clause 2, wherein the first information is derived from the first sensor measurements and the second information is derived from the second sensor measurements.

Clause 5. The apparatus of clause 4, wherein the first information comprises a bird's-eye view of the region.

Clause 6. The apparatus of clause 4, wherein the first information comprises a plurality of first indications of probability each indicative of a first probability of a first respective possible type of occupier of a respective one of the sub-regions and the second information comprises a plurality of second indications of probability each indicative of a second probability of a second respective possible type of occupier of a respective one of the sub-regions.

Clause 7. The apparatus of clause 2, wherein the processor is further configured to:determine, through machine learning, an occupancy-grid-to-image transformation;determine an image-to-occupancy-grid transformation based on the occupancy-grid-to-image transformation; anddetermine the first information by applying the image-to-occupancy-grid transformation to third information corresponding to an image corresponding to the first sensor measurements, the first sensor comprising a camera.

Clause 8. The apparatus of clause 7, wherein the occupancy-grid-to-image transformation maps between an occupancy grid, comprising a plurality of occupancy grid cells, and the third information, comprising a plurality of third-information regions, and the image-to-occupancy-grid transformation maps between the third information and the occupancy grid, and wherein:the occupancy-grid-to-image transformation maps at least two of the plurality of occupancy grid cells to a single pixel of the plurality of third-information regions; orthe occupancy-grid-to-image transformation maps a single occupancy grid cell of the plurality of occupancy grid cells to at least two of the plurality of third-information regions; orthe image-to-occupancy-grid transformation maps at least two of the plurality of third-information regions to a single one of the plurality of occupancy grid cells; orthe image-to-occupancy-grid transformation maps a single one of the plurality of third-information regions to at least two of the plurality of occupancy grid cells; ora combination of two or more thereof;whereby there is a non-uniform mapping between the occupancy grid and the third information.

Clause 9. The apparatus of clause 1, wherein the plurality of predicted indications of probability are each indicative of a plausibility of the respective possible type of occupier of the respective first cell actually occupying the respective first cell.

Clause 10. An occupancy grid determination method comprising:determining a predicted occupancy grid based on a previous occupancy grid, the predicted occupancy grid comprising a plurality of first cells corresponding to sub-regions of a region, each of the plurality of first cells including a plurality of predicted indications of probability each indicative of a predicted probability of a respective possible type of occupier of the respective first cell;determining, using machine learning and based on first sensor measurements, an observed occupancy grid comprising a plurality of second cells corresponding to the sub-regions of the region; anddetermining an updated occupancy grid based on the observed occupancy grid and the predicted occupancy grid.

Clause 11. The occupancy grid determination method of clause 10, further comprising:obtaining the first sensor measurements from a first sensor; andobtaining second sensor measurements from a second sensor;wherein determining the observed occupancy grid comprises using, for each of the plurality of second cells, a respective first portion of first information corresponding to the first sensor measurements, a respective second portion of second information corresponding to the second sensor measurements, or a combination thereof.

Clause 12. The occupancy grid determination method of clause 11, wherein the first information comprises the first sensor measurements and the second information comprises the second sensor measurements, and wherein determining the observed occupancy grid comprises using, for each of the plurality of second cells, at least a first one of the first sensor measurements, at least a second one of the second sensor measurements, or a combination thereof.

Clause 13. The occupancy grid determination method of clause 11, further comprising deriving the first information from the first sensor measurements and deriving the second information from the second sensor measurements.

Clause 14. The occupancy grid determination method of clause 13, wherein the first information comprises a bird's-eye view of the region.

Clause 15. The occupancy grid determination method of clause 13, wherein the first information comprises a plurality of first indications of probability each indicative of a first probability of a first respective possible type of occupier of a respective one of the sub-regions and the second information comprises a plurality of second indications of probability each indicative of a second probability of a second respective possible type of occupier of a respective one of the sub-regions.

Clause 16. The occupancy grid determination method of clause 11, further comprising:determining, through machine learning, an occupancy-grid-to-image transformation;determining an image-to-occupancy-grid transformation based on the occupancy-grid-to-image transformation; anddetermining the first information by applying the image-to-occupancy-grid transformation to third information corresponding to an image corresponding to the first sensor measurements, the first sensor comprising a camera.

Clause 17. The occupancy grid determination method of clause 16, wherein the occupancy-grid-to-image transformation maps between an occupancy grid, comprising a plurality of occupancy grid cells, and the third information, comprising a plurality of third-information regions, and the image-to-occupancy-grid transformation maps between the third information and the occupancy grid, and wherein:the occupancy-grid-to-image transformation maps at least two of the plurality of occupancy grid cells to a single pixel of the plurality of third-information regions; orthe occupancy-grid-to-image transformation maps a single occupancy grid cell of the plurality of occupancy grid cells to at least two of the plurality of third-information regions; orthe image-to-occupancy-grid transformation maps at least two of the plurality of third-information regions to a single one of the plurality of occupancy grid cells; orthe image-to-occupancy-grid transformation maps a single one of the plurality of third-information regions to at least two of the plurality of occupancy grid cells; ora combination of two or more thereof;whereby there is a non-uniform mapping between the occupancy grid and the third information.

Clause 18. The occupancy grid determination method of clause 10, wherein the plurality of predicted indications of probability are each indicative of a plausibility of the respective possible type of occupier of the respective first cell actually occupying the respective first cell.

Clause 19. An apparatus comprising:means for determining a predicted occupancy grid based on a previous occupancy grid, the predicted occupancy grid comprising a plurality of first cells corresponding to sub-regions of a region, each of the plurality of first cells including a plurality of predicted indications of probability each indicative of a predicted probability of a respective possible type of occupier of the respective first cell;means for determining, using machine learning and based on first sensor measurements, an observed occupancy grid comprising a plurality of second cells corresponding to the sub-regions of the region; andmeans for determining an updated occupancy grid based on the observed occupancy grid and the predicted occupancy grid.

Clause 20. The apparatus of clause 19, further comprising:means for obtaining the first sensor measurements from a first sensor; andmeans for obtaining second sensor measurements from a second sensor;wherein the means for determining the observed occupancy grid comprise means for using, for each of the plurality of second cells, a respective first portion of first information corresponding to the first sensor measurements, a respective second portion of second information corresponding to the second sensor measurements, or a combination thereof.

Clause 21. The apparatus of clause 20, wherein the first information comprises the first sensor measurements and the second information comprises the second sensor measurements, and wherein the means for determining the observed occupancy grid comprise means for using, for each of the plurality of second cells, at least a first one of the first sensor measurements, at least a second one of the second sensor measurements, or a combination thereof.

Clause 22. The apparatus of clause 20, further comprising means for deriving the first information from the first sensor measurements and means for deriving the second information from the second sensor measurements.

Clause 23. The apparatus of clause 22, wherein the first information comprises a bird's-eye view of the region.

Clause 24. The apparatus of clause 22, wherein the first information comprises a plurality of first indications of probability each indicative of a first probability of a first respective possible type of occupier of a respective one of the sub-regions and the second information comprises a plurality of second indications of probability each indicative of a second probability of a second respective possible type of occupier of a respective one of the sub-regions.

Clause 25. The apparatus of clause 20, further comprising:means for determining, through machine learning, an occupancy-grid-to-image transformation;means for determining an image-to-occupancy-grid transformation based on the occupancy-grid-to-image transformation; andmeans for determining the first information by applying the image-to-occupancy-grid transformation to third information corresponding to an image corresponding to the first sensor measurements, the first sensor comprising a camera.

Clause 26. The apparatus of clause 25, wherein the occupancy-grid-to-image transformation maps between an occupancy grid, comprising a plurality of occupancy grid cells, and the third information, comprising a plurality of third-information regions, and the image-to-occupancy-grid transformation maps between the third information and the occupancy grid, and wherein:the occupancy-grid-to-image transformation maps at least two of the plurality of occupancy grid cells to a single pixel of the plurality of third-information regions; orthe occupancy-grid-to-image transformation maps a single occupancy grid cell of the plurality of occupancy grid cells to at least two of the plurality of third-information regions; orthe image-to-occupancy-grid transformation maps at least two of the plurality of third-information regions to a single one of the plurality of occupancy grid cells; orthe image-to-occupancy-grid transformation maps a single one of the plurality of third-information regions to at least two of the plurality of occupancy grid cells; ora combination of two or more thereof;whereby there is a non-uniform mapping between the occupancy grid and the third information.

Clause 27. The apparatus of clause 19, wherein the plurality of predicted indications of probability are each indicative of a plausibility of the respective possible type of occupier of the respective first cell actually occupying the respective first cell.

Clause 28. A non-transitory, processor-readable storage medium comprising processor-readable instructions to cause a processor to:determine a predicted occupancy grid based on a previous occupancy grid, the predicted occupancy grid comprising a plurality of first cells corresponding to sub-regions of a region, each of the plurality of first cells including a plurality of predicted indications of probability each indicative of a predicted probability of a respective possible type of occupier of the respective first cell;determine, using machine learning and based on first sensor measurements, an observed occupancy grid comprising a plurality of second cells corresponding to the sub-regions of the region; anddetermine an updated occupancy grid based on the observed occupancy grid and the predicted occupancy grid.

Clause 29. The non-transitory, processor-readable storage medium of clause 28, further comprising processor-readable instructions to cause the processor to:obtain the first sensor measurements from a first sensor; andobtain second sensor measurements from a second sensor;wherein the processor-readable instructions to cause the processor to determine the observed occupancy grid comprise processor-readable instructions to cause the processor to use, for each of the plurality of second cells, a respective first portion of first information corresponding to the first sensor measurements, a respective second portion of second information corresponding to the second sensor measurements, or a combination thereof.

Clause 30. The non-transitory, processor-readable storage medium of clause 29, wherein the first information comprises the first sensor measurements and the second information comprises the second sensor measurements, and wherein the processor-readable instructions to cause the processor to determine the observed occupancy grid comprise processor-readable instructions to cause the processor to use, for each of the plurality of second cells, at least a first one of the first sensor measurements, at least a second one of the second sensor measurements, or a combination thereof.

Clause 31. The non-transitory, processor-readable storage medium of clause 29, further comprising processor-readable instructions to cause the processor to:derive the first information from the first sensor measurements; andderive the second information from the second sensor measurements.

Clause 32. The non-transitory, processor-readable storage medium of clause 31, wherein the first information comprises a bird's-eye view of the region.

Clause 33. The non-transitory, processor-readable storage medium of clause 31, wherein the first information comprises a plurality of first indications of probability each indicative of a first probability of a first respective possible type of occupier of a respective one of the sub-regions and the second information comprises a plurality of second indications of probability each indicative of a second probability of a second respective possible type of occupier of a respective one of the sub-regions.

Clause 34. The non-transitory, processor-readable storage medium of clause 29, further comprising processor-readable instructions to cause the processor to:determine, through machine learning, an occupancy-grid-to-image transformation;determine an image-to-occupancy-grid transformation based on the occupancy-grid-to-image transformation; anddetermine the first information by applying the image-to-occupancy-grid transformation to third information corresponding to an image corresponding to the first sensor measurements, the first sensor comprising a camera.

Clause 35. The non-transitory, processor-readable storage medium of clause 34, wherein the occupancy-grid-to-image transformation maps between an occupancy grid, comprising a plurality of occupancy grid cells, and the third information, comprising a plurality of third-information regions, and the image-to-occupancy-grid transformation maps between the third information and the occupancy grid, and wherein:the occupancy-grid-to-image transformation maps at least two of the plurality of occupancy grid cells to a single pixel of the plurality of third-information regions; orthe occupancy-grid-to-image transformation maps a single occupancy grid cell of the plurality of occupancy grid cells to at least two of the plurality of third-information regions; orthe image-to-occupancy-grid transformation maps at least two of the plurality of third-information regions to a single one of the plurality of occupancy grid cells; orthe image-to-occupancy-grid transformation maps a single one of the plurality of third-information regions to at least two of the plurality of occupancy grid cells; ora combination of two or more thereof;whereby there is a non-uniform mapping between the occupancy grid and the third information.

Clause 36. The non-transitory, processor-readable storage medium of clause 28, wherein the plurality of predicted indications of probability are each indicative of a plausibility of the respective possible type of occupier of the respective first cell actually occupying the respective first cell.

Other Considerations

Other examples and implementations are within the scope of the disclosure and appended claims. For example, due to the nature of software and computers, functions described above can be implemented using software executed by a processor, hardware, firmware, hardwiring, or a combination of any of these. Features implementing functions may also be physically located at various positions, including being distributed such that portions of functions are implemented at different physical locations.

As used herein, the singular forms “a,” “an,” and “the” include the plural forms as well, unless the context clearly indicates otherwise. Thus, reference to a device in the singular (e.g., “a device,” “the device”), including in the claims, includes at least one, i.e., one or more, of such devices (e.g., “a processor” includes at least one processor (e.g., one processor, two processors, etc.), “the processor” includes at least one processor, “a memory” includes at least one memory, “the memory” includes at least one memory, etc.). The phrases “at least one” and “one or more” are used interchangeably and such that “at least one” referred-to object and “one or more” referred-to objects include implementations that have one referred-to object and implementations that have multiple referred-to objects. For example, “at least one processor” and “one or more processors” each includes implementations that have one processor and implementations that have multiple processors.

Also, as used herein, “or” as used in a list of items (possibly prefaced by “at least one of” or prefaced by “one or more of”) indicates a disjunctive list such that, for example, a list of “at least one of A, B, or C,” or a list of “one or more of A, B, or C” or a list of “A or B or C” means A, or B, or C, or AB (A and B), or AC (A and C), or BC (B and C), or ABC (i.e., A and B and C), or combinations with more than one feature (e.g., AA, AAB, ABBC, etc.). Thus, a recitation that an item, e.g., a processor, is configured to perform a function regarding at least one of A or B, or a recitation that an item is configured to perform a function A or a function B, means that the item may be configured to perform the function regarding A, or may be configured to perform the function regarding B, or may be configured to perform the function regarding A and B. For example, a phrase of “a processor configured to measure at least one of A or B” or “a processor configured to measure A or measure B” means that the processor may be configured to measure A (and may or may not be configured to measure B), or may be configured to measure B (and may or may not be configured to measure A), or may be configured to measure A and measure B (and may be configured to select which, or both, of A and B to measure). Similarly, a recitation of a means for measuring at least one of A or B includes means for measuring A (which may or may not be able to measure B), or means for measuring B (and may or may not be configured to measure A), or means for measuring A and B (which may be able to select which, or both, of A and B to measure). As another example, a recitation that an item, e.g., a processor, is configured to at least one of perform function X or perform function Y means that the item may be configured to perform the function X, or may be configured to perform the function Y, or may be configured to perform the function X and to perform the function Y. For example, a phrase of “a processor configured to at least one of measure X or measure Y” means that the processor may be configured to measure X (and may or may not be configured to measure Y), or may be configured to measure Y (and may or may not be configured to measure X), or may be configured to measure X and to measure Y (and may be configured to select which, or both, of X and Y to measure).

Substantial variations may be made in accordance with specific requirements. For example, customized hardware might also be used, and/or particular elements might be implemented in hardware, software (including portable software, such as applets, etc.) executed by a processor, or both. Further, connection to other computing devices such as network input/output devices may be employed. Components, functional or otherwise, shown in the figures and/or discussed herein as being connected or communicating with each other are communicatively coupled unless otherwise noted. That is, they may be directly or indirectly connected to enable communication between them.

A wireless communication system is one in which communications are conveyed wirelessly, i.e., by electromagnetic and/or acoustic waves propagating through atmospheric space rather than through a wire or other physical connection, between wireless communication devices. A wireless communication system (also called a wireless communications system, a wireless communication network, or a wireless communications network) may not have all communications transmitted wirelessly, but is configured to have at least some communications transmitted wirelessly. Further, the term “wireless communication device,” or similar term, does not require that the functionality of the device is exclusively, or even primarily, for communication, or that communication using the wireless communication device is exclusively, or even primarily, wireless, or that the device be a mobile device, but indicates that the device includes wireless communication capability (one-way or two-way), e.g., includes at least one radio (each radio being part of a transmitter, receiver, or transceiver) for wireless communication.

Unless otherwise indicated, “about” and/or “approximately” as used herein when referring to a measurable value such as an amount, a temporal duration, and the like, encompasses variations of ±20% or ±10%, ±5%, or ±0.1% from the specified value, as appropriate in the context of the systems, devices, circuits, methods, and other implementations described herein. Unless otherwise indicated, “substantially” as used herein when referring to a measurable value such as an amount, a temporal duration, a physical attribute (such as frequency), and the like, also encompasses variations of ±20% or ±10%, ±5%, or ±0.1% from the specified value, as appropriate in the context of the systems, devices, circuits, methods, and other implementations described herein.