Faster R-CNN训练自己的模型

一、安装

(1)首先anaconda创建虚拟环境: conda create -n faster(自定义) python=3.8

(2)activate faster

(3)pip 安装所需要的环境:

  • 需要先查看自己的navidia,我这里是12.0但是安装的pytorch的链接是:

Previous PyTorch Versions | PyTorch

我选择的是:

pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

二、github下载——下载的是作者的代码,不是我写的

GitHub - bubbliiiing/faster-rcnn-pytorch: 这是一个faster-rcnn的pytorch实现的库,可以利用voc数据集格式的数据进行训练。

三、修改代码

在该作者的github上面继续下载好pth的四个模型。

直接执行predict.py代码即可查看运行结果。

四、跑模型——训练自己的数据集,前面三个步骤都是准备,能完成第三步骤说明环境配置ok

这个txt怎么来的呢?使用下面的代码放在根目录即可完成运行,如果有错,也是default路径有问题修改即可。

# coding:utf-8

import os
import random
import argparse

parser = argparse.ArgumentParser()
#xml文件的地址,根据自己的数据进行修改 xml一般存放在Annotations下
parser.add_argument('--xml_path', default='VOCdevkit/VOC2007/Annotations', type=str, help='input xml label path')
#数据集的划分,地址选择自己数据下的ImageSets/Main
parser.add_argument('--txt_path', default='VOCdevkit/VOC2007/ImageSets/Main', type=str, help='output txt label path')
opt = parser.parse_args()

trainval_percent = 1.0  # 训练集和验证集所占比例。 这里没有划分测试集
train_percent = 0.7     # 训练集所占比例,可自己进行调整
xmlfilepath = opt.xml_path
txtsavepath = opt.txt_path
total_xml = os.listdir(xmlfilepath)
if not os.path.exists(txtsavepath):
    os.makedirs(txtsavepath)

num = len(total_xml)
list_index = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list_index, tv)
train = random.sample(trainval, tr)

file_trainval = open(txtsavepath + '/trainval.txt', 'w')
file_test = open(txtsavepath + '/test.txt', 'w')
file_train = open(txtsavepath + '/train.txt', 'w')
file_val = open(txtsavepath + '/val.txt', 'w')

for i in list_index:
    name = total_xml[i][:-4] + '\n'
    if i in trainval:
        file_trainval.write(name)
        if i in train:
            file_train.write(name)
        else:
            file_val.write(name)
    else:
        file_test.write(name)

file_trainval.close()
file_train.close()
file_val.close()
file_test.close()

其中Annotations里面放的是xml文件,JPEGImages里面放的是jpg图片。

接下来就比较关键了,需要创建一个自己的txt,也就是类别信息

代码是:

随后修改voc_annotation.py的代码——这个我不太懂,但是我一开始是运行的0,然后运行1,然后运行2.

这里train.py我的电脑带不动,所以都改成了1,是可以跑的。模型我用的默认的resnet。

五、运行结果

结果还没跑出来,还在努力

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
Fast R-CNN是一种用于目标检测的深度学习模型,而Faster R-CNN是在Fast R-CNN的基础上进一步改进的模型Faster R-CNN引入了Region Proposal Network(RPN),使得模型可以自动生成候选区域,从而减少了手动选择候选区域的工作量。 要训练Faster R-CNN模型,需要以下步骤: 1. 准备数据集:首先,需要准备一个包含标注信息的数据集,其中包括图像和对应的目标边界框。可以使用标注工具,如LabelImg,来标注图像。 2. 配置网络:Faster R-CNN模型的网络结构由两部分组成:特征提取网络和目标检测网络。特征提取网络通常使用预训练的卷积神经网络(如VGG16、ResNet等),而目标检测网络包括RPN和Fast R-CNN。可以使用现有的深度学习框架(如TensorFlow、PyTorch)来配置网络。 3. 训练RPN:首先,使用标注的数据集训练RPN网络,以生成候选区域。RPN网络将输入图像映射到特征图,并在特征图上生成候选区域。 4. 训练Fast R-CNN:使用生成的候选区域和标注的目标边界框,训练Fast R-CNN网络。Fast R-CNN网络将输入图像和候选区域映射到特征向量,并使用这些特征向量进行目标分类和边界框回归。 5. 调参:为了获得最佳的检测性能,需要仔细调整网络的超参数和训练策略。可以尝试不同的学习率、批量大小、迭代次数等参数,并根据验证集的性能进行调整。 6. 测试和评估:在训练完成后,可以使用训练好的模型对新的图像进行目标检测。可以使用评估指标,如准确率、召回率和平均精度均值(mAP),来评估模型的性能。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值