视频监控智能图像识别技术实际上是一种,它为建筑工程施工品质和安全工作给予了优秀的方式方法。施工人员的安全隐患因为欠缺高度重视或因为缺少较好的监管方式 ,导致安全事故的次数较高。视频监控智能图像识别根据在施工工地安装的各种各样不限品牌的监控设备,可以有效的填补传统式监控方式 和技术性的缺点,完成工作人员、机械设备、原材料、自然环境的全方位即时监控,将处于被动监管变化为积极监控,完成当场生产安全的信息化管理。

在CNN中,我们就是通过不断的改变卷积核矩阵的值来关注不同的细节,提取不同的特征。也就是说,在我们初始化卷积核的矩阵值(即权重参数)后,我们通过梯度下降不断降低loss来获得最好的权重参数,整个过程都是自动调整的。

如果有读者在理解完上文所提到的卷积后,可能会发出疑问:卷积的本质不是有效的提取相邻像素间的相关特征吗?1x1卷积核的每个通道和上一层的通道进行卷积操作的时候不是没法识别相邻元素了吗?其实不然,1x1卷积层的确是在高度和宽度的维度上失去了识别相邻元素间的相互作用的能力,并且通过1x1卷积核后的输出结果的高和宽与上一层的高和宽是相同的。但是,通道数目可能是不同的。而1x1卷积的唯一计算也正是发生在通道上。它通过改变1x1卷积核的数量,实现了多通道的线性叠加,使得不同的feature map进行线性叠加。我们通过下图来更好的认识1x1卷积的作用。

视频监控智能图像识别分析系统依据在施工工地进出口、安全通道、护栏等地方组装智能监控摄像头,将监控视频与云服务平台进行联接,管理者依据监控器大屏幕可以检查施工工地各地区的及时情况。在员工进到施工工地时,最开始是检查员工是否佩戴安全帽,对有佩戴安全帽的员工,监控视频显示一切正常,但对于沒有佩戴安全帽的员工,监控视频便会对其用白框标明,并报警提醒管理方法工作员。

batch_size = 256
train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size=batch_size)

def evaluate_accuracy_gpu(net, data_iter, device=None): #@save
    """使用GPU计算模型在数据集上的精度。"""
    if isinstance(net, torch.nn.Module):
        net.eval()  # 设置为评估模式
        if not device:
            device = next(iter(net.parameters())).device
    # 正确预测的数量,总预测的数量
    metric = d2l.Accumulator(2)
    for X, y in data_iter:
        if isinstance(X, list):
            X = [x.to(device) for x in X]
        else:
            X = X.to(device)
        y = y.to(device)
        metric.add(d2l.accuracy(net(X), y), y.numel())
    return metric[0] / metric[1]

#@save
def train_ch6(net, train_iter, test_iter, num_epochs, lr, device):
    """用GPU训练模型。"""
    def init_weights(m):
        if type(m) == nn.Linear or type(m) == nn.Conv2d:
            nn.init.xavier_uniform_(m.weight)
    net.apply(init_weights)
    print('training on', device)
    net.to(device)
    optimizer = torch.optim.SGD(net.parameters(), lr=lr)
    loss = nn.CrossEntropyLoss()
    animator = d2l.Animator(xlabel='epoch', xlim=[1, num_epochs],
                            legend=['train loss', 'train acc', 'test acc'])
    timer, num_batches = d2l.Timer(), len(train_iter)
    for epoch in range(num_epochs):
        # 训练损失之和,训练准确率之和,范例数
        metric = d2l.Accumulator(3)
        net.train()
        for i, (X, y) in enumerate(train_iter):
            timer.start()
            optimizer.zero_grad()
            X, y = X.to(device), y.to(device)
            y_hat = net(X)
            l = loss(y_hat, y)
            l.backward()
            optimizer.step()
            with torch.no_grad():
                metric.add(l * X.shape[0], d2l.accuracy(y_hat, y), X.shape[0])
            timer.stop()
            train_l = metric[0] / metric[2]
            train_acc = metric[1] / metric[2]
            if (i + 1) % (num_batches // 5) == 0 or i == num_batches - 1:
                animator.add(epoch + (i + 1) / num_batches,
                             (train_l, train_acc, None))
        test_acc = evaluate_accuracy_gpu(net, test_iter)
        animator.add(epoch + 1, (None, None, test_acc))
    print(f'loss {train_l:.3f}, train acc {train_acc:.3f}, '
          f'test acc {test_acc:.3f}')
    print(f'{metric[2] * num_epochs / timer.sum():.1f} examples/sec '
          f'on {str(device)}')

依据具体监管地区的大小和现场情况,对建筑工地的重污染区域开展视频监管,设定大概范围和角度的警示地区,根据对监控摄像头收集的视频流信息开展智能剖析,当看到职工倒在地面上,而且在制定的時间内沒有醒来时,系统软件会立即传出警示信息内容,提示有关工作人员查询并妥善处理援救。在管控地区安装监控摄像头 ,应用视频识别优化算法对监控摄像头收集的图像开展智能剖析。当发觉管控地区内有烟火征兆时,会自行传出警示信息内容,提示负责人查验,立即采用援救对策,快速合理控制火灾事故风险性,降低火灾事故损害。

更多推荐