首页 > 编程语言 >Lnton羚通视频分析算法开发平台关工服穿戴检测联动门禁开关算法的介绍

Lnton羚通视频分析算法开发平台关工服穿戴检测联动门禁开关算法的介绍

时间:2023-09-08 16:03:24浏览次数:41  
标签:nn self 算法 羚通 act Lnton 门禁 bn

Lnton羚通的算法算力云平台以其突出的特点成为一款优秀的解决方案。它的高性能、高可靠性、高可扩展性和低成本使得用户能够高效地进行复杂的计算任务。同时,丰富的算法库和工具以及支持用户上传和部署自定义算法的功能进一步提升了平台的灵活性和个性化能力。

Lnton羚通视频分析算法开发平台关工服穿戴检测联动门禁开关算法的介绍_云平台

工服穿戴检测联动门禁开关算法通过yolov8深度学习框架模型,工服穿戴检测联动门禁开关算法能够准确识别和检测作业人员是否按照规定进行工服着装,只有当人员合规着装时,算法会发送开关量信号给门禁设备,使门禁自动打开。YOLO的结构非常简单,就是单纯的卷积、池化最后加了两层全连接,从网络结构上看,与前面介绍的CNN分类网络没有本质的区别,最大的差异是输出层用线性函数做激活函数,因为需要预测bounding box的位置(数值型),而不仅仅是对象的概率。所以粗略来说,YOLO的整个结构就是输入图片经过神经网络的变换得到一个输出的张量。根据YOLO的设计,输入图像被划分为 7x7 的网格(grid),输出张量中的 7x7 就对应着输入图像的 7x7 网格。或者我们把 7x7x30 的张量看作 7x7=49个30维的向量,也就是输入图像中的每个网格对应输出一个30维的向量。

Lnton羚通视频分析算法开发平台关工服穿戴检测联动门禁开关算法的介绍_v8_02

工服穿戴检测联动门禁开关算法利用YOLOv8深度学习框架模型实现。该算法能够准确地检测和识别作业人员是否按照规定穿戴工作服。只有在人员合规穿戴工作服时,算法才会发送开关信号给门禁设备,从而自动打开门禁。

YOLOv8是目前YOLO系列算法中最新推出的检测算法,YOLOv8可以完成检测、分类、分割任务。YOLOv8 算法的核心特性和改动可以归结为如下:提供了一个全新的 SOTA 模型,包括 P5 720 和 P6 1280 分辨率的目标检测网络和基于 YOLACT 的实例分割模型。和 yolov8 一样,基于缩放系数也提供了 N/S/M/L/X 尺度的不同大小模型,用于满足不同场景需求

Lnton羚通视频分析算法开发平台关工服穿戴检测联动门禁开关算法的介绍_2d_03

骨干网络和 Neck 部分可能参考了 yolov8 ELAN 设计思想,将 yolov8 的 C3 结构换成了梯度流更丰富的 C2f 结构,并对不同尺度模型调整了不同的通道数。

属于对模型结构精心微调,不再是无脑一套参数应用所有模型,大幅提升了模型性能。不过这个 C2f 模块中存在 Split 等操作对特定硬件部署没有之前那么友好了。

Head部分较yolov8而言有两大改进:

1)换成了目前主流的解耦头结构(Decoupled-Head),将分类和检测头分离

2)同时也从 Anchor-Based 换成了 Anchor-Free

1)YOLOv8抛弃了以往的IOU匹配或者单边比例的分配方式,而是使用了Task-Aligned Assigner正负样本匹配方式。

2)并引入了 Distribution Focal Loss(DFL)

训练的数据增强部分引入了 YOLOX 中的最后 10 epoch 关闭 Mosiac 增强的操作,可以有效地提升精度

class Conv(nn.Module):
    # 标准的卷积 参数(输入通道数, 输出通道数, 卷积核大小, 步长, 填充, 组, 扩张, 激活函数)
    default_act = nn.SiLU()  # 默认的激活函数

    def __init__(self, c1, c2, k=1, s=1, p=None, g=1, d=1, act=True):
        super().__init__()
        self.conv = nn.Conv2d(c1, c2, k, s, autopad(k, p, d), groups=g, dilation=d, bias=False) # 2维卷积,其中采用了自动填充函数。
        self.bn = nn.BatchNorm2d(c2) # 使得每一个batch的特征图均满足均值为0,方差为1的分布规律
        # 如果act=True 则采用默认的激活函数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, k=2, s=2, p=0, bn=True, act=True):
        super().__init__()
        self.conv_transpose = nn.ConvTranspose2d(c1, c2, k, s, p, bias=not 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)))

