pytorch版训练retinanet-csv数据集
首先得制作好自己的数据集
我的数据是来自比赛的一个数据集 里面就是voc格式的数据集
所以 我只需要将VOC数据集转化为csv格式就可以 如果直接是图片 要制作VOC数据集的 可以看我的另一篇关于yolov3的训练 里面有介绍
1 制作自己的数据集 代码如下
import os
import xml.etree.ElementTree as ET
import random
import math
import argparsedef parse_args():parser = argparse.ArgumentParser()parser.add_argument('-i', '--indir', type=str)parser.add_argument('-p', '--percent', type=float, default=0.05)parser.add_argument('-t', '--train', type=str, default='train.csv')parser.add_argument('-v', '--val', type=str, default='val.csv')parser.add_argument('-c', '--classes', type=str, default='class.csv')args = parser.parse_args()return args#获取特定后缀名的文件列表
def get_file_index(indir, postfix):file_list = []for root, dirs, files in os.walk(indir):for name in files:if postfix in name:file_list.append(os.path.join(root, name))return file_list#写入标注信息
def convert_annotation(csv, address_list):cls_list = []with open(csv, 'w') as f:for i, address in enumerate(address_list):in_file = open(address, encoding='utf8')strXml =in_file.read()in_file.close()root=ET.XML(strXml)for obj in root.iter('object'):cls = obj.find('name').textcls_list.append(cls)xmlbox = obj.find('bndbox')b = (int(xmlbox.find('xmin').text), int(xmlbox.find('ymin').text),int(xmlbox.find('xmax').text), int(xmlbox.find('ymax').text))f.write(file_dict[address_list[i]])f.write( "," + ",".join([str(a) for a in b]) + ',' + cls)f.write('\n')return cls_listif __name__ == "__main__":args = parse_args()file_address = args.indirtest_percent = args.percenttrain_csv = args.traintest_csv = args.valclass_csv = args.classesAnnotations = get_file_index('/home/wanliu/retinanet/VOC2007/Annotations', '.xml') 和下面的同理Annotations.sort()JPEGfiles = get_file_index('/home/wanliu/retinanet/VOC2007/JPEGImages', '.jpg') #可根据自己数据集图片后缀名修改 这是你VOC数据集的JPEGImage的路径 每一人路径不一样 我一般用的就是绝对路径JPEGfiles.sort()assert len(Annotations) == len(JPEGfiles) #若XML文件和图片文件名不能一一对应即报错file_dict = dict(zip(Annotations, JPEGfiles))num = len(Annotations)test = random.sample(k=math.ceil(num*test_percent), population=Annotations)train = list(set(Annotations) - set(test))cls_list1 = convert_annotation(train_csv, train)cls_list2 = convert_annotation(test_csv, test)cls_unique = list(set(cls_list1+cls_list2))with open(class_csv, 'w') as f:for i, cls in enumerate(cls_unique):f.write(cls + ',' + str(i) + '\n')
这样你就会在你代码的那个文件目录下 得到你要的csv格式的文件
class.csv文件格式如下 (ps 我是用Notepa++这个软件打开的)
train.csv 格式如下
val.csv的格式如下
这样就制作好了
2 https://github.com/yhenon/pytorch-retinanet/tree/master/retinanet
我跑的是这个仓库的
然后根据这个提示
2.1 先clone 下来这个仓库 放在你创建的一个文件夹下面
2.2 再通过root根用户(一定要是这个用户 不然下载不下来这个包)
apt-get install tk-dev python-tk
2.3 换到自己的用户 去激活一个环境 下载安装包等 这 我就不去写了 按照要求安装就好
2.4 训练
python train.py --dataset csv --csv_train /home/wanliu/retinanet/train.csv --csv_classes /home/wanliu/retinanet/class.csv --csv_val /home/wanliu/retinanet/val.csv(都换成自己的路径)
但是在过程中
一直下载不下来这个 可能是网速问题 一直卡在这个
所以我直接网上下载这个模型 然后放在我当前的执行目录下
这样就开始训练啦
pytorch版训练retinanet-csv数据集相关推荐
- detectron2训练自己的数据集_YOLO(v3)PyTorch版 训练自己的数据集
Yolo v3比Frcnn好调试多了--就是数据集准备比较麻烦-- 但是好Debug,linux和win10差别不大-- 代码链接(cpu版本): https://github.com/eriklin ...
- pytorch——AlexNet——训练花分类数据集
宝藏博主:霹雳吧啦Wz_太阳花的小绿豆_CSDN博客-深度学习,Tensorflow,软件安装领域博主 目录 数据集下载 训练集与测试集划分 "split_data.py" Ale ...
- (Pytorch) YOLOV4 : 训练自己的数据集【左侧有码】
项目地址:https://github.com/argusswift/YOLOv4-pytorch 这份代码实现的逻辑非常清楚,主要一些数据集处理的代码需要相应的改动: 这里的数据集label格式: ...
- pyTorch入门(五)——训练自己的数据集
学更好的别人, 做更好的自己. --<微卡智享> 本文长度为1749字,预计阅读5分钟 前言 前面四篇将Minist数据集的训练及OpenCV的推理都介绍完了,在实际应用项目中,往往需要用 ...
- 结构化数据建模——titanic数据集的模型建立和训练(Pytorch版)
本文参考<20天吃透Pytorch>来实现titanic数据集的模型建立和训练 在书中理论的同时加入自己的理解. 一,准备数据 数据加载 titanic数据集的目标是根据乘客信息预测他们在 ...
- WIN10 +pytorch版yolov3训练自己数据集
pytorch版yolov3训练自己数据集 目录 1. 环境搭建 2. 数据集构建 3. 训练模型 4. 测试模型 5. 评估模型 6. 可视化 7. 高级进阶-网络结构更改 1. 环境搭建 将git ...
- 使用pytorch版faster-rcnn训练自己数据集
使用pytorch版faster-rcnn训练自己数据集 引言 faster-rcnn pytorch代码下载 训练自己数据集 接下来工作 参考文献 引言 最近在复现目标检测代码(师兄强烈推荐FPN, ...
- Pytorch版deeplabv3+环境配置训练自己的数据集
这个很不错:https://blog.csdn.net/qq_39056987/article/details/106455828 [windows10]使用pytorch版本deeplabv ...
- Step by Step演示如何训练Pytorch版的EfficientDet
向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx Paper:https://arxiv.org/abs/1911.09070 Base Git ...
最新文章
- 数据库缓存最终一致性的四种方案
- 大型机,说爱你不容易
- 方法用于ThinkPHP3.1快速入门连贯操作
- 详解Parcel:快速,零配置web应用打包工具
- Perceptual Losses for Real-Time Style Transfer and Super-Resolution
- 【天梯选拔月赛】寻宝路线(dp)
- 淘淘商城系列——VMware添加已配置好的虚拟机
- odoo采购单入库代码剖析
- 怎么才能够坚持做一件事并且把它做好?
- 机器学习Sklearn Day1
- 网络爬虫的基本结构是什么?如何建立网络爬虫抓取数据?
- Chrome浏览器清除cookies方法
- 笔记本一直提示计算机内存不足怎么办,电脑总是提醒内存不足怎么办,电脑提醒内存不足-...
- 蓝桥杯------蓝桥幼儿园
- 自动驾驶开发中的地图
- 「信号机制」Python信号处理—signal模块
- 顾大松:对北京市出租车、网约车、顺风车文件征求意见稿的六项建议
- LaTeX中TikZ绘图备忘一
- C语言字符串的两种定义方式
- java 23_《分布式JAVA应用 基础与实践》 第三章 3.2 JVM内存管理(三)