首页 > 其他分享 >AI工人操作行为流程规范识别方案 YOLOv7

AI工人操作行为流程规范识别方案 YOLOv7

时间:2024-09-23 08:54:33浏览次数:9  
标签:YOLOv7 识别系统 AI 流程 nc yaml self

AI工人操作行为流程规范识别系统利用高清监控摄像头覆盖现场作业区域,AI工人操作行为流程规范识别系统通过图像识别和深度学习技术对作业人员的操作行为进行实时分析。AI工人操作行为流程规范识别系统能够准确识别工人的操作行为是否符合作业标准规定的流程和合规SOP,并根据设定的规则判断是否存在违规操作行为。AI工人操作行为流程规范识别系统一旦系统识别到工人的违规操作行为,AI工人操作行为流程规范识别系统会立即发出告警信号,并将相关图像和记录发送给相关人员或管理者。这样,管理者可以及时采取措施进行纠正并提醒工人按照规范操作,确保作业的质量和安全。

YOLOv7 的发展方向与当前主流的实时目标检测器不同,研究团队希望它能够同时支持移动 GPU 和从边缘到云端的 GPU 设备。除了架构优化之外,该研究提出的方法还专注于训练过程的优化,将重点放在了一些优化模块和优化方法上。这可能会增加训练成本以提高目标检测的准确性,但不会增加推理成本。研究者将提出的模块和优化方法称为可训练的「bag-of-freebies」。

对于模型重参数化,该研究使用梯度传播路径的概念分析了适用于不同网络层的模型重参数化策略,并提出了有计划的重参数化模型。此外,研究者发现使用动态标签分配技术时,具有多个输出层的模型在训练时会产生新的问题:「如何为不同分支的输出分配动态目标?」针对这个问题,研究者提出了一种新的标签分配方法,称为从粗粒度到细粒度(coarse-to-fine)的引导式标签分配。

在现场作业中,工人的操作行为是否按照作业标准规定符合流程合规SOP是非常重要的。为了提高工作效率和作业质量,引入了AI工人操作行为流程规范识别系统。AI工人操作行为流程规范识别系统基于现场监控摄像头对工人的操作行为进行实时监测,能够识别现场作业人员是否按照作业标准规定进行操作,并对违规作业操作行为进行抓拍告警。综上所述,基于AI工人操作行为流程规范识别系统是一项重要且创新的工具。AI工人操作行为流程规范识别系统通过对工人操作行为的实时监测和识别,AI工人操作行为流程规范识别系统能够帮助管理者提高现场作业的合规性和质量,确保作业流程按照标准规定和SOP进行。

