This project is a modified version of YOLOv11 with an EfficientNet backbone. By replacing the original backbone with EfficientNet, we aim to achieve enhanced efficiency and performance in object detection.
-
Clone this repository:
git clone https://github.com/JYe9/YOLO11_EfficientNet.git cd YOLO11_EfficientNet
-
Install dependencies:
pip install ultralytics
The main modifications are as follows:
- EfficientNet Backbone Integration: EfficientNet has been added to YOLOv11 as the backbone to improve model efficiency.
- Updated Configurations: A new configuration file
yolo11_EfficientNet.yaml
has been created to incorporate EfficientNet's architecture.
In /ultralytics/ultralytics/nn/modules/block.py
, the following classes were added to implement EfficientNet:
SeBlock
: Implements the Squeeze-and-Excitation block for adaptive average pooling.drop_connect
: Applies drop connect regularization.stem
,MBConvBlock
: Builds EfficientNet's base structure.
In modules/__init__.py
, import and register the newly added functions and classes.
The new file yolo11_EfficientNet.yaml
in /ultralytics/ultralytics/cfg/models/11
defines the EfficientNet backbone structure and model parameters.
-
Adjust the dataset path in the configuration file as needed.
-
Run the training script:
python train.py
-
Run the detection script:
python detect.py
-
Run the validation script:
python val.py
This command will initiate training on the modified YOLOv11 model with the EfficientNet backbone.
This project is based on the official YOLOv11 repository. The backbone modification and integration of EfficientNet were inspired by the need to optimize model performance.
Reference Paper EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks