1. 源码下载

去哪里下?怎么下?怎么打开?

  • 去哪里下
    yolov5的源码放在Github上,Github可能存在打不开的情况,因此有个国内版的,叫Gitee。
    在Github上搜索栏里搜索“yolov5”,出现的第一条就是官方源码仓库
  • 检测到目标源码中可能存在用户名或者密码信息泄露nginx 目标检测代码看不懂_计算机视觉

  • 怎么下
    首先选择版本信息
  • 检测到目标源码中可能存在用户名或者密码信息泄露nginx 目标检测代码看不懂_深度学习_02

  • 再点击下载
  • 检测到目标源码中可能存在用户名或者密码信息泄露nginx 目标检测代码看不懂_计算机视觉_03

  • 怎么打开
    打开第一步下载好的IDE打开文件即可,我打开的pycharm。

2. yolov5的README.md解读

我将.md格式的文件转为pdf,在pad上用MarginNote3上进行标注,导入的pdf格式上有些出入。
我进行标注的文件上传到了我的资源中,或是查看我的参考链接:目标检测 YOLOv5 开源代码项目调试与讲解实战【土堆 x 布尔艺数】

3. 进行预测

在pycharm找到"detect.py"文件,并打开。

3.1 检测或修改解释器

选择好在环境配置过程中利用Anaconda配置好的环境

检测到目标源码中可能存在用户名或者密码信息泄露nginx 目标检测代码看不懂_深度学习_04

3.2 环境和依赖的安装

在运行"detect.py"文件之前,先找到一个"requirement.txt"的文件,这个文件介绍了所需要的库以及库的版本,在pycharm的终端上输入就可以完成对所需库的安装。

pip install -r  pip install -r yolov5-master/requirements.txt

3.3 其他问题的解决

报错

解决

Downloading https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt to yolov5s.pt…之后出现一大堆报错

官方下载”yolo5s.pt"放入yolov5-master文件夹下

Can’t get attribute ‘SPPF’ on <module ‘models.common’ from…

AttributeError: Cant get attribute SPPF on module models.common from e:\pyWorkSpace\yolov5

UserWarning: torch.meshgrid: in an upcoming release,…

感觉是由于pytorch版本的问题,未解决

4.detect.py中opt模型主要参数解析

def parse_opt():
    parser = argparse.ArgumentParser()
 """
    '--weights'# 初始化的权重文件的路径地址
    '--source' # 测试数据,可以是图片/视频路径,也可以是'0'(电脑自带摄像头),也可以是rtsp等视频流
    '--imgsz', '--img', '--img-size' # 网络输入图片大小。在处理过程中的图像尺寸,不同权重参数推荐的也不同,以“6”为结尾的权重推荐设置为1280
    '--conf-thres' # 置信度阈值,越大标注框越少
    '--iou-thres' # 交并比阈值,越大所得的重叠框越多
    '--max-det' # 一张图片中最多的检测个数
    '--device' # 所用设备,如CPU或GPU,程序为自动选择
  ->'--view-img' # 是否展示预测之后的图片/视频,默认False
  ->'--save-txt' # 是否将预测的框坐标以txt文件形式保存,默认False
  ->'--save-conf' # 是否保存置信度值在--save-txt文件夹中
  ->'--save-crop' # 是否保存裁剪的预测框,默认False
  ->'--nosave' # 是否不保存预测结果,默认False,即默认是将预测结果保存的
    '--classes' # 设置只保留某一部分类别,形如0或者0 2 3
  ->'--agnostic-nms' # 进行nms是否也去除不同类别之间的框,默认False
  ->'--augment' # 推理的时候进行多尺度,翻转等操作(TTA)推理
  ->'--visualize' # 可视化特征,默认False
  ->'--update' # 如果为True,则对所有模型进行strip_optimizer操作,去除pt文件中的优化器等信息,默认为False
    '--project' # 预测结果的存储路径,默认在runs/detect目录下
    '--name' # 预测结果的存储路径下的文件夹名,默认exp
  ->'--exist-ok' # 若设置该参数,则在相同文件夹下生成文件
    '--line-thickness' # 标注狂的厚度
    '--hide-labels' # 隐藏标签
    '--hide-conf' # 隐藏置信度
  ->'--half'  # use FP16 half-precision inference
  ->'--dnn'  # use OpenCV DNN for ONNX inference
"""
    opt = parser.parse_args()
    opt.imgsz *= 2 if len(opt.imgsz) == 1 else 1  # expand
    print_args(FILE.stem, opt)
    return opt

在上方代码中,参数前面标注"->“代表的需要标注的参数,具体实现方式为:点击右上角”detect”,编辑配置,在图片圈出的Parameters添加参数

检测到目标源码中可能存在用户名或者密码信息泄露nginx 目标检测代码看不懂_pytorch_05

  • 检测视频类型
  1. 在data文件夹下新建一个video文件夹;
  2. 将视频数据放入该文件夹;
  3. 在“detect.py的第207行,修改default里的内容,修改为:parser.add_argument('--source', type=str, default=ROOT / 'data/video', help='file/dir/URL/glob, 0 for webcam')
  • 只显示person类型
  1. detect.py第218行添加参数”–classes",即可指定需要显示的类型: parser.add_argument('--classes', nargs='+', type=int, help='filter by class: --classes 0, or --classes 0 2 3')
  2. 找到person指定的类别,在data文件夹下,查看了几个.yaml文件,发现person都被安排在第一个,我就用0试了一下;
  3. 点击右上角的“detect",Edit Configuration,在Parameters中输入”–classes 0"

参考链接

目标检测 YOLOv5 开源代码项目调试与讲解实战【土堆 x 布尔艺数】