吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8566|回复: 43
收起左侧

[Python 转载] 一个简单的零基础的机器学习教程,Pytorch搭建Faster R-CNN目标检测平台

  [复制链接]
打字的小强 发表于 2020-6-8 12:40
本帖最后由 打字的小强 于 2020-6-8 14:21 编辑

按照别人教程来的机器学习教程。完全不需要高数知识,我做一下简单直白的补充说明,并且做部分修正,尽量做到简单通俗易懂。


自己看了老多教程都半途而废,比如图像处理,高数,前置知识等等,一直没有实验,感觉自己很垃圾,很没意思,屡受打击啊。最近看见B站的Bubbliiiing的视频还有博客教程感觉可以自己实验一下。想弄点结果出来再去研究本质。
先把相关的参考教程链接放出来,大家尝试的时候可以参考:


神经网络学习小记录48——windows下的torch=1.2.0环境配置:https://blog.csdn.net/weixin_44791964/article/details/106037141
睿智的目标检测27——Pytorch搭建Faster R-CNN目标检测平台:https://blog.csdn.net/weixin_44791964/article/details/105739918
Pytorch 搭建自己的Faster-RCNN目标检测平台(Bubbliiiing 深度学习 教程):https://www.bilibili.com/video/BV1BK41157Vs?p=13

bubbliiiing/faster-rcnn-pytorch:https://github.com/bubbliiiing/faster-rcnn-pytorch

一.搭建环境


首先是在windows下搭建touch = 1.2.0环境。
教程是说装旧的anoconda环境,我是新的,没有用教程推荐的conda老版本,我自己的版本是4.8.3,也可以,Anaconda的安装网上很多教程,可以参考,我这里不赘述了,记得选择Add Anaconda to my PATH environment variable,把conda填入全局变量里面,很方便。
QQ截图20200608102556.png QQ截图20200608102814.png

接下来装cudnn和cuda,这里需要英伟达的显卡,原帖楼主的显卡的是1660Ti,我的显卡是2070Super。两个很大的安装包,下载链接我最后提供给大家。
torch=1.2.0对应的Cuda版本是10.0,与cuda10.0对应的cudnn是7.4.1.5
下载cuda_10的exe,文件名是cuda_10.0.130_411.31_win10.exe,大小2.04 GB。
直接双击安装。不要更改安装路径,然后安装的时候选择自定义,后面默认就安装成功了。
QQ截图20200608103456.png
安装完成找到这个cuda_10的安装路径我们要把cudnn这个安装包解压后的某些东西放到cuda_10里面去
我的cuda_10的安装路径为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
我们把cudnn的安装包解压一下,cudnn的安装包是cudnn-10.0-windows10-x64-v7.4.1.5.zip,208 MB 。
解压后图片:
QQ截图20200608103947.png
把这里面所有的文件,文件夹复制,粘贴到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 这个目录下面,接下来的截图就像我这样
QQ截图20200608104050.png
到目前为止,基础软件安装完毕
接下来配置conda环境,python的各种包依赖非常复杂,conda非常方便,可以解决这个问题,单独创建一个环境来运行代码
首先进入cmd命令框。输入

[Asm] 纯文本查看 复制代码
conda create –n pytorch python=3.6


意思就是新建一个python 版本为3.6,别名为pytorch的环境

[Asm] 纯文本查看 复制代码
activate pytorch 


activate就是进入这个名为 pytorch环境,进入环境过后pip就可以安装一些包

[Asm] 纯文本查看 复制代码
pip install torch===1.2.0 torchvision===0.4.0 -f https://download.pytorch.org/whl/torch_stable.html


这个包特别大,需要等待很长时间,我偷懒就是按照这个命令安装的,很慢看看原教程采用本地安装


安装完成后再pip安装两个包,一个是opencv-python ,一个是matplotlib,这是我补充的内容在实际代码种需要这两个包,不安装,后面测试的时候会出现问题
安装的时候要进入这个环境conda activate pytorch后安装。可以用清华源安装,非常快

[Asm] 纯文本查看 复制代码
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python


[Asm] 纯文本查看 复制代码
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib


二.部署项目

下载github上面的代码(最后会放链接),用vccode打开,我没有按照原教程专门配置vscode,我直接配置python conda环境到vscode
QQ截图20200608105633.png

打开项目文件后还需要把预训练权重文件放到这里面去,这个文件可以理解为加快训练速度的文件,也有点大,需要放在项目文件model_data这个文件夹下面,我会单独放在百度云网盘里面,这两个文件可以选择其中一个,我选的是第一个,我也不知道区别有哪些,想用第二个要改一些地方原帖有说明的。
QQ截图20200608105935.png

然后还有最重要的voc2007数据集,是一个标准数据标注的数据集,有特定的格式。下载我提供的数据集,也可以用其他的数据集(用其他的数据集比较麻烦。需要改一些东西)。就是一些标注好的图片的标注信息文件和对应的图片文件,一一对应。
QQ截图20200608110211.png
解压pascal-voc-2007.zip
QQ截图20200608105935.png
我用的是VOCtrainval_06-Nov-2007,这是我自己在百度上找的,进入VOCtrainval_06-Nov-2007文件夹,进入到里面的文件夹找到Annotations和JPEGImages文件夹。把这里面的图片和xml文件复制到项目代码VOCdevkit\VOC2007里面的对应的Annotations和JPEGImages下面去,图片和xml文件各有5000个左右。

