河道水面垃圾识别检测系统采用计算机视觉技术,河道水面垃圾识别检测系统通过在河道上安装摄像头,对水面垃圾进行实时监测。河道水面垃圾识别检测系统通过计算机视觉算法自动识别并记录水面垃圾,及时通知环保部门进行处理。河道水面垃圾识别检测系统24小时不间断运行,能够实时监测河道水面垃圾的情况。
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%。
随着城市化的加速和生活垃圾的增加,河道水面垃圾问题越来越突出。传统的清理方式效率低下,难以满足环保治理的需求。为了解决这一问题,河道水面垃圾识别检测系统应运而生。河道水面垃圾识别检测系统适用于各类河道场所,特别是那些对环境保护要求较高的区域。河道水面垃圾识别检测系统可以被安装在河道上的摄像头中,为环保治理提供更加全面的保障。
# 检测类
class Detect(nn.Module):
stride = None # strides computed during build
export = False # onnx export
def __init__(self, nc=80, anchors=(), ch=()): # detection layer
super(Detect, self).__init__()
self.nc = nc # number of classes
self.no = nc + 5 # number of outputs per anchor
self.nl = len(anchors) # number of detection layers
self.na = len(anchors[0]) // 2 # number of anchors
self.grid = [torch.zeros(1)] * self.nl # init grid
a = torch.tensor(anchors).float().view(self.nl, -1, 2)
self.register_buffer('anchors', a) # shape(nl,na,2)
self.register_buffer('anchor_grid', a.clone().view(self.nl, 1, -1, 1, 1, 2)) # shape(nl,1,na,1,1,2)
self.m = nn.ModuleList(nn.Conv2d(x, self.no * self.na, 1) for x in ch) # output conv
def forward(self, x):
# x = x.copy() # for profiling
z = [] # inference output
self.training |= self.export
for i in range(self.nl):
x[i] = self.m[i](x[i]) # conv
bs, _, ny, nx = x[i].shape # x(bs,255,20,20) to x(bs,3,20,20,85)
x[i] = x[i].view(bs, self.na, self.no, ny, nx).permute(0, 1, 3, 4, 2).contiguous()
if not self.training: # inference
if self.grid[i].shape[2:4] != x[i].shape[2:4]:
self.grid[i] = self._make_grid(nx, ny).to(x[i].device)
y = x[i].sigmoid()
y[..., 0:2] = (y[..., 0:2] * 2. - 0.5 + self.grid[i].to(x[i].device)) * self.stride[i] # xy
y[..., 2:4] = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i] # wh
z.append(y.view(bs, -1, self.no))
return x if self.training else (torch.cat(z, 1), x)
@staticmethod
def _make_grid(nx=20, ny=20):
yv, xv = torch.meshgrid([torch.arange(ny), torch.arange(nx)])
return torch.stack((xv, yv), 2).view((1, 1, ny, nx, 2)).float()
河道水面垃圾识别检测系统是一种基于计算机视觉技术的新型环保治理系统,河道水面垃圾识别检测系统通过实时监测水面垃圾的情况,及时发现并预警异常情况。河道水面垃圾识别检测系统适用于各类河道场所,可以为环保治理提供更加全面的保障。河道水面垃圾识别检测系统能够自动识别水面垃圾,并发出警报提示环保部门及时采取措施。河道水面垃圾识别检测系统能够快速反应水面垃圾的情况,及时通知环保部门进行处理,减少环境污染的风险。
标签:YOLOv7,河道,self,grid,垃圾,识别,水面 From: https://blog.51cto.com/u_16270964/11911305