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 ...
最新文章
- Activity平移动画
- python比java简单好学-python和java哪个学起来更简单
- 【工具使用系列】关于 MATLAB 电路与系统分析,你需要知道的事
- react封装函数_React-Router源码解读
- 【2018.4.14】模拟赛之二-ssl2392 蚂蚁【图论】
- [蓝桥杯历届试题] 欧拉与鸡蛋
- ReactiveCocoa核心元素与信号流
- Hive设计和体系结构
- 一些不错的计算机书籍
- 三种Fibonacci数列第n项计算方法及其优劣分析
- Yaml spring boot 二维数组写法
- java底层实现分页
- centos 6.2网卡配置
- mac的hosts文件位置在哪?
- BLE安全之SM剖析(1)
- repl_backlog原理是什么
- CLOSE关闭连接的各种情况
- 用友和金蝶ERP产品私有云部署方案
- ARM核心板有哪些不同之处?
- Proteus C51仿真学习板0——KeilProteus
热门文章
- vlookup使用步骤_vlookup怎么用详细步骤(vlookup函数的使用方法)
- 基于Verilog HDL与虚拟实验平台的【计算机组成】与CPU实验第三章:三态门和多路器
- JetBrain系列软件的学生授权认证及认证到期重新申请授权
- np.cosh没有分配_Python中带有示例的math.cosh()方法
- windows10如何安装IIS6.0
- MapX编程详解(C++)----MapX发布技术
- initramfs模式介绍及解决方法
- python制表符的作用_Python制表符是什么
- 关闭windows server 2012 IE增强的安全配置
- leaflet流入迁徙图(canvas技术)(leaflet篇.71)