EdgeYOLO: An Edge-Friendly Object Detection Solution
Overview
EdgeYOLO stands out as a cutting-edge, anchor-free object detection model designed specifically for edge devices. It demonstrates remarkable performance on various platforms, including embedded devices like the Nvidia Jetson AGX Xavier and other systems supporting TensorRT for fast inference.
Key Features
-
High Performance on Edge Devices: EdgeYOLO reaches 34 frames per second (FPS) with a mean average precision (mAP) of 50.6% on the COCO2017 dataset and 25.9% on VisDrone2019 at a resolution of 640x640. It maintains high efficiency without sacrificing accuracy.
-
Model Variants: Multiple versions of the model are available, ranging from Tiny to full-sized versions, catering to different speed and accuracy requirements. The EdgeYOLO-S, for example, achieves 53 FPS with notable accuracy.
-
Advanced Data Augmentation: The project incorporates improved data augmentation techniques during training, boosting the model's ability to handle diverse real-world scenarios effectively.
-
Enhanced Small and Medium Object Detection: The adoption of Relative Homography (RH) loss in the final training stages enhances the detection of small and medium-sized objects.
Model Performance and Downloads
The project makes various pre-trained models available for download, which are optimized for different resolutions and tasks. These models have been trained on well-known datasets like COCO2017 and VisDrone2019, and they are also benchmarked on these datasets to ensure high performance and reliability.
Deployment and Integration
EdgeYOLO offers comprehensive deployment support across different platforms and devices. Users can deploy the model using:
-
Docker Environment: Ready-to-use Docker images make it easy to train and deploy models on edge devices like RKNN, Horizon J5, and Jetson devices.
-
Tools and Frameworks Support: Integration with popular frameworks like TensorRT and ONNX simplifies the deployment process. There are extensive instructions and scripts provided for converting models to these formats.
Extensive Toolchain and Support
-
Annotation Tools: The use of SAM (Segment Anything Model) assisted labeling tools like SAMLabeler Pro enhances the efficiency of labeling tasks. This tool supports multi-person remote labeling, which is extremely useful for collaborative projects.
-
Pre-Processing and Training Scripts: The project provides in-depth scripts and guidelines for setting up datasets, training configurations, and evaluating model performance post-training.
Future Developments
EdgeYOLO is continuously evolving, with upcoming features focusing on ease of use, extended model variety for different tasks, user interface (UI)-supported inference, segmentation tasks with EdgeYOLO-mask, and streamlined pre-training methods.
Getting Started
To get started with EdgeYOLO, users can clone the repository and install dependencies using pip. For those incorporating TensorRT, further steps involve setting up the torch2trt and the TensorRT Development Toolkit. Users interested in Docker can import the EdgeYOLO Docker image and execute it to facilitate model training and deployment processes.
Evaluation and Export
The project supports detailed evaluation of model performance using evaluation scripts and provides options to export models to ONNX and TensorRT formats, simplifying integration with various inference environments.
Community and Citation
EdgeYOLO is open for community contributions and users are encouraged to cite the project in their research to promote collaborative development and improvement of the object detection capabilities of this platform.
For improvements and collaboration, contributors can download model weights, utilize comprehensive deployment examples, and interact with a broad array of tools to enhance their object detection projects on edge devices.