Patent Publication Number: US-11391844-B2

Title: Detection and tracking of road-side pole-shaped static objects from LIDAR point cloud data

Description:
FIELD 
     The present application generally relates to vehicle advanced driver assistance systems (ADAS) and, more particularly, to techniques for detecting and tracking road-side pole-shaped static objects from light detection and ranging (LIDAR) point cloud data. 
     BACKGROUND 
     Some vehicle advanced driver assistance systems (ADAS) utilize radio detection and ranging (RADAR) and/or camera systems to detect and track objects. Some types of objects, however, are difficult for these systems to accurately detect and track. One example of such a type of object is a tall, thin pole-shaped object (a light/utility pole, a traffic sign, a tree, etc.). Pole-shaped objects are also static, which allows their location to be utilized to localize the vehicle&#39;s position, such as on a global positioning system (GPS) map. Due to the shape and characteristics of pole-shaped objects, RADAR systems are unable to capture a sufficient amount of reflected radio waves for pole-shaped objects. For the same reasons, camera systems are also unable to capture depth and distance information for pole-shaped objects. Accordingly, while such ADAS pole-shaped object detection and tracking systems work for their intended purpose, there remains a need for improvement in the relevant art. 
     SUMMARY 
     According to one example aspect of the invention, an advanced driver assistance system (ADAS) for a vehicle is presented. In one exemplary implementation, the ADAS comprises a light detection and ranging (LIDAR) system configured to emit laser light pulses and capture reflected laser light pulses from a vehicle collectively forming three-dimensional (3D) LIDAR point cloud data for each of a plurality of frames and a controller configured to: receive the 3D LIDAR point cloud data, down-sample the 3D LIDAR point cloud data according to a user-configurable voxel size, filter the down-sampled 3D LIDAR point cloud data to remove data points corresponding to ground surface reflections, divide the 3D LIDAR point cloud data into a plurality of clusters that are parallel to the vehicle&#39;s moving direction, project the plurality of clusters to a plane that is parallel to sides of the vehicle to generate an image, detect a pole-shaped object in the image, and track the pole-shaped object by deep sorting across multiple frames of the plurality of frames. 
     In some implementations, the plurality of clusters are proximate to the sides of the vehicle. In some implementations, the controller is configured to divide the filtered 3D LIDAR point cloud data into the plurality of clusters according to at least one user-configurable cutting parameter. In some implementations, the at least one user-configurable cutting parameter includes at least one of thickness, stride, depth, and padding. 
     In some implementations, the controller is configured to track the pole-shaped object by incorporating motion information based on a squared Mahalanobis distance between predicted Kalman states and newly arrived measurements. In some implementations, the controller is configured to track the pole-shaped object by inserting the pole-shaped object into a matching cascade that gives priority to more frequently seen objects to monitor a tracked position of the pole-shaped object. 
     In some implementations, the controller is configured to track the pole-shaped object by predicting a position of the pole-shaped object using a standard Kalman filter with constant velocity motion and a linear observation model. In some implementations, the controller is configured to track the pole-shaped object based on a comparison between the tracked and predicted positions of the pole-shaped object. 
     In some implementations, the controller does not utilize a radio detection and ranging (RADAR) system or a camera system in detecting and tracking the pole-shaped object. In some implementations, the pole-shaped object is one of a light or utility pole, a traffic sign, and a tree. 
     According to another example aspect of the invention, a method of detecting and tracking a pole-shaped object proximate to a vehicle is presented. In one exemplary implementation, the method comprises: receiving, by a controller of the vehicle and from a LIDAR system of the vehicle, 3D LIDAR point cloud data for each of a plurality of frames captured the LIDAR system after emitting laser light pulses and capturing reflected laser light pulses, down-sampling, by the controller, the 3D LIDAR point cloud data according to a user-configurable voxel size, filtering, by the controller, the down-sampled 3D LIDAR point cloud data to remove data points corresponding to ground surface reflections, dividing, by the controller, the 3D LIDAR point cloud data into a plurality of clusters that are parallel to the vehicle&#39;s moving direction, projecting, by the controller, the plurality of clusters to a plane that is parallel to sides of the vehicle to generate an image, detecting, by the controller, a pole-shaped object in the image, and tracking, by the controller, the pole-shaped object by deep sorting across multiple frames of the plurality of frames. 
     In some implementations, the plurality of clusters are proximate to the sides of the vehicle. In some implementations, the dividing of the filtered 3D LIDAR point cloud data into the plurality of clusters is performed according to at least one user-configurable cutting parameter. In some implementations, the at least one user-configurable cutting parameter includes at least one of thickness, stride, depth, and padding. 
     In some implementations, the tracking of the pole-shaped object comprises incorporating motion information based on a squared Mahalanobis distance between predicted Kalman states and newly arrived measurements. In some implementations, the tracking of the pole-shaped object comprises inserting the pole-shaped object into a matching cascade that gives priority to more frequently seen objects to monitor a tracked position of the pole-shaped object. 
     In some implementations, the tracking of the pole-shaped object comprises predicting a position of the pole-shaped object using a standard Kalman filter with constant velocity motion and a linear observation model. In some implementations, the tracking of the pole-shaped object is performed based on a comparison between the tracked and predicted positions of the pole-shaped object. 
     In some implementations, the controller does not utilize a RADAR system or a camera system in detecting and tracking the pole-shaped object. In some implementations, the pole-shaped object is one of a light or utility pole, a traffic sign, and a tree. 
     Further areas of applicability of the teachings of the present disclosure will become apparent from the detailed description, claims and the drawings provided hereinafter, wherein like reference numerals refer to like features throughout the several views of the drawings. It should be understood that the detailed description, including disclosed embodiments and drawings referenced therein, are merely exemplary in nature intended for purposes of illustration only and are not intended to limit the scope of the present disclosure, its application or uses. Thus, variations that do not depart from the gist of the present disclosure are intended to be within the scope of the present disclosure. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a functional block diagram of an example vehicle having an advanced driver assistance system (ADAS) with a light detection and ranging (LIDAR) system according to some implementations of the present disclosure; 
         FIG. 2A  is a functional block diagram of an example pole-shaped object detection and tracking architecture according to some implementations of the present disclosure; 
         FIG. 2B  is example three-dimensional (3D) LIDAR point cloud data processed for pole-shape object detection and tracking; and 
         FIG. 3  is a flow diagram of an example pole-shaped object detection and tracking method according to some implementations of the present disclosure. 
     
    
    
     DESCRIPTION 
     As discussed above, there exists a need for improvement in automated driver assistance (ADAS) systems that utilize radio detection and ranging (RADAR) and/or camera systems to detect and track pole-shaped objects. Accordingly, improved pole-shaped detection and tracking techniques are presented. The systems and methods described herein utilize light detection and ranging (LIDAR) to obtain high resolution three-dimensional (3D) point clouds over a plurality of frames that are then processed to accurately detect and track pole-shaped objects. This processing could include, for example, down-sampling to form a 3D voxel grid, ground surface reflection filtering the 3D voxel grid to obtain filtered 3D LIDAR point cloud data, dividing the filtered 3D LIDAR point cloud data into sub-clouds or clusters focusing on the sides of the vehicle and being parallel to the vehicle&#39;s moving direction, projecting each cluster to a plane that is parallel to the side of the vehicle to generate an image, performing pole-shaped object detection using the image, and performing tracking of the pole-shaped object(s) across multiple frames. The accurate detection and tracking of the pole-shaped object(s) could also be leveraged by other ADAS functions, such as, but not limited to, vehicle position localization on a map and/or collision avoidance during autonomous driving. 
     Referring now to  FIG. 1 , a functional block diagram of an example vehicle  100  is illustrated. The vehicle  100  comprises a torque generating system  104  (an engine, an electric motor, combinations thereof, etc.) that generates drive torque that is transferred to a driveline  108  via a transmission  112 . A controller  116  controls operation of the torque generating system  104 , such as to generate a desired drive torque based on a driver input via a driver interface  120  (a touch display, an accelerator pedal, combinations thereof, etc.). The vehicle  100  further comprises an ADAS  124  having a LIDAR system  128 . While the ADAS  124  is illustrated as being separate from the controller  116 , it will be appreciated that the ADAS  124  could be incorporated as part of the controller  116 , or the ADAS  124  could have its own separate controller. The LIDAR system  128  emits laser light pulses and captures reflected laser light pulses (from other vehicles, pedestrians, pole-shaped objects, etc.) that collectively form captured 3D LIDAR point cloud data over a plurality of frames. Each frame, for example, could be indicative of a 3D LIDAR scan at a particular point in time. The plurality of frames could therefore represent a collection of 3D LIDAR scans over a period of time. It will be appreciated that the ADAS  124  could include other suitable systems, such as, but not limited to, a RADAR system, a camera/lens system, an inertial motion unit (IMU) system, a real-time kinematic (RTK) system, and the like. 
     Referring now to  FIG. 2 , a functional block diagram of an example pole-shaped object detection and tracking architecture  200  is illustrated. At  204 , a plurality of frames of 3D LIDAR point cloud data is captured. At  208 , the 3D LIDAR point cloud is down-sampled using a user-configurable voxel size. In one exemplary implementation, the user-configurable voxel size is 0.2 meters by 0.2 meters by 0.2 meters, but it will be appreciated that any suitable voxel size could be utilized. If more than one point in the 3D LIDAR point cloud data falls into a particular voxel, only one point will be used to represent the voxel. The down-sampled 3D LIDAR point cloud data can also be described as a 3D voxel grid. This down-sampling reduces real-time computational load, thereby increasing the speed of the pole-shaped object detection and tracking process and/or allowing for the use of a less powerful and less expensive controller. 
     At  212 , ground surface reflection filtering is performed on the down-sampled 3D LIDAR point cloud data. It will be appreciated that steps  208  and  212  could occur as a single operation. In one exemplary implementation, the ground surface reflection filtering comprises generating histogram including a height difference between maximum and minimum heights (z-coordinates) of the down-sampled 3D LIDAR point cloud data for each cell of a plurality of cells surrounding the vehicle. Very small height differences are likely indicative of that down-sampled 3D LIDAR point cloud data corresponding to a ground surface. The histogram data is therefore analyzed to determine a height threshold indicative of a ground surface. This height threshold could be dynamic in that it is repeatedly recalculated for different scenes. Any points in the down-sampled 3D LIDAR point cloud data having heights (z-coordinates) less than this height threshold could then be removed from the down-sampled 3D LIDAR point cloud data (thereby obtaining filtered 3D LIDAR point cloud data) or otherwise ignored. The removal or ignoring of any data that is likely a ground surface allows for faster processing and/or a less expensive controller due to the smaller dataset. 
     At  216 , the filtered 3D LIDAR point cloud data is cut or sliced into sub-point clouds or clusters to further improve the accuracy of object detection accuracy. In one exemplary implementation, the cutting focuses on both sides of the vehicle. For each side, the filtered 3D LIDAR point cloud data is cut into slices that are parallel to the vehicle&#39;s moving direction. The thickness of each slice and other cutting parameters are user-configurable and could be finely tuned for each application. Other non-limiting examples of the cutting parameters include stride, depth, and padding. At  220 , each slide is projected to a plane that is parallel the side of the vehicle  100  thereby generating an image that can be used for object detection.  FIG. 2B  illustrates an example of such an image where 3D LIDAR point cloud data  250  has been down-sampled, filtered to remove reflections from a ground surface  254  that is separate from a sky region  258 , cut into sub-clouds/clusters/slices, and projected to the plane that is parallel to the vehicle  100 . Along the vehicle&#39;s moving direction  262 , there are three different pole-shaped objects. For example only, object  266  could be a utility pole or tree, object  270  could be a traffic sign, and object  274  could be a light pole. It will be appreciated that this example data is only for illustration and is not drawn to scale. 
     After projection at  220 , the generated image can then be processed to detect pole-shaped objects at  224 . Any suitable object detection technique could be utilized, such as, for example only, connected component labeling or another suitable Open Source Computer Vision Library (OpenCV) object detection technique. At  228  the detected pole-shaped object(s) are tracked. In some implementations, a state of each detected object is labeled for each frame as part of the tracking procedure. Non-limiting examples of the possible states include creation, tracking, hiding, and dropping. In some implementations, the detection and tracking of the pole-shaped object(s) involves the use of a Kalman filter with constant velocity and motion and a linear observation model. This performs well because pole-shaped objects can be assumed to be rigid and static. It will be appreciated that 3D to 2D (e.g., birdview) projection could also be performed and then lines (i.e., connected pixels) indicative of pole-shaped objects could be detected. 
     In some implementations, the tracking of the pole-shaped object(s) comprises a deep-sorting procedure. This deep-sorting procedure adopts a conventional single hypothesis tracking methodology with recursive Kalman filtering and frame-by-frame data association. This deep-sorting procedure can be divided into four sub-components: assignment, matching cascade, state estimation, and prediction. For each frame, detected pole-shaped objects are assigned by incorporating motion information. This can include, for example, calculating a squared Mahalanobis distance between predicted Kalman states and newly arrived measurements. In some implementations, this further includes a second metric that measures the smallest cosine distance between the i-th track and the j-th detection in the appearance space. The assigned objects are then inserted into a matching cascade across the multiple frames, e.g., to overcome at least one of occlusion, hiding, and reformation. 
     For state estimation, new tracking hypotheses are initiated for each detected pole-shaped object that cannot be associated to an existing track. During a first number of frames (e.g., three frames), a successful measurement association at each time step is expected. Thus, tracks that are not successfully associated to a measurement within this first number of frames are deleted. Using this matching cascade, a tracked position for each pole-shaped object is monitored across the multiple frames. This matching cascade also utilizes a predicted position of each object. This prediction involves a standard Kalman filter with constant velocity motion and a linear observation model, which performs very well for vehicle applications where static (i.e., non-moving) objects are being monitored. Bounding coordinates of each pole-shaped object are taken as direct observations of the object state. For example, a center point coordinate for each bounding box, its aspect ratio, and its height are utilized as the coordinates, and the position of each pole-shaped object is predicted using these coordinates and the above-mentioned filter/model. 
     Lastly, at  228 , the detection and tracking of the pole-shaped objects is optionally leveraged for other ADAS functions. For example only, by accurately knowing the location of static pole-shaped objects at all times, the position of the vehicle  100  could be more accurately determined. This could be used, for example, to better localize the position of the vehicle  100  on a global positioning system (GPS) map, such as one displayed on a driver interface of the vehicle. It will be appreciated that the detection and tracking of the pole-shaped object(s) could also be used as part of other ADAS features, such as collision avoidance during autonomous driving. 
     Referring now to  FIG. 3 , a flow diagram of a pole-shaped object detection and tracking method  300  is illustrated. It will be appreciated that this method  300  could be implemented by the controller  116 , by the ADAS system  124  itself, or in some combination thereof. At  304 , 3D LIDAR point cloud data over a plurality of frames is obtained, e.g., from the LIDAR system  128 . At  308 , the 3D LIDAR point cloud data is down-sampled (e.g., forming a 3D voxel grid). At  312 , the down-sampled 3D LIDAR point cloud data is filtered to remove ground surface reflections. It will be appreciated that other filtering could be performed to remove data points that are likely not indicative of pole-shaped objects. Velocity-based filtering could be used, for example, because pole-shaped objects are static. At  316 , the filtered 3D LIDAR point cloud data is cut or sliced into sub-clouds or clusters focusing on the sides of the vehicle and that are parallel to the vehicle&#39;s moving direction. At  320 , the sub-clouds/clusters/slices are projected to a plane that is parallel to the sides of the vehicle  100 . At  324 , pole-shaped object(s) are detected in the projected sub-clusters and are then tracked at  328  across multiple frames. It will be appreciated that another step (e.g., step  332 , not shown) could involve the use of the detected and tracked pole-shaped objects as part of other ADAS features. The method  300  then ends or returns to  304 . 
     It will be appreciated that the term “controller” as used herein refers to any suitable control device or set of multiple control devices that is/are configured to perform at least a portion of the techniques of the present disclosure. 
     Non-limiting examples include an application-specific integrated circuit (ASIC), one or more processors and a non-transitory memory having instructions stored thereon that, when executed by the one or more processors, cause the controller to perform a set of operations corresponding to at least a portion of the techniques of the present disclosure. The one or more processors could be either a single processor or two or more processors operating in a parallel or distributed architecture. 
     It should be understood that the mixing and matching of features, elements, methodologies and/or functions between various examples may be expressly contemplated herein so that one skilled in the art would appreciate from the present teachings that features, elements and/or functions of one example may be incorporated into another example as appropriate, unless described otherwise above.