# RDD-YOLO: Road Damage Detection Algorithm Based on Improved You Only Look Once Version 8
## 3 The Proposed Method
### GhostConv Convolution Module  
Popular convolution modules often generate rich feature maps to guarantee a comprehensive comprehension of the input data. However, this inevitably leads to feature redundancy, resulting in unnecessary computational overhead. For the given input data \(X\in R^{c\times h\times w}\), where \(c\) is the number of input channels and \(h\) and \(w\) are the height and width of the input data, the operation of producing n feature maps by the conventional convolutional layer can be formulated as  
\[Y=X\times f+b, \tag{7}\]  
where \(*\) is the convolution operation, \(b\) is the bias term, \(Y\in R^{h^{\prime}\times w^{\prime}\times n}\) is the output feature map with n channels, and \(f\in R^{c\times k\times k\times n}\) are the convolution filters of the layer. Additionally, \(h^{\prime}\) and \(w^{\prime}\) are the height and width of the output data, and \(k\times k\) is the kernel size of the convolution filters \(f\). The required floating-point operations per second (FLOPs) during the convolution process are \(n\cdot h^{\prime}\cdot w^{\prime}\cdot c\cdot k\cdot k\), and since the number of filters n and the number of channels \(c\) are usually large, the FLOPs are also large.  
To address this issue, in this paper, we replace the Conv module in the YOLOv8 neck network with GhostConv. GhostConv is a convolutional module from GhostNet, a lightweight network designed by Noah's Ark Laboratory. Compared to regular convolutional neural networks, GhostConv decreases the number of parameters and computational complexity while maintaining the size of the output feature map. Additionally, it maintains superior recognition performance.  
GhostConv first uses regular convolution to generate \(m\) feature maps \(Y^{\prime}\in R^{h^{\prime}\times w^{\prime}\times m}\):  
\[Y^{\prime}=X\times f^{\prime}, \tag{8}\]  
where \(f^{\prime}\in R^{c\times k\times k\times m}\) are the filters used, and \(m\leq n\) and the bias term are omitted for simplicity. To maintain the spatial size of the output feature map (i.e., \(h^{\prime}\) and \(w^{\prime}\)), hyperparameters such as filter size, stride, padding, etc., are the same as those in the regular convolution (Equation (7)). To obtain the desired n feature maps, a series of inexpensive linear operations are applied to each intrinsic feature in \(Y^{\prime}\). The \(s\) ghosts are generated according to the following function:  
\[y_{ij}=\Phi_{i,j}(y^{\prime}_{i}),\forall i=1,\dots,m,j=1,\dots,s, \tag{9}\]  
where \(y^{\prime}_{i}\) is the \(i\)-th intrinsic feature map in \(Y^{\prime}\), and \(\Phi_{i,j}\) is the \(j\)-th (excluding the last one) linear operation for generating the \(j\)-th ghost feature map \(y_{ij}\). In other words, \(y^{\prime}_{i}\) can have one or more ghost feature maps \(\left\{y_{ij}\right\}_{j=1}^{s}\). The final \(\Phi_{i,s}\) is used to preserve the identity mapping of the intrinsic feature map. By using Equation (9), we can obtain \(n=m\cdot s\) feature maps with \(Y=\left[y_{11},y_{12},\dots,y_{m}\right]\) as the output of the ghost module, as illustrated in Figure 6.