# 根据配置的.yaml文件搭建模型
class Model(nn.Module):
    def __init__(self, cfg='yolov5s.yaml', ch=3, nc=None):  # model, input channels, number of classes
        super(Model, self).__init__()
        if isinstance(cfg, dict):
            self.yaml = cfg  # model dict
        else:  # is *.yaml
            import yaml  # for torch hub
            self.yaml_file = Path(cfg).name
            with open(cfg) as f:
                self.yaml = yaml.load(f, Loader=yaml.SafeLoader)  # model dict

        # Define model
        ch = self.yaml['ch'] = self.yaml.get('ch', ch)  # input channels
        if nc and nc != self.yaml['nc']:
            logger.info('Overriding model.yaml nc=%g with nc=%g' % (self.yaml['nc'], nc))
            self.yaml['nc'] = nc  # override yaml value
        self.model, self.save = parse_model(deepcopy(self.yaml), ch=[ch])  # model, savelist
        self.names = [str(i) for i in range(self.yaml['nc'])]  # default names
        # print([x.shape for x in self.forward(torch.zeros(1, ch, 64, 64))])

        # Build strides, anchors
        m = self.model[-1]  # Detect()
        if isinstance(m, Detect):
            s = 256  # 2x min stride
            m.stride = torch.tensor([s / x.shape[-2] for x in self.forward(torch.zeros(1, ch, s, s))])  # forward
            m.anchors /= m.stride.view(-1, 1, 1)
            check_anchor_order(m)
            self.stride = m.stride
            self._initialize_biases()  # only run once
            # print('Strides: %s' % m.stride.tolist())

        # Init weights, biases
        initialize_weights(self)
        self.info()
        logger.info('')

    def forward(self, x, augment=False, profile=False):
        if augment:
            img_size = x.shape[-2:]  # height, width
            s = [1, 0.83, 0.67]  # scales
            f = [None, 3, None]  # flips (2-ud, 3-lr)
            y = []  # outputs
            for si, fi in zip(s, f):
                xi = scale_img(x.flip(fi) if fi else x, si, gs=int(self.stride.max()))
                yi = self.forward_once(xi)[0]  # forward
                # cv2.imwrite(f'img_{si}.jpg', 255 * xi[0].cpu().numpy().transpose((1, 2, 0))[:, :, ::-1])  # save
                yi[..., :4] /= si  # de-scale
                if fi == 2:
                    yi[..., 1] = img_size[0] - yi[..., 1]  # de-flip ud
                elif fi == 3:
                    yi[..., 0] = img_size[1] - yi[..., 0]  # de-flip lr
                y.append(yi)
            return torch.cat(y, 1), None  # augmented inference, train
        else:
            return self.forward_once(x, profile)  # single-scale inference, train

    def forward_once(self, x, profile=False):
        y, dt = [], []  # outputs
        for m in self.model:
            if m.f != -1:  # if not from previous layer
                x = y[m.f] if isinstance(m.f, int) else [x if j == -1 else y[j] for j in m.f]  # from earlier layers

            if profile:
                o = thop.profile(m, inputs=(x,), verbose=False)[0] / 1E9 * 2 if thop else 0  # FLOPS
                t = time_synchronized()
                for _ in range(10):
                    _ = m(x)
                dt.append((time_synchronized() - t) * 100)
                print('%10.1f%10.0f%10.1fms %-40s' % (o, m.np, dt[-1], m.type))

            x = m(x)  # run
            y.append(x if m.i in self.save else None)  # save output

        if profile:
            print('%.1fms total' % sum(dt))
        return x

    def _initialize_biases(self, cf=None):  # initialize biases into Detect(), cf is class frequency
        # https://arxiv.org/abs/1708.02002 section 3.3
        # cf = torch.bincount(torch.tensor(np.concatenate(dataset.labels, 0)[:, 0]).long(), minlength=nc) + 1.
        m = self.model[-1]  # Detect() module
        for mi, s in zip(m.m, m.stride):  # from
            b = mi.bias.view(m.na, -1)  # conv.bias(255) to (3,85)
            b.data[:, 4] += math.log(8 / (640 / s) ** 2)  # obj (8 objects per 640 image)
            b.data[:, 5:] += math.log(0.6 / (m.nc - 0.99)) if cf is None else torch.log(cf / cf.sum())  # cls
            mi.bias = torch.nn.Parameter(b.view(-1), requires_grad=True)

    def _print_biases(self):
        m = self.model[-1]  # Detect() module
        for mi in m.m:  # from
            b = mi.bias.detach().view(m.na, -1).T  # conv.bias(255) to (3,85)
            print(('%6g Conv2d.bias:' + '%10.3g' * 6) % (mi.weight.shape[1], *b[:5].mean(1).tolist(), b[5:].mean()))

AI工人操作行为流程规范识别系统具有多项优势。首先,AI工人操作行为流程规范识别系统通过图像识别和深度学习技术实现对工人操作行为的准确识别和流程规范检测,避免了传统人工巡查的不准确性和主观性。其次,AI工人操作行为流程规范识别系统能够实时监测作业人员的操作行为,并发出及时告警信号,提高了作业质量和效率。最后,AI工人操作行为流程规范识别系统支持远程监控和操作,方便管理人员实时了解现场作业情况并采取必要的措施。

标签:YOLOv7,识别系统,AI,流程,nc,yaml,self
From: https://blog.csdn.net/SuiJiAi/article/details/142448930

