wim10+1050Ti+python3.7+cuda10.1+cudnn7.6.4+pytroch1.5安装记录

1.安装python3.7

2.首先到pytroch官网https://pytorch.org/根据你要下载的pytroch版本确定你要装的cuda版本(注意该版本你的显卡得支持)

具体参考:https://blog.csdn.net/weixin_37889356/article/details/104313153?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-13.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-13.nonecase

3.我的电脑显卡是1050Ti支持cuda10.1,从官网下载cuda10.1+cudnn7.6.4并安装(注册个账号就可以免费下载)

cuda下载地址:https://developer.nvidia.com/cuda-10.1-download-archive-base,cmd命令行输入nvcc -V,出现版本信息代表安装成功

cudnn下载地址:https://developer.nvidia.com/cudnn,解压后将里面的三个文件夹复制到cuda安装目录下,进行替换

4.cmd命令行输入

pip install torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

安装前面cuda10.1对应的pytorch1.5

 

下面开始利用pytroch进行训练

1.数据集的制作,用LabelImg进行标注(可直接生成.txt标签文件,不是.xml可省去后面的转换)

2.github上获取yolov3的pytroch代码(首先得安装git)

git clone https://github.com/ultralytics/yolov3.git

3.在pip install -r requirements.txt之前,首先用cmd命令:

pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

安装pycocotools(针对win10环境)

4.data文件夹下创建images(存放图片数据集),labels(存放标签.txt文件),ImageSets(存放train.txt,test.txt这两个txt文件后面可自动生成)

5.新建get_train_test_data.py

#-*- coding:utf-8 -*-
import os
import random

trainval_percent = 0.2   #可自行进行调节,测试集的比例
train_percent = 1
txtfilepath = 'labels'
txtsavepath = 'ImageSets'
total_txt = os.listdir(txtfilepath)
 
num = len(total_txt)
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('ImageSets\\trainval.txt', 'w')
ftest = open('ImageSets\\test.txt', 'w') #只生成了训练集和测试集
ftrain = open('ImageSets\\train.txt', 'w')
#fval = open('ImageSets\\val.txt', 'w')
 
for i in list:
    name = 'data\\images\\' + total_txt[i][:-4] + '.jpg' + '\n'
    if i in trainval:
        #ftrainval.write(name)
        if i in train:
            ftest.write(name)
        #else:
            #fval.write(name)
    else:
        ftrain.write(name)
 
#ftrainval.close()
ftrain.close()
#fval.close()
ftest.close()

生成的文件格式如下:

6.data文件夹下新建landmarks.names,标识你要分类的类别,内容如下:

landmark1
landmark2
landmark3
landmark4
landmark5
landmark6
landmark7
landmark8
landmark9

7.data文件夹下新建landmark.data,指明你训练集和测试集,以及分类类别,内容如下:

classes=9
train=data/ImageSets/train.txt
valid=data/ImageSets/test.txt
names=data/landmarks.names
backup=backup/

最终data文件夹下要添加的文件和文件夹如上图红框内所示。

8.以yolov3-tiny为例,配置与训练过程如下:

主要修改以下两次地方(最前面需要将Testing注释掉改为Training模式,batch和subdivisions可根据GPU情况自行修改):

如果想修改anchor的值,需要根据kmeans聚类跑自己的数据集得出结果,代码地址:https://github.com/lars76/kmeans-anchor-boxes

9.将yolov3-tiny.weights和yolov3-tiny.conv.15放入weights文件夹,这两个我已上传到我的百度云盘

链接:https://pan.baidu.com/s/1dEM9829foGR9CIvKMPqz8w 
提取码:z5ca

10.开始训练

python train.py --data data/landmark.data --cfg cfg/yolov3-tiny.cfg --weights weights/yolov3-tiny.weights --epochs 200 --batch-size 16

11.检测(data文件夹下的samples文件夹下放入要检测的图片视频等,得到的结果在output目录下)

python detect.py --data data/landmark.data --cfg cfg/yolov3-tiny.cfg --weights weights/latest.pt
python detect.py --source ...
usage: detect.py [-h] [--cfg CFG] [--data DATA] [--weights WEIGHTS]
                 [--source SOURCE] [--output OUTPUT] [--img-size IMG_SIZE]
                 [--conf-thres CONF_THRES] [--nms-thres NMS_THRES]
                 [--fourcc FOURCC] [--half] [--device DEVICE] [--view-img]
Image: --source file.jpg
Video: --source file.mp4
Directory: --source dir/
Webcam: --source 0
RTSP stream: --source rtsp://170.93.143.139/rtplive/470011e600ef003a004ee33696235daa
HTTP stream: --source http://112.50.243.8/PLTV/88888888/224/3221225900/1.m3u8

eg:
python detect.py --cfg cfg/yolov3-tiny.cfg --data data/landmark.data --weights weights/best.pt --source data/samples/test_mode1.mp4 --conf-thres 0.5
控制台输出:
Namespace(cfg='cfg/yolov3-tiny', conf_thres=0.5, data='data/landmark.data', device='', fourcc='mp4v', half=False, img_size=416, nms_thres=0.5, output='output', source='data/samples/test_mode1.mp4', view_img=False, weights='weights/best.pt')
Using CUDA device0 _CudaDeviceProperties(name='GeForce GTX 1050 Ti', total_memory=4096MB)

12.结果可视化

python -c “from utils import utils; utils.plot_results()”

更多使用方法参考:https://github.com/ultralytics/yolov3

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值