Yolov5笔记

注意只是笔记,没有图,应该就我自己看得懂

日期:2021年11月29日

一.准备安装环境

0.去yolov5的github下载文件

1.pytorch

2.安装requirements.txt中的组件

二.开始YOLO(调参)

1.使用detect(检测)代码:

使用已有的模型来检测图像。

代码是main函数中需要调参的地方

parser = argparse.ArgumentParser()
    # 使用的模型的权值,默认使用yolov5m,别人已经调整好的模型值
    parser.add_argument('--weights', nargs='+', type=str, default='yolov5m.pt', help='model.pt path(s)')
    # 检测目标源,也可以是rtsp流的摄像头
    parser.add_argument('--source', type=str, default='data/images/1.png', help='source')  # file/folder, 0 for webcam
    # 检测图像时的图像大小
    parser.add_argument('--img-size', type=int, default=640, help='inference size (pixels)')
    # 检测概率达到多大才显示
    parser.add_argument('--conf-thres', type=float, default=0.25, help='object confidence threshold')
    # 非极大值抑制 IOU (intersecton over union) 两个框的交集 / 并集 的值是否大于0.45(设定的值),是则选择一个大概率的框显示,否则显示两个框(判定是两个不同的事务)
    parser.add_argument('--iou-thres', type=float, default=0.45, help='IOU threshold for NMS')
    # 设备 使用cpu 还是 gpu等
    parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    # 是否实时显示 检测结果  需要传入参数 --view-img
    parser.add_argument('--view-img', action='store_true', help='display results')
    # 保存 显示的物体类别和   显示的检测框的四角坐标 需要传入参数 --save-txt
    parser.add_argument('--save-txt', action='store_true', help='save results to *.txt')
    # 保存执行进度
    parser.add_argument('--save-conf', action='store_true', help='save confidences in --save-txt labels')
    # 不保存
    parser.add_argument('--nosave', action='store_true', help='do not save images/videos')
    # 过滤类别,我们可以从save-txt中查看类别
    parser.add_argument('--classes', nargs='+', type=int, help='filter by class: --class 0, or --class 0 2 3')
    # nms 增强(更强的检测效果)
    parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS')
    parser.add_argument('--augment', action='store_true', help='augmented inference')
    # 去掉一些不必要的地方(比如优化器),只用权值
    parser.add_argument('--update', action='store_true', help='update all models')
    # 结果默认保存位置
    parser.add_argument('--project', default='runs/detect', help='save results to project/name')
    # 结果默认保存名字
    parser.add_argument('--name', default='exp', help='save results to project/name')
    # 设置 保存在上一个文件夹
    parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')
    opt = parser.parse_args()

2.使用train(训练)代码:

使用数据集来训练自己模型的代码。

parser = argparse.ArgumentParser()
    # 初始化的权值,设置为""则全新开始,有值则从该值开始
    parser.add_argument('--weights', type=str, default='', help='initial weights path')
    #类别的设置
    parser.add_argument('--cfg', type=str, default='models/yolov5s.yaml', help='model.yaml path')
    # 训练集的位置
    parser.add_argument('--data', type=str, default='data/coco128.yaml', help='data.yaml path')
    # 超参数
    parser.add_argument('--hyp', type=str, default='data/hyp.scratch.yaml', help='hyperparameters path')
    # 训练轮次
    parser.add_argument('--epochs', type=int, default=300)
    # 批处理
    parser.add_argument('--batch-size', type=int, default=16, help='total batch size for all GPUs')
    # 训练时的图像大小
    parser.add_argument('--img-size', nargs='+', type=int, default=[640, 640], help='[train, test] image sizes')
    # 是否开启矩阵优化
    parser.add_argument('--rect', action='store_true', help='rectangular training')
    parser.add_argument('--resume', nargs='?', const=True, default=False, help='resume most recent training')
    parser.add_argument('--nosave', action='store_true', help='only save final checkpoint')
    parser.add_argument('--notest', action='store_true', help='only test final epoch')
    parser.add_argument('--noautoanchor', action='store_true', help='disable autoanchor check')
    parser.add_argument('--evolve', action='store_true', help='evolve hyperparameters')
    parser.add_argument('--bucket', type=str, default='', help='gsutil bucket')
    parser.add_argument('--cache-images', action='store_true', help='cache images for faster training')
    # 为上次优化不好的图像增加权重
    parser.add_argument('--image-weights', action='store_true', help='use weighted image selection for training')
    parser.add_argument('--device', default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')
    parser.add_argument('--multi-scale', action='store_true', help='vary img-size +/- 50%%')
    parser.add_argument('--single-cls', action='store_true', help='train multi-class data as single-class')
    # 使用的优化算法
    parser.add_argument('--adam', action='store_true', help='use torch.optim.Adam() optimizer')
    # 多显卡异步计算
    parser.add_argument('--sync-bn', action='store_true', help='use SyncBatchNorm, only available in DDP mode')
    parser.add_argument('--local_rank', type=int, default=-1, help='DDP parameter, do not modify')
    parser.add_argument('--workers', type=int, default=0, help='maximum number of dataloader workers')
    parser.add_argument('--project', default='runs/train', help='save to project/name')
    parser.add_argument('--entity', default=None, help='W&B entity')
    parser.add_argument('--name', default='exp', help='save to project/name')
    parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')
    parser.add_argument('--quad', action='store_true', help='quad dataloader')
    # 学习率
    parser.add_argument('--linear-lr', action='store_true', help='linear LR')
    parser.add_argument('--label-smoothing', type=float, default=0.0, help='Label smoothing epsilon')
    parser.add_argument('--upload_dataset', action='store_true', help='Upload dataset as W&B artifact table')
    parser.add_argument('--bbox_interval', type=int, default=-1, help='Set bounding-box image logging interval for W&B')
    parser.add_argument('--save_period', type=int, default=-1, help='Log model after every "save_period" epoch')
    parser.add_argument('--artifact_alias', type=str, default="latest", help='version of dataset artifact to be used')

三.自制数据集

1.CVAT

2.在线网站

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值