• win10系统下Yolov5目标检测环境搭建(Anaconda3+Pytorch+Yolov5,CPU,无GPU)



    前言

      最近公司有一个项目需要做目标检测,具体应用是这样的,利用RealSense D435实现医院场景下的垃圾袋、矿泉水瓶等物体的识别,获取其在世界坐标系下的坐标和最合理的抓取位置,驱动机器人底盘移动,驱动dobot机械臂实现抓取。
      之前没搞过深度学习这方面的东西,问了度娘,最后决定使用yolov5去实现目标检测,参考了众大佬的博客,最终安装成功,在此记录一下。

    一、Yolov5

    1、下载Yolov5源码

    下载地址如下:https://github.com/ultralytics/yolov5,我下载的是v6.2版本,最好使用之前的版本,新版本可能存在很多待优化的地方。解压后目录如下:
    在这里插入图片描述

    2、下载Yolov5预训练模型

    下载地址如下:https://github.com/ultralytics/yolov5/releases,与yolov5的版本一致,即v6.2版本。打开网页后下拉,找到Assets,如下:
    在这里插入图片描述
    yolov5共有四种模型:yolov5s、yolov5m、yolov5l、yolov5x,我们下载的也是这四个(下载过程非常慢,请耐心等待)。下载后将四个.pt文件放到Yolov5源码根目录下,如下:
    在这里插入图片描述

    二、安装Python虚拟环境

    1、下载安装Anaconda3

    下载地址如下:https://www.anaconda.com/,最新版本对应python3.9,版本过于新,后面的PyTorch也会面临更新问题,所以我使用的是Anaconda3-2022.05-Windows-x86_64.exe,对应python3.8.2
    在这里插入图片描述
    在这里插入图片描述
    双击安装,这里只上一张重要的图,其它的直接next就可以:
    在这里插入图片描述

    2、利用Anaconda3下载PyTorch

    2.1 创建PyTorch环境

    找到Anaconda Prompt,如下:
    在这里插入图片描述
    输入如下命令:

    conda create --name pytorch python==3.8
    
    • 1

    接下来还需要手动输入一个“y",等待安装即可。

    2.2 查看pytorch环境并激活

    输入如下命令:

    conda info -e
    
    • 1

    在这里插入图片描述
    可以看到除了base环境,还多了我们自己创建的pytorch环境

    2.3 激活

    输入如下命令:

    conda activate pytorch
    
    • 1

    在这里插入图片描述
    激活后, 可以看到前面的base变成了pytorch环境了。

    2.4 安装Pytorch

    官网地址如下:https://pytorch.org/get-started/locally/,我这里选的是CPU,因为我的电脑是核显,没有英伟达独显,所以也用不了CUDA,如果你有英伟达显卡,记得选CUDA
    在这里插入图片描述
    输入上图中的命令:

    conda install pytorch torchvision torchaudio cpuonly -c pytorch
    
    • 1

    接下来还需要手动输入一个“y",等待安装即可。

    2.5 验证Pytorch是否安装成功

    首先激活Pytorch环境,再输入python命令,进入python环境下,调用torch库,最后输出torch的版本号:

    import torch
    torch.__version__
    
    • 1
    • 2

    2.6 在Pytorch中安装opencv

    首先激活Pytorch环境,输入命令:

    pip install python-opencv
    
    • 1

    测试,命令如下:

    import cv2
    cv2.__version__
    
    • 1
    • 2

    三、PyCharm环境搭建

    此处略过下载与安装,只介绍其环境配置。

    1、打开下载好的detect.py文件

    在这里插入图片描述

    2、设置编译配置

    在这里插入图片描述

    3、设置解释器

    在这里插入图片描述
    在这里插入图片描述

    四、运行

    运行detect.py,发现控制台报错,提示某些包没有安装,可使用pip命令进行安装,具体命令,要看自己报什么错误,比如我运行时需安装的包较多,依次运行如下命令:

    pip install pandas -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
    pip install pyyaml
    pip install tqdm
    pip install matplotlib
    pip install seaborn
    
    • 1
    • 2
    • 3
    • 4
    • 5

    安装完成,再次运行,报错如下:

    AttributeError: 'Upsample' object has no attribute 'recompute_scale_factor'
    
    • 1

    解决方法:
    打开D:\Anaconda3\envs\yolov5-6.0\lib\site-packages\torch\nn\modules\upsampling.py文件,修改代码如下:

    def forward(self, input: Tensor) -> Tensor:
        return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners)
    
    # return F.interpolate(input, self.size, self.scale_factor, self.mode, self.align_corners,
    #                      recompute_scale_factor=self.recompute_scale_factor)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    再次运行,报错如下:

    UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at  C:\cb\pytorch_1000000000000\work\aten\src\ATen\native\TensorShape.cpp:2228.)  return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]
    
    • 1

    解决方法:
    打开D:\Anaconda3\envs\yolov5-6.0\lib\site-packages\torch\function.py文件,找到478行,修改代码如下:

    # Remove this two weeks after landing.
    kwargs = {} if indexing is None else {'indexing': indexing}
    return _VF.meshgrid(tensors, **kwargs,indexing='ij')
    #return _VF.meshgrid(tensors, **kwargs)  # type: ignore[attr-defined]
    
    • 1
    • 2
    • 3
    • 4

    再次运行,运行成功:
    在这里插入图片描述

    五、效果

    我们使用的是两张图片,图片位于:
    在这里插入图片描述
    运行detect.py后,可以在runs/detect/exp/文件夹下看到目标检测的结果:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    使用Node.js连接和查询数据库
    如何制作自动输入短信验证码?
    Casdoor系统static任意文件读取漏洞
    多模态数据也能进行MAE?伯克利&谷歌提出M3AE,在图像和文本数据上进行MAE!最优掩蔽率可达75%,显著高于BERT的15%...
    Linux | 1.Linux环境与版本
    软考中级-软件设计师-第1章 软件设计师考试介绍
    Vue2:路由组件缓存技术
    SIM8262E-M2,SIM8262A-M2,SIM8260C-M2,SIM8260C 5G定位模组支持多频段
    LabVIEW中图像显示错误
    【VulnHub靶场】——BOREDHACKERBLOG: SOCIAL NETWORK
  • 原文地址:https://blog.csdn.net/u011832219/article/details/126700225