AI工人操作行为流程规范识别算法

AI工人操作行为流程规范识别算法通过yolov7+python网络模型框架,AI工人操作行为流程规范识别算法对作业人员的操作行为进行实时分析,根据设定算法规则判断操作行为是否符合作业标准规定的SOP流程。Yolo意思是You Only Look Once,它并没有真正的去掉候选区域,而是创造性的将候选区和目标分类合二为一,看一眼图片就能知道有哪些对象以及它们的位置。Yolo模型采用预定义预测区域的方法来完成目标检测,具体而言是将原始图像划分为 7x7=49 个网格(grid),每个网格允许预测出2个边框(bounding box,包含某个对象的矩形框),总共 49x2=98 个bounding box。我们将其理解为98个预测区,很粗略的覆盖了图片的整个区域,就在这98个预测区中进行目标检测。

YOLOv7 的发展方向与当前主流的实时目标检测器不同,研究团队希望它能够同时支持移动 GPU 和从边缘到云端的 GPU 设备。除了架构优化之外,该研究提出的方法还专注于训练过程的优化,将重点放在了一些优化模块和优化方法上。这可能会增加训练成本以提高目标检测的准确性,但不会增加推理成本。研究者将提出的模块和优化方法称为可训练的「bag-of-freebies」。对于模型重参数化,该研究使用梯度传播路径的概念分析了适用于不同网络层的模型重参数化策略,并提出了有计划的重参数化模型。此外,研究者发现使用动态标签分配技术时,具有多个输出层的模型在训练时会产生新的问题:「如何为不同分支的输出分配动态目标?」针对这个问题,研究者提出了一种新的标签分配方法,称为从粗粒度到细粒度(coarse-to-fine)的引导式标签分配。

YOLOv7 的在速度和精度上的表现也优于 YOLOR、YOLOX、Scaled-YOLOv4、YOLOv5、DETR 等多种目标检测器。YOLOv7 在 5 FPS 到 160 FPS 范围内,速度和精度都超过了所有已知的目标检测器。并在V100 上,30 FPS 的情况下达到实时目标检测器的最高精度 56.8% AP。YOLOv7 是在 MS COCO 数据集上从头开始训练的,不使用任何其他数据集或预训练权重。

相对于其他类型的工具,YOLOv7-E6 目标检测器(56 FPS V100,55.9% AP)比基于 transformer 的检测器 SWINL Cascade-Mask R-CNN(9.2 FPS A100,53.9% AP)速度上高出 509%,精度高出 2%,比基于卷积的检测器 ConvNeXt-XL Cascade-Mask R-CNN (8.6 FPS A100, 55.2% AP) 速度高出 551%,精度高出 0.7%。

Yolo的源码是用C实现的,但是好在Github上有很多开源的TF复现。这里我们参考gliese581gg的实现来分析Yolo的Inference实现细节。我们的代码将构建一个end-to-end的Yolo的预测模型,利用的已经训练好的权重文件,你将可以用自然的图片去测试检测效果。

首先,我们定义Yolo的模型参数:

class Yolo(object):

def init(self, weights_file, verbose=True):

self.verbose = verbose

detection params

self.S = 7 # cell size

self.B = 2 # boxes_per_cell

self.classes = ["aeroplane", "bicycle", "bird", "boat", "bottle",

"bus", "car", "cat", "chair", "cow", "diningtable",

"dog", "horse", "motorbike", "person", "pottedplant",

"sheep", "sofa", "train","tvmonitor"]

self.C = len(self.classes) # number of classes

offset for box center (top left point of each cell)

self.x_offset = np.transpose(np.reshape(np.array([np.arange(self.S)]*self.S*self.B),

self.B, self.S, self.S\]), \[1, 2, 0\]) self.y_offset = np.transpose(self.x_offset, \[1, 0, 2\]) self.threshold = 0.2 # confidence scores threhold self.iou_threshold = 0.4 # the maximum number of boxes to be selected by non max suppression self.max_output_size = 10

相关推荐
Mr.朱鹏7 分钟前
JVM-GC垃圾回收案例
java·jvm·spring boot·算法·spring·spring cloud·java-ee
WJSKad123532 分钟前
【DepthPro】实战教程:单目深度估计算法详解与应用
算法
星爷AG I33 分钟前
14-2 个体、任务与环境(AGI基础理论)
人工智能·agi
wzqllwy34 分钟前
8 大经典排序算法(Java 实现):原理 + Demo + 核心分析
java·算法·排序算法
We་ct35 分钟前
LeetCode 77. 组合:DFS回溯+剪枝,高效求解组合问题
开发语言·前端·算法·leetcode·typescript·深度优先·剪枝
飞Link36 分钟前
深度解析 LSTM 神经网络架构与实战指南
人工智能·深度学习·神经网络·lstm
前端不太难37 分钟前
AI 时代,鸿蒙 App 还需要传统导航结构吗?
人工智能·状态模式·harmonyos
格林威37 分钟前
工业相机图像高速存储(C#版):内存映射文件方法,附Basler相机C#实战代码!
开发语言·人工智能·数码相机·c#·机器视觉·工业相机·堡盟相机
geneculture38 分钟前
AGI Maths融智学AGI数学模型
人工智能·融智学的重要应用·哲学与科学统一性·信息融智学·融智时代(杂志)·agi maths.