Patent Description:
This disclosure is generally related to object detection. More specifically, this disclosure relates to object detection in response to image data and location data.

A device may perform object detection operations using an image-based technique. For example, a camera may be mounted on a vehicle or incorporated in an electronic device, and the camera may supply image data to a processor. The processor may execute a computer vision application to analyze (or "scan") the image data to detect an object, such as an obstacle (e.g., a pedestrian, a tree, livestock, game, and/or another object) that is within or near the field of travel of the vehicle or mobile device.

In some circumstances, image-based object detection may be slow and ineffective. For example, an image "search" to recognize objects in an image may involve multiple time-consuming operations, such as image segmenting and windowing operations. Further, image-based object detection may be associated with a large range of uncertainty (or a large margin of error), which may cause detected object locations to be unreliable. These issues can frustrate the intended purpose for the object detection. As an example, in vehicular applications, image-based object detection may occur too slowly to enable the vehicle to slow, stop or to otherwise change course in time to avoid an obstacle.

Some devices may use location-based information, such as radar information, to detect objects. However, location-based information may be subject to a large range of uncertainty (e.g., such devices may have a large margin of error).

<CIT> discloses a method and apparatus for evaluating an image. The apparatus receives image data representing the image and distance information on a distance of an object relative to an image plane of the image. The apparatus resamples at least a portion of the image data based on both the distance information and on a pre-determined reference distance to generate resampled image data.

<CIT> discloses a method for detecting the position of a target object in the environment of a host vehicle. The method comprises receiving a first position of the target object, receiving an image containing the target objects, projecting the first position on the image and refining the first position by computing a second position of the target object on the basis of a symmetry search within the image.

<CIT> discloses an object location system for identifying the location of objects positioned in front of a host road vehicle. The system comprises an first sensing means such as a radar or lidar system, obstacle detection means adapted to identify the location of obstacles from information from the first sensing means, image acquisition means adapted to capture a digital image of at least part of the road ahead of the host vehicle, image processing means which processes a search portion of the captured digital image, the search portion including the location of obstacles indicated by the obstacle detection means.

<CIT> discloses a moving object prediction device.

<CIT> discloses an adaptive image processing apparatus that includes a first matching unit which selects representative candidate images from among a plurality of images included in an image pyramid and calculating a first matching score between each of the representative candidate images and a target model, a second matching unit which selects on scale level from among scale levels of the representative candidate images based on the first matching score and calculating a second matching score between each of the image having scale levels included in a dense scale level range with respect to the selected scale level and the target model, a representative scale level selecting unit selecting at least one of the scale levels included in the dense scale level range as a representative scale level based on the second matching scores, and an image processing unit which performs image processing based on an image having the selected representative scale level.

<NPL>, disclose a module for pedestrian detection form a moving vehicle in low-light conditions.

Object detection may be performed using location data and scale space representations of image data. Each of the scale space representations may be a different resolution version of the image data. To illustrate, a device, for example, a vehicle or electronic device, may include an image sensor (e.g., a camera) configured to generate the image data. The device may also include or receive location data associated with an object to be detected and/or indicative of one or more areas in a scene where the object may be present. For example, location data may be received from a location sensor (e.g., a radar device, a global positioning system (GPS) device, etc.) that is configured to generate the location data. The location sensor can be coupled to the image sensing device or separate from the image sensing device. In another example, location data may correspond to one or more areas of a three-dimensional (3D) map indicative of where an object of interest (e.g., an object to be detected) may be present, such as an area of a scene or image that is above a road or ground surface. In some instances, more than one area of a scene may be identified by a 3D map and received as location data. For example, it may be desirable to detect objects on both left and right sides of a driving lane. In such devices, instead of searching all of the image data to detect an object (e.g., a pedestrian, a tree, livestock, game, and/or another object), a device (e.g., a processor) may search an overlap, intersection, or convergence of the location data and a scale space representation of the image data to detect the object. The device may be configured to search one or more scale space representations to detect the object, and different scale space representations may be searched to detect different objects. Searching the overlap or intersection of the location data and one or more scale space representations of the image data may be less computationally complex than other techniques (e.g., a "brute force" or complete search of all image data) and thus more efficient than other object detection techniques that do not consider location data.

As an illustrative, non-limiting example, a vehicle may perform pedestrian detection. To detect a pedestrian, the vehicle may utilize model-based object detection, where the model assumes that the height of objects of interest in image data provided by the camera will be less than or equal to a particular number of pixels (e.g., less than or equal to <NUM> pixels in height). When a pedestrian is close to the vehicle, the height of the pedestrian may be over <NUM> pixels in height, and as a result, the model may not be able to successfully detect the pedestrian. To detect the pedestrian, model-based object detection may be re-executed on a downsampled scale space representation of the image data. For example, if the height of the pedestrian is <NUM> pixels in the original (e.g., full-resolution) image, then the height of the pedestrian will be <NUM> pixels in a scale space representation that is downsampled by a factor of <NUM>, and the model-based object detection may successfully detect the pedestrian in the downsampled image. Thus, to successfully detect objects (e.g., pedestrians) at varying distances, the vehicle may perform object detection on multiple scale space representations of the image data captured by the camera (e.g., a "high" or "full" resolution representation, a "medium" resolution representation, a "low" resolution representation, etc.). It should be noted that the present disclosure is not limited to object detection for vehicles. In various embodiments, object detection may be performed at and/or based on images captured by an image sensor of an electronic device, a mobile device, a personal mounted camera, a head mounted display, or an aerial vehicle, as illustrative non-limiting examples.

Iteratively searching each of multiple scale space representations in their entirety may be time-consuming. In accordance with the described techniques, an object detector may skip searching scale space representations that do not intersect or overlap with a probable location of an object (e.g., a pedestrian). Further, when a scale space representation overlaps the probable location of the object, the search may be restricted to an area of interest corresponding to the overlap. The probable location of the object may be provided by a location sensor that is part of the vehicle or that is separate from the vehicle. Additionally, the probable location of the object may be based at least in part on one or more areas of a 3D map where the object may be present. It is to be understood that as used herein, detecting an object can include detecting a representation of the object in image data (or in a scale space representation of the image data), detecting the actual physical object (e.g., based on ultrasound, radar, etc.), or both.

The invention is defined in the appended independent claims.

Optional features of the invention are defined in the dependent claims.

