项目简介
本项目基于PyTorch框架实现了Faster R-CNN目标检测算法。借助PyTorch的torchvision模块源码,利用预训练权重和COCO数据集完成模型的训练与验证,为目标检测任务提供了高效、灵活且可扩展的解决方案。
项目的主要特性和功能
- 环境兼容性好:支持Python 3.6 - 3.8版本,要求Pytorch 1.7.1及以上,适配pycocotools库,推荐使用GPU加速训练。
- 多样模型选择:提供如MobileNetV2、ResNet50 + FPN等多种预训练模型作为特征提取器,可按需灵活选用。
- 数据处理便捷:具备数据加载、预处理和标准化功能,支持COCO数据集格式,也允许自定义数据集处理。
- 训练方式灵活:有单GPU和多GPU分布式训练脚本,可自定义训练参数和评估指标。
- 精准性能评估:采用COCO API评估器,能计算平均精度(AP)、平均召回率(AR)等目标检测性能指标。
- 预测可视化:提供预测脚本,可加载训练好的权重进行预测并可视化结果。
安装使用步骤
1. 环境准备
已下载项目源码后,按照requirements.txt
的要求,安装Python 3.6 - 3.8、Pytorch 1.7.1及以上版本和pycocotools库。若使用Linux系统,执行pip install pycocotools
;若为Windows系统,执行pip install pycocotools - windows
。
2. 数据集准备
若使用Pascal VOC2012数据集,从http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11 - May - 2012.tar下载并解压。若使用自定义数据集,需按项目要求组织数据格式。
3. 预训练权重下载
从指定链接下载预训练权重,如MobileNetV2 backbone(https://download.pytorch.org/models/mobilenet_v2 - b0353104.pth)、ResNet50 + FPN backbone(https://download.pytorch.org/models/fasterrcnn_resnet50_fpn_coco - 258fb6c6.pth),下载后放入backbone
文件夹并按要求重命名。
4. 训练与验证
- 若训练mobilenetv2 + fasterrcnn,运行
train_mobilenet.py
。 - 若训练resnet50 + fpn + fasterrcnn,运行
train_resnet50_fpn.py
。 - 若使用多GPU训练,执行
CUDA_VISIBLE_DEVICES=0,3 python - m torch.distributed.launch --nproc_per_node=2 --use_env train_multi_GPU.py
(示例为使用第1块和第4块GPU)。注意运行训练脚本时,将--data - path
设置为存放VOCdevkit
文件夹的根目录。
5. 预测与可视化
运行predict.py
,将train_weights
设置为自己生成的权重路径,进行预测并可视化结果。
6. 性能评估
运行validation.py
,修改--num - classes
、--data - path
和--weights - path
参数,计算目标检测性能指标并生成record_mAP.txt
文件。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】