Faster R-CNN+FPN+ResNet-101项目。、


先说下自己的环境:ubuntu18+python3.6+torch0.4.1+RTX2080Ti
哎,硬件更新了,以前的代码跑起来可费劲了
还有这个环境 cuda9.0+cudnn7.0
github项目地址:https://hub.fastgit.org/potterhsu/easy-fpn.pytorch
要是打不开,搜索最后的名字

环境搭建

RTX2080Ti对应的arch是sm_75,其他卡需要自己查清楚再对应修改
遇到gcc编译器报错,试下在makefile等脚本文件添加下面两句:

export CXXFLAGS="-std=c++11"
export CFLAGS="-std=c99"

同时看看环境对不对:

nvcc -V

在这里插入图片描述
本显卡最低要求9.0,其他卡的支持情况自己要对应好。
然后就是按照作者的操作,在下面这一步卡了很久,搭完合适的环境就成功了
在这里插入图片描述
这里用的数据集名字是voc2007
在训练前得调好图片路径格式

这个工程依赖xml文件中的filename标签读取图片文件,改成依赖xml文件名读取图片的方式吧,在dataset/voc_2007.py中line 96处,image变量的值改为如下:

image = Image.open(os.path.join(self._path_to_jpeg_images_dir, image_id  +'.jpg' )     )

训练集的标签值修改,在voc_2007.py line 35处,
以及最后一行,返回数字为类别数加1,如数据集中有8个类别,return 9

进入工程下的data目录下执行该文件:
给看下data文件夹下的目录结构吧:
在这里插入图片描述
没有train.txt等文件的,新建voc2yolo4.py进行转换,下面放这个文件的内容,来自github大佬https://hub.fastgit.org/bubbliiiing

#----------------------------------------------------------------------#

#   验证集的划分在train.py代码里面进行

#   test.txt和val.txt里面没有内容是正常的。训练不会使用到。

#----------------------------------------------------------------------#

'''

#--------------------------------注意----------------------------------#

如果在pycharm中运行时提示:

FileNotFoundError: [WinError 3] 系统找不到指定的路径。: './VOCdevkit/VOC2007/Annotations'

这是pycharm运行目录的问题,最简单的方法是将该文件复制到根目录后运行。

可以查询一下相对目录和根目录的概念。在VSCODE中没有这个问题。

#--------------------------------注意----------------------------------#

'''

import os

import random 

random.seed(0)



xmlfilepath=r'./VOCdevkit/VOC2007/Annotations'

saveBasePath=r"./VOCdevkit/VOC2007/ImageSets/Main/"

 

#----------------------------------------------------------------------#

#   想要增加测试集修改trainval_percent

#   train_percent不需要修改

#----------------------------------------------------------------------#

trainval_percent= 0.7#1   0.7

train_percent=1



temp_xml = os.listdir(xmlfilepath)

total_xml = []

for xml in temp_xml:

    if xml.endswith(".xml"):

        total_xml.append(xml)



num=len(total_xml)  

list=range(num)  

tv=int(num*trainval_percent)  

tr=int(tv*train_percent)  

trainval= random.sample(list,tv)  

train=random.sample(trainval,tr)  

 

print("train and val size",tv)

print("traub suze",tr)

ftrainval = open(os.path.join(saveBasePath,'trainval.txt'), 'w')  

ftest = open(os.path.join(saveBasePath,'test.txt'), 'w')  

ftrain = open(os.path.join(saveBasePath,'train.txt'), 'w')  

fval = open(os.path.join(saveBasePath,'val.txt'), 'w')  

 

for i  in list:  

    name=total_xml[i][:-4]+  '\n'  #+ '.jpg'

    if i in trainval:  

        ftrainval.write(   name )  

        if i in train:  

            ftrain.write(  name  )  

        else:  

            fval.write(  name  )  

    else:  

        ftest.write( name  )  

  

ftrainval.close()  

ftrain.close()  

fval.close()  

ftest .close()


执行转换

python3 VOCdevkit/VOC2007/voc2yolo4.py

开始训练

python3 train.py -s=voc2007 -b=resnet101

跑起来了呢
在这里插入图片描述

二级目录

三级目录

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: b'fasterrcnn_resnet50_fpn\xe7\xbb\x93\xe6\x9e\x84' 是一个使用 Faster R-CNN 算法和 ResNet50 FPN(Feature Pyramid Network)结构进行目标检测的模型。 ### 回答2: Fast R-CNN是目标检测中使用非常广泛的算法,但是由于使用了滑动窗口法来提取区域,导致其速度较慢。为了提高速度,Faster R-CNN加入了RPN(Region Proposal Network)来替代原来的滑动窗口法,实现了快速的区域提取。Fast R-CNNFaster R-CNN都是单阶段目标检测算法,它们并没有对特征图进行进一步的处理,使得精度略有欠缺。 为了提高目标检测精度,ResNet和FPN(Feature Pyramid Network)被加入到Fast R-CNNFaster R-CNN中。ResNet主要是通过使用残差模块来加强特征的传递,避免了深度网络中的梯度消失和梯度爆炸问题。FPN则是通过设计特殊的网络结构,将不同层次的特征图进行融合,实现了多尺度特征提取。这样,就可以更全面、准确地对目标进行检测。 在Fast R-CNNFaster R-CNN的基础上,fasterrcnn_resnet50_fpn结构在ResNet和FPN的基础上进行了进一步的优化。具体来说,它通过使用ResNet50作为骨干网络,将Conv1~Conv4的特征图输出给FPN来进行多尺度特征融合,最后通过ROI Pooling输出RoI特征图,实现目标检测。相比于原来的Fast R-CNNFaster R-CNNfasterrcnn_resnet50_fpn结构既提高了检测精度,又实现了快速的目标检测。它在对标准数据集上进行的测试表明,其目标检测精度已经接近于当前最优算法的水平。 ### 回答3: fasterrcnn_resnet50_fpn是一种常用的目标检测模型,是基于深度学习的Faster R-CNN算法在ResNet50和FPN架构的基础上进行改进得到的。它的主要特点是能够高效地检测出图片中出现的多个目标物体,具有较高的准确度和鲁棒性。 fasterrcnn_resnet50_fpn的架构主要分为两个阶段:提取特征和目标检测。 在特征提取阶段,使用ResNet50网络对输入图片进行特征提取,得到四个不同尺度的特征图,即C2、C3、C4、C5。然后使用FPN网络将这四个特征图进行合并,得到具有多种尺度信息的融合特征图。这样可以在不同的目标大小和尺度下都能够检测到目标。 在目标检测阶段,通过对融合特征图进行RoI(region of interest)对齐和裁剪,得到感兴趣的特征图,并用分类和回归器对RoI进行分类和位置推导。其中分类器用于判断RoI是否包含目标,回归器用于得到目标的位置和大小信息。 fasterrcnn_resnet50_fpn的优点在于,它可以快速准确地检测多种目标,因为它采用的是多阶段的特征提取和融合,使得网络能够较好地适应不同尺度目标物体。优化的RoI对齐和裁剪方式可以更好地保留目标的细节信息,从而提高检测准确度。同时,该模型在计算效率和精度上,也具有不错的平衡性,适用于多种计算环境。缺点是模型过于复杂,需要较多的计算、存储和优化成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值