One particular advantage provided by at least one of the disclosed embodiments is that a time of object detection that is performed on image data may be decreased by using location data that is associated with the object or that indicates an area where the object may be present. For example, object detection may not be performed on scale space representation(s) that do not intersect or overlap the location data, and object detection on scale space representation(s) that intersect or overlap the location data may be limited to the overlapping or intersecting area(s) of interest. Other aspects, advantages, and features of the present disclosure will become apparent after review of the entire application, including the following sections: Brief Description of the Drawings, Detailed Description, and the Claims.

<FIG> depicts a particular illustrative embodiment of a system that is configured to perform object detection. In the example of <FIG>, the object detection is performed at a vehicle <NUM>. However, it should be noted that the present disclosure is not to be limited as such. The object detection devices, methods, systems, etc. disclosed herein can be implemented in alternative environments to detect objects in traffic, in a field of view, etc. For example, one or more functions described herein may be implemented in electronic devices, mobile devices, gaming consoles, automotive system consoles (e.g., ADAS), wearable devices (e.g., personal mounted cameras), head mounted displays, etc. Additional examples include, but are not limited to, robots or robotic devices, unmanned aerial vehicles (UAVs), and drones. In the example of <FIG>, the vehicle <NUM> may be a motor vehicle (e.g., a car, a truck, a motorcycle, a bus, or a train), a watercraft (e.g., a ship or a boat), an aircraft (e.g., an airplane or a helicopter), a spacecraft (e.g., a space shuttle), a bicycle, or another vehicle. The vehicle <NUM> may be a wheeled vehicle, a tracked vehicle, a railed vehicle, an airborne vehicle, or a skied vehicle, as illustrative examples. In some cases, the vehicle <NUM> may be operated by one or more drivers. For example, the vehicle <NUM> may include an advanced driving assistance system (ADAS) configured to assist a driver of the vehicle <NUM>. In other cases, the vehicle <NUM> may be a computer-controlled vehicle. Furthermore, although the objection detection in the example system of <FIG> is performed at the vehicle <NUM>, it should be understood that in other examples the object detection disclosed herein can be performed in the "cloud" or outside of the vehicle <NUM>. For example, a vehicle or other electronic device could provide location data and/or image data to another device to perform the object detection.

The vehicle <NUM> (e.g., an ADAS of the vehicle <NUM>) may include one or more image sensors, such as an illustrative image sensor <NUM>. The image sensor <NUM> may include a camera, such as a charge-coupled device (CCD)-based camera and/or a complementary metal-oxide-semiconductor (CMOS)-based camera. In alternative embodiments, the image sensor <NUM> may include a different type of sensor (e.g., infrared).

In the example of <FIG>, the vehicle <NUM> further includes one or more location sensors, such as an illustrative location sensor <NUM>. The location sensor <NUM> may include a radar device, a light detection and ranging (lidar) device, a global positioning system (GPS) device, an ultrasound device, and/or a communication device, such as a dedicated short-range communication (DSRC) device used in a vehicular communication network, as illustrative examples.

In the example of <FIG>, a triangular field of view of the image sensor <NUM> is shown. It should be noted that the field of view of the image sensor <NUM> may be determined in various ways. As an illustrative non-limiting example, the image sensor <NUM> (or an apparatus including the image sensor <NUM>) may include a GPS transceiver, and the field of view may be determined based on a temporal difference between two GPS locations of the image sensor <NUM> (or apparatus). A difference between the two GPS locations may correspond to a center line of the triangular field of view or to a direction of travel of the image sensor <NUM>. As another illustrative non-limiting example, the direction of the image sensor <NUM> may be determined based on a motion sensor (e.g., accelerometer) that is coupled to the image sensor <NUM> or included in an apparatus that includes the image sensor <NUM>, such as a vehicle, computing device, or other apparatus. Thus, the field of view and direction of the image sensor <NUM> may be determined even if not known a priori.

The vehicle <NUM> may further include a processor <NUM> and a memory <NUM>. The memory <NUM> may store instructions and data accessible by the processor <NUM>. The processor <NUM> may include a central processor unit (CPU), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), an electronic control unit (ECU), another processing device, or a combination thereof. The processor <NUM> may include an object detector <NUM>, such as a location data-based and scale space-based object detector. The object detector <NUM> may correspond to hardware components of the vehicle <NUM>, software (e.g., instructions) executable by the processor <NUM>, or a combination thereof.

During operation, the location sensor <NUM> may provide location data <NUM> to the processor <NUM>. In some implementations, the location data <NUM> may include radar data, lidar data, GPS data, etc. associated with one or more objects, such as an illustrative object <NUM>. The object <NUM> may be stationary or may be in motion. For example, the object <NUM> may correspond to a pedestrian, another vehicle, a traffic signal, a roadway obstacle (e.g., a fallen traffic signal, a tree limb, or debris), livestock (e.g., cattle, bison, horses, sheep, or goats), game (e.g., elk, moose, bear, or deer), or a roadside object (e.g., a sign, an advertising billboard, or a road side unit (RSU)), as illustrative non-limiting examples. The object <NUM> may be proximate to the vehicle <NUM> or disposed at a significant distance from the vehicle (e.g., not proximate to the vehicle). For example, the object <NUM> may be within a particular range of the vehicle <NUM>, within a field or direction of travel of the vehicle <NUM>, within a field of view of the image sensor <NUM>, etc. In some implementations, the location sensor <NUM> includes one or more sensors configured to scan the field of travel of the vehicle <NUM> for objects, such as the object <NUM>. For example, the location sensor <NUM> may include a radar device, an ultrasound device, and/or a lidar device configured to generate the location data <NUM> using signals reflected from the object <NUM>. In some implementations, the location sensor <NUM> is configured to receive location data associated with one or more objects. For example, the location sensor <NUM> may include dedicated short-range communication device, an RFID device, a personal network device, or another communication device.

