zoukankan      html  css  js  c++  java
  • 安装yolov5 requirements踩的坑(CPU版本)

    1, 准备工作

    git clone https://github.com/ultralytics/yolov5 # 下载 yolov5 项目
    python3 -c "from yolov5.utils.google_utils import gdrive_download; gdrive_download('1n_oKgR81BJtqk75b00eAjdv03qVCQn2f','coco128.zip')" # 下载官方例子的数据集
    cd yolov5 #进入yolov5 项目文件
    conda install -U -r requirements.txt #安装需求

    2,在安装 requirements的时候狂出错

    2.1 pytorch

      直接用conda install pytorch是不可能安装的了的,你得去pytorch 官网获得下载命令: 

      然并卵,conda install pytorch torchvision torchaudio cpuonly -c pytorch,速度那是相当的慢。找了很多网上的解决办法,清华镜像关掉了,科大镜像也没法用,试了阿里云,还是装不上。各种environment报错,或者各种慢(安装的时候极度崩溃,忘记截屏了)。

      折腾了一整天后还是决定手动下载,可以去清华镜像官网下载,虽然不能直接用镜像,但是安装文件还是一直在更新的,速度飞一般非常赞!

      既然能下载当然是下载最新的1.9.0啦!美滋滋的放到D:Users**anaconda3pkgs文件夹里,开始离线安装 conda install --offline *** 然而,装是装好了,美滋滋要调用的时候开始报错:

        [WinError 126] 找不到指定的模块

       心里哇凉哇凉的又开始找解决办法,有的说没装vc c++,可是我真的装了T_T。有的说要升级conda,于是conda update all, 还是不行。

      最后!!!!!忍痛开始给pytorch降级,查了下载yolov5的requirement文件,好吧,那就擦边吧,

        

      重新去镜像官网下载了

     

      torchvision忘记把降级之前的删了

      再重新安装,于是……

      finally 喜极而泣!

    2.2 又检查了一下,还有thop

      conda install thop 还是不行。有了前面的经验,手动安装(下载地址

      下载最新版后又遇到了问题,有了前面的经验,降级……

      安装的时候又遇到了问题,环境还是不过关?但是用pip安装又没问题,但是!pip安装完用conda list根本看不到,继续网上搜索……终于,这样解决的

      1)先查看虚拟环境名称

        

      2)然后

     

      喜极而泣!!!

    3,用本地摄像头测试一下

    3.1 yolov5s.pt

      将官网yolov5s.pt权重文件下载到yolov5文件夹下,命令:python detect.py --weights yolov5s.pt --source 0

      可以看到自己美美的出现在屏幕上,并且被标注为:person 0.56 ....嗯,郁闷的想哭,我就是半个人么?还是试试5x吧

    3.2 yolov5x.pt

      将官网yolov5x.pt文件下载到yolov5文件夹下,命令:python detect.py --weights yolov5x.pt --source 0,报错了~

       神马叫:Can't get attribute 'SPPF' ?SPPF是神马东东?搜了全网才发现博客https://blog.csdn.net/Steven_Cary/article/details/120886696 的解答,然后孤陋寡闻的我才刚知道权重文件都出到第6版啦?

       

     解决方案是:去Tags6里面的model/common.py里面去找到这个SPPF的类,把它拷过来到你这个Tags5的model/common.py里面,这样你的代码就也有这个类了,还要引入一个warnings包就行了!

     有的同学找不到SPPF这个类,那我现在直接粘贴在这里,你们只需要复制到你们的common.py里面即可,记得把import warnings放在上面去:

    import warnings
    
    class SPPF(nn.Module):
        # Spatial Pyramid Pooling - Fast (SPPF) layer for YOLOv5 by Glenn Jocher
        def __init__(self, c1, c2, k=5):  # equivalent to SPP(k=(5, 9, 13))
            super().__init__()
            c_ = c1 // 2  # hidden channels
            self.cv1 = Conv(c1, c_, 1, 1)
            self.cv2 = Conv(c_ * 4, c2, 1, 1)
            self.m = nn.MaxPool2d(kernel_size=k, stride=1, padding=k // 2)
    
        def forward(self, x):
            x = self.cv1(x)
            with warnings.catch_warnings():
                warnings.simplefilter('ignore')  # suppress torch 1.9.0 max_pool2d() warning
                y1 = self.m(x)
                y2 = self.m(y1)
                return self.cv2(torch.cat([x, y1, y2, self.m(y2)], 1))

      亲测可用,美美的我终于变成 person 0.95了,但实时性实在是比5s差很多

      终于有篇原创的博客了哈哈哈

  • 相关阅读:
    51 Nod 1086 多重背包问题(单调队列优化)
    51 Nod 1086 多重背包问题(二进制优化)
    51 Nod 1085 01背包问题
    poj 2559 Largest Rectangle(单调栈)
    51 Nod 1089 最长回文子串(Manacher算法)
    51 Nod N的阶乘的长度 (斯特林近似)
    51 Nod 1134 最长递增子序列(经典问题回顾)
    51 Nod 1020 逆序排列
    PCA-主成分分析(Principal components analysis)
    Python中cPickle
  • 原文地址:https://www.cnblogs.com/boligongzhu/p/15106780.html
Copyright © 2011-2022 走看看