Yolov5 |
您所在的位置:网站首页 › yolov5图像识别的数字是什么 › Yolov5 |
![]() 记录一下第一次进行Yolov5的部署,调试,训练,预测。 Yolov5_v6.2训练数据集进行预测 学习笔记记录一下第一次进行Yolov5的部署,调试,训练,预测。第一次发布在了CSDN:链接: https://blog.csdn.net/C_1Y1_T/article/details/127691617?spm=1001.2014.3001.5502现在在博客园也发布一下 1.Yolov5环境部署 我使用的环境是:Yolov5_v6.2 + Minconda + torch_v1.13.0(CPU版本) 1.1.Minconda安装 这里不是重点,可以查询专门的安装配置教程。 使用Anaconda是一样的。 在安装后,建议设置国内镜像源,否则后面下载会很慢。 1.2.Pytorch安装 在Yolov5的 requirements.txt中,有设置下载Pytorch,但Pytorch相对于其他东西比较大,所以这里选择单独安装,避免出错。 在Pytorch官网 https://pytorch.org选择配置(有NVIDIA独显和没独显不一样)后,复制生成的代码,在conda中安装 例如我这里没有NVIDIA的独立显卡,所以选择CPU版本 #我选择的CPU版本,生成的下载链接 conda install pytorch torchvision torchaudio cpuonly -c pytorch![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 点击查看detect.py的各参数含义 """ # default是默认,action是选择。需要的话自己配置参数 #有default值的参数,你不设置值,就会使用作者给你配好的默认参数值 *******************************下面是有default值的参数************************************* 1.'--weight' 权重 default 'yolo5s.pt'表示默认选择'yolo5s.pt'文件进行训练,也可以改为其他的权重文件。 例如'yolo5l.pt','yolo5m.pt','yolo5x.pt' 2.'--source' 数据源 2.1.default 'data/images'存放目标检测文件的文件夹,在/images文件夹中可以存放图片/视频(图片推荐.jpg,视频推荐.mp4格式),同时建议只放同一类的文件类型,比如只放图片,或只放视频。 2.2.手机下载ip摄像头,路径改为http://admin:admin@手机上打开之后显示的ip地址,就可以实时检测 电脑要和他在同一WiFi下,ip地址:后面的也写 3.'--data' default 'data/coco128.yaml' 默认使用官方yaml文件 4.'--imgsz' 图片尺寸大小 default=[640] 默认检测时设置图片尺寸为640,这个和图片本身的尺寸不想关,并不是说会把目标图片的大小或输出的图片大小改为设置的大小,而是在检测图片时,会等比例缩放为指定尺寸,这样比较节约算力资源,如果按照图片原本的尺寸去检测,如果原本的图片尺寸很大,则需要更多的算力与时间去检测。但缩放图片比例去检测也意味着检测精度的损失。 5.'--conf-thres' 检测阈值 default=0.25 默认为0.25 检测阈值设置越低,则检测到的物体越多,但检测精度也越低。在检测结果中,图片上会标出检测到的物体有多少的概率是什么已知的物体。比如:阈值设置越低,则可能将"猫"检测标识为"狗"。反之,阈值设置得越高,则检测精度越高,但检测到的物体可能就很少,有时可能检测不到物体。 6.'--iou-thres' 一般默认(NMS IoU threshold(阈值)) default=0.45,数值越大,则检测结果中每个目标的标注会很多(原理就是值越大,就代表检测的块必须完全一致才算同一部份,否则就会算多个不同的部分),反之,数值越小,则检测结果中每个目标标注就会较少,因为会把相似的部分当作同一个部分来标注。 7.'--max-det' 8.'--device'设备 默认为空,会自动检测使用的设备,比如CPU,cuda等 *******************************下面是没有default值的参数************************************* #没有default值的参数,不是需要设置什么,而是用户自己选择是否启用,默认为false,关闭状态。如果用户要启用这些功能,只需要在运行时添加对应的参数(即设置为true)即可,运行时,会自动检测,检测到对应的参数为true,就会启用对应的功能。 #比如在命令行中运行'detect.py'且实时显示结果: > python detect.py --view-img 9.'--view-img'实时显示结果 运行过程中,会实时显示检测出的结果,如果是图片,则每张每张的显示结果(注:如果检测很多张图片,不要设置这个参数,否则会把每一张图片都挨个显示出来),如果是视频,则以视频形式实时播放检测结果(如果电脑卡,那就是一帧一帧的播放,所以也不太建议设置这个参数) 10.'--save-txt'保存检测结果中的标注的坐标 保存结果为'.txt'文件类型,结果中会多一个'./labels/'文件夹,保存了生成的'.txt'文件 11.'--save-conf' 保存置信度 12.'--save-crop' 保存裁剪的预测框 13.'--nosave' 不保存检测结果的图片/视频 14.'--classes'过滤(可用于只保留指定的类型) 在检测中的'.txt'文件中,保存了检测目标的 类别(用不同的数字表示不同的类别),还有坐标信息(x,y,w,h) 例如:--classes 0 只保留0这个类别的文件 --classes 0 2 3 只保留0,2,3这三个类别的文件 例如:".txt"文件中,人这个类别用'0'表示,如果设置参数--classes 0 ,则结果图片中只会检测人这个类别,即使图片中有车,信号,动物等,都不会检测。 15.'--agnostic-nms' 增强nms效果 16.'--augment' 增强检测(识别度可能会有提升,但也有翻车的(把狗识别为人),结果中标注框的颜色会加深一些) 17.'--visualize' 可视化特征 18.'--update' 优化 设置之后,会将运行过程中没用到的部分设置为None,只保存用到的部分 *******************************下面是有default值的参数************************************* 19.'--project' 检测结果保存的路径 default=ROOT / 'runs/detect' 即默认保存到项目下的'runs/detect/'文件夹 20.'--name' 检测结果保存到的文件夹的名称 default='exp' 所以每次运行后,保存结果的文件夹都叫'exp...' *******************************下面是没有default值的参数************************************* 21.'--exist-ok' 对于已存在的文件夹是否覆盖 默认为false,即:如果已存在'--name'参数指定的文件夹'exp',则创建新的文件夹保存结果,例如'exp2'。 同理,如果'exp2'也存在,就继续增加数字,例如'exp3',直到不存在同名的文件夹 如果用户设置了这个参数,则表示,始终把检测结果保存到'--name'参数指定的文件夹'exp'中,即使'exp'文件夹存在,里面有文件,也会保存到这里面。 *******************************下面是有default值的参数************************************* 22.'--line-thickness' 官方解释:help='bounding box thickness (pixels)' 边界框厚度(像素) default=3 23.'--hide-labels' 官方解释:help='hide labels' 隐藏标签 default=False 24.'--hide-conf' 官方解释:help='hide confidences' 隐藏置信度 *******************************下面是没有default值的参数************************************* 25.'--half' 官方解释:help='use FP16 half-precision inference' 使用FP16半精确推理 26.'--dnn' 官方解释:help='use OpenCV DNN for ONNX inference' 使用OpenCV DNN进行ONNX推理 *******************************下面是有default值的参数************************************* 27.'--vid-stride' 官方解释:help='video frame-rate stride' 视频帧速率步幅 default=1,即默认一帧一帧的处理 """ Pycharm中设置运行 detect.py时的参数 在命令行中加入参数,就是加在 python detect.py的后面,例如 python detect.py --view-img![]() ![]() ![]() ![]() ![]() ![]() 点击查看train.py的各参数含义 `python“”” default是默认,action是选择。需要的话自己配置参数****下面是有default值的参数****** 有default值的参数,你不设置值,就会使用作者给你配好的默认参数值1.’–weights’ default=’yolov5s.pt’ 默认使用’yolov5s.pt’权重文件进行训练。也可以改为其他的权重文件。 例如’yolo5l.pt’,’yolo5m.pt’,’yolo5x.pt’,当然你也可以使用其他训练好的权重文件。 如果是自己训练数据集,则可以设置空参(即:default=”),让程序来生成权重文件。 2.’–cfg’ 训练用的模型文件 default=” 默认为空,可以自己添加,例如使用官方的模型,在项目的’/models/’文件夹下 官方的有:’yolov5l.yaml’,’yolov5m.yaml’,’yolov5n.yaml’,’yolov5s.yaml’,’yolov5x.yaml’模型 3.’–data’ 指定训练用的数据集 default=’data/coco128.yaml’ 默认使用官方的数据集图片(coco128即coco数据集的前128张图片,因为完整的coco数据集图片很多),打开’data/coco128.yaml’文件,可以发现其中指定的内容: 如果在本地项目中没有找到coco128数据集,则会自动下载,但由于有些电脑可能自动下载失败,可以复制给出的下载链接,手动去下载。download: https://ultralytics.com/assets/coco128.zip ‘coco128.yaml’中还指定了数据集的路径:path,train(训练集),val(验证集),test(测试集)的路径。 其中 #Classes表示类别,names总共有80个,表示分了80个类别 当然,也可以使用其他的数据集,例如’coco.yaml’,’VOC.yaml’等官方提供的,或是别人的。 4.’–hpy’ 超参数,用于对项目进行微调 default=’data/hyps/hyp.scratch-low.yaml’ 需要指定文件路径 需要注意:官方的’data/hyps/’文件夹下的’.yaml’文件并不适合每个数据集,例如’hyp.scratch-low.yaml’的开头几行就标明了:# Hyperparameters for low-augmentation COCO training from scratch #用于从无到有的低增强COCO训练的超参数,即这个超参数文件只适用于COCO数据集进行训练 5.’–epochs’ 训练几轮 default=300,默认为训练300轮 6.’–batch-size’ 批量大小(一次训练多少张图片)(一次处理的数据量多少) default=16,跑多少的数据打包成一个batch送到网络中,低配电脑建议调小,否则可能会爆显存 建议default=4 7.’–imgsz’ 设置训练时图像的大小(不是把训练的图片的尺寸改为指定的尺寸) default=640 ****下面是没有default值的参数****** 8.’–rect’ 矩阵训练 以前,对于不是正方形的图片,会自动填充图片边缘使其成为一个正方形图片,现在用矩阵训练,在满足网络模型输入要求的时候,就可以不必填充,原来是一个长方形图片,还是按长方形算,减少不必要的冗余信息,提高处理效率。 9.’–resume’ 从最近的(上一个)训练模型中继续训练(断点续训) default=False 如果要使用,除了启用设置参数,还需要指定上一个训练模型的路径(.pt文件的路径) 将default=False改为default=’权重.pt文件的路径’ 断点续训,这个在epoch(训练次数)太多,训练容易卡死时可设置,这样就可以接着上一次中断的地方继续训练。 例如:上一次训练到第7轮时中断了,则可以设置这个参数,这样就可以从第7轮继续训练。 但需要注意,不是指定了一个.pt文件就可以了,还需要原来训练时的所有相关联的文件。 10.’–nosave’ help=’only save final checkpoint’只保存最后一次训练的权重文件 训练过程中,每一轮都会生成一个.pt权重文件,但训练次数越多,权重文件的精度越好。 11.’–noval’ help=’only validate final epoch’ 仅验证最后一轮 一般是每一轮都会验证。有些版本的这个参数叫’–notest’ 12.’–noautoanchor’ help=’disable AutoAnchor’ 禁用自动定位(禁用锚点) 以前检测图像,需要一个一个遍历,有了锚点后,就能快速定位,减少资源占用。所以默认是开启锚点的 13.’–noplots’ help=’save no plot files’不保存打印文件 14.’–evolve’ help=’evolve hyperparameters for x generations’ 调整超参数的一种方式,对参数进行遗传算法 15.’–bucket’ help=’gsutil bucket’ 16.’–cache’ 缓存图像 help=’–cache images in “ram” (default) or “disk”‘ 在RAM或DISK(磁盘)中缓存图像,以提供更快的速度 默认关闭状态 17.’–image-weights’ help=’use weighted image selection for training’ 使用加权图像选择进行训练 理解:在上一轮的测试中,对于某些效果不太好的图片,在下一轮测试中加一些权重 18.’–device’ 设备 默认为空,会自动检测使用的设备,比如CPU,cuda等 19.’–multi-scale’ 对图像进行缩放比例变换 20.’–single-cls’ help=’train multi-class data as single-class’训练的数据集是单类别还是多类别 数据集图像中,每一种物体定义为一个类别,例如:人、车、狗、猫…… 21.’–optimizer’ help=’optimizer’ 优化器 choices=[‘SGD’, ‘Adam’, ‘AdamW’], default=’SGD’ 官方提供了3种,默认为’SGD’ 22.’–sync-bn’ help=’use SyncBatchNorm, only available in DDP mode’ 仅对于那些有很多张显卡的电脑/服务器,可以适用DDP分布式训练 23.’–workers’ help=’max dataloader workers (per RANK in DDP mode)’ 最大数据加载器工人数 对于DDP模式的参数设置 ****下面是有default值的参数******24.’–project’ 训练数据集后的输出路径 default=’runs/train’ 25.’–name’ 训练结果保存到的文件夹的名称 default=’exp’ 所以每次运行后,保存结果的文件夹都叫’exp…’ ****下面是没有default值的参数******26.’–exist-ok’ 对于已存在的文件夹是否覆盖 默认为false,即:如果已存在’–name’参数指定的文件夹’exp’,则创建新的文件夹保存结果,例如’exp2’。 同理,如果’exp2’也存在,就继续增加数字,例如’exp3’,直到不存在同名的文件夹 如果用户设置了这个参数,则表示,始终把检测结果保存到’–name’参数指定的文件夹’exp’中,即使’exp’文件夹存在,里面有文件,也会保存到这里面。 27.’–quad’ help=’quad dataloader’ 四数据加载器 实验性功能,可能效果会更好,但也不确定,有时也更差 28.’–cos-lr’ help=’cosine LR scheduler’ 余弦调度 如果开启,适用余弦方式进行处理(余弦退火算法),如果没有开启则使用线性处理 ****下面是有default值的参数******29.’–lable-smoothing’ elp=’Label smoothing epsilon’ 标签平滑 避免在一些分类算法中,一些过拟合的情况产生 default=0.0 30.’–patience’ help=’EarlyStopping patience (epochs without improvement)’ 提前停止训练(每一轮没有变化) default=100 31.’–freeze’ help=’Freeze layers: backbone=10, first3=0 1 2′ 冻结层:主干=10,第一层=0 1 2 default=[0] 32.’–save-preiod’ help=’Save checkpoint every x epochs (disabled if < 1)’ 每x轮保存日志,不过好像要装WandB这个插件(这个插件好像没什么用),装了之后才能设置 default=-1,即禁用,装了插件后启用,则将参数值改为>1的 33.’–seed’ help=’Global training seed’ 全局训练传递 default=0 34.’–local_rank’ help=’Automatic DDP Multi-GPU argument, do not modify’ 自动DDP多GPU参数,请勿修改 default=-1 Original: https://www.cnblogs.com/jhy-ColdMoon/p/17055124.htmlAuthor: 镜花月-冷月Title: Yolov5_v6.2训练数据集进行预测 相关阅读 Title: 【安全框架】快速了解安全框架 【安全框架】快速了解安全框架🏆 一个有梦有戏的人 @怒放吧德德🌝分享学习心得,欢迎指正,大家一起学习成长! 这篇文章就来说说市面上的安全框架,并没有详细解释。 【安全框架】快速了解安全框架 说说安全框架 什么是安全框架?安全框架又有哪些? Shiro SpringSecurity Sa-Token 说说安全框架 什么是安全框架?安全框架又有哪些?简单来说就是对访问权限进行控制,主要是用户认证和权限鉴权。在安全框架中有这么几位角色。Shiro:是一个很早的框架,是比较轻量级的安全框架,提供许多功能,上手简单。SpringSecurity:这个安全框架搭建起来就比较重,但是最为流行,现如今基本都是使用SpringSecurity作为安全框架,它提供了非常多的过滤器,也方便扩展。Sa-Token:这个安全框架是比较近期的开源框架,是一个容易上手的轻量级框架,只需要使用注解就可以,内置提供了非常多的方法和注解,也是方便扩展。 Shiro![]() ![]() 更多可看Shiro – w3school SpringSecurity![]() 官方地址:https://spring.io/projects/spring-security中文文档:https://docs.gitcode.net/spring/guide/spring-security/overview.html Spring 安全性是提供认证、授权和防范常见攻击的框架,是spring整合的安全框架。SpringSecurity上手比较难,整个架构比较复杂,但是提供了许多功能。相比其他安全框架而言,是比较重量级。在SpringSecurity中有两大核心功能,就是认证与授权。Spring安全是一个框架,提供身份验证,授权和针对常见攻击的保护。它是保护基于Spring的应用程序的事实标准。SpringSecurity 就是通过一些过滤器、拦截器,实现登陆鉴权的流程的。我们可以通过重写这些过滤器以及一些方法从而达到我们自身想要的效果。SpringSecurity有内置登录界面,首先将maven坐标导入后,访问接口就会需要登录认证,而在没自定义登录界面的时候,SpringSecurity会有自带的登录界面,并且在后端控制台中会显示登录密码,当然也可以通过配置去设置好密码,就不用每次都是随机生成。当然,这样的场景远远不够我们的使用,我们需要自己去扩展完成自己想要的功能。 SpringSecurity通过长长的过滤器链完成认证与鉴权,具体看一下一张图片: ![]() ![]() 看一下satoken的功能结构图 ![]() ![]() 👍创作不易,可能有些语言不是很通畅,如有错误请指正,感谢观看!记得点赞哦!👍 今天就只是做个整体简单的分享,后续与大家共同学习!不断地在改变,不断地在学习,只为用心写好文章,奋力学习! Original: https://www.cnblogs.com/lyd-code/p/16721499.htmlAuthor: 怒放吧德德Title: 【安全框架】快速了解安全框架 原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/370049/ 转载文章受原作者版权保护。转载请注明原作者出处! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |