# Faster R-CNN
## 该项目主要是来自pytorch官方torchvision模块中的源码
* https://github.com/pytorch/vision/tree/master/torchvision/models/detection
## 环境配置:
* Python3.6/3.7/3.8
* Pytorch1.6(注意:必须是1.6.0或以上,因为使用官方提供的混合精度训练1.6.0后才支持)
* pycocotools(Linux:```pip install pycocotools```; Windows:```pip install pycocotools-windows```(不需要额外安装vs))
* Ubuntu或Centos(不建议Windows)
* 最好使用GPU训练
* 详细环境配置见```requirements.txt```
## 文件结构:
```
├── backbone: 特征提取网络,可以根据自己的要求选择
├── network_files: Faster R-CNN网络(包括Fast R-CNN以及RPN等模块)
├── train_utils: 训练验证相关模块(包括cocotools)
├── my_dataset.py: 自定义dataset用于读取VOC数据集
├── train_mobilenet.py: 以MobileNetV2做为backbone进行训练
├── train_resnet50_fpn.py: 以resnet50+FPN做为backbone进行训练
├── train_multi_GPU.py: 针对使用多GPU的用户使用
├── predict.py: 简易的预测脚本,使用训练好的权重进行预测测试
├── validation.py: 利用训练好的权重验证/测试数据的COCO指标,并生成record_mAP.txt文件
└── pascal_voc_classes.json: pascal_voc标签文件
```
## 预训练权重下载地址(下载后放入backbone文件夹中):
* 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
* 注意,下载的预训练权重记得要重命名,比如在train_resnet50_fpn.py中读取的是```fasterrcnn_resnet50_fpn_coco.pth```文件,
不是```fasterrcnn_resnet50_fpn_coco-258fb6c6.pth```
## 数据集,本例程使用的是PASCAL VOC2012数据集
* Pascal VOC2012 train/val数据集下载地址:http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
* 如果不了解数据集或者想使用自己的数据集进行训练,请参考我的bilibili:https://b23.tv/F1kSCK
* 使用ResNet50+FPN以及迁移学习在VOC2012数据集上得到的权重: 链接:https://pan.baidu.com/s/1ifilndFRtAV5RDZINSHj5w 提取码:dsz8
## 训练方法
* 确保提前准备好数据集
* 确保提前下载好对应预训练模型权重
* 若要训练mobilenetv2+fasterrcnn,直接使用train_mobilenet.py训练脚本
* 若要训练resnet50+fpn+fasterrcnn,直接使用train_resnet50_fpn.py训练脚本
* 若要使用多GPU训练,使用```python -m torch.distributed.launch --nproc_per_node=8 --use_env train_multi_GPU.py```指令,```nproc_per_node```参数为使用GPU数量
* 如果想指定使用哪些GPU设备可在指令前加上```CUDA_VISIBLE_DEVICES=0,3```(例如我只要使用设备中的第1块和第4块GPU设备)
* ```CUDA_VISIBLE_DEVICES=0,3 python -m torch.distributed.launch --nproc_per_node=2 --use_env train_multi_GPU.py```
## 注意事项
* 在使用训练脚本时,注意要将'--data-path'(VOC_root)设置为自己存放'VOCdevkit'文件夹所在的**根目录**
* 由于带有FPN结构的Faster RCNN很吃显存,如果GPU的显存不够(如果batch_size小于8的话)建议在create_model函数中使用默认的norm_layer,
即不传递norm_layer变量,默认去使用FrozenBatchNorm2d(即不会去更新参数的bn层),使用中发现效果也很好。
* 在使用预测脚本时,要将'train_weights'设置为你自己生成的权重路径。
* 使用validation文件时,注意确保你的验证集或者测试集中必须包含每个类别的目标,并且使用时只需要修改'--num-classes'、'--data-path'和'--weights'即可,其他代码尽量不要改动
## 如果对Faster RCNN原理不是很理解可参考我的bilibili
* https://b23.tv/sXcBSP
## 进一步了解该项目,以及对Faster RCNN代码的分析可参考我的bilibili
* https://b23.tv/HvMiDy
## Faster RCNN框架图
![Faster R-CNN](fasterRCNN.png)
没有合适的资源?快使用搜索试试~ 我知道了~
基于Faster-RCNN网络模型的车辆行人及交通信号目标检测算法python源码+数据集+项目报告+详细注释.zip
共89个文件
pyc:36个
py:30个
jpg:12个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 80 浏览量
2024-05-02
18:40:29
上传
评论
收藏 3.61MB ZIP 举报
温馨提示
基于Faster_RCNN网络模型的车辆、行人及交通信号目标检测算法python源码+数据集+项目报告+详细注释.zip ## 环境配置: * Python3.6/3.7/3.8 * Pytorch1.6(注意:必须是1.6.0或以上,因为使用官方提供的混合精度训练1.6.0后才支持) * pycocotools(Linux:```pip install pycocotools```; Windows:```pip install pycocotools-windows```(不需要额外安装vs)) * Ubuntu或Centos(不建议Windows) * 最好使用GPU训练 * 详细环境配置见```requirements.txt``` ## 文件结构: ``` ├── backbone: 特征提取网络,可以根据自己的要求选择 ├── network_files: Faster R-CNN网络(包括Fast R-CNN以及RPN等模块) ├── train_utils: 训练验证相关模块(包括cocotools) ├── my_dataset.py: 自定义dataset用于读取
资源推荐
资源详情
资源评论
收起资源包目录
基于Faster_RCNN网络模型的车辆行人及交通信号目标检测算法python源码+数据集+项目报告+详细注释.zip (89个子文件)
code
LICENSE.md 26B
pascal_voc_classes.json 22B
network_files
__init__.py 110B
rpn_function.py 30KB
image_list.py 856B
boxes.py 6KB
roi_head.py 18KB
det_utils.py 17KB
transform.py 12KB
__pycache__
faster_rcnn_framework.cpython-38.pyc 13KB
boxes.cpython-39.pyc 5KB
rpn_function.cpython-38.pyc 17KB
rpn_function.cpython-39.pyc 17KB
transform.cpython-39.pyc 9KB
roi_head.cpython-38.pyc 9KB
det_utils.cpython-39.pyc 10KB
boxes.cpython-38.pyc 5KB
__init__.cpython-39.pyc 274B
det_utils.cpython-38.pyc 10KB
transform.cpython-38.pyc 9KB
image_list.cpython-39.pyc 1KB
image_list.cpython-38.pyc 1KB
faster_rcnn_framework.cpython-39.pyc 13KB
roi_head.cpython-39.pyc 9KB
__init__.cpython-38.pyc 271B
faster_rcnn_framework.py 17KB
fasterRCNN.png 58KB
train_res50_fpn.py 9KB
predict.py 5KB
backbone
__init__.py 127B
resnet50_fpn_model.py 12KB
mobilenetv2_model.py 5KB
vgg_model.py 2KB
feature_pyramid_network.py 5KB
__pycache__
mobilenetv2_model.cpython-39.pyc 4KB
vgg_model.cpython-39.pyc 2KB
mobilenetv2_model.cpython-38.pyc 4KB
resnet50_fpn_model.cpython-39.pyc 10KB
feature_pyramid_network.cpython-39.pyc 4KB
__init__.cpython-39.pyc 286B
resnet50_fpn_model.cpython-38.pyc 10KB
vgg_model.cpython-38.pyc 2KB
feature_pyramid_network.cpython-38.pyc 4KB
__init__.cpython-38.pyc 283B
predict1.py 5KB
output
.gitignore 51B
save_weights
.gitignore 51B
result_faster.txt 253KB
transforms.py 1KB
my_dataset.py 8KB
split_data.py 1KB
draw_box_utils.py 5KB
train_multi_GPU.py 11KB
requirements.txt 102B
validation.py 8KB
test
.gitignore 51B
plot_curve.py 1KB
testdata
test1.jpg 50KB
test3.jpg 106KB
test1_result.jpg 64KB
test6.jpg 900KB
test5.jpg 900KB
test4.jpg 31KB
test4_result.jpg 41KB
test6_result.jpg 28KB
test2_result.jpg 28KB
test5_result.jpg 35KB
test3_result.jpg 119KB
test2.jpg 54KB
train_mobilenetv2.py 10KB
__pycache__
transforms.cpython-38.pyc 2KB
draw_box_utils.cpython-38.pyc 4KB
my_dataset.cpython-38.pyc 5KB
draw_box_utils.cpython-39.pyc 4KB
train_utils
__init__.py 250B
distributed_utils.py 11KB
group_by_aspect_ratio.py 8KB
train_eval_utils.py 4KB
__pycache__
distributed_utils.cpython-38.pyc 10KB
coco_utils.cpython-38.pyc 2KB
group_by_aspect_ratio.cpython-38.pyc 7KB
train_eval_utils.cpython-38.pyc 4KB
coco_eval.cpython-38.pyc 9KB
__init__.cpython-38.pyc 445B
coco_eval.py 12KB
coco_utils.py 2KB
项目报告.pdf 2.24MB
README.md 4KB
record_mAP.txt 2KB
共 89 条
- 1
资源评论
FL1768317420
- 粉丝: 4560
- 资源: 4789
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功