- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
一、创建新环境
打开cmd窗口,输入condacreate-nyolov5python=3.7,回车
?
等待一会,输入y,回车
?
再等待一会,出现done,说明新环境创建成功!
?
名字可以随便取,但是建议跟我取一样的,建议后续所有操作都跟我保持一致,方便大家第一次上手;Python解释器版本就选3.7吧,因为我之前选3.10遇到过不明问题
二、导入Pytorch库
我的电脑是R7-5800H的Thinkbook14p,没有独显,所以我使用的是CPU版的PyTorch
首先在cmd窗口输入condaactivateyolov5,回车,激活刚刚创建的新环境
?
路径前出现(yolov5)就说明激活成功啦!
?
然后进入PyTorch官网\oPyTorchPyTorch,选择如下配置:
?
复制最后一行的代码到cmd窗口中,回车
?
等待一会,输入y,回车;再等待一会,出现done,说明Pytorch库导入成功!
三、新建项目
首先从这个网站下载yolov5安装包\omirrors/ultralytics/yolov5·GitCodemirrors/ultralytics/yolov5·GitCode
下载完成后解压,右键解压后的文件夹,选择作为Pycharm项目打开
?
打开后的Pycharm界面是这样的:
?
点击右下角的无解释器,选择添加解释器
在弹出的界面左侧点击Conda环境,点击现有环境,解释器选择之前创建的新环境下的python可执行文件,点击确定
?
可以看到此时Pycharm界面右下角已经变成Python3.7(yolov5)
?
四、测试
打开requirements.txt文件,里面写有yolov5运行所需要的各种包。复制第一行的命令到终端中运行
?
这个过程可快可慢,看网速,静静地等待吧~有几个包的安装可能会出问题,没关系,把报错信息在CSDN上搜一搜都能找到解决办法!
全部安装好之后就运行左侧的detect.py文件
?
如果运行结束后没有报错,而且在左侧的runs\detect\exp目录下出现了下面这两张被处理过的图片,就说明前面的操作都木有问题,恭喜!准备工作结束
?
?
五、准备数据集
大家先按照我这种方式在yolov5-master路径下新建下列空文件夹,方便后续管理
?
我是在知乎的这篇文章中下载了博主提供的训练数据\o猫狗识别之准备数据集-知乎猫狗识别之准备数据集-知乎,解压之后有25000张图片,显然是不可能全部使用的。我选择了猫猫图片的前121张,复制到yolov5-master\own_datas\images\train文件夹下作为训练集
?
然后在Pycharm终端中输入pipinstallpyqt5labelme,回车。这两个库是用来给数据集打标签的
?
安装完成后,在终端输入labelme,回车
?
会弹出一个窗口,就在这个窗口里进行训练集的标注
?
点击左上角的OpenDir,选择yolov5-master\own_datas\images\train文件夹,就会出现训练集里的图片。右键选择CreateRectangle,框出图片里的猫猫
?
框选结束后,输入标签名cat,点击ok,这个标签就保存下来了。如果有多只猫猫,就继续框选
?
整张图片框选完毕后,点击左侧的NextImage,根据提示把标注文件保存到路径yolov5-master\own_datas\labels\json中,文件的格式是.json
大概半小时后...
所有图片标注完毕,可以在yolov5-master\own_datas\labels\json文件夹中看到与训练集图片数量相同且对应的121个.json文件
?
还没完,因为yolov5只能识别.txt格式的标签,还需要把.json文件转换成.txt文件
在yolov5-master文件夹中新建json2txt.py文件
?
把如下代码拷贝进去:
importjson
importos
name2id={cat:0}#标签名称
defconvert(img_size,box):
dw=1./(img_size[0])
dh=1./(img_size[1])
x=(box[0]+box[2])/2.0-1
y=(box[1]+box[3])/2.0-1
w=box[2]-box[0]
h=box[3]-box[1]
x=x*dw
w=w*dw
y=y*dh
h=h*dh
文档评论(0)