The image sensor <NUM> may generate image data <NUM> (e.g., by capturing one or more images) of a scene that includes the object <NUM>. The image sensor <NUM> may provide the image data <NUM> to the processor <NUM>. In some implementations, the image sensor <NUM> may generate the image data <NUM> in response to a command from the location sensor <NUM>. In a particular illustrative example, if the location sensor <NUM> detects the object <NUM> (e.g., using a radar, ultrasound, or lidar technique, or by receiving GPS and/or DSRC information from another device), the location sensor <NUM> may assert a control signal at a bus that connects the image sensor <NUM> and the location sensor <NUM>. Alternatively, or in addition, operation of the image sensor <NUM> may be controlled by the processor <NUM>. For example, the processor <NUM> may cause the image sensor <NUM> to generate the image data <NUM> in response to receiving the location data <NUM> from the location sensor <NUM>. In other cases, the image sensor <NUM> may operate independently of the location sensor <NUM>. For example, the image sensor <NUM> may constantly, periodically, or occasionally capture images and may load image data of the images (e.g., the image data <NUM>) to a buffer, cache, or other memory (e.g., the memory <NUM>). In this example, in response to receiving the location data <NUM> from the location sensor <NUM>, the processor <NUM> may retrieve the image data <NUM> from the buffer, cache, or other memory. To illustrate, the memory <NUM>, or a portion thereof, may function as a circular buffer that is configured to store image data received from the image sensor <NUM>.

The image data <NUM> may be associated with multiple scale space representations of the scene, such as a first scale space representation <NUM>, a second scale space representation <NUM>, and a third scale space representation <NUM>, for example. Each of the scale space representations <NUM>, <NUM>, and <NUM> may be associated with a respective image resolution. For example, the first scale space representation <NUM> may be associated with a first image resolution, the second scale space representation <NUM> may be associated with a second image resolution that is less than the first image resolution, and the third scale space representation <NUM> may be associated with a third image resolution that is less than the second image resolution. In the example of <FIG>, the first scale space representation <NUM> may correspond to the scene projected onto a "high," "full," and/or "complete" resolution image plane represented in the field of view of the image sensor <NUM> by a line segment <NUM>. The second scale space representation <NUM> may correspond to the scene projected onto a "medium" resolution image plane represented by a line segment <NUM> and the third scale space representation <NUM> may correspond to the scene projected onto a "low" resolution image plane represented by line segment <NUM>. Thus, as shown in <FIG>, the line segments <NUM>, <NUM>, and <NUM> (and the corresponding respective "high," "medium," and "low" resolution image planes) are different distances from the image sensor <NUM>.

Although <FIG> illustrates three scale space representations, it should be appreciated that the disclosure is also applicable to different numbers of scale space representations (e.g., two scale space representations, four scale space representations, or another number of scale space representations). In an illustrative example, the first scale space representation <NUM> corresponds to the image data <NUM> at a full or complete resolution of the image sensor <NUM>, the second scale space representation <NUM> corresponds to the image data <NUM> downsampled by a first factor (e.g., <NUM>), and the third scale space representation <NUM> corresponds to the image data <NUM> downsampled by a second factor (e.g., <NUM>) that is larger than the first factor. The processor <NUM> may be configured to downsample a higher resolution scale space representation to generate one or more lower resolution scale space representations using filtering, decimation, subsampling, interpolation, and/or other image processing techniques. For example, the processor <NUM> may downsample the first scale space representation <NUM> to generate the second scale space representation <NUM> and may downsample the second scale space representation <NUM> to generate the third scale space representation <NUM>. In another illustrative implementation, the vehicle <NUM> includes multiple image sensors, where each image sensor generates a different resolution image or scale space representation of a scene.

The object detector <NUM> may be responsive to the location data <NUM> and one or more of the scale space representations <NUM>-<NUM>. For example, the object detector <NUM> may select a scale space representation based on the location data <NUM> and may perform object detection on the selected scale space representation to detect the object <NUM>. To illustrate, the object detector <NUM> may use the location data <NUM> to determine an estimated region <NUM> in which the object <NUM> is located. The estimated region <NUM> may correspond to probable location(s) of the object <NUM> in view of a margin of error associated with the location data <NUM> (e.g., due to noise, sensor delay, speed/direction of motion of the object <NUM> and/or the vehicle <NUM>, etc.). The object detector <NUM> may determine whether any of the image planes corresponding to the scale space representations <NUM>-<NUM> overlaps or intersects the estimated region <NUM>. In the example of <FIG>, the first scale space representation <NUM> (corresponding to the line segment <NUM>) and the third scale space representation <NUM> (corresponding to the line segment <NUM>) do not overlap the estimated region <NUM>. In response to detecting the lack of overlap, the object detector <NUM> may skip performing object detection on the first scale space representation <NUM> and the third scale space representation <NUM> (e.g., to more quickly perform object detection and/or save computational resources).

In the example of <FIG>, the object detector <NUM> may determine that the second scale space representation <NUM> (corresponding to the line segment <NUM>) overlaps the estimated region <NUM>. For example, the object detector <NUM> may determine that the second scale space representation <NUM> overlaps the estimated region <NUM> based on the distance of the resolution image plane of the second scale space <NUM> and the received location data <NUM>. In response, the object detector <NUM> may further process the second scale space representation <NUM>. For example, the object detector <NUM> may identify a search area within the second scale space representation <NUM>, where the search area corresponds to an overlap, intersection, or convergence between a set of locations or area associated with the scale space representation <NUM> and a set of locations or area associated with the location data <NUM>. To illustrate, <FIG> shows a top-down view in which the image sensor <NUM> has a horizontal field of view bound by field of view lines <NUM> and <NUM>. Thus, the horizontal boundaries of the second scale space representation <NUM> are denoted in <FIG> by points L0 and L1, and the overlap between the estimated region <NUM> and the second scale space representation <NUM> is represented by a line segment between points C0 and C1 (which may altematively be denoted as "line segment C0C1 "). The object detector <NUM> may perform computer vision operations (e.g., image segmenting operations) in the search area between C0 and C1, instead of in the larger area between L0 and L1, to "pinpoint" the location of the object <NUM>. For example, the object detector <NUM> may determine a pedestrian location or recognize the object <NUM> (e.g., to recognize text on a sign). Searching the area between C0 and C1 may include searching parts of the image that extend beyond C0 and C1. For example, C0 and C1 may define center points that are used by different object detection search windows. If a search window to be used by the object detector <NUM> to identify the object <NUM> has a width of W, the search area "between" C0 and C1 may range from C0-<NUM>. 5W (when the search window is centered on C0) to C1+<NUM>. 5W (when the search window is centered on C1). A search area may similarly extend in other dimensions (e.g., in the vertical dimension beyond a height of a search window). The search window may correspond to an object model, bounding box, etc. Thus, although a search area may be described herein in terms of a line segment or set of points, it is to be understood that the actual area of the image being searched may extend beyond the line segment or set of points.