QQ截图20200608110440.png QQ截图20200608110801.png


软后运行voc2frcnn.py,生成一个训练的txt,这个2007_train.txt就是告诉这个训练框架,这个图片哪个位置有什么东西
QQ截图20200608111022.png QQ截图20200608111257.png

不用修改voc_annotation.py里面的classes和model_data里面的voc_classes.txt文件。需要用其他的数据集的时候再修改吧,classes越多,目标分类就越多,训练难度就越大


三.开始训练


找到项目中的train.py,点击运行
QQ截图20200608111609.png
如果出现下图就证明正在训练,没有任何报错了

QQ截图20200608111639.png




四.训练好的模型进行预测

经过一个晚上的时间训练,训练还没有结束,但是logs文件夹下有31个模型文件了,每一轮都会保存这个训练好的模型,可能分类太复杂了,显卡算力不够,我们来用最后一个模型来测试一下效果怎么样。


QQ截图20200608112508.png

我们来测试一下图像的预测
修改frcnn.py里面的引入模型的设置,如图所示,你要修改成你自己的模型,我也会把我自己的模型上传。


QQ截图20200608112920.png

接下来运行predict.py,如图所示,填入文件路径。
QQ截图20200608113426.png
填入图片路径,图片就会打开。图片上的框框就会显示出来,相似度。类名,大小,很牛啊。

QQ截图20200608113455.png QQ截图20200608113557.png

接下来测试一下其他的东西,还不错。
QQ截图20200608113955.png


再来测试一下视频,找到video.py,可以获取摄像头,也可以修改视频文件路径,点击运行,帧率感人,就是把视频变成一帧一帧的图片然后预测。


QQ截图20200608114821.png

trains.gif




五。相关链接以及总结

百度云链接: https://pan.baidu.com/s/1JKPN49jeJfavPXMY5aF54w   提取码:nml9


Github链接:  koala9527/faster-rcnn-pytorch:https://github.com/koala9527/faster-rcnn-pytorch

弄这些没花多长时间,感觉机器比我想象中更强大,虽然没有很完美,看到这些代码在我面前演示很有成就感。每个帖子都会这么说,哈哈,有用记得给star,给评分关注我哦,每当总结的时候总会畅想,要把这些技术用到哪里去呢?大家有啥想法呢?




免费评分

参与人数 16吾爱币 +17 热心值 +15 收起 理由
Vegetabhl + 1 + 1 我很赞同!
大松鼠 + 1 + 1 用心讨论,共获提升!
苍天不死丶 + 1 + 1
陌生By2 + 1 + 1 热心回复!
云岫松涛 + 1 + 1 用心讨论,共获提升!
15638285559 + 1 能做web端吗?跟门店的客户管理系统对接:可以做联系QQ68671410
wushaominkk + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
hj170520 + 1 + 1 谢谢@Thanks!
黄sir + 1 我很赞同!
闻经获益 + 1 + 1 谢谢@Thanks!
dazhuangzhuang + 1 + 1 学习乐,吾爱破解论坛因你更精彩!
you74222 + 1 + 1 谢谢@Thanks!
没事路过 + 1 + 1 谢谢@Thanks!
zhangyazhou + 1 + 1 我第三
xzqsr + 1 + 1 我点的第二个
Abrahams + 1 + 1 荣幸的点了第一个star 哈哈哈

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Vegetabhl 发表于 2020-12-23 12:12
您好,麻烦请问下我运行voc2frcnn.py生成的train.txt文件在main文件夹下,然后我运行那个train.py的时候也把这个annotation_path = './VOCdevkit/VOC2007/ImageSets/Main/train.txt' 改成了这个路径(就是main文件夹下面),但是运行依然会报 FileNotFoundError: [Errno 2] No such file or directory: '006849' 这样的错误,并且每次后面的数字还不一样。想问下是还需要改其他地方吗还是说哪里错了?耽误好几天了有点难受不知道怎么改,万分感谢!
 楼主| 打字的小强 发表于 2020-12-23 13:53
Vegetabhl 发表于 2020-12-23 12:12
您好,麻烦请问下我运行voc2frcnn.py生成的train.txt文件在main文件夹下,然后我运行那个train.py的时候也 ...

你在生成train.txt以后,在文件夹目录里找到它的实际位置,和后续代码里调用这个txt的位置不一样,需要改一下,具体哪里调了你找找
千城忆梦 发表于 2020-6-8 13:22
我之前比赛用了一个facebook的github项目,叫detectron2,是一个目标检测和实例分割的平台
https://github.com/facebookresearch/detectron2
 楼主| 打字的小强 发表于 2020-6-8 13:26
千城忆梦 发表于 2020-6-8 13:22
我之前比赛用了一个facebook的github项目,叫detectron2,是一个目标检测和实例分割的平台
https://github ...

10k star ,我去,牛逼,大佬啊
skyward 发表于 2020-6-8 13:55
10K 简直了
流浪星空 发表于 2020-6-8 14:07
感谢分享!
you74222 发表于 2020-6-8 14:28
学习了。thank you
MC阿虎 发表于 2020-6-8 16:19
感谢分享,前来学习一下
圈外人 发表于 2020-6-8 16:53
学习了学习了
chickenbaby 发表于 2020-6-8 17:23
学习了,谢谢分享
ptmaliang 发表于 2020-6-8 17:29
感谢分享!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 12:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表