Skip to content

pytorch实现的Faster-RCNN模型,参考了许多人写的代码积累起来的。

Notifications You must be signed in to change notification settings

xiguanlezz/Faster-RCNN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Faster-RCNN

pytorch实现的Faster-RCNN模型,参考了许多人写的代码积累起来的

环境:

pytorch版本为1.5    python版本为python3.7(只要是3问题不大)    内存最好32G, 数据集的那个类用了空间换时间的思想, 本来需要频繁IO装载图片张量, 我写的是直接一次性全拉到内存, IO次数大大减少, 缩短了训练单张图片的时间。


代码结构:

  checkpoints:存放训练时每个epoch得到的权重(基本上一个权重都有1G多)的包。
  configs:存放配置文件的包。
  nets:网络结构的包。
  pre_model_weights:存放预训练的vgg16权重的包。
  show_result:预测时候生成图片保存的包。
  utils:一些工具函数。
  kitti:kitti数据集。

博客地址:

https://blog.csdn.net/cj1561435010/article/details/106649040

https://blog.csdn.net/cj1561435010/article/details/106958266


数据集约定格式:

训练所需要的数据集格式为VOC格式。

VOCx
--Annotations
   --*.xml(存放总训练集中各个图片的标注, 图片名和标注文件名一一对应)
--ImageSets
   --Main
     --train.txt(总训练集中抽出一部分作为训练集的txt)
     --val.txt(总训练集中抽出一部分作为验证集的txt)
     --trainval.txt(总训练集中抽出一部分作为训练和验证集的txt)
     --train_test.txt(总训练集中抽出一部分作为测试集的txt)
     --test.txt(真正测试集的txt)
--JPEGImages
   --resize_test(真正测试集中将最小边放缩到600px之后的图片路径)
   --resize_train_test(总训练集中抽出一部分作为测试集中将最小边放缩到600px之后的图片路径)
   --resize_trainval(总训练集中抽出一部分作为训练和验证集中将最小边放缩到600px之后的图片路径)
   --testing(原始的真正测试集图片路径)
   --training(原始的总训练集图片路径)


步骤:

1、写入训练的txt文件
   修改configs包下面的config文件中三个属性,如下图:
image

   然后根据自己的数据集的标注文件是怎么个形式选择执行data包下面process_data.py文件中的两个方法。

   我这里写了两个方法:
      ① 方法后缀名为_byTXT是根据txt标注生成txt文件同时生成xml标注, 这里注意要修改train_label_path为自己数据集中txt标注文件的绝对路径(process_data.py文件的最上方);
      ② 后缀名为_byXML是根据xml标注生成txt文件。

2、修改配置文件中两个代表类名属性(一个是元组,一个是列表)以及class_num(总类别数, 而且对应类别的下标都是从1开始, 0表示背景), 都改为自己数据集中的类别即可。
image

3、根据机子来修改下面的两个配置, 一个是vgg16预训练权重的路径, 另一个是device(再GPU上跑还是CPU上跑)。
image

4、先根据下图修改配置, 再点击nets包下面的train.py文件即开始训练。
image

5、训练完成之后, 先根据下图修改配置, 再点击根目录下面的show_result.py文件即开始批量保存预测后的结果到show_result的文件夹下面。
image

About

pytorch实现的Faster-RCNN模型,参考了许多人写的代码积累起来的。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages