城市道路井盖安全监测系统基于计算机人工智能视觉分析技术,城市道路井盖安全监测系统可以自动对城市道路井盖或者园区厂区井盖进行检测,如果通过监控摄像头检测到发现某个井盖缺失,城市道路井盖安全监测系统可以立即抓拍并回传给后台监控工作人员及时处理及时设指示标识,以防有人员不小心没看到就掉进去了。城市道路井盖安全监测系统有效提高了后台传统监控工作人员巡查效率。

Python是一种由Guido van Rossum开发的通用编程语言,它很快就变得非常流行,主要是因为它的简单性和代码可读性。它使程序员能够用更少的代码行表达思想,而不会降低可读性。与C / C++等语言相比,Python速度较慢。也就是说,Python可以使用C / C++轻松扩展,这使我们可以在C / C++中编写计算密集型代码,并创建可用作Python模块的Python包装器。这给我们带来了两个好处:首先,代码与原始C / C++代码一样快(因为它是在后台工作的实际C++代码),其次,在Python中编写代码比使用C / C++更容易。OpenCV-Python是原始OpenCV C++实现的Python包装器。

城市道路井盖安全监测系统 Python_机器学习

随着社会的发展和人们生活水平的进步,城市道路园区道路建设也日益增加。在建设的过程中,井盖是其中的一个重要环节,同时井盖也是出现道路交通事故的因素之一。很多地方道路年久失修,井盖丢失,特别是遇到大暴雨时无法及时排水,容易淹没马路往往容易留下安全隐患。城市道路井盖安全监测系统实现对井盖状态进行7*24小时不间断实时监测、及时提醒后台人员处理危险情况等功能、保障安全运行为智慧城市奠定行业应用基础。

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 DFL(nn.Module):
    # Integral module of Distribution Focal Loss (DFL) proposed in Generalized Focal Loss 
    def __init__(self, c1=16):
        super().__init__()
        self.conv = nn.Conv2d(c1, 1, 1, bias=False).requires_grad_(False)
        x = torch.arange(c1, dtype=torch.float)
        self.conv.weight.data[:] = nn.Parameter(x.view(1, c1, 1, 1))
        self.c1 = c1

    def forward(self, x):
        b, c, a = x.shape  # batch, channels, anchors
        return self.conv(x.view(b, 4, self.c1, a).transpose(2, 1).softmax(1)).view(b, 4, a)
        # return self.conv(x.view(b, self.c1, 4, a).softmax(1)).view(b, 4, a)

城市道路井盖安全监测系统是基于道路两旁已有的监控摄像头+深度视觉分析技术的一个实时监控分析预警系统。当城市道路井盖安全监测系统识别到监控画面中的井盖发生位移或者开启等情况时,城市道路井盖安全监测系统及时将异常信息抓拍存档并同步发给后台管理人员,后台值班人员可以根据系统回传的告警信息准确判断故障位置,最大限度的降低道路安全隐患,避免井盖伤人事件的发生。