相关文章

  • 磁力万合AI智能全自动挂机掘金脚本,曰进五张
    本项目介绍了一种通过自动化脚本在磁力万合平台上刷视频以产生广告搜易的方法。用户可以通过在小号上安装脚本,自动访问特定账号的视频内容,从而获得广告搜易。项目概述通过在小号上安装自动化脚本,用户可以让这些账号自动访问并播放指定的磁力万合账号视频,模拟正常用户观......
  • paimon flink cdc 整库同步
    --单表同步bin/flinkrun/opt/module/flink/opt/paimon-flink-action-0.9.0.jarmysql-sync-table--warehousehdfs://xx:8020/paimon/hive--databasedefault--tableuser1_sink--primary-keysid--mysql-confhostname=xx--mysql-confusername=xx--mysql-conf......
  • 磁力万合AI智能全自动挂机掘金脚本,曰进五张
    本项目介绍了一种通过自动化脚本在磁力万合平台上刷视频以产生广告搜易的方法。用户可以通过在小号上安装脚本,自动访问特定账号的视频内容,从而获得广告搜易。项目概述通过在小号上安装自动化脚本,用户可以让这些账号自动访问并播放指定的磁力万合账号视频,模拟正常用户观......
  • 磁力万合AI智能全自动挂机掘金脚本,曰进五张
    本项目介绍了一种通过自动化脚本在磁力万合平台上刷视频以产生广告搜易的方法。用户可以通过在小号上安装脚本,自动访问特定账号的视频内容,从而获得广告搜易。项目概述通过在小号上安装自动化脚本,用户可以让这些账号自动访问并播放指定的磁力万合账号视频,模拟正常用户观......
  • 磁力万合AI智能全自动挂机掘金脚本,曰进五张
    本项目介绍了一种通过自动化脚本在磁力万合平台上刷视频以产生广告搜易的方法。用户可以通过在小号上安装脚本,自动访问特定账号的视频内容,从而获得广告搜易。项目概述通过在小号上安装自动化脚本,用户可以让这些账号自动访问并播放指定的磁力万合账号视频,模拟正常用户观......
  • tmpspring流程
    spring流程AbstractApplicationContext.refresh()1、创建beanFactory{1、newDefaultListableBeanFactory(null)2、给beanFactroy设置一堆属性组件供以后使用3、设置beanFactory的autowireCandidateResolver,beanFactory.setAutowireCandidateResolver(newQualifierAnnotat......
  • 使用LangChain4J实现Agent与Tool调用
    一些LLM除了生成文本,还可触发操作。所有支持tools的LLMs可在此处找到(参见“Tools”栏)。有一个被称为“工具(tools)”或“函数调用(functioncalling)”的概念。它允许LLM在必要时调用一或多个由开发者定义的工具。工具可以是任何东西:网页搜索、外部API调用、或执行一段特定代码等......
  • Augus-mail TLS 发送邮件
    Augus-mailTLS发送邮件 Augus-mail是一种邮件发送库,类似于JavaMail。要通过Augus-mail使用TLS发送邮件,流程会与JavaMail非常类似。以下是使用Augus-mail发送带TLS的邮件的基本步骤:步骤1:设置依赖首先,你需要确保项目中包含Augus-mail的依赖。如果你是通过Ma......
  • AIGC8: 高通骁龙AIPC开发者大会记录B
    图中是一个小男孩在市场卖他的作品。AI应用开发出来之后,无论是个人开发者还是企业开发者。如何推广分发是面临的大问题。做出来的东西一定要符合商业规律。否则就是实验室里面的玩物,或者自嗨的东西。背景上次是回顾和思考前面两个硬件营销总的分享,接下来看软件营销总的分享。......
  • 《深度学习》卷积神经网络CNN 原理及其流程解析
    目录一、CNN图像原理1、了解图像的原理2、举例二、CNN图像识别1、画面不变性2、主要表现    1)平移不变性    2)尺度不变性    3)旋转不变性3、传统神经网络识别    1)数据预处理    2)特征提取    3)搭建神经网络模型......