Although <FIG> illustrates a two-dimensional (2D) view, the object detection operations described herein can be applied in three-dimensional (3D) scenarios. To illustrate, the points C0, C1, L0, and L1 may all be in 3D space and may have (x, y, z) coordinates. In <FIG>, object detection and reduction is performed horizontally, along the x-axis in the x-y plane. Alternatively, or in addition (e.g., in parallel with the horizontal operations), object detection and reduction may be performed vertically, along the z-axis in the x-z plane, by selecting an appropriate vertical scale space representation. It will be appreciated that by performing operations in both horizontal and vertical scale spaces, the location of the object <NUM> may be more accurately determined than when only one direction is used.

In other examples, the object detector <NUM> may determine that multiple scale space representations overlap the estimated region <NUM> associated with the location data <NUM>. To illustrate, in <FIG>, if the third scale space representation <NUM> corresponds to a line segment <NUM>' instead of the line segment <NUM>, then the object detector <NUM> would determine that both the second scale space representation <NUM> and the third scale space representation <NUM> overlap the estimated region <NUM>. In such a scenario, the object detector <NUM> may select which of the overlapping scale space representations to perform object detection on. To illustrate, a smaller (e.g., lower resolution) scale space representation may be preferable for object detection in some circumstances, such as when a pedestrian is very close and appears to be very tall due to scale. In this situation, the lower resolution scale space representation may be searched instead of a higher resolution scale space representation. Alternatively, if the higher resolution scale space representation was searched and the object was not found (e.g., because the pedestrian was "too tall" due to scale), the lower resolution scale space representation may also be searched. As another example, when the object being detected is relatively small or has an intricate shape, a larger (e.g., higher resolution) scale space representation may be preferred.

An example process performed by the object detector <NUM> is described for illustration purposes with reference to <FIG>. The process may include assigning the image sensor <NUM> a particular location, such as the point (x0, y0) in a coordinate space. The measured or reported position of the object <NUM> may be assigned a position (x1, y1), which may be at the center of the estimated region <NUM>. It is to be understood that the image sensor <NUM> and the center of the estimated region <NUM> may have coordinates (x0, y0, z0) and (x1, y1, z1), respectively, in 3D space, though only the x and y coordinates are described for ease of explanation.

The line segment L0L1 may be associated with a particular distance (d) from the image sensor <NUM> (e.g., based on camera geometry, resolution, and search area size). Based on the value of d and the position (x0, y0) of the image sensor <NUM>, the line segment L0L1 may be mapped, fitted, or transposed to a location that shares the same coordinate system as the points (x0, y0) and (x1, y1). The points of intersection between the field of view lines <NUM>, <NUM> and the estimated region <NUM> (i.e., the points C0 and C1) may be determined. To enable calculation of distances between locations in image data, the image data may be "fused" with the coordinate system of the location data. In some embodiments, a projection of the 3D world space of the image data may be performed offline based on a known location of a device (e.g., vehicle, mobile device, etc.), a field of view, and a pose of the image sensor <NUM>. The projection may then be fused with the location data to identify points to be scanned during object detection.

It is appreciated that at the distance d from the image sensor <NUM>, the position of the object <NUM> (e.g., the pedestrian) will be between C0 and C1. A line segment I0I1 may represent center points for a search area for the object <NUM>, and may be defined as the intersection of the line segment L0L1 and the line segment C0C1. It is noted that in the example of <FIG>, I0=C0 and I1=C1, and therefore the line segment I0I1 is identical to the line segment C0C1. However, when an estimated region for an object is not entirely located within a field of view of the image sensor, I0 may not be equal to C0 and/or I1 may not be equal to C1. For example, in <FIG>, I0=L0 and I1=C1.

The object detector <NUM> may perform a linear mapping to map I0 and I1 to image coordinates. In the example of <FIG>, L0 corresponds to the left border of the image (having an x-coordinate of <NUM>, i.e., x==<NUM>) and L1 corresponds to a right side of the image (having an x-coordinate equal to a width of the image, i.e., x==image_width). Thus, a mapping function M may be defined as: <MAT> <MAT>.

The search area for the object may be restricted to locations (e.g., centers of search windows) in the image having x-coordinates between x==M(I0) and x==M(I1). To illustrate, assume that a horizontal field of view of the image sensor <NUM> is <NUM>°, as shown in <FIG>, and that a vertical field of view of the image sensor <NUM> is <NUM>°, as shown in <FIG>. It is to be understood that the horizontal and vertical fields of view may be larger or smaller in alternative embodiments. It is also assumed that the line segment L0L1 corresponds to 1080p resolution (1920x1080 pixels), and the height of an average pedestrian is assumed to be six feet (about <NUM> meters), which corresponds to a search area that is <NUM> pixels in height. It is further assumed that the distance from the image sensor <NUM> being searched is p feet and an upper half of the image corresponds to q feet at that distance, as shown in <FIG>. In view of the foregoing assumptions the following can be established: <MAT> <MAT>.

Solving Equations <NUM> and <NUM> for p: <MAT>.

If the image sensor <NUM> is assumed to be (<NUM>,<NUM>), the reported location of the pedestrian (i.e., center of the circle corresponding to the object <NUM>) is (x1,y1) == (-<NUM>,<NUM>), and the possible error of the reported location is within <NUM> feet (i.e., the radius of the estimated region <NUM> is <NUM>):<MAT>.

Because L0, L1, C0, and C1 are collinear, all four points have the same y-coordinate, i.e., <NUM> in the current example. Substituting y==<NUM> into Equation <NUM> results in the solutions (x+<NUM>)=<NUM> and (x+<NUM>)=-<NUM>. Thus, C0 is located at the point (-<NUM>,<NUM>) and C1 is located at the point (<NUM>, <NUM>). Using the previously defined mapping M: <MAT> <MAT>.

Thus, for the object <NUM>, the search area can bound to the left by x==<NUM> and to the right by x==<NUM>, which provides approximately a <NUM>% savings compared to searching from x==<NUM> to x==<NUM>. Moreover, it is to be understood that although the foregoing example illustrates calculations and savings in the horizontal direction, computational savings may also be achieved by similarly restricting the search area in the vertical direction based on the location data <NUM>.

