EdgeYOLO项目介绍
概述
EdgeYOLO是一个专注于在嵌入式设备上实现实时物体检测的开源项目。它采用无锚点设计,目标是在能耗较低的边缘设备上实现高效的物体检测。EdgeYOLO在Nvidia Jetson AGX Xavier等嵌入式设备上取得了显著性能,实测在COCO2017数据集上达到了每秒34帧(FPS),平均精度(AP)为50.6%,而在VisDrone2019数据集上达到了25.9%的AP。EdgeYOLO-S模型更小且性能更佳,每秒可达53帧,AP达到44.1%,在P5小型模型中表现尤为优异。
项目特点
- 高效的数据增强:在训练过程中,EdgeYOLO提供了更有效的数据增强策略,有助于提高检测精度。
- 针对小型和中型目标的优化:通过在训练后期使用RH损失函数,EdgeYOLO增强了对小型和中型物体的检测性能。
- 边缘友好设计:EdgeYOLO设计优先考虑嵌入式设备的限制,使其能够在资源有限的环境中有效运行。
近期更新
- 支持各种模型导出:EdgeYOLO新增支持将ONNX模型导出为适用于华为昇腾芯片设备的OM模型,以及相关的C++部署代码。
- 容器化部署:项目引入了Docker环境,便于在不同的边缘设备上训练和导出模型,例如RKNN、Horizon J5、Jetson等。
- 多种模型配置:支持TensorRT、RKNN等多种形式的部署代码,也包含用于COCO2017和VisDrone2019数据集的预训练模型下载。
常用工具
项目推荐使用Segment Anything Model(SAM)辅助的图像标注工具来提高标注效率,尤其在多人同时远程标注任务中效果明显。
数据集支持
EdgeYOLO支持多种数据集格式,包括COCO、YOLO、VOC、VisDrone DOTA等。特别是,可以直接利用已存在的YOLO格式的数据集,或从VisDrone2019-DET数据集中支持COCO格式的数据。
简易使用指南
- 环境设置:使用Git克隆项目,安装依赖包,支持使用tensorrt时需额外配置torch2trt。
- 推理与训练:通过提供的脚本,用户可以轻松地在自定义数据集上进行模型推理和训练。项目还支持通过docker进行一键部署,以便在没有桌面环境的设备上使用。
模型性能与应用
EdgeYOLO在多个数据集上表现出色,适用于视频流和图像文件等多种输入源,用户可以根据需求设置输入大小、置信度阈值等参数。同时,项目提供了训练和评估模型的方法指南和脚本,方便用户进行模型的微调和优化。
EdgeYOLO项目旨在为边缘设备上的实时目标检测提供强大且易用的解决方案,是在资源受限环境中实现高精度检测的有力工具。无论是科研人员还是技术应用者,都可以在各种场景下利用EdgeYOLO实现高效的物体检测。