## 2 Object Detection Algorithms
### You Only Look Once  
YOLO belongs to the most used deep learning algorithms due to its compromise between speed and accuracy. One of the key features is the ability to run on CPU and a variety of its implementations that reach remarkable results on non-GPU machines.  
The initial version realizes object detection as a regression problem that uses only one CNN consisting of 24 layers to predict bounding boxes. Predictions constitute tensors composed of the input image in the form:  
\[S\times S(B\times 5+C), \tag{1}\]  
where \(S\times S\) is a grid, \(B\) are bounding boxes consisting of 5 predictions, and \(C\) is class probabilities. Each cell in the grid is supposed to detect the searched object. Class probability is computed as well. Figure 1 depicts the crucial parts of the detection process. The model was pretrained on ImageNet and evaluated on the PASCAL VOC dataset. The prediction is one of the limitations of a single object with multiple assigned bounding boxes. This case can be partially solved by non-maximal suppression. The model struggles the most with small and clustered objects. Experimental verification has shown that real-time detection is feasible because the model runs at a speed of 45 FPS. The modified version, so-called Fast YOLO, contains CNN consisting of nine layers that reach a performance of 150 FPS.  
In 2020, YOLOv4 [7] was presented and compared with its predecessor. The main difference is the use of CSPDarknet53 as a base network and the integration of several features that include the CBM module, which includes _Conv_ convolution layer, _BN_ batch normalization layer, and _Mish_ activation [8], which can be described as Equation (2):  
\[f(x)=x\times tanh(softplus(x)) \tag{2}\]  
where  
\[softplus(x)=ln(1+e^{x}). \tag{3}\]  
CSPDarknet53 also includes five CSP modules, where each reduces the image in half. YOLOv4 implements a prediction network (_YOLOhead_) and feature pyramid (_SPP_ spatial pyramid pooling and _PANet_ path aggregation network). The structure of YOLOv4 is shown in Figure 2. Experiments evaluated on the COCO dataset have shown that AP improves by 10% and performance by 12% with respect to the YOLOv3 version.  
Figure 1: The YOLO model. Source of the image: [6].  
Follow Ref. [5], which proposes a new algorithm called SlimYOLOv3, based on the YOLOv3 version suggested for real-time object detection on a UAV platform. The most suitable approach is the utilization of channel pruning of convolutional layers to a particular ratio to simplify the deep model and remove its unnecessary connections. Finally, the algorithm is fine-tuned for performance optimization. SlimYOLOv3 evaluates on the VisDron2018-Det dataset. Experimental verification demonstrated that the proposed algorithm attains comparable accuracy mAP of 25.8% with respect to YOLOv3 mAP of 26.4%. On the other side, performance is nearly two times faster, and the amount of BFLOPs produces one-third against YOLOv3.  
Authors [9] make a new dataset based on aerial imagery for vehicle detection that contains six thousand images. Verification of the dataset performs on several deep learning models that include Modified Faster R-CNN, YOLOv4, and MobileNetv3. The highest mAP of 96.91% reaches YOLOv4 and is eligible for vehicle detection under different conditions.  
The modified version Scale-YOLOv4 was adopted by [PERSON] et al. [10], for the detection of obstacles. Authors report accurate results when utilized in an unmanned ground vehicle. More closely related to our research is the recognition and detection of traffic elements by [PERSON] et al. [11]. Authors, in this case, used YOLOv4 with a mAP value above 90%.