化工厂液体泄漏识别预警基于图像识别算法是计算机视觉的基础算法,例如VGG,GoogLeNet,ResNet等,化工厂液体泄漏识别这类算法主要是判断图片中目标的种类液体泄漏识别预警自动识别监控视频中机械管道是否存在液体泄漏行为。如检测到液体泄漏,立即反馈给后台人员及时处理。
![wKgaomaEm0iARuKRAAEOfnX636Q720.png](https://file1.elecfans.com/web2/M00/F8/55/wKgaomaEm0iARuKRAAEOfnX636Q720.png)
要对图片中一个物体进行分类,首先要解决如何从图片中发现这个物体,最直观的方法就是用不同尺寸的方框进行扫描,这个方框可以被称为window,和要得到的物体尺寸是两回事。这就是RNN的方法,但这种方法计算量大,因此出现了Yolo,其核心思想就体现在如何从一张图像准确获取目标的方法上。
![wKgZomaEm3OAAe1sAACs6B8hyl8397.png](https://file1.elecfans.com/web2/M00/F7/6A/wKgZomaEm3OAAe1sAACs6B8hyl8397.png)
至于目标检测的用处,现在最大的场景就是无人驾驶,在无人驾驶中,需要实时检测出途中的人、车、物体、信号灯、交通标线等,再通过融合技术将各类传感器获得的数据提供给控制中心进行决策。而目标检测相当于无人驾驶系统的眼睛。在目标检测技术领域,有包含region proposals提取阶段的两阶段(two-stage)检测框架如R-CNN/Fast-RCNN/R-FCN等。
卷积神经网络训练与硬件加速器实现图像识别系统的第二部分是 CNN 加速器,CNN 加速器的实现包含训练与推理两个阶段。一是卷积神经网络训练,提取相应的权重值和偏置值,即训练阶段。二是根据网络模型实现卷积神经网络,并做硬件加速,提升卷积神经网络运算的速率,即推理阶段。CNN 网络训练完毕后,采用 PyTorch 神经网络框架将卷积神经网络模型及其参数保存在pt 文件中。而 PyTorch 神经网络框架提供了 load 方法,可以很方便地读取文件中保存的参数,但输出格式为张量,无法直接使用。故先转换为 Numpy[61]的数据格式,再提取其中的参数,以固定的格式保存数据。
class Detect(nn.Module): stride = None # strides computed during build onnx_dynamic = False # ONNX export parameter def __init__(self, nc=80, anchors=(), ch=(), inplace=True): # detection layer super().__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 self.anchor_grid = [torch.zeros(1)] * self.nl # init anchor grid self.register_buffer('anchors', torch.tensor(anchors).float().view(self.nl, -1, 2)) # shape(nl,na,2) self.m = nn.ModuleList(nn.Conv2d(x, self.no * self.na, 1) for x in ch) # output conv self.inplace = inplace # use in-place ops (e.g. slice assignment) def forward(self, x): z = [] # inference output 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.onnx_dynamic or self.grid[i].shape[2:4] != x[i].shape[2:4]: self.grid[i], self.anchor_grid[i] = self._make_grid(nx, ny, i) y = x[i].sigmoid() if self.inplace: y[..., 0:2] = (y[..., 0:2] * 2 - 0.5 + self.grid[i]) * self.stride[i] # xy y[..., 2:4] = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i] # wh else: # for YOLOv5 on AWS Inferentia https://github.com/ultralytics/yolov5/pull/2953 xy = (y[..., 0:2] * 2 - 0.5 + self.grid[i]) * self.stride[i] # xy wh = (y[..., 2:4] * 2) ** 2 * self.anchor_grid[i] # wh y = torch.cat((xy, wh, y[..., 4:]), -1) z.append(y.view(bs, -1, self.no)) return x if self.training else (torch.cat(z, 1), x) def _make_grid(self, nx=20, ny=20, i=0): d = self.anchors[i].device if check_version(torch.__version__, '1.10.0'): # torch>=1.10.0 meshgrid workaround for torch>=0.7 compatibility yv, xv = torch.meshgrid([torch.arange(ny).to(d), torch.arange(nx).to(d)], indexing='ij') else: yv, xv = torch.meshgrid([torch.arange(ny).to(d), torch.arange(nx).to(d)]) grid = torch.stack((xv, yv), 2).expand((1, self.na, ny, nx, 2)).float() anchor_grid = (self.anchors[i].clone() * self.stride[i]) \ .view((1, self.na, 1, 1, 2)).expand((1, self.na, ny, nx, 2)).float() return grid, anchor_grid
-
图像识别
+关注
关注
8文章
488浏览量
38067 -
人工智能
+关注
关注
1783文章
45211浏览量
232558 -
预警
+关注
关注
1文章
39浏览量
14427
发布评论请先 登录
相关推荐
防爆巡检终端在石化工厂安全保障中的应用
![防爆巡检终端在石<b class='flag-5'>化工厂</b>安全保障中的应用](https://file1.elecfans.com/web2/M00/F6/78/wKgZomaCIeOAR9tTAAD-hqK_jgM123.png)
什么是智能制造和数字化工厂?
![什么是智能制造和数字<b class='flag-5'>化工厂</b>?](https://file1.elecfans.com/web2/M00/EC/FB/wKgZomZpX6WAdqW7AAEL47nxfAk103.png)
三防平板:数字化工厂中的SOP执行利器
为什么石油化工厂必须要用工业防爆手机?
![为什么石油<b class='flag-5'>化工厂</b>必须要用工业防爆手机?](https://file1.elecfans.com/web2/M00/D7/8D/wKgZomYohfiADcFiAADxjE6VtXk456.png)
化工厂防爆对讲机应用方案
![<b class='flag-5'>化工厂</b>防爆对讲机应用方案](https://file1.elecfans.com/web2/M00/D7/2D/wKgaomYnU5iAIUg2AADBNGVrWro974.png)
化工厂环境监测系统是什么
化工厂人员定位系统的应用分享
设置RFID感应门的化工厂二道门主要建设方案
![设置RFID感应门的<b class='flag-5'>化工厂</b>二道门主要建设方案](https://file.elecfans.com/web2/M00/9F/8E/pYYBAGQ4y8aAIpWIAAt5FoesY7A550.png)
化工厂4G+蓝牙+GPS/北斗RTK人员定位系统解决方案
实现设备互联:分布式IO模块在数字化工厂中的作用
![实现设备互联:分布式IO模块在数字<b class='flag-5'>化工厂</b>中的作用](https://file1.elecfans.com//web2/M00/94/85/wKgaomTl6tuARJWRAAJKBLZslj047.jpeg)
蓝牙+GPS/北斗RTK化工厂人员定位系统解决方案
![蓝牙+GPS/北斗RTK<b class='flag-5'>化工厂</b>人员定位系统解决方案](https://file1.elecfans.com//web2/M00/91/56/wKgaomTfPBGAIV-RAASmEkv1KSg15.webp)
化工厂建设人员定位系统具有重要的作用和意义
UWB+蓝牙化工厂人员定位系统:怎么提升工厂安全管理?
![UWB+蓝牙<b class='flag-5'>化工厂</b>人员定位系统:怎么提升<b class='flag-5'>工厂</b>安全管理?](https://file1.elecfans.com/web2/M00/8D/19/wKgZomS2iI-AINPAAAZ_xh7vzCo131.png)
化工厂人员定位,蓝牙信标定位精度差,部署难度大?解决方案来了
![<b class='flag-5'>化工厂</b>人员定位,蓝牙信标定位精度差,部署难度大?解决方案来了](https://file1.elecfans.com//web2/M00/8D/19/wKgZomS2hUmAHGKhAACOdIt74e4466.jpg)
评论