<FIG> illustrate additional examples of operation. In the example of <FIG>, the estimated region of the object partially intersects the field of view of the image sensor. In the example of <FIG>, two object detection operations are performed: a first object detection operation is performed on a first scale space representation (corresponding to line segment <NUM>) to detect the object on the right, and a second object detection operation is performed on a second scale space representation (corresponding to line segment <NUM>) to detect the object on the left.

<FIG> thus illustrate embodiments of a system that is configured to refine object detection operations, which are to be performed on image data or scale space representation(s) generated therefrom, based on location data associated with an object to be detected. For example, the location data may be used to narrow a search area for the object to less than the entire scene, which may enable the object to be detected faster. To illustrate, a pedestrian may be detected quickly enough for a vehicle (or a driver of the vehicle) to react to the pedestrian, such as, by slowing the vehicle, redirecting the vehicle, and/or speeding up the vehicle while redirecting the vehicle away from the pedestrian if, for example, applying brakes in icy weather would result in the vehicle skidding into the pedestrian. As another illustrative example, the object detection may be performed quickly enough for an ADAS of the vehicle to change a speed of the vehicle and/or redirect the vehicle to avoid colliding with a moving or stationary object.

<FIG> illustrates an alternative embodiment of the vehicle <NUM>. <FIG> differs from <FIG> in that a location sensor that generates the location data <NUM> is external to the vehicle <NUM>. For example, in <FIG>, the object <NUM> includes or is associated with a location sensor <NUM>. In some implementations, the location sensor <NUM> may be worn by a pedestrian, attached or coupled to another vehicle, or integrated within another vehicle. As discussed above, in some implementations the location sensor <NUM> may be separate from the object <NUM> and the vehicle <NUM>. For example, the location sensor <NUM> can be fixed to a roadside unit (RSU), fixed to a street sign, or fixed or associated with another vehicle that is separate from the vehicle <NUM>. In some examples, a stationary roadside sensor may communicate with a RSU and/or a vehicle. Thus, although <FIG> illustrates direct communication between the location sensor <NUM> and the vehicle <NUM>, data from the location sensor <NUM> may alternatively be transmitted through one or more intermediary devices before reaching the vehicle <NUM>. To illustrate, data from a location sensor carried by a pedestrian may travel from the location sensor to an RSU to a first vehicle (e.g., that is closest to the pedestrian) to a second vehicle (e.g., that is trailing the first vehicle).

The vehicle <NUM> may include a receiver <NUM> configured to receive the location data <NUM> via a connection <NUM>, such as a wireless network connection. In illustrative examples, the location sensor <NUM> and the receiver <NUM> communicate via a cellular connection, a wide area network, an Institute of Electrical and Electronics Engineers (IEEE) <NUM> connection, an ad-hoc network connection, a dedicated short-range communication (DSRC) network connection, or another type of connection.

In an illustrative example, the location data <NUM> received from the location sensor <NUM> includes location coordinates, for example, GPS coordinates. When the object <NUM> is another vehicle (e.g., the location sensor <NUM> is part of a device within or coupled to the other vehicle), the location data <NUM> may be received from the other vehicle (e.g., via a DRSC network) using vehicle-to-vehicle (V2V) communication. As another example, a roadside unit (RSU) may transmit traffic information to vehicles. To illustrate, the object <NUM> may include a vehicle involved in an accident within the field of travel of the vehicle <NUM>, and the location data <NUM> may include location coordinates of the vehicle involved in the accident. In this case, the receiver <NUM> may receive the location data <NUM> from the RSU using vehicle-to-infrastructure (V2I) communication. It should be understood that in other examples location data can be received from multiple sources. For example, location data associated with a common object could be received from more than one vehicle, RSU, or location sensor. When multiple sources of location data are used, the sources (and/or data therefrom) can be aggregated, prioritized, or used to refine one another. For example, the estimated region <NUM> of <FIG> may encompass all of the location data provided by the multiple sources, may correspond to location data from a most reliable source, may be based on an intersection of the location data from each (or a subset) of the multiple sources, or may otherwise be determined based on the location data from some or all of the multiple sources.

In accordance with the present disclosure, data from a first sensor may be used to refine operation of a second sensor. As an illustrative non-limiting example, a property of an image sensor (e.g., resolution, capture frequency, area of interest, field of view (in the case of a movable camera), etc.) may be adjusted based on location data. As another example, image data may be used to speed up location determination by a location sensor, such as by determining a "coarse" location of the object based on the image data. Thus, the present disclosure enables different types of sensors to communicate with each other to refine their respective operations.

In a particular embodiment, the processor <NUM> may perform an object detection operation using location data from a three-dimensional (3D) map application <NUM>. To illustrate, the 3D map application <NUM> may indicate or provide a portion or area of a 3D map that can be accessed by the object detector <NUM> to narrow a search area based on a "known" object class (e.g., pedestrian, vehicle, traffic sign, etc.) being searched. Although <FIG> illustrates the location data <NUM> as being determined by the location sensor <NUM>, in alternative embodiments the location data <NUM> may be determined based on the 3D map application <NUM> instead of or in addition to the location sensor <NUM> (or an external location sensor, such as the location sensor <NUM> of <FIG>). The object detection techniques described herein may thus be used in conjunction with embodiments where 3D map data is used during object detection, a location sensor is used during object detection, or both 3D map data and a location sensor are used during object detection.

<FIG> illustrates an example of a system in which the object detector <NUM> receives location data <NUM> from the 3D map application <NUM> and does not receive any additional location data from a location sensor. The location data <NUM> provided by the 3D map application <NUM> may be indicative of where an object class may be present within the image data <NUM>. For example, the system shown in <FIG> may enable a vehicle to perform detection for pedestrians, tree limbs, other vehicles, etc., based on location data <NUM> received from the 3D map application <NUM> and indicative of where these objects may be present in the image data <NUM>.

For example, if the object detector <NUM> is configured to detect a pedestrian within a scale space representation of a scene, the 3D map application <NUM> may indicate one or more areas of the scene where a pedestrian could possibly be present (e.g., from <NUM> meters to <NUM> meters above a road or ground surface), and the object detector <NUM> may initiate a search of the indicated area(s) without receiving data from a separate location sensor. In another example, the 3D map application <NUM> may indicate one or more areas of the scene that correspond to a road surface, such that the object detector <NUM> can efficiently detect objects that are on the road. In some implementations, the object class may be determined by the processor <NUM> based on the image data <NUM> and/or the location data <NUM>. Alternatively, the object class may be indicated by the object <NUM> (e.g., transmitted by the object <NUM> to a receiver as described with reference to <FIG>).

