Patent Description:
This document is directed to systems, apparatuses, techniques, and methods for enabling ghost object detection. The systems and apparatuses include components or means (e.g., processing systems) for performing the techniques and methods described herein.

Some aspects described below include a system including at least one processor configured to receive information about a plurality of objects proximate a host vehicle. The objects may include two or more moving objects and one or more stationary objects. The processor is also configured to determine one or more moving object pairs of the moving objects. The processor is also configured to, for each of the moving object pairs, determine a reflection line that is perpendicular to a connection line connecting a first object and a second object of the respective moving object pair and between the first object and the second object. The processor is also configured to determine whether one or more of the stationary objects are within an area of an intersection of the connection line and the reflection line. The processor is also configured to, based on a determination that one or more of the stationary objects are within the area, determine whether one or more of the one or more of the stationary objects are within a distance of a reflection point that is at an intersection of a signal line between the second object and the host vehicle and the reflection line. The processor is also configured to, based on a determination that one or more of the one or more stationary objects are within the distance, determine, based on the first object and the reflection line, an expected velocity of the second object and determine whether a velocity of the second object is within a differential speed of the expected velocity. The processor is also configured to, based on the velocity of the second object being within the differential speed of the expected velocity, determine that the second object is a ghost object and output an indication that the second object is a ghost object.

The techniques and methods may be performed by the above system, another system or component, or a combination thereof. Some aspects described below include a method that includes receiving information about a plurality of objects proximate a host vehicle. The objects may include two or more moving objects and one or more stationary objects. The method also includes determining one or more moving object pairs of the moving objects. The method also includes, for each of the moving object pairs, determining a reflection line that is perpendicular to a connection line connecting a first object and a second object of the respective moving object pair and between the first object and the second object. The method also includes determining whether one or more of the stationary objects are within an area of an intersection of the connection line and the reflection line. The method also includes, based on a determination that one or more of the stationary objects are within the area, determining whether one or more of the one or more of the stationary objects are within a distance of a reflection point that is at an intersection of a signal line between the second object and the host vehicle and the reflection line. The method also includes, based on a determination that one or more of the one or more stationary objects are within the distance, determining, based on the first object and the reflection line, an expected velocity of the second object and determining whether a velocity of the second object is within a differential speed of the expected velocity. The method also includes, based on the velocity of the second object being within the differential speed of the expected velocity, determining that the second object is a ghost object and outputting an indication that the second object is a ghost object.

The components may include computer-readable media (e.g., non-transitory storage media) including instructions that, when executed by the above system, another system or component, or a combination thereof, implement the method above and other methods. Some aspects described below include computer-readable storage media including instructions that, when executed, cause at least one processor to receive information about a plurality of objects proximate a host vehicle. The objects may include two or more moving objects and one or more stationary objects. The instructions also cause the processor to determine one or more moving object pairs of the moving objects. The instructions also cause the processor to, for each of the moving object pairs, determine a reflection line that is perpendicular to a connection line connecting a first object and a second object of the respective moving object pair and between the first object and the second object. The instructions also cause the processor to determine whether one or more of the stationary objects are within an area of an intersection of the connection line and the reflection line. The instructions also cause the processor to, based on a determination that one or more of the stationary objects are within the area, determine whether one or more of the one or more of the stationary objects are within a distance of a reflection point that is at an intersection of a signal line between the second object and the host vehicle and the reflection line. The instructions also cause the processor to, based on a determination that one or more of the one or more stationary objects are within the distance, determine, based on the first object and the reflection line, an expected velocity of the second object and determine whether a velocity of the second object is within a differential speed of the expected velocity. The instructions also cause the processor to, based on the velocity of the second object being within the differential speed of the expected velocity, determine that the second object is a ghost object and output an indication that the second object is a ghost object.

This Summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.

Systems and techniques for enabling ghost object detection are described with reference to the following drawings that use some of the same numbers throughout to reference like or examples of like features and components.

Environment detection systems (e.g., RADAR and LiDAR) often struggle to differentiate ghost objects from actual objects. For example, when a vehicle is parked near a wall, an approaching vehicle may be detected along with a ghost of the approaching vehicle (due to multipath reflections off the wall). Many conventional techniques rely on complicated systems (e.g., multiple sensors or fusion), specific algorithms (e.g., guard rail detection), or physically changing the environment (e.g., maneuvering the host vehicle) to determine ghost objects. Doing so decreases functionality while increasing cost.

The techniques and systems herein enable ghost object detection. Specifically, a reflection line indicative of a potential reflection surface between first and second moving objects is determined. If enough stationary objects are within an area of the reflection line, it is determined whether one or more of the stationary objects within the area are within a distance of a reflection point. An expected velocity of the second object is then determined and checked against a velocity of the second object. If the expected velocity is near the velocity, it is determined that the second object is likely a ghost object. By doing so, the system is able to effectively identify ghost objects in a wide variety of environments, thereby allowing for downstream operations to function as designed.

<FIG> illustrate example environments <NUM>, <NUM> where ghost object detection may be used. <FIG> illustrates example environment <NUM>, while <FIG> illustrates example environment <NUM>. The example environments <NUM>, <NUM> contain a host vehicle <NUM> and objects <NUM> that are detected by the host vehicle <NUM>. The host vehicle <NUM> may be any type of system (automobile, car, truck, motorcycle, e-bike, boat, air vehicle, and so on). The objects <NUM> may be any type of moving or stationary objects (automobile, car, truck, motorcycle, e-bike, boat, pedestrian, cyclist, boulder, sign, wall, and so on). The objects <NUM> are classified as moving or stationary objects. For example, objects <NUM>-a, <NUM>-b are moving objects (e.g., vehicles) while object <NUM>-c is a stationary object (e.g., a wall).

In the example environment <NUM>, the host vehicle <NUM> is stationary (e.g., parked). In the example environment <NUM>, the host vehicle <NUM> is reversing with a host velocity <NUM>. The present disclosure is not limited to reversing, however, and the techniques described herein may be applicable to the host vehicle <NUM> moving in any direction. The objects <NUM> have object velocities <NUM>. It may be assumed that the stationary objects (e.g., object <NUM>-c) have an object velocity of zero.

To determine ghost objects, the host vehicle <NUM> contains a detection module <NUM> that is configured to identify which of the objects <NUM> that are moving are ghost objects <NUM> (e.g., not real objects). In the example environment <NUM>, object <NUM>-b is a ghost of object <NUM>-a created by reflections off object <NUM>-c. In the example environment <NUM>, object <NUM>-b is a ghost of the host vehicle <NUM> created by reflections off object <NUM>-c. Thus, in both example environments <NUM>, <NUM>, object <NUM>-b is a ghost object <NUM>.

The objects <NUM>, with or without the ghost objects <NUM>, may be sent to, or otherwise received by a vehicle component <NUM>. The vehicle component <NUM> may be any downstream operation, function, or system that uses information about the objects <NUM> to perform a function. Depending on implementation, the detection module <NUM> may output indications of the ghost objects <NUM>, remove the ghost objects <NUM> from the objects <NUM>, output indications of real objects of the objects <NUM>, or some combination thereof.

Accordingly, the detection module <NUM> is able to identify ghost objects <NUM> when the host vehicle <NUM> is stationary and when it is moving without any a priori information about the environment and without sensor fusion or complicated object trackers. In doing so, the detection module <NUM> may be able to efficiently identify the ghost objects <NUM> (and possibly filter them out) in a wide variety of environments such that downstream operations can function as designed.

<FIG> illustrates an example system <NUM> configured to be disposed in the host vehicle <NUM> and configured to implement ghost object detection. Components of the example system <NUM> may be arranged anywhere within or on the host vehicle <NUM>. The example system <NUM> may include at least one processor <NUM>, computer-readable storage media <NUM> (e.g., media, medium, mediums), and the vehicle component <NUM>. The components are operatively and/or communicatively coupled via a link <NUM>.

The processor <NUM> (e.g., application processor, microprocessor, digital-signal processor (DSP), controller) is coupled to the computer-readable storage media <NUM> via the link <NUM> and executes instructions (e.g., code) stored within the computer-readable storage media <NUM> (e.g., non-transitory storage device such as a hard drive, solid-state drive (SSD), flash memory, read-only memory (ROM)) to implement or otherwise cause the detection module <NUM> (or a portion thereof) to perform the techniques described herein. Although shown as being within the computer-readable storage media <NUM>, the detection module <NUM> may be a stand-alone component (e.g., having dedicated computer-readable storage media comprising instructions and/or executed on dedicated hardware, such as a dedicated processor, pre-programmed field-programmable-gate-array (FPGA), system on chip (SOC), and the like). The processor <NUM> and the computer-readable storage media <NUM> may be any number of components, comprise multiple components distributed throughout the host vehicle <NUM>, located remote to the host vehicle <NUM>, dedicated or shared with other components, modules, or systems of the host vehicle <NUM>, and/or configured differently than illustrated without departing from the scope of this disclosure.

The computer-readable storage media <NUM> also contains sensor data <NUM> generated by one or more sensors or types of sensors (not shown) that may be local or remote to the example system <NUM>. The sensor data <NUM> indicates or otherwise enables the determination of information usable to perform the techniques described herein. For example, one or more of the sensors (e.g., RADAR, LiDAR) may generate sensor data <NUM> indicative of information about the objects <NUM>. The sensor data <NUM> may be used to determine other attributes, as discussed below.

In some implementations, the sensor data <NUM> may come from a remote source (e.g., via link <NUM>). The example system <NUM> may contain a communication system (not shown) that receives sensor data <NUM> from the remote source.

The vehicle component <NUM> contains one or more systems or components that are communicatively coupled to the detection module <NUM> and configured to use information about the objects <NUM> (e.g., about the real objects, the ghost objects <NUM>, or some combination thereof) to perform a vehicle function. For example, the vehicle component <NUM> may comprise an ADAS with means for accelerating, steering, or braking the host vehicle <NUM>. The vehicle component <NUM> is communicatively coupled to the detection module <NUM> via the link <NUM>. Although shown as separate components, the detection module <NUM> may be part of the vehicle component <NUM> and visa-versa.

<FIG> and <FIG> are an example data flow <NUM> of ghost object detection. The example data flow <NUM> may be implemented in any of the previously described environments and by any of the previously described systems or components. For example, the example data flow <NUM> can be implemented in the example environments <NUM>, <NUM> and/or by the example system <NUM>. The example data flow <NUM> may also be implemented in other environments, by other systems or components, and utilizing other data flows or techniques. Example data flow <NUM> may be implemented by one or more entities (e.g., the detection module <NUM>). The order in which the operations are shown and/or described is not intended to be construed as a limitation, and the order may be rearranged without departing from the scope of this disclosure. Furthermore, any number of the operations can be combined with any other number of the operations to implement the example data flow or an alternate data flow.

The example data flow <NUM> starts with attributes <NUM> of an environment (e.g., example environments <NUM>, <NUM>) being obtained by the detection module <NUM>. As shown, the attributes <NUM> include the objects <NUM> including their respective object coordinates <NUM>, object velocities <NUM>, and sensor(s) <NUM>. The sensors <NUM> are indications of which of the vehicle sensors detected the respective objects. For example, many times, an object <NUM> may be detected by multiple sensors in respective locations relative to the host vehicle <NUM>. The object coordinates <NUM> may be absolute coordinates (e.g., relative to the Earth) or relative to the host vehicle <NUM>. For example, the object coordinates <NUM> may be latitude and longitude coordinates, range and azimuth coordinates, lateral and longitudinal coordinates, or any other information that enables the host vehicle <NUM> to determine at least two-dimensional locations of the objects <NUM> relative to the host vehicle <NUM> (e.g., locations in or relative to a vehicle coordinate system (VCS)). The object velocities <NUM> may have respective speeds and directions, or speed vector components (e.g., lateral and longitudinal speeds). The attributes <NUM> also include the host velocity <NUM> and sensor locations <NUM> that are indicative of physical locations of the respective sensors <NUM>.

The attributes <NUM> may be acquired, received, or determined by the detection module <NUM>. For example, the detection module <NUM> may determine the attributes <NUM> directly from the sensor data <NUM>, from a bus or interface connected to sensors that interface with the example system <NUM> (e.g., sensors <NUM>), or from another module or system of the example system <NUM>. Regardless of how or where the attributes <NUM> are gathered, received, derived, or calculated, the detection module <NUM> is configured to use the attributes <NUM> to determine which of the objects <NUM>, if any, are ghost objects <NUM>.

To do so, the attributes <NUM> are input into an object pairing module <NUM>. The object pairing module <NUM> is configured to generate moving object pairs <NUM> of the objects <NUM>. The object pairing module <NUM> may first determine which of the objects <NUM> are moving objects and which of the objects <NUM> are stationary objects. Then, the object pairing module <NUM> may generate the moving object pairs <NUM> from each combination of two of the moving objects responsive to determining that the host vehicle <NUM> is stationary. The object pairing module <NUM> may generate the moving object pairs <NUM> from each combination of the host vehicle <NUM> and the moving objects responsive to determining that the host vehicle <NUM> is reversing. The moving object pairs <NUM> contain respective first and second objects, the second object being at a further distance from the host vehicle <NUM>. In the case of the host vehicle <NUM> reversing, the first object is the host vehicle <NUM>. The second objects are potential ghost objects.

As part of generating the moving object pairs <NUM>, the object pairing module <NUM> may look for moving objects that share the same sensors <NUM> (e.g., they are in a same field of view of one or more of the sensors <NUM>). If the host vehicle <NUM> is reversing, such a determination may not be made (e.g., all of the moving objects in this scenario may satisfy the constraint). The object pairing module <NUM> may also look for range differences that are between certain values, e.g., ranges to second objects minus ranges to first objects that are between <NUM> to <NUM> meters. In some implementations, the range differences may be distances between the respective objects (instead of or in combination with differences in ranges to the host vehicle <NUM>). If the host vehicle <NUM> is reversing, the range differences may be the moving objects' respective ranges (e.g., because the host vehicle <NUM> has a location at the origin). The object pairing module <NUM> may also look for moving objects with object velocities <NUM> that are greater than a moving speed threshold, e.g., object velocities <NUM> are greater than <NUM> meters per second. If one or more of these criteria are not met for a pair of objects (e.g., two of the objects <NUM> if the host vehicle <NUM> is stationary or the host vehicle <NUM> and one of the objects <NUM> if the host vehicle <NUM> is reversing), the object pairing module <NUM> may not consider the pair of objects to be a moving object pair <NUM>. Furthermore, if no suitable pairs of objects can be found (e.g., based on one or more of the criteria), the process may wait until a next cycle (e.g., none of the objects <NUM> in the current cycle may be determined to be ghost objects <NUM>).

Then, for each moving object pair <NUM>, a reflection line module <NUM> generates a connection line <NUM> and a reflection line <NUM>. The connection line <NUM> is a line that runs through centroids of the first and second objects of the respective moving object pair <NUM>. If the host vehicle <NUM> is reversing, the connection line <NUM> may run through an origin of the VCS to the centroid of the second object of the moving object pair <NUM>. The reflection line <NUM> is a line that runs through a midpoint of a segment of the connection line <NUM> between the first and second points and is perpendicular to the connection line <NUM>. In general, the reflection line <NUM> represents a potential reflection surface if the second object of the moving object pair <NUM> is a ghost object <NUM>. Details of the connection line <NUM> and the reflection line <NUM> are shown in <FIG>.

Next, for the moving object pair <NUM>, an area module <NUM> determines whether any of the stationary objects are within an area of the connection line <NUM> and the reflection line <NUM>. The area may be rectangular and aligned with the connection line <NUM> and the reflection line <NUM>. The stationary objects that are within the area become area stationary objects <NUM>. In some implementations, the area module <NUM> may only indicate stationary objects within the area as being area stationary objects <NUM> responsive to determining that a plurality of the stationary objects are within the area (e.g., five). If one or a plurality of the stationary objects (depending upon implementation) are not within the area, no area stationary objects <NUM> are indicated, and the process may move to the next moving object pair <NUM> (e.g., the second object is not considered to be a ghost object <NUM>). Details of the area are shown in <FIG>.

Then, a reflection point module <NUM> determines a reflection point <NUM> indicative of a potential reflection point for a ghost detection of the second object. The reflection point <NUM> may be at an intersection of a signal line that runs through the centroid of the second object and a location of the host vehicle <NUM> and the reflection line <NUM>. The location on the host vehicle <NUM> may be a virtual sensor location that is at an average location between the sensors <NUM> of the first and second objects (relative to a VCS). If only one sensor detects the first and second objects (or the second object if the host vehicle <NUM> is reversing), then the virtual sensor location may be the sensor location. If the reflection point <NUM> cannot be determined (e.g., the signal line and the reflection line <NUM> are parallel), the process may move to the next moving object pair <NUM> (e.g., the second object is not considered to be a ghost object <NUM>). Details of the reflection point <NUM> are shown in <FIG>.