Lnton羚通的算法算力云平台特点突出,包括高性能、高可靠性、高可扩展性和低成本。该云平台为用户提供高效、强大的算法计算服务,能够快速、灵活地执行各种复杂的计算模型和算法,涉及机器学习、人工智能、大数据分析和图像识别等广泛领域。此外,算法算力云平台还提供丰富的算法库和工具,并支持用户上传和部署自己的算法模型,满足不同用户的需求。

标签:nn,self,算法,羚通,act,Lnton,门禁,bn
From: https://blog.51cto.com/LNTON/7411261

相关文章

  • EasyCVR AI智能视频平台:如何切换人脸识别算法?
    人工智能的应用领域非常广泛,目前市场上比较普及的包括计算机视觉、语音识别、自然语言处理、深度学习、智能机器人、自动驾驶等。随着人工智能技术的发展和成熟,它已经在社会各个领域扮演着重要角色。在这其中,安防监控行业被认为是最广泛应用人工智能技术的领域之一。TSINGSEE青犀视......
  • 深入理解回溯算法及其应用
    回溯算法是一种经典的问题求解方法,常被用于解决组合优化、搜索和排列问题。它通过不断尝试不同的选择,并在每一步做出回溯(回退)来找到问题的解。在本篇博客中,我们将深入探讨回溯算法的原理、应用场景以及一些实际案例。什么是回溯算法?回溯算法是一种暴力搜索的方法,它通过穷举所有可能......
  • 【开源三方库】crypto-js加密算法库的使用方法
     OpenAtom OpenHarmony(简称“OpenHarmony”)三方库,是经过验证可在OpenHarmony系统上可重复使用的软件组件,可帮助开发者快速开发OpenHarmony应用。如果是发布到开源社区,称为开源三方库,开发者可以通过访问开源社区获取。接下来我们来了解crypto-js开源三方库。crypto-js是一个加密......
  • 机器学习算法原理实现——使用梯度下降求解Lasso回归和岭回归
    本文本质上是在线性回归的基础上进行扩展,加入了正则化而已!机器学习算法原理实现——使用梯度下降求解线性回归 正则化在机器学习中是一种防止过拟合的技术,它通过在损失函数中添加一个惩罚项来限制模型的复杂度。举一个实际的例子,假设你正在训练一个机器学习模型来预测房价。你......
  • 文心一言 VS 讯飞星火 VS chatgpt (83)-- 算法导论8.1 4题
    四、用go语言,假设现有一个包含n个元素的待排序序列。该序列由n/k个子序列组成,每个子序列包含k个元素。一个给定子序列中的每个元素都小于其后继子序列中的所有元素,且大于其前驱子序列中的每个元素。因此,对于这个长度为n的序列的排序转化为对n/k个序列中的k个元素的排序。试证......
  • 一个实际例子演示动态时间规整(Dynamic Time Warping, DTW )算法
    用一个实际例子,演示动态时间规整(DynamicTimeWarping,DTW )算法  动态时间规整(DynamicTimeWarping,DTW)是一种用于度量两个时间序列之间的差异的算法,尤其是当这两个序列出现时间偏移或速度不同的情况。例如,DTW可用于语音识别或股价数据分析。以下是一个简单的DTW算......
  • 超参优化算法——BO-GP
    超参优化算法 华为网络AI平台(NAIE)官方帐号特性汇总NAIESDK包内置了多种参数优化算法,适用于多种超参优化场景.优化算法收敛快探索强维度高迭代多极值多离散值多连续值多RandomSearch(随机搜索)---------------------GridSearch(网格搜索)---------------------BO-GP(高斯......
  • 代码随想录算法训练营第二天| 977.有序数组的平方,209.长度最小的子数列,59.螺旋矩阵Ⅱ
    977.有序数组的平方双指针法因为负数平方后也会变大,所以较大的平方值只可能在靠近两端的位置,越往中间走平方值必定越小。所以,在原数组两端各定义一个指针,慢慢往中间走,然后把平方值按顺序放到新数组里即可。classSolution{public:vector<int>sortedSquares(vector<i......
  • 【校招VIP】测试算法考点之链表
    考点介绍:链表是一种逻辑简单的、实用的数据结构,几乎被所有程序设计语言支持。单链表的操作算法是笔试面试中较为常见的题目。相关题目及解析内容可点击文章末尾链接查看!一、考点试题1.一个长度为n的单向链表,用O(1)空间复杂度来实现倒转输出,使用最低时间复杂度解答:思路:读题(......
  • 循环冗余校验(CRC)算法入门引导
    写给嵌入式程序员的循环冗余校验(CRC)算法入门引导前言CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC算法对各种数据进行校验。因此,掌握基本的CRC算法应是嵌入式程序员的基本技能。可是,我认识的嵌入式程序员中能真正掌握CRC算法的人却很少,......