During operation, a 3D map may be dynamically generated at the vehicle <NUM>, downloaded or pre-downloaded to the vehicle <NUM>, etc. After determining a location of the road surface and receiving the location data <NUM>, the object detector <NUM> may focus the search area to the road surface based on the 3D map (e.g., non-road surface areas may be excluded from the image search area). As an illustrative example, if a portion of the line segment L0L1 of <FIG> (or the line segment C0C1 of <FIG>) corresponds to a non-road surface area, then the object detector <NUM> may exclude the portion from the search area. Examples of non-road surface areas include regions above or below the road surface and regions left or right of the road surface. It should be understood, however, that when the image sensor <NUM> is in motion as part of a vehicle or other device, the area(s) of interest may vary from frame to frame based on the location of a vehicle or device relative to the 3D map. For example, when topographical changes occur (e.g., a vehicle approaches an incline or decline in the road), the search area of interest may change. The location data <NUM> provided by the 3D map application <NUM> may be dynamic and may change depending on the known location of the vehicle or device.

In some implementations, the object detector <NUM> is configured to generate a search area mask based on the 3D map indicated by the 3D map application <NUM>. A mask image may be generated either offline or online (based on, for example, a tradeoff between storage and computational burden) using the 3D map. An example process is further described with reference to <FIG>.

<FIG> depicts two scenarios in which a pedestrian is within a field of view of a vehicle, where the pedestrian is located on terrain represented by 3D map data available to the vehicle. In the first scenario, at <NUM>, the pedestrian is closer to the vehicle and, as a result, the vehicle uses a smaller scale space representation to perform object detection. In the second scenario, at <NUM>, the pedestrian is further from the vehicle and, as a result, the vehicle uses a larger scale space representation to perform object detection. When multiple scale space representations overlap a possible location of an object some scale space representations may be processed while other scale space representations are excluded from further processing. As an illustrative non-limiting example, a smaller (e.g., lower resolution) scale space representation may be preferable to detect a pedestrian that is close to a vehicle, because the height and/or width of the pedestrian in a larger scale space representation may be too large to detect using a pedestrian object class or model. Prior to performing the object detection, the scale space representation being searched may be masked based on the location data provided by a 3D map application. An illustrative example of a mask is shown in <FIG>, at <NUM>. The mask may be generated by marking different regions of the scale space representation with zeros or non-zeros (e.g., "<NUM>" or a non-zero fractional value). Areas marked with non-zeros may be searched and areas marked with zeros may be ignored during object detection. When non-zero fractional values are used, a higher non-zero fraction value may represent a greater probability of locating the object in the corresponding area. For example, as shown in <FIG>, the area marked with "<NUM>" may be searched prior to searching the area marked "<NUM>.

In a particular embodiment, the probabilities for the areas of the mask (e.g., <NUM> and <NUM> in the mask of <FIG>) may be generated based on a set of training samples. The set of training samples may contain 3D position(s) of place(s) where a pedestrian can appear. The set of training samples may also include positions that have been marked as "dangerous" by an expert. For example, such "dangerous" positions may be positions in which pedestrians have a higher likelihood of being obscured, being difficult for a driver to notice, being involved in an accident, etc. In some embodiments, the 3D positions of the set of training samples may be associated with probabilities. While generating the mask image, the 3D positions may be projected onto an image plane, and different portions of the mask may be assigned different probabilities based on the 3D positions corresponding to underlying pixels of the image plane.

In a particular embodiment, a probabilistic model and mask can be used with respect to sensor data instead of or in addition to 3D map data. For example, the estimated region <NUM> of <FIG> may correspond to a mask, where different subregions have different probability values between zero and one. The probability values may be based on location data from a location sensor (e.g., the location sensor <NUM>), location data from a 3D map application (e.g., the 3D map application <NUM>), 3D map data, a sensor or application margin of error, sensor calibration, and/or sensor sensitivity, as illustrative non-limiting examples.

Thus, the processor <NUM> may determine a search area or areas based on 3D map data and the object class of the object. The object detector may perform object detection in the search area, as described with reference to <FIG>. It is noted that when using 3D map data to perform object detection, projection may be performed in view of possible inaccuracy of localization result(s). That is, a range of camera locations may be enumerated due to localization inaccuracy. It should also be noted that in particular embodiments, masks/search areas may be constructed offline and used (e.g., to skip searching of masked off areas) in a real-time (or near-real-time) stream received from a camera (e.g., the image sensor <NUM>). Moreover, instead of dynamically constructing a 3D map, 3D conditions may be approximated with a plane/surface estimator, which may provide a rough real-time (or near-real-time) plane. For example, in an area where most roads are on planar surfaces, the 3D map may be estimated by using a plane with some slope variation to estimate the projected masks. In a particular embodiment, the foregoing method can also be used to find an object of interest in a particular area. For example, the object detector <NUM> may find pedestrians (or other objects) in an area that include or are close to a "current" driving lane of the vehicle <NUM> but may ignore pedestrians in sidewalk areas. As another example, the object detector <NUM> may be part of an object tracking framework in which tracking areas are limited based on masks.

Although <FIG> describe performing object detection using location data from a location sensor and <FIG> illustrates performing object detection using location data provided by a 3D map application instead of a location sensor, it should be noted that the aforementioned embodiments are not mutually exclusive. In some examples, 3D map data can be used along with data from a location sensor, and may enable faster object detection and further reduction of scan area(s).

Referring to <FIG>, a particular embodiment of a method of identifying area(s) of interest based on 3D map data is shown and generally designated <NUM>. The method <NUM> includes receiving 3D map data, at block <NUM>. For example, the 3D map application <NUM> may receive 3D map data, such as from an external data source, a local storage device, etc. The method <NUM> also includes determining whether a location of the 3D map is likely to include an object of interest, at block <NUM>. If so, the method <NUM> includes identifying the location as location data to be provided to an object detector, at block <NUM>. If the location is not likely to include the object of interest, or after identifying the location data, the method <NUM> includes determining whether additional locations are to be examined, at block <NUM>. If so, the method <NUM> returns to block <NUM>. To illustrate, referring to <FIG>, the location data <NUM> may indicate one or more areas of the terrain that are likely to include a pedestrian, such as the pedestrian that is close to the vehicle, at <NUM>, or the pedestrian that is far from the vehicle, at <NUM>.

Continuing to block <NUM>, the method <NUM> includes projecting the object of interest in the location data with a size that is based on an object class of the object of interest. In the example of <FIG>, a pedestrian may be projected in the identified location data corresponding to the roadway being travelled by the vehicle. The method <NUM> further includes determining a scale space representation that overlaps the projected object of interest, at block <NUM>, and marking the overlapping area(s) of the scale space representation with non-zero value(s), at block <NUM>. To illustrate, for the pedestrian closer to the vehicle in <FIG> at <NUM>, areas in the small scale space representation may be masked with non-zero values. For the pedestrian farther from the vehicle in <FIG> at <NUM>, areas in the large scale space representation may be masked with non-zero values. In an illustrative example, the scale space representation may be masked as shown in <FIG> at <NUM>.

In an example, 3D map data may be used to alter an orientation or field of view of an image sensor, and/or the 3D map data may be used to select a portion of image data that is generated by multiple image sensors. As another example, when a vehicle turns left or right, the image sensor of the vehicle may automatically be actuated left or right so that the image sensor continues to capture image data that is "ahead of" the vehicle. As another example, an image sensor of a vehicle may be actuated automatically to "look" left and right to identify pedestrians, other approaching vehicles, road hazards, etc. To illustrate, a <NUM>° stitched view of a vehicle's surroundings may be generated and a driver of the vehicle may be notified ahead of time if there is a pedestrian crossing a street that the driver may later turn on. In a particular embodiment, when the driver is using turn-by-turn navigation directions (e.g., provided by a navigation application of the vehicle or a mobile device within the vehicle), the navigation directions may be used to anticipate turns that will be made by the vehicle, lane changes that will be made, etc., such as to prioritize search areas, determine probability values for search masks, etc..

The method <NUM> includes searching area(s) of the scale space representation marked with non-zero values in decreasing order to identify the object of interest, at block <NUM>. For example, referring to the mask shown in <FIG>, the areas marked "<NUM>" may be searched prior to searching the areas marked "<NUM>. " The method <NUM> ends at block <NUM>.

The method <NUM> of <FIG> thus illustrates an example of performing object detection on one or more scale space representations based on 3D map data. The 3D map data may be used in lieu of, or in addition to, location data provided by a location sensor.

Referring to <FIG>, an illustrative method of object detection is shown and generally designated <NUM>. The method <NUM> includes receiving, from an image sensor, image data of a scene that includes an object, at block <NUM>. The image data is associated with multiple scale space representations of the scene. For example, the processor <NUM> may receive the image data <NUM> from the image sensor <NUM>, where the image data <NUM> is associated with (e.g., can be used to generate) the scale space representations <NUM>-<NUM>.

The method <NUM> also includes receiving location data associated with the object or indicative of an area where the object may be present, at block <NUM>. For example, the processor <NUM> may receive the location data <NUM> from the on-board location sensor <NUM> in the vehicle <NUM>, as described with reference to <FIG>. As another example, the processor <NUM> may receive the location data <NUM> from the location sensor <NUM>, which is external to the vehicle <NUM>, via the receiver <NUM>, as described with reference to <FIG>. In another example, the object detector <NUM> may receive location data <NUM> from a 3D map application <NUM> with the location data being indicative of an area where an object may be present (e.g., on a road, in a lane, etc.), as described with reference to <FIG>. In yet another example, location data may be received from multiple sources, such as from multiple location sensors, a location sensor and a 3D map application, etc..

The method <NUM> further includes determining whether a first scale space representation overlaps the location data, at block <NUM>. When the first scale space representation overlaps the location data, a search area in the first scale space representation is identified, at block <NUM>. Advancing to block <NUM>, object detection is performed in the search area. To illustrate, in the example of <FIG>, the object detector <NUM> may determine that the scale space representation <NUM> overlaps the estimated region <NUM> corresponding to the location data <NUM>. In response, the object detector <NUM> may determine a search area of the scale space representation <NUM>, as described with reference to Equations <NUM>-<NUM>, and may perform object detection in the search area.

Alternatively, when the first scale space representation does not overlap the location data, the method <NUM> includes avoiding the performance of object detection on the scale space representation, at block <NUM>. To illustrate, in the example of <FIG>, the object detector may avoid performing object detection on the scale space representations <NUM> and <NUM> due to the lack of overlap between the estimated region <NUM> and the scale space representations <NUM> and <NUM>. Continuing to block <NUM>, the method <NUM> includes determining whether additional scale space representations are to be examined (e.g., when multiple scale space representations overlap the location data). If so, the method <NUM> returns to block <NUM>. If not, or after the object detection is performed at block <NUM>, the method <NUM> includes determining whether additional objects are to be detected, at block <NUM>. If so, the method <NUM> returns to block <NUM> to process location data for the additional objects. If not, the method <NUM> ends, at block <NUM>.

When multiple scale space representations are found to overlap location data, object detection may be performed on one, some, or all over the overlapping scale space representations (e.g., until the object of interest is detected). For example, as described with reference to <FIG>, a lowest resolution scale space representation may be examined first to detect a pedestrian that is close to a vehicle.

One or more operations of the methods <NUM> and/or <NUM> may be initiated, controlled, or performed by a hardware device, such as a processing unit. For example, depending on the particular implementation, the processing unit may include a field-programmable gate array (FPGA) device, an application-specific integrated circuit (ASIC), a processing unit such as a central processing unit (CPU), a digital signal processor (DSP), a controller, another hardware device, a firmware device, or a combination thereof.

Referring to <FIG>, a block diagram of a particular illustrative embodiment of an electronic device is depicted and generally designated <NUM>. In a particular embodiment, the electronic device <NUM>, or components thereof, may be worn by or carried by a pedestrian (e.g., as part of a mobile phone, a tablet computer, a smartwatch, etc.). In another particular embodiment, the electronic device <NUM>, or components thereof, may be included in or may be attached/coupled to a vehicle. In another particular embodiment, the electronic device <NUM>, or components thereof, may be included in or may be attached/coupled to a roadside unit (RSU), a street sign, a traffic light, or another roadside object or device. In further embodiments, the electronic device <NUM> may correspond to a computer (e.g., a laptop computer, a tablet computer, or a desktop computer), a set top box, an entertainment unit, a navigation device, a personal digital assistant (PDA), a television, a tuner, a radio (e.g., a satellite radio), a music player (e.g., a digital music player and/or a portable music player), a video player (e.g., a digital video player, such as a digital video disc (DVD) player and/or a portable digital video player), another electronic device, or a combination thereof.

