# Research on Negative Road Obstacle Detection Based on Multimodal Feature Enhancement and Fusion
## 3 The Proposed Network
### Multimodal Attention Fusion Module  
The core of the MMAF module is the attention mechanism, which enables efficient multimodal data fusion by adaptively adjusting the weights of different modal features. This mechanism enables the model to focus on the most important modal features in the current task, reduces noise interference, and improves detection performance in complex environments. Aiming at the complex and changing road environment, this paper optimizes the fusion module of RGB and depth modalities and combines the convolutional block attention module (CBAM) and bottleneck structure to enhance feature representation. RGB modality provides color and texture information, which helps to capture subtle cracks and potholes on the road surface. The depth modality uses geometric and distance information to supplement the structural features of the scene to accurately identify the location of potholes. By adaptively adjusting the relative weights of RGB and depth information, the fusion module is able to optimize the feature fusion according to the scene requirements, ensuring that the model has efficient negative obstacle detection capabilities in diverse environments. As shown in Figure 3, this fusion strategy effectively improves the flexibility and robustness of the model. Especially in scenes with large illumination changes or complex terrain, the model can significantly improve the detection accuracy of potholes and cracks and the ability to capture details, thereby more reliably ensuring road safety in practical applications. Figure 3: Feature fusion module for RGB and depth. During the feature fusion process, the bottleneck module effectively integrates semantic information by compressing and expanding the channel dimensions. Its calculation formula is shown in Equation (4):  
\[F_{b}=\text{ReLU}(Conv_{1}\odot F_{in})\to Conv_{2}\odot F_{b} \tag{4}\]  
where \(Conv_{1}\) and \(Conv_{2}\) denote convolutional layers, \(\odot\) denotes element-by-element multiplication of features, \(ReLU\) is the activation function, and \(F_{in}\) is the input feature. With this structure, the model is able to reduce redundant information and retain important features, providing a refined input for subsequent attention mechanisms. The CBAM module enhances feature representation through channel attention and spatial attention mechanisms. Firstly, the feature map undergoes global average pooling and maximum pooling to generate two sets of 1D channel vectors, which are processed by MLP and combined by weighted and element-by-element additive summation to generate a channel attention map \(M_{c}\). Next, this attention map is multiplied element-by-element with the input features to suppress irrelevant feature channels and strengthen the channels that contribute to the detection task. The formula for channel attention is shown in Equation (5):  
\[M_{c}=\sigma(MLP(AvgPool(F)\oplus MaxPool(F))) \tag{5}\]  
where \(\sigma\) is the sigmoid function, \(\oplus\) denotes the connection operation, and MLP is the multilayer perceptron. The channel attention is able to emphasize the feature representation of important channels in RGB and depth features. Subsequently, the MMAF module further focuses on key regions through spatial attention. On the feature maps enhanced by channel attention, two spatial feature maps are generated along the channel dimension using global average pooling and maximum pooling. These two feature maps are then fused into a single-channel spatial attention map \(M_{s}\) via a convolutional layer. Ultimately, this spatial attention map is multiplied element-by-element with the input features to help the model to focus more accurately on key spatial locations in the image, such as the edge regions of cracks and potholes. The spatial attention is calculated in Equation (6):  
\[M_{s}=\sigma(Conv(F\cdot M_{c})) \tag{6}\]  
where \(F\) is the input feature map, \(\sigma\) is the sigmoid function, and \(Conv\) denotes the convolution operation.