Next, a distance module <NUM> generates a distance determination <NUM> (yes/no) based on whether any of the area stationary objects <NUM> are within a distance of the reflection point <NUM> (e.g., within <NUM> meters of the reflection point <NUM>). If any of the area stationary objects <NUM> are within the distance of the reflection point <NUM>, then the distance determination <NUM> is yes. If none of the area stationary objects <NUM> are within the distance of the reflection point <NUM>, then the distance determination <NUM> is no. If the distance determination <NUM> is no, the process may move to the next moving object pair <NUM> (e.g., the second object is not considered to be a ghost object <NUM>). Details of the distance are shown in <FIG>.

Then, an expected velocity module <NUM> generates an expected velocity <NUM> for the second object. The expected velocity <NUM> is indicative of an expected velocity of the second object if the second object is a ghost of the first object or the host vehicle <NUM>. Details of the expected velocity <NUM> are shown in <FIG>.

Next, a ghost determination module <NUM> generates a ghost determination <NUM> (yes/no) based on the object velocity <NUM> of the second object and the expected velocity <NUM>. The ghost determination module <NUM> may determine whether a speed and/or two vector speeds of the object velocity <NUM> of the second object are within a differential speed of a speed and/or two vector speeds of the expected velocity <NUM>. Equations <NUM> show two example conditions indicative of the comparison, one or both of which may be used to generate the ghost determination <NUM>. <MAT> where Speedegv is the speed of the expected velocity <NUM>, Speedov is the speed of the object velocity <NUM> of the second object, ds is the differential speed and may be based on a distance between the first and second objects (e.g., <NUM>*distance), LongSpeedegv is the longitudinal speed of the expected velocity <NUM>, LongSpeedov is the longitudinal speed of the object velocity <NUM> of the second object, LatSpeedegv is the lateral speed of the expected velocity <NUM>, and LatSpeedov is the lateral speed of the object velocity <NUM> of the second object. Longitudinal and lateral speeds are an example of two vector speeds. Other vector components of the velocities may be used without departing from the scope of this disclosure.

If the ghost determination <NUM> is no (e.g., one or both of the conditions are not met), the process may move to the next moving object pair <NUM> (e.g., the second object is not considered to be a ghost object <NUM>). If the ghost determination <NUM> is yes, the second object of the respective moving object pair <NUM> is likely a ghost object <NUM>. The process above may be repeated for other moving object pairs <NUM> to generate indications of likely ghost objects for the current frame. It should be noted that the first object of one moving object pair <NUM> may be the second object of another moving object pair <NUM>.

Then, a ghost probability module <NUM> may track probabilities <NUM> of the objects <NUM>. The probabilities <NUM> are indicative of probabilities that the objects <NUM> are ghost objects <NUM>. In some implementations, only the moving objects may have probabilities <NUM>. In order to calculate the probabilities <NUM>, the indications of likely ghost objects for the current frame (e.g., all second objects that had a ghost determination <NUM> of yes for the current frame) are used to update current probabilities <NUM> for the respective objects. The objects <NUM> or the moving objects may start (e.g., in the first detected frame) with probabilities of <NUM>. The probabilities <NUM> may be updated according to Equations <NUM>. <MAT> where pnew is a new probability <NUM> for the respective object <NUM>, pcurrent is a current probability <NUM> for the respective object <NUM>, and lpfα is a constant (e.g., <NUM>).

Next an object classification module <NUM> may generate indications of which of the objects <NUM> are ghost objects <NUM>. The object classification module <NUM> may generate the indications when the probabilities <NUM> reach a probability threshold (e.g., <NUM>). By using probabilities and tracking the ghost determinations <NUM> over time, the object classification module <NUM> can more reliably determine the ghost objects <NUM>. As discussed above, indications of the objects <NUM> (e.g., real objects, ghost objects <NUM>, or some combination thereof) are sent to or received by the vehicle component <NUM> for use in downstream operations.

By using the above techniques, the detection module <NUM> is able to identify ghost objects <NUM> when the host vehicle <NUM> is stationary and when it is moving without any a priori information about the environment and without sensor fusion or complicated object trackers. In doing so, the detection module <NUM> may be able to efficiently identify the ghost objects <NUM> (and possibly filter them out) in a wide variety of environments such that downstream operations can function as designed.

