# Vulnerable Road User Detection for Roadside-Assisted Safety Protection: A Comprehensive Survey
## 3 VRU Detection Models
### Single-Sensor
#### 3.1.2 LiDAR-Based Detection  
LiDAR is a remote sensing technique employing pulsed laser light to measure distances at various angles relative to the sensor (i.e., spherical coordinates of detections in the LiDAR frame of reference). LiDAR can offer detailed 3D point cloud data to accurately determine the 3D positions of traffic objects [90]. The detection methods proposed using LiDAR could be categorized into conventional methods and deep learning methods. Conventional methods often use some statistical techniques to process the point cloud data. At the early stage, researchers use manually selected features of point clouds as input to classification models, which belong to non-deep learning methods. Limited by the price and synchronization issues related to using multiple LiDAR sensors, many researchers start with one LiDAR to detect road users at the intersection. A skateboard detection method using a 16-channel LiDAR was proposed by [PERSON] et al. [15]. They utilized 3D Density Statistic Filtering (3D-DSF) [91] to filter the background, and Density-Based Spatial Clustering of Applications with Noise (DBSCAN) [92] to cluster the points. With a two-step classification method, the clustered object is first classified as a vehicle or non-vehicle object. If it is a non-vehicle object, the second step will be deployed with the object's dynamic features including the average speed in its historical trajectory and the standard deviation of the speed. Thus, the non-vehicle objects were classified as skateboarders, cyclists, and pedestrians. Because of the similar speeds of skateboarders and cyclists, these two may be misclassified using this method. Classical machine learning techniques such as K-Nearest Neighbors (KNN) [93], Support Vector Machine (SVM) [94], Random Forest (RF) [95], and Naive Bayes (NB) [96] are compared in the two-step classification tasks. RF performed best in both steps under their own datasets. To further optimize the detection results of pedestrians using the same LiDAR, researchers developed efficient detecting methods according to different distances [97]. The detecting area was divided into three sub-areas in concentric circles according to the distance to the LiDAR, and DBSCAN was deployed with different radii and minimum numbers of points in different subareas. Taking the number of points in a cluster, 2D distance to LiDAR, and direction of the clustered points' distribution as object features, a Back Propagation Artificial Neural Network (BPANN) [98] was used to classify the vehicles and pedestrians. Based on previous research, [PERSON] et al. [99] used 3D-DSF and DBSCAN to filter the background and cluster the points, respectively. Then, the overall performance of SVM, RF, BPANN, and Probabilistic Neural Network (PNN) [100] were compared, using measurements of a 16-channel LiDAR as inputs. SVM performed best, benefiting from its better nonlinear regression ability of the Gaussian kernel. In general, conventional methods have the limitation of scene adaptability; different methods may be suitable for different data with different hand-crafted features. With the rapid advancement of deep learning, some researchers have begun leveraging it for 3D VRU detection due to its strong regression and classification capabilities, enabling the prediction of bounding boxes and object classes through feature learning. From the perspective of generic 3D object detection, the detection models can be divided into front view (FV)-based, bird's eye view (BEV)-based, voxel-based, and point-based categories. The different categories represent different feature-extracting ways. FV-based and BEV-based methods aim to project the point clouds to the 2D plane and utilize a rather mature 2D detection method to detect the 3D objects, such as VeloFCN [38] and PIXOR [39]. In recent years, voxel-based and point-based methods have become the mainstream because of the richer information encoded.