win10上成功运行faster-rcnn.pytorch-1.0
血泪踩坑史
win10 + Anaconda3 + python3.6 + cuda10.1 update2 + pytorch1.4
- 环境配置
- 1 CUDA
- 2 虚拟环境
- 3 安装pytorch
- 4 安装依赖包
- 5 编译CUDA依赖环境
- 训练自己的数据集
- 1 试跑公共数据集
- 2 准备自己的数据集
- 3 网络参数修改
- 4 命令行运行
环境配置
源码:https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0
遇到报错时可参考其他贴子:
安装faster-rcnn pytorch1.0.0版本以及importerror cannot import name ‘_mask’
win10和win7系统配置faster rcnn(pytorch)
Faster RCNN pytorch 1.0版调试(踩坑)过程记录
1 CUDA
卸载cuda:教程
安装cuda10.1 update2(又叫cuda10.1.243):下载地址 + 教程
注意不要勾选Visual Studio Integration 以及 当前版本比新版本高的Driver
安装cudnn:下载地址 + 教程
安装CUDA时出现的问题:
The following processes must be stopped before the Nsight Systems
installation can proceed: Microsoft Visual Studio 2019 (Process ID:
15576)
解决:
关闭VS, 关不掉的话重启计算机
2 虚拟环境
删除旧环境
conda remove -n your_env_name --all
创建新环境
conda create --name your_env_name python=3.6
激活环境
activate your_env_name
3 安装pytorch
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch
4 安装依赖包
cd F:\code\faster-rcnn.pytorch-pytorch-1.0 // 来到源码中requirements.txt所在的目录下
pip install -r requirements.txt
5 编译CUDA依赖环境
cd lib
python setup.py build develop
出现以下提示说明编译成功(为啥字体变黄了…
Installed f:\code\faster-rcnn.pytorch-pytorch-1.0\lib Processing
dependencies for faster-rcnn0.1 Finished processing dependencies for
faster-rcnn0.1
pytorch-0.4到这一步就卡住了,所以不建议使用
训练自己的数据集
1 试跑公共数据集
【下载Pascal_VOC数据集】(也可以直接训练自己的数据
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
解压
tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tar
【准备权重文件】:
地址,源码的作者已经贴出来了
深度学习常用预训练网络模型的下载地址
在faster-rcnn.pytorch-pytorch-1.0文件夹下创建data,data文件夹下创建pretrained_model,把下好的权重文件放里面
【配置pycharm】
File-settings-python interpreter
【问题】
ModuleNotFoundError: No module named ‘pycocotools._mask’
解决:安装COCO API
cd data
git clone https://github.com/pdollar/coco.git
cd coco/PythonAPI
make
若安装时报错,可参考解决方案
【问题】
ImportError: cannot import name ‘imread’
解决:将scipy降级
pip install scipy==1.2.1
【问题】
RuntimeError: Not implemented on the CPU (ROIAlign_backward at
/faster-rcnn.pytorch/lib/model/csrc/ROIAlign.h:44)
解决:打开cmd
python trainval_net.py --cuda
2 准备自己的数据集
【数据集结构】:
真正有用的就这些
【每次更新训练数据集都需要删缓存】
faster-rcnn.pytorch/output/vgg16/voc_2007_trainval/default
faster-rcnn.pytorch/data/cache
faster-rcnn.pytorch/data/VOCdevkit2007/annotations_cache重点是data/cache/voc_2007_trainval_gt_roidb.pkl
【参考代码】出处忘记了
YOLO格式转换为VOC格式
# yolo格式的换成voc
import os
import xml.etree.ElementTree as ET
from PIL import Image
import numpy as npimg_path = 'F:/data/VOC2007/JPEGImages/' #原图.jpg文件的路径
labels_path = 'F:/data/VOC2007/Annotations五项/txt/' #labels中.txt文件的路径
annotations_path = 'F:/data/VOC2007/Annotations五项/xml/' #生成的xml文件需要保存的路径
labels = os.listdir(labels_path)
clsnames_path = 'F:/data/VOC2007/Annotations五项/classes.txt' #names文件的路径
with open(clsnames_path,'r') as f:classes = f.readlines()classes = [cls.strip('\n') for cls in classes]
def write_xml(imgname,filepath,labeldicts): #参数imagename是图片名(无后缀)root = ET.Element('Annotation') #创建Annotation根节点ET.SubElement(root, 'filename').text = str(imgname) #创建filename子节点(无后缀)sizes = ET.SubElement(root,'size') #创建size子节点ET.SubElement(sizes, 'width').text = '1280' #没带脑子直接写了原图片的尺寸......ET.SubElement(sizes, 'height').text = '720'ET.SubElement(sizes, 'depth').text = '3' #图片的通道数:img.shape[2]for labeldict in labeldicts:objects = ET.SubElement(root, 'object') #创建object子节点ET.SubElement(objects, 'name').text = labeldict['name'] #BDD100K_10.names文件中#的类别名ET.SubElement(objects, 'pose').text = 'Unspecified'ET.SubElement(objects, 'truncated').text = '0'ET.SubElement(objects, 'difficult').text = '0'bndbox = ET.SubElement(objects,'bndbox')ET.SubElement(bndbox, 'xmin').text = str(int(labeldict['xmin']))ET.SubElement(bndbox, 'ymin').text = str(int(labeldict['ymin']))ET.SubElement(bndbox, 'xmax').text = str(int(labeldict['xmax']))ET.SubElement(bndbox, 'ymax').text = str(int(labeldict['ymax']))tree = ET.ElementTree(root)tree.write(filepath, encoding='utf-8')for label in labels: #批量读.txt文件with open(labels_path + label, 'r') as f:img_id = os.path.splitext(label)[0]contents = f.readlines()labeldicts = []for content in contents:img = np.array(Image.open(img_path+label.strip('.txt') + '.jpg'))sh,sw = img.shape[0],img.shape[1] #img.shape[0]是图片的高度720#img.shape[1]是图片的宽度720content = content.strip('\n').split()x=float(content[1])*swy=float(content[2])*shw=float(content[3])*swh=float(content[4])*shnew_dict = {'name': classes[int(content[0])],'difficult': '0','xmin': x+1-w/2, #坐标转换公式看另一篇文章....'ymin': y+1-h/2,'xmax': x+1+w/2,'ymax': y+1+h/2}labeldicts.append(new_dict)write_xml(img_id, annotations_path + label.strip('.txt') + '.xml', labeldicts)
VOC数据集制作——ImageSets\Main里的四个txt文件
# VOC数据集制作——ImageSets\Main里的四个txt文件
# 0.6 : 0.2 : 0.2
import os
import randomtrainval_percent = 0.8
train_percent = 0.75
xmlfilepath = 'F:/data/VOC2007/Annotations'
txtsavepath = 'F:/data/VOC2007/ImageSets/Main'
total_xml = os.listdir(xmlfilepath)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)ftrainval = open(txtsavepath + '/trainval.txt', 'w')
ftest = open(txtsavepath + '/test.txt', 'w')
ftrain = open(txtsavepath + '/train.txt', 'w')
fval = open(txtsavepath + '/val.txt', 'w')for i in list:name = total_xml[i][:-4] + '\n'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()
3 网络参数修改
参考:
Faster-RCNN.pytorch的搭建、使用过程详解(适配PyTorch 1.0以上版本)
faster-rcnn.pytorch-1.0的jwyang当前最火版本代码复现与讲解
1)"/faster-rcnn.pytorch/lib/datasets/pascal_voc.py"
self._classes = ('__background__', # always index 0'aeroplane', 'bicycle', 'bird', 'boat','bottle', 'bus', 'car', 'cat', 'chair','cow', 'diningtable', 'dog', 'horse','motorbike', 'person', 'pottedplant','sheep', 'sofa', 'train', 'tvmonitor','plane')
2)demo.py
同理
4 命令行运行
不知道为啥,pycharm运行老是报错…
训练命令行示例:
python trainval_net.py --cuda
CUDA_VISIBLE_DEVICES=0,1 python trainval_net.py --dataset pascal_voc --net res101 --cuda
使命令永久的在后台执行:
nohup python trainval_net.py --dataset pascal_voc --net res101 --epochs 10 --bs 4 --lr 0.01 --lr_decay_step 8 --cuda &
测试命令行示例:
python test_net.py --dataset pascal_voc --net res101 --checksession 1--checkepoch 3--checkpoint 10021--cuda
其中,checksession = 1,checkepoch = 3, checkpoint = 10021,对应到模型“faster_rcnn_1_3_10021”
model测试示例:
python demo.py --net res101 --checksession 1 --checkepoch 20 --checkpoint 233 --cuda --load_dir '/usr/detectron/faster-rcnn.pytorch-pytorch-1.0/tools/models/'
win10上成功运行faster-rcnn.pytorch-1.0相关推荐
- 可能是史上最详细-Faster RCNN Pytorch 复现全纪录
向AI转型的程序员都关注了这个号
- win10和win7系统配置faster rcnn(pytorch)
在win10和win7系统上配置faster rcnn(GPU)冲冲冲 介绍 我的环境 配置过程 1. 数据准备 2. 把数据集放进VOCdevkit2007文件夹下,名字为VOC2007 3. 安装 ...
- authentication failed: unrecognized kernel 32 关于魔法使之夜(魔法使いの夜)在win10上无法运行
关于魔法使之夜(魔法使いの夜)在win10上无法运行 这个问题TYPE-MOON官方给出了解决方案,步骤也是很清晰的,以下做简单翻译: 解压 [forWin8x64.zip] 于适当位置 如果还没有下 ...
- zipslack安装方法(安装在ext3上成功运行)(转)
zipslack安装方法(安装在ext3上成功运行)(转) 提要:本文主要介绍zipslack安装方法: 什么是zipslack? 主页: http://www.slackware.com/zipsl ...
- 成功将用intelli idea 建立的项目打包成jar文件,并在Linux上成功运行
将jar包直接复制到linux系统上,运行java命令或者scala命令 第二个包:建立两个 object文件,如图所示: 主类仍然选择: 然后再打包copy到linux中,运行两个类都能成功,如图所 ...
- 2022全新docker安装mysql镜像、tomcat镜像及打包IDEA项目为war包并部署到docker上成功运行
Docker部署web项目 一.推荐提前准备的软件 1.IDEA2022 2.xshell7 3.xftp7 4.Navicat Premium 15 二.docker上安装mysql 1.先从网上拉 ...
- 使用自己的数据集,修改运行faster RCNN
找了一个faster rcnn的demo,但是因为初学,即使有一个例程也不太会使用自己的数据集使它正常运行. 现记录一下针对自己数据集的修改过程: 01 标注数据集 第一步:将标注信息放入MyAnno ...
- cmd静默运行_如何在Win10上静默运行批处理文件
尽管批处理文件在操作系统方面与复古相似,但它们是完成任务的最佳途径之一. 如果你每天都要求你运行一些预定义的命令,那么控制台的窗口很烦人,特别是当你确定它们是完美的时候,并且不会犯任何错误. 在本指南 ...
- 毕设日志——在faster rcnn pytorch上训练KITTI数据集
本次目标: 整理运行代码产生的内容 下载KITTI数据集和LSVH数据集 修改数据集样式为VOC2007 在新的数据集上训测 2019.4.13 一.准备工作 备份之前训练生成的文件models,ou ...
- ubuntu运行Faster R-CNN
转载自:http://blog.csdn.net/helloeveryon/article/details/48789079 论文名:FasterR-CNN: Towards Real-Time Ob ...
最新文章
- 1024,咱们程序员过节了,疯狂送书
- 树状数组(Binary Indexed Tree)
- Java 输出指定目录下的所有文件
- 闭包函数和装饰器(待补充)
- 【OpenCV】重映射及仿射变换
- 【收集】个人认为比较实用的电脑工具软件(附带安装包下载)
- PowerBI使用Tabular Editor翻译报表模型
- 有关defunct进程(僵尸进程)的处理原则
- 老实人spring源码解析目录
- 【BZOJ】【P3110】【Zjoi2013】【K大数查询】【题解】【整体二分】
- Qt Style Sheet实践(二):组合框QComboBox的定制
- Android studio Android源码开发环境搭建
- 2015物联网白皮书:全球物联网正在进入发展新阶段
- 零基础入门数据挖掘-Task3 特征工程
- 图像修复序列——BSCB模型
- 当APO生产订单报工遇到物料账期没开
- 【内附独家PPT】CynosDB for MySQL 计算存储分离架构的实现和优化
- springboot 秒杀系统(二)redis
- 贝壳团队出品的 Flutter 组件库 Bruno 现已开源
- hibernate mysql 时间比较_Hibernate中HQL函数汇总及获取当前时间进行比较举例
热门文章
- php qcloud sdk weapp_qcloud/
- 微信绑定会员卡服务器出错,微信会员卡跳转到微信小程序出现如下错误?
- 汉庭董事长季琦:成功创业者的必经之路
- expect巡检服务器_linux 巡检报告
- python学习,pika模块
- sentinel实现秒杀活动
- java获取中文首字母
- 概率图--贝叶斯网络、马尔可夫网络
- Gateway统一网关(2021-11-14)
- 360linux 杀毒软件,Linux下用360安全卫士/360杀毒国产系统适配专版显示有木马或是误报...