1. yolo 初步印象

1 篇文章 0 订阅

1. 目标

本来对yolo没有印象,也没有兴趣,但是因为工作会接触到客户咨询CNN网络相关的问题,有时候会提到yolo,所以想对这块的知识做个大概的了解,不至于以后和客户交流的时候,完全不知道对方在说什么。

2. 参考

史上最详细yolov5环境配置搭建+配置所需文件_想到好名再改的博客-CSDN博客_yolov5环境配置

​​​​​​Kissrabbit - 知乎

3. 实验目的

参考网上一篇文章,搭建了自己的测试环境,做了一下实验。

4. 实验环境

显卡:GTX1650

CPU:i7-10750H @ 2.6GHz

win 10

Anaconda Navigator 1.9.12

PyCharm 2022.1.1 (Community Edition)

Python 3.7.13

Torch 1.9.0+cu111

torchvision 0.10.0+cu111

torchaudio 0.9.0

5. 实验步骤

5.1 下载yolov5源代码

从官网下载yolov5源代码,本文使用的是参考博客中下载好了放在百度网盘里面的代码。

5.2 安装Anaconda与PyCharm

两个开发工具从官网均可下载,Anaconda我是从参考博客里面的百度网盘下载的,PyCharm是从官网下载的社区版本。

5.3 安装cuda10.2和cudnn-10.2-windows10-x64-v7.6.5.32

5.4 安装Pytorch 1.9.1及其他库

使用conda下载,速度会比较慢,所以使用以下镜像下载,实测速度比较快,下载好了的环境也可以运行。

pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio===0.9.0 -f https://download.pytorch.org/whl/torch_stable.html -i https://pypi.douban.com/simple

5.5 下载权重文件

5.6 实际测试

5.7 训练自制数据集

步骤1

使用labelimg,制作数据集,导出的是xml文件。

步骤2

使用xml2txt.py将xml文件转换成txt文件。在xml2txt.py中,需要修改数据集的名称,以及xmlpath和txtpath的路径。

步骤3

训练图片的位置在data/coco128.yaml文件中指定。

 

训练1000次,可以看到结果如下图,基本是从500次过后,mAP的值就平稳了。

识别

 识别使用detect.py文件,其中有三个关键参数:

--weights    配置权重文件

--conf-thres    如果这个值比较低,则有一些概率很低的对象被识别出来,也会框起来

--device    识别使用的设备,在我的机器上面,如果使用GPU识别,什么东西都识别不出来,如果使用CPU去识别,能识别出来。训练的时候使用的GPU训练的,这点有些奇怪。

5.7.1 coco128数据集

5.8 问题

如果报内存不足,可以参考以下配置虚拟内存。

我的电脑    属性    高级系统设置    高级    性能    设置    高级    虚拟内存    更改

6. 疑问

1. 实验图片最少需要多少张?

        参考的网友的博客做的实验,他里面使用python生成了999张图片,然后学习的时候效率比较低下,我看coco128网络里面,总共使用128张图片,查看里面有关猫的图片,只有三张,但是只有这三张training过后的文件,能够识别到猫,所以我觉得实际要是只识别一种单一物体的话,不需要太多的图片。但是我使用作者的示例工程去识别圆,发现使用10张做训练的源,生成的bset.pt文件,也一样不能够识别圆。

2. 显卡识别不了,CPU运算可以识别

        使用yolov5版本的.pt文件去做detect,发现如果不将以下代码中default改成"cpu",从log里面可以看出是在使用cuda进行运算,但是得到的结果不对。

parser.add_argument('--device', default='cpu', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值