The electronic device <NUM> includes a memory <NUM> and a processor <NUM>, such as a digital signal processor (DSP), a central processing unit (CPU), and/or a graphics processing unit (GPU), as illustrative examples. The processor <NUM> may execute instructions <NUM>. In an illustrative example, the instructions <NUM> are executable by the processor <NUM> to perform one or more functions or methods described herein, including but not limited to the method <NUM> of <FIG> and/or the method <NUM> of <FIG>. The processor <NUM> may also include hardware corresponding to, and/or execute software instructions corresponding to, an object detector <NUM> (e.g., the object detector <NUM> of <FIG>, <FIG>, and <FIG>) and a 3D map application <NUM> (e.g., the 3D map application <NUM> of <FIG> and <FIG>).

<FIG> also shows a display controller <NUM> that is coupled to the processor <NUM> and to a display <NUM>. A coder/decoder (CODEC) <NUM>, such as an analog audio processing front-end, can also be coupled to the processor <NUM>. A speaker <NUM> and a microphone <NUM> can be coupled to the CODEC <NUM>. <FIG> also indicates that a wireless interface <NUM>, such as a wireless controller and/or a transceiver, can be coupled to the processor <NUM> and to an antenna <NUM>. In particular embodiments, the electronic device <NUM> may include multiple wireless interfaces and antennas. Each wireless interface and/or antenna may correspond to a different communication technology or network (e.g., cellular, IEEE <NUM>, DSRC, etc.).

In a particular embodiment, the processor <NUM> is further coupled to an image sensor <NUM> (e.g., the image sensor <NUM> of <FIG>, <FIG>, and <FIG>). The processor <NUM> may also be coupled to a location sensor <NUM> (e.g., the location sensor <NUM> of <FIG>). Alternatively, the processor <NUM> may receive location data from an external location sensor via a receiver, such as the wireless interface <NUM> and/or the antenna <NUM>, and/or the processor <NUM> may receive location data from the 3D map application <NUM>.

In a particular embodiment, the processor <NUM>, the display controller <NUM>, the CODEC <NUM>, the wireless interface <NUM>, the image sensor <NUM>, and the location sensor <NUM> (when present) are included in a system-in-package or system-on-chip device <NUM>. Further, an input device <NUM> and a power supply <NUM> may be coupled to the system-on-chip device <NUM>. Moreover, in a particular embodiment, as illustrated in <FIG>, the display <NUM>, the input device <NUM>, the speaker <NUM>, the microphone <NUM>, the antenna <NUM>, and the power supply <NUM> are external to the system-on-chip device <NUM>. However, each of the display <NUM>, the input device <NUM>, the speaker <NUM>, the microphone <NUM>, the antenna <NUM>, and the power supply <NUM> can be coupled to a component of the system-on-chip device <NUM>, such as to an interface or to a controller.

In connection with the described embodiments, an apparatus includes means for receiving image data of a scene viewed from the apparatus and including an object, the image data associated with multiple scale space representations of the scene. For example, the means for receiving may include the image sensor <NUM>, the image sensor <NUM>, a processor or controller coupled to an image sensor (e.g., the processor <NUM> or the processor <NUM>), another device configured to receive image data, or any combination thereof. The apparatus also includes means for processing. The means for processing is configured to identify a search area of a first scale space representation of the multiple scale space representations based on an overlap between the first scale space representation and location data associated with the object or indicative of an area where the object may be present. The means for processing is also configured to perform object detection in the search area of the first scale space representation. For example, the means for processing may include the processor <NUM>, the object detector <NUM>, the processor <NUM>, the object detector <NUM>, the 3D map application <NUM>, the 3D map application <NUM>, another device configured to process data, or any combination thereof. In a particular embodiment, the apparatus includes means for generating the location data. For example, the means for generating the location data may include the location sensor <NUM>, the location sensor <NUM>, the location sensor <NUM>, the 3D map application <NUM>, another device configured to generate location data, or any combination thereof. In a particular embodiment, the apparatus includes means for receiving the location data from an external location sensor. For example, the means for receiving may include the receiver <NUM>, the wireless interface <NUM>, the antenna <NUM>, another device configured to receive data from an external sensor, or any combination thereof.

The foregoing disclosed devices and functionalities may be designed and represented using computer files (e.g. RTL, GDSII, GERBER, etc.). The computer files may be stored on computer-readable media. Some or all such files may be provided to fabrication handlers who fabricate devices based on such files. Resulting products include wafers that are then cut into die and packaged into integrated circuits (or "chips"). The chips are then employed in electronic devices, such as a component of the vehicle <NUM>, the electronic device <NUM>, etc..

Although one or more of <FIG> may illustrate systems, apparatuses, and/or methods according to the teachings of the disclosure, the disclosure is not limited to these illustrated systems, apparatuses, and/or methods but is defined by the appended claims.

Those of skill would further appreciate that the various illustrative logical blocks, configurations, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software executed by a processor, or combinations of both. Various illustrative components, blocks, configurations, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or processor executable instructions depends upon the particular application and design constraints imposed on the overall system.

Claim 1:
A method of detecting an object, the method comprising:
receiving (<NUM>) from an image sensor, at a processor, image data of a scene viewed from an apparatus and including an object, the image data associated with multiple scale space representations of the scene, wherein the multiple scale space representations correspond to different resolution images of the scene obtained by downsampling the image data by a corresponding factor;
receiving (<NUM>), at the processor, location data indicative of an estimated region where the object may be present, wherein the location data corresponds to one or more areas of a three-dimensional, 3D, map;
selecting (<NUM>), at the processor, at least a first one of the multiple scale space representations of the scene in which to perform object detection, based on the distance of the estimated region indicated by the location data;
identifying (<NUM>), at the processor, a search area of the first scale space representation of the multiple scale space representations based on an overlap of the estimated region indicated by the location data with the image plane that corresponds to the first scale space representation; and
performing (<NUM>), at the processor, object detection in the search area of the first scale space representation.