NanoDet目标检测模型训练COCO数据集实践

本文介绍了如何在资源受限的环境中搭建环境,下载并使用Nanodet模型,处理COCO数据集,解决安装和配置过程中遇到的常见问题,如版本兼容性、内存管理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

nanodet是一个实时目标检测模型,模型小且轻量化,专门设计用于在计算资源有限的硬件设备上。这个模型通常被优化,以在资源受限的环境中快速而准确地检测图像或视频帧中的对象。

一、环境搭建

系统:服务器
编程语言:python=3.8
开发环境:Anaconda3
深度学习框架:pytorch1.9.0+cu11.6
开发代码IDE:vscode

在搭建环境时首先要查看nanodet文件夹下的requirement.txt文件,根据要求选择python、cuda、pytorch和pytorch-lightning对应版本

在这里插入图片描述

二、nanodet模型下载

1、源码官方下载地址:https://github.com/RangiLyu/nanodet

在这里插入图片描述

2、在nanodet目录下创建文件夹

(1)coco2017:存放数据集、验证集、测试集和json标注文件
(2)workspace:存放训练好后的模型权重文件
(3)config:存放训练和测试用的配置文件
(4)tools:存放训练用的主文件

在这里插入图片描述

二、COCO数据集

COCO数据集是一个常用的数据集,包括目标检测、分割等。COCO数据集包括训练集、验证集和测试集,超过33万张图像,标注过的图像超过20万张,150万个对象实例,80个目标类别,91个材料类别,每张图片有5段情景描述,对25万人进行了关键点标注。

1、数据集下载地址:http://cocodataset.org/

在这里插入图片描述
2、将下载的数据集放置coco2017文件夹中

在这里插入图片描述annotations:对应标注文件夹,json文件
test2017:测试图像文件夹
train2017:训练图像文件夹
val:验证图像文件夹

三、安装nanodet

1、创建虚拟环境并进入

这里创建了一个名为pytorch的虚拟环境,后续安装库文件、执行操作都基于这个环境

conda create -n pytorch python=3.8

在这里插入图片描述

2、安装setup.py文件

在虚拟环境下,进入到nanodet目录下

cd nanodet
ls
python setup.py develop

在这里插入图片描述
出现以下页面表示成功

在这里插入图片描述

四、修改配置文件

(1)参考:

深度学习:使用nanodet训练自己制作的数据集并测试模型,通俗易懂,适合小白

五、出现的报错

1、No module named ’torch._six‘

这里是pytorch版本过高,我使用的版本是2.0.0

解决方法:

(1)卸载pytorch2.0.0,安装1.12.0

pip uninstall pytorch   #卸载原有版本
pip install torch-1.12.0+cu116-cp38-cp38-linux_x86_64.whl  #安装torch低版本
pip install torchvision-0.13.0+cu116-cp38-cp38-linux_x86_64.whl  #安装与torch对应的torchvision

pytorch下载地址:https://download.pytorch.org/whl/torch_stable.html

(2)替换代码中调用torch._six的部分(不建议)

详细见:解决No module named ’torch._six‘问题

2、ValueError: You selected an invalid strategy name: strategy=None. It must be either a string or an instance of pytorch_lightning.strategies.Strategy. Example choices: auto, ddp, ddp_spawn, deepspe

这里对nanodet\tools\trains.py代码进行更改,将None换成 “ddp”

在这里插入图片描述

3、NotImplementedError: Support for training_epoch_end has been removed in v2.0.0. TrainingTask implements this method

这里是pytorch_lightning的版本过高,刚开始使用pip install pytorch_lightning 安装了最新版本

解决方法:安装1.9.0版本

pip uninstall pytorch_lightning
pip install pytorch_lightning==1.9.0

4、RuntimeError: CUDA out of memory. Tried to allocate 50.00 MiB (GPU 0; 4.00 GiB total capacity; 682.90 MiB already allocated; 1.62 GiB free; 768.00 MiB reserved in total by PyTorch)

这种情况是是GPU内存不够

解决方法:在nanodet/config/legacy_v0.x_configs路径下,,将nanodet-m.yml文件中的batchsize_per_gpu的值改小

在这里插入图片描述

六、训练数据集

(1)虚拟环境下,终端中输入以下命令:

cd nanodet
python tools/train.py ./config/legacy_v0.x_configs/nanodet-m.yml

在这里插入图片描述训练好的模型权重文件会被存放到根目录下的workspace文件夹中

(2)训练结束后对训练过程进行可视化

tensorboard --logdir ./

在这里插入图片描述

### 使用 NanoDet 框架训练自定义数据集 #### 数据准备 对于数据预处理,目标是将数据集转换成NanoDet模型可接受的格式。具体措施包括: - **数据增强**:采用多种手段如旋转、翻转、裁剪来扩充数据集并减少过拟合风险[^3]。 - **标注格式转换**:确保每份标注文件遵循YOLO格式规定,记录对象类别ID及其边界框坐标信息。 - **数据集划分**:合理分配原始图像资源至训练集、验证集以及测试集中,以便于不同阶段评估模型表现。 #### 配置文件修改 编辑位于`config/nanodet-m5.yml`下的配置文档,指定如下参数以适配个人项目需求: - `train`: 定义训练样本所在目录位置为`datasets/train`。 - `val`: 设定验证图片存储地址为`datasets/val`。 - `num_classes`: 调整此数值反映所识别物体类别的总数目,在本案例中设定为10代表有十种不同的医疗设备待分类[^1]。 ```yaml # config/nanodet-m5.yml 示例片段 train: datasets/train val: datasets/val num_classes: 10 # 基于实际应用调整该值 ``` 此外,整个工作空间结构应包含四个主要部分:COCO2017风格的数据集存放区(`coco2017`);保存已训练好的权重文件夹(`workspace`);管理实验所需的各种设置项(`config`);还有执行核心操作如训练流程控制等功能模块所在的工具箱(`tools`)[^2]。 #### 训练过程最佳实践 启动训练之前,请确认所有依赖库均已正确安装,并熟悉命令行接口CLI的操作方式。通常情况下,通过调用`tools/train.py`脚本来触发完整的迭代学习周期。期间建议定期监控损失函数变化趋势图及其他关键指标的表现情况,及时调整超参直至获得满意的结果为止。 ```bash python tools/train.py --cfg_path=config/nanodet-m5.yml ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值