# 进度提示(已终结)
- [x] 完成README-工程代码部分:整体代码提交与测试
2018.6.6 完成代码提交
2018.6.6 完成代码测试:[6步即可训练与测试](#程序运行)
- [x] 完成README-[Faster模型详解](#模型框架图)部分-2018.6.7
- [x] 完成README-[Pytorch使用](#构造模型)部分
# 工程代码
这个程序是基于Pytorch实现Faster-RCNN功能。
参考代码链接:https://github.com/jwyang/faster-rcnn.pytorch.git
参考代码特点:代码健壮,功能齐全,使用方便,过于庞大不方便阅读学习
本代码目的:方便学习faster-rcnn细节,如果项目应用还是用参考代码比较好
本代码特点:在保证基础功能的前提下,对数据处理部分进行整理,对模型部分进行注释
### 开发环境
Ubuntu16.04(i5-7500 + GTX 1070Ti ) + python3.5 + Pytorch0.3.0
### 文件夹说明
1、Data:
picture_data/Annotations--存放图片标注的xml文件(手动存放)
picture_data/Images --存放用于训练与测试的图片(手动存放)
picture_data/cache --存放处理xml文件之后形成图片label信息文件(程序执行)
train.txt --存放训练图片序号(手动存放)
pretrained_model --用于存放VGG的预训练模型
2、Output --存放训练完成的模型(程序执行)
3、demo/images -- 存放测试图片
4、demo/result -- 存放测试结果
5、lib -- 模型各个部分的程序文件
### 程序运行
1.6步快速验证程序是否可行:
由于之前的反馈许多同学是在验证程序可行之后才开始读代码,可是准备数据集又不太方便
因此我提前做了一些准备工作方便同学快速验证程序的可行性,步骤如下:
1.下载代码到本地: git clone https://github.com/Liu-Yicheng/Faster-rcnn.git
2.安装程序需要的包:pip install -r requirements.txt
3.进入lib文件夹 :cd lib
编译程序需要用到的组件如nms与roi-pooling:sh make.sh
4.在下面的链接中下载VGG预训练模型,放入Data/pretrained_model文件夹
5.直接可以运行trainval.py(训练500次之后结束,loss值一般为0.1-0.15)
6.训练结束后直接可运行demo.py,在demo/result文件夹下可以看到它的预测结果
2.测试结果图如下:
|class|xj|xjyz|jyz|tgsr|xlxj|dwq|xzsr|cls|mAP|
|---|---|---|---|---|---|---|---|---|---
|AP|0.44|0.87|0.78|0.71|0.87|0.68|0.78|0.65|0.738
![result](https://github.com/Liu-Yicheng/Faster-rcnn/raw/master/Output/result.png)
3.程序使用具体流程:---------------------训练过程-------------------------
A.将需要训练与测试的图片放入Data/picture_data/Images文件夹
将XML文件放入Data/picture_data/Annotation文件夹
(当数据集改变,需要删除Data/picture_data/cache里面的文件)
B.训练图片的编号写入train.txt
C.下载VGG预训练模型,放入Data/pretrained_model文件夹。
权重下载地址:[Dropbox](https://www.dropbox.com/s/s3brpk0bdq60nyb/vgg16_caffe.pth?dl=0) [VT Server](https://filebox.ece.vt.edu/~jw2yang/faster-rcnn/pretrained-base-models/vgg16_caffe.pth)
[百度云](https://pan.baidu.com/s/1nHezTm6xKXjHYZXKHAl3KQ) 密码:or0m
D.针对自己的项目修改traincal.py文件中的参数(如果用命令行的就输入参数)
E.修改Data/pascal.py的141行,类别为用户的数据集类别
F.运行trainval.py 开始训练
----------------------测试过程---------------------------
A.修改demo中的139行改为你训练之后的模型名称
B.将测试图片放入demo/images文件夹
C.运行demo.py进行测试,结果在demo/result中查看
3.本代码方便学习faster内部细节与整个流程,但是用于项目中还是用参考代码
参考代码实现了多个模型与roi-crop,并且有计算map的函数等等,比较完备
# Faster-Rcnn模型详解
### 模型框架图
![picture1](https://github.com/Liu-Yicheng/Faster-rcnn/raw/master/Output/Faster.jpg)
faster组件说明:
______________________________________
1.VGG16convrelu1--convrelu5(lib/model/faster_rcnn/vgg16.py):
输入:图片(input_image)
过程:图片输入多个卷积层池化层
输出:图片的特征图(H * W * 512)
______________________________________
2.generate_anchor(lib/model/rpn/generate_anchor.py):
输入:默认参数(base_size = 16, ratios =[0.5, 1, 2],scales = [8,16,32])
过程:step1.构造一个参考ref_anchor[0,0,15,15]
step2.保持ref_anchor的中心点不变,将ref_anchor的面积按[0.5,1,2]缩放
得到3种anchor:[-3.5,2,18.5,13.][0,0,15,15,][2.5,-3,12.5,18]
step3.将step2得到的3种anchor保持中心点不变,各自的边长缩放[8,16,32]倍
如此得到9种anchor。
输出:_anchors:9个中心点一致,面积不相同的anchor
______________________________________
3.anchor_target_layer(lib/model/rpn/anchor_target_layer.py):
输入:feature_map(H*W*512),9种_anchor
过程:step1.根据feature_map的面积(H*W),以上面每一个点为anchor中心,产生9个anchor
最后得到H*W*9个anchor,这些anchor的位置是在输入图像上的位置
step2.在这些anchor中,只保留4个顶点都在图像内的anchor
输出:anchors:H*W*9个anchor - 在图像外部的anchor
______________________________________
4.bbox_overlaps_batch(lib/model/rpn/bbox_transfrom.py):
输入:3输出的anchor,gt_boxes
过程:生成anchor与gt_boxes的iou矩阵overlaps。
第i行第j列为第i个anchor与第j个gt_boxes的IOU值
输出:overlaps
______________________________________
overlaps->label(lib/model/rpn/anchor_target_layer.py):
输入:overlaps
过程:这个主要是通过anchor与gt的IOU矩阵确定anchor是正样本还是负样本。
step1.符合两类为正样本:若一个anchor与某个gt的IOU>0.7,为正样本。
与对gt来说,与它IOU最大的anchor为正样本。
step2.一个anchor与所有的gt的IOU<0.3,则这个anchor为负样本。
step3.统计前面的正样本数量与负样本。若正样本数量>128个,超出的部分
则变为非正非负样本,不参与训练,剩下的负样本控制在128个。若正
样本数量<128个,则选负样本使得正样本与负样本总和为256。
最后得到所有的anchor的labels值
输出:labels(代表生成的anchor里有无目标物体,分数为0,1,-1:1代表有物体,
0代表没有物体,-1代表不参与训练)
___________________________________�
没有合适的资源?快使用搜索试试~ 我知道了~
Faster-rcnn:我对Faster-RCNN(Pytorch)的实现
共101个文件
py:38个
pyc:33个
h:5个
需积分: 50 28 下载量 138 浏览量
2021-05-14
20:28:21
上传
评论 2
收藏 1.46MB ZIP 举报
温馨提示
进度提示(已终结) 完成README-工程代码部分:整体代码提交与测试 2018.6.6 完成代码提交 2018.6.6 完成代码测试: 完成README-部分-2018.6.7 完成README-部分 工程代码 这个程序是基于Pytorch实现Faster-RCNN功能。 参考代码链接: 参考代码特点:代码健壮,功能齐全,使用方便,过于庞大不方便阅读学习 本代码目的:方便学习faster-rcnn细节,如果项目应用还是用参考代码比较好 本代码特点:在保证基础功能的前提下,对数据处理部分进行整理,对模型部分进行注释 开发环境 Ubuntu16.04(i5-7500 + GTX 1070Ti ) + python3.5 + Pytorch0.3.0 文件夹说明 1、Data: picture_data/Annotations--存放图片标注的xml文件(手动存放)
资源推荐
资源详情
资源评论
收起资源包目录
Faster-rcnn:我对Faster-RCNN(Pytorch)的实现 (101个子文件)
1 2B
roi_pooling.c 4KB
roi_pooling_cuda.c 3KB
nms_cuda.c 569B
roi_pooling_kernel.cu 9KB
nms_cuda_kernel.cu 5KB
nms_kernel.cu 5KB
.gitignore 15B
.gitignore 15B
roi_pooling_kernel.h 767B
roi_pooling_cuda.h 420B
nms_cuda.h 272B
nms_cuda_kernel.h 206B
roi_pooling.h 178B
000001_det.jpg 233KB
Faster.jpg 196KB
000001.jpg 128KB
000001.jpg 128KB
README.md 19KB
roi_pooling.cu.o 95KB
nms_cuda_kernel.cu.o 57KB
result.png 1.01MB
batch_loader.py 12KB
config.py 12KB
trainval_net.py 11KB
demo.py 11KB
anchor_target_layer.py 10KB
proposal_target_layer_cascade.py 9KB
pascal.py 8KB
bbox_transform.py 8KB
proposal_layer.py 6KB
net_utils.py 6KB
rpn.py 5KB
faster_rcnn.py 5KB
setup.py 5KB
generate_anchors.py 3KB
logger.py 2KB
vgg16.py 2KB
roi_pool.py 2KB
blob.py 2KB
build.py 875B
nms_cpu.py 864B
build.py 850B
nms_wrapper.py 791B
roi_pool.py 524B
__init__.py 385B
__init__.py 377B
nms_gpu.py 299B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
__init__.py 0B
resnet.cpython-35.pyc 10KB
pascal.cpython-35.pyc 9KB
batch_loader.cpython-35.pyc 8KB
anchor_target_layer.cpython-35.pyc 7KB
bbox_transform.cpython-35.pyc 7KB
net_utils.cpython-35.pyc 6KB
proposal_target_layer_cascade.cpython-35.pyc 6KB
config.cpython-35.pyc 6KB
faster_rcnn.cpython-35.pyc 4KB
proposal_layer.cpython-35.pyc 4KB
rpn.cpython-35.pyc 4KB
generate_anchors.cpython-35.pyc 3KB
logger.cpython-35.pyc 2KB
vgg16.cpython-35.pyc 2KB
roi_pool.cpython-35.pyc 2KB
blob.cpython-35.pyc 2KB
nms_cpu.cpython-35.pyc 1KB
roi_pool.cpython-35.pyc 943B
nms_wrapper.cpython-35.pyc 655B
__init__.cpython-35.pyc 640B
__init__.cpython-35.pyc 616B
nms_gpu.cpython-35.pyc 610B
__init__.cpython-35.pyc 180B
__init__.cpython-35.pyc 178B
__init__.cpython-35.pyc 175B
__init__.cpython-35.pyc 170B
__init__.cpython-35.pyc 170B
__init__.cpython-35.pyc 167B
__init__.cpython-35.pyc 164B
__init__.cpython-35.pyc 162B
__init__.cpython-35.pyc 162B
__init__.cpython-35.pyc 158B
__init__.cpython-35.pyc 149B
bbox.pyx 3KB
make.sh 830B
make.sh 209B
_roi_pooling.so 152KB
requirements.txt 64B
train.txt 7B
000001.xml 2KB
共 101 条
- 1
- 2
资源评论
林海靖
- 粉丝: 61
- 资源: 4728
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功