<FIG> illustrate example aspects of the process discussed above. The example illustrations correspond to the example environments of <FIG>. For example, example illustrations <NUM>, <NUM> correspond to example environments <NUM>, <NUM>, respectively, example illustrations <NUM>, <NUM> correspond to example environments <NUM>, <NUM>, respectively, and so on. The following is not limited to those two environments, however. The objects <NUM> may be in any orientation relative to the host vehicle <NUM> and have any object velocities <NUM> without departing from the scope of this disclosure.

<FIG> illustrate, at example illustrations <NUM> and <NUM>, respectively, example connection lines <NUM> and reflection lines <NUM>. The host vehicle <NUM> has a VCS <NUM>. The VCS may have longitudinal and lateral axes and an origin at a center of a front bumper of the host vehicle <NUM>. Different axes and/or origins may be used without departing from the scope of this disclosure. The connection line <NUM> is illustrated as going through the centroids of the first and second objects of illustration <NUM> (e.g., objects <NUM>-a and <NUM>-b). The connection line <NUM> is illustrated as going through the origin of the VCS <NUM> and the centroid of the second object of illustration <NUM> (e.g., object <NUM>-b). Objects <NUM>-a and <NUM>-b have object coordinates <NUM> relative to the VCS <NUM> (e.g., lateral/longitudinal). The object coordinates <NUM> are used to determine the connection line <NUM>. The reflection line <NUM> is at a midpoint of a segment of the connection line <NUM> between the two objects (e.g., centroids of objects <NUM>-a and <NUM>-b or origin of VCS <NUM> and centroid of <NUM>-b) and at a right angle to the connection line. The reflection line <NUM> may be given by Equation <NUM>. <MAT> where a1 = <NUM>(longb - longa), b<NUM> = <NUM>(latb - lata), c<NUM> = (longa<NUM> + lata<NUM>)-(longb<NUM> + latb<NUM>).

<FIG> illustrate, at example illustrations <NUM> and <NUM>, respectively, example area stationary objects <NUM>. The area <NUM> (for determining the area stationary objects <NUM>) may be centered on the intersection of the connection line <NUM> and reflection line <NUM>. The area <NUM> may also be rectangular and oriented such that a length is parallel to the reflection line <NUM> and a width is parallel to the connection line <NUM>. The length may be on the order of five times the width. For example, the length may be <NUM> meters and the width may be <NUM> meters.

To determine whether the stationary objects are within the area <NUM>, each of the stationary objects may be projected onto the connection line <NUM> along with the first and second objects. The projected stationary objects should be within half the width of the area <NUM> of the middle point between the projected first and second objects. Each of the stationary objects may also be projected onto the reflection line <NUM> along with the first and second objects (will be a single point because the connection line <NUM> and reflection line <NUM> are perpendicular). The projected stationary objects should be within half the length of the area <NUM> of the projected first and second objects. Projecting the objects <NUM> onto the connection line <NUM> and the reflection line <NUM> is just one technique of determining whether the stationary objects are within the area <NUM>. Other techniques may be used (e.g., coordinate conversion, axes rotation, graphical analysis) without departing from the scope of this disclosure.

In the example illustrations <NUM>, <NUM>, object <NUM>-c is within the area <NUM>, as object <NUM>-c is a reflecting object (as stated in <FIG>). Although a single point is shown, object <NUM>-c may provide multiple points with any number of them being within the area <NUM>. For example, the object <NUM>-c may comprise ten objects <NUM>, where five of them are within the area <NUM>. Again, any of the stationary objects that are within the area <NUM> become the area stationary objects <NUM> (e.g., object <NUM>-c).

<FIG> illustrate, at example illustrations <NUM> and <NUM>, respectively, example reflection points <NUM>. In order to determine the reflection point <NUM>, the signal line <NUM> is generated. The signal line <NUM> passes through the centroid of the second object (e.g., object <NUM>-b) and a virtual sensor location <NUM>. The virtual sensor location <NUM> is based on an average position (relative to the VCS <NUM>) of the respective sensors <NUM> that detected the second object. Thus, a lateral coordinate of the virtual sensor location <NUM> may be a sum of the lateral coordinates of the sensor locations <NUM> of the sensors <NUM> that detected the second object divided by two, and a longitudinal coordinate of the virtual sensor location <NUM> may be a sum of the longitudinal coordinates of the sensors <NUM> that detected the second object divided by two. In the example illustration <NUM>, the second object is detected by sensors <NUM>-a and <NUM>-b, and in the example illustration <NUM>, the second object is detected by sensors <NUM>-b and <NUM>-c. If only one sensor <NUM> detects the second object, then the virtual sensor location <NUM> may be the sensor location <NUM> of the sensor <NUM>.

The signal line <NUM> may be determined by Equation <NUM>. <MAT> where a<NUM> = <NUM>(longb - longvsl), b2 = <NUM>(latb - latvsl), c<NUM> = (longvsl<NUM> + latvsl<NUM>)-(longb<NUM> + latb<NUM>), longvsl is the longitudinal coordinate of the virtual sensor location <NUM>, and latvsl is the lateral coordinate of the virtual sensor location <NUM>.

The reflection point <NUM> is at an intersection of the signal line <NUM> and the reflection line <NUM>. If abs(b<NUM> * a<NUM> - a1 * b2) < <NUM> then the reflection point <NUM> may not be determined and the process may move to the next moving object pair <NUM> (e.g., the second object may not be a ghost object <NUM>). If abs(b<NUM> * a<NUM> - a1 * b<NUM>) ≥ <NUM> then the reflection point <NUM> can be determined by Equations <NUM>. <MAT> where rplong is the longitudinal coordinate of the reflection point <NUM> and rplat is the lateral coordinate of the reflection point <NUM>.

<FIG> illustrate, at example illustrations <NUM> and <NUM>, respectively, example distance determinations <NUM>. The distance <NUM> may be a fixed constant (e.g., three meters). To determine if any of the area stationary objects <NUM> are within the distance <NUM>, relative distances between the area stationary objects <NUM> and the reflection point <NUM> may be determined. If any of the area stationary objects <NUM> are within the distance <NUM> of the reflection point <NUM>, the distance determination <NUM> will be a yes. In the example illustrations <NUM>, <NUM>, object <NUM>-c is within the distance <NUM>, thus, the distance determination <NUM> for object <NUM>-c is a yes.

<FIG> illustrate, at example illustrations <NUM> and <NUM>, respectively, example expected velocities <NUM>. The expected velocity <NUM> may be determined by Equation <NUM>. <MAT> where egνlongis the longitudinal component of the expected velocity <NUM>, egνlatis the lateral component of the expected velocity <NUM>, νalong is the longitudinal component of the object velocity <NUM> of the first object (e.g., object velocity <NUM>-a or host velocity <NUM>), νalat is the lateral component of the object velocity <NUM> of the first object, and θ is an angle <NUM> of the reflection line <NUM> relative to the lateral axis of the VCS <NUM>.

Because object <NUM>-b is a ghost object <NUM>, the expected velocity <NUM> generally aligns with the object velocity <NUM>-b. As such, the object <NUM>-b may be indicated as a ghost object <NUM> and either sent to the vehicle component <NUM> or filtered out of the objects <NUM> that are sent to the vehicle component <NUM>.

By using the above techniques, the host vehicle <NUM> is able to accurately determine which of the objects <NUM> are ghost objects <NUM> while stationary or moving without any other knowledge of an environment around the host vehicle <NUM> (e.g., that there is a guardrail present). Furthermore, the host vehicle <NUM> can accomplish ghost object detection without unnecessary movement or multiple sensors <NUM> (although multiple sensors <NUM> have been described as detecting the second object, the process works similarly if the second object is only detected by a single sensor <NUM>). Thus, the host vehicle <NUM> can quickly and effectively identify ghost objects <NUM> in a broad range of environments.

<FIG> is an example method <NUM> for ghost object detection. The example method <NUM> may be implemented in any of the previously described environments, by any of the previously described systems or components, and by utilizing any of the previously described data flows, process flows, or techniques. For example, the example method <NUM> can be implemented in the example environments of <FIG>, by the example system <NUM>, by following the example data flow <NUM>, and/or as illustrated in the example illustrations of <FIG>. The example method <NUM> may also be implemented in other environments, by other systems or components, and utilizing other data flows, process flows, or techniques. Example method <NUM> may be implemented by one or more entities (e.g., the detection module <NUM>). The order in which the operations are shown and/or described is not intended to be construed as a limitation, and the order may be rearranged without departing from the scope of the invention as defined in the claims. Furthermore, any number of the operations can be combined with any other number of the operations to implement the example process flow or an alternate process flow, as long as covered by the scope of the invention as defined in the claims.

At <NUM>, information about a plurality of objects proximate a host vehicle is received. For example, the object pairing module <NUM> may receive the attributes <NUM>, including the objects <NUM> and their respective attributes (e.g., object coordinates <NUM>, object velocities <NUM>, and sensors <NUM>).

At <NUM>, a reflection line indicative of a potential reflection surface between first and second moving objects is determined. For example, the reflection line module <NUM> may determine the reflection line <NUM> based on a portion of the connection line <NUM> between the first and second moving objects.

At <NUM>, it is determined that one or more stationary objects are within an area of the reflection line proximate the first and second objects. For example, the area module <NUM> may determine that there are one or more area stationary objects <NUM>. In some implementations, the area module <NUM> may determine that there are a plurality of area stationary objects <NUM>.

At <NUM>, it is determined that one or more of the one or more stationary objects are within a distance of a reflection point indicative of a potential reflection point on the reflection line. For example, the distance module <NUM> may determine that one or more of the area stationary objects <NUM> are within the distance <NUM> of the reflection point <NUM> and provide the distance determination <NUM> of yes.

At <NUM>, an expected velocity of the second object is determined based on the first object and the reflection line. For example, the expected velocity module <NUM> may determine the expected velocity <NUM> based on the object velocity <NUM> of the second object and the reflection line <NUM>.

At <NUM>, it is determined that the second object is a ghost object based on the velocity of the second object being within a differential speed of the expected velocity. For example, the ghost determination module <NUM> may determine that one or more speeds of the object velocity <NUM> of the second object are within the differential speed of one or more speeds of the expected velocity <NUM> and provide the ghost determination <NUM> of yes. Responsive to the ghost determination <NUM> of yes, the second object may be indicated as a ghost object <NUM> (e.g., by the object classification module <NUM>). In some implementations, the ghost determination <NUM> may be used by the ghost probability module <NUM> to update a current probability <NUM> of the second object (e.g., from previous frames). The object classification module <NUM> may then indicate that the second object is a ghost object <NUM> responsive to determining that the probability <NUM> of the second object surpasses a threshold.

At <NUM>, an indication that the second object is a ghost object is output. For example, the object classification module <NUM> may output indications of the ghost objects <NUM>, the real objects (e.g., objects <NUM> other than the ghost objects <NUM>), or some combination thereof.

By using the example method <NUM>, one can efficiently and effectively determine ghost objects in environments of a host vehicle. In doing so, downstream operations can perform as intended, many times with increased safety and reliability.

While various embodiments of the invention are described in the foregoing description and shown in the drawings, it is to be understood that this invention is not limited thereto but may be variously embodied to practice within the scope of the following claims. From the foregoing description, it will be apparent that various changes may be made without departing from the scope of the invention as defined by the following claims.

Claim 1:
A method comprising:
receiving information about a plurality of objects (<NUM>) proximate a host vehicle (<NUM>), the objects comprising two or more moving objects (<NUM>-a, <NUM>-b) and one or more stationary objects (<NUM>-c);
determining one or more moving object pairs (<NUM>) of the moving objects; and
for each of the moving object pairs:
determining a reflection line (<NUM>) that:
is perpendicular to a connection line (<NUM>) connecting a centroid of a first object and a centroid of a second object of the respective moving object pair; and
crosses a midpoint between the centroid of the first object and the centroid of the second object;
determining whether one or more of the stationary objects (<NUM>-c) are within an area of an intersection (<NUM>) of the connection line (<NUM>) and the reflection line (<NUM>); and
based on a determination that one or more of the stationary objects (<NUM>-c) are within the area:
determining whether one or more of the one or more of the stationary objects (<NUM>-c) are within a distance (<NUM>) of a reflection point (<NUM>) that is at an intersection of
a signal line (<NUM>) between the centroid of the second object and the host vehicle (<NUM>); and
the reflection line (<NUM>); and based on a determination that one or more of the one or more stationary objects (<NUM>-c) are within the distance (<NUM>):
determining, based on a velocity of the first object and an angle (<NUM>) of the reflection line (<NUM>) relative to a lateral axis of a vehicle coordinate system, VCS (<NUM>), of the host vehicle (<NUM>), an expected velocity (<NUM>) of the second object;
determining whether a velocity (<NUM>) of the second object is within a differential speed (ds) of the expected velocity (<NUM>); and
based on the velocity (<NUM>) of the second object being within the differential speed (ds) of the expected velocity (<NUM>):
determining that the second object is a ghost object (<NUM>); and
outputting an indication that the second object is a ghost object (<NUM>).