# Edge-YOLO: Lightweight Infrared Object Detection Method Deployed on Edge Devices
## 3 Methods
### YOLOv5 Network Model Improvement  
The YOLOv5 algorithm is mainly designed for the visible light domain and is better suited for deployment on GPUs due to its high number of model parameters, large computational requirements, and large model size. However, the objective of this paper is to create lightweight target detection networks for edge-embedded devices, making it reasonable to employ a lightweight network structure instead of the heavy CSPDarknet backbone network of YOLOv5. One promising candidate for such a lightweight network model is ShuffleNetv2, proposed by [PERSON] et al. of [PERSON]'s team [20], which achieves a good balance between model accuracy and running speed. By using lightweight structures  
Figure 3: Structure of CAU-Lite.  
such as grouped convolution and depthwise convolution, ShuffleNetv2 is optimized for computational complexity, storage access cost, and parallelism, resulting in a noticeable improvement in actual running speed. In light of this, we chose to use an improved version of ShuffleNetv2 as the backbone network structure of the Edge-YOLO algorithm. The following problems usually exist in IR road scenes:  
1. Compared with visible light images, original infrared images lack detailed texture and feature complexity, making them less susceptible to network perception, especially in deeper and complex networks where features are lost and additional noise is introduced.
2. In road scenes, pedestrians and bicycles are typically present in slender strips rather than regular shapes. However, traditional convolution layers use regular convolution kernels (N \(\times\) N), which may result in a loss of feature information due to their inability to adapt to target shape changes.  
To enhance the extraction capability of strip-shaped features in IR scenes and the perception of salient features in IR images without increasing computational effort, this paper proposes embedding the strip depthwise convolutional attention module (SDCA) into ShuffleBlock. As shown in Figure 4, SDCA takes an input and generates a shortcut branch. The local information is aggregated by a 5 \(\times\) 5 depthwise convolution, and the output is convolved by three branches: a pair of 1 \(\times\) 7 and 7 \(\times\) 1 depthwise strip convolutions, a pair of 1 \(\times\) 11 and 11 \(\times\) 1 depthwise strip convolutions, and a shortcut branch. These branches capture multi-scale contextual information and strip features, and their results are summed and passed through a 1 \(\times\) 1 normal convolutional layer to model the relationship between different channels. The output of this layer is then used as the attention weights to weigh the input of SDCA by multiplying it with the generated shortcut branch.  
The improved structure obtained by embedding the strip depthwise convolutional attention module into ShuffleBlock, as well as the addition of SENet [21] as the channel attention mechanism in the right branch, are shown in Figure 5. Typically, 1 \(\times\) 1 convolutions are used before and after depthwise convolutions to fuse information between channels and to increase or decrease the number of channels. However, the original ShuffleBlock uses 1 \(\times\) 1 convolution layers before and after the depthwise convolution layer in  
Figure 4: Strip depthwise convolutional attention module.  
its right branch, which generates redundancy. To reduce the number of parameters and computational demand, this paper removes the \(1\times 1\) convolution layer after the depthwise convolution.