重庆电力建设公司网站网站建设推广文案
重庆电力建设公司网站,网站建设推广文案,做软件跟网站哪个难,中建八局第二建设有限公司平台工服穿戴检测联动门禁开关算法通过yolov8深度学习框架模型#xff0c;工服穿戴检测联动门禁开关算法能够准确识别和检测作业人员是否按照规定进行工服着装#xff0c;只有当人员合规着装时#xff0c;算法会发送开关量信号给门禁设备#xff0c;使门禁自动打开。YOLO的结构…工服穿戴检测联动门禁开关算法通过yolov8深度学习框架模型工服穿戴检测联动门禁开关算法能够准确识别和检测作业人员是否按照规定进行工服着装只有当人员合规着装时算法会发送开关量信号给门禁设备使门禁自动打开。YOLO的结构非常简单就是单纯的卷积、池化最后加了两层全连接从网络结构上看与前面介绍的CNN分类网络没有本质的区别最大的差异是输出层用线性函数做激活函数因为需要预测bounding box的位置数值型而不仅仅是对象的概率。所以粗略来说YOLO的整个结构就是输入图片经过神经网络的变换得到一个输出的张量。根据YOLO的设计输入图像被划分为 7x7 的网格grid输出张量中的 7x7 就对应着输入图像的 7x7 网格。或者我们把 7x7x30 的张量看作 7x749个30维的向量也就是输入图像中的每个网格对应输出一个30维的向量。如下图所示比如输入图像左上角的网格对应到输出张量中左上角的向量。
YOLOv8是目前YOLO系列算法中最新推出的检测算法YOLOv8可以完成检测、分类、分割任务。YOLOv8 算法的核心特性和改动可以归结为如下提供了一个全新的 SOTA 模型包括 P5 640 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的实例分割模型。和 YOLOv5 一样基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型用于满足不同场景需求
Backbone: 骨干网络和 Neck 部分可能参考了 YOLOv7 ELAN 设计思想将 YOLOv5 的 C3 结构换成了梯度流更丰富的 C2f 结构并对不同尺度模型调整了不同的通道数。
属于对模型结构精心微调不再是无脑一套参数应用所有模型大幅提升了模型性能。不过这个 C2f 模块中存在 Split 等操作对特定硬件部署没有之前那么友好了。
Head Head部分较yolov5而言有两大改进1换成了目前主流的解耦头结构(Decoupled-Head)将分类和检测头分离 2同时也从 Anchor-Based 换成了 Anchor-Free
Loss 1) YOLOv8抛弃了以往的IOU匹配或者单边比例的分配方式而是使用了Task-Aligned Assigner正负样本匹配方式。2并引入了 Distribution Focal Loss(DFL)
Train:训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作可以有效地提升精度 class Conv(nn.Module): # 标准的卷积 参数(输入通道数, 输出通道数, 卷积核大小, 步长, 填充, 组, 扩张, 激活函数) default_act nn.SiLU() # 默认的激活函数 def __init__(self, c1, c2, k1, s1, pNone, g1, d1, actTrue): super().__init__() self.conv nn.Conv2d(c1, c2, k, s, autopad(k, p, d), groupsg, dilationd, biasFalse) # 2维卷积其中采用了自动填充函数。 self.bn nn.BatchNorm2d(c2) # 使得每一个batch的特征图均满足均值为0方差为1的分布规律 # 如果actTrue 则采用默认的激活函数SiLU如果act的类型是nn.Module则采用传入的act; 否则不采取任何动作 nn.Identity函数相当于f(x)x只用做占位返回原始的输入。 self.act self.default_act if act is True else act if isinstance(act, nn.Module) else nn.Identity() def forward(self, x): # 前向传播 return self.act(self.bn(self.conv(x))) # 采用BatchNorm def forward_fuse(self, x): # 用于Model类的fuse函数融合 Conv BN 加速推理一般用于测试/验证阶段 return self.act(self.conv(x)) # 不采用BatchNorm
class ConvTranspose(nn.Module): # Convolution transpose 2d layer default_act nn.SiLU() # default activation def __init__(self, c1, c2, k2, s2, p0, bnTrue, actTrue): super().__init__() self.conv_transpose nn.ConvTranspose2d(c1, c2, k, s, p, biasnot bn) self.bn nn.BatchNorm2d(c2) if bn else nn.Identity() self.act self.default_act if act is True else act if isinstance(act, nn.Module) else nn.Identity() def forward(self, x): return self.act(self.bn(self.conv_transpose(x)))
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85799.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!