基于InteloneAPI的油锅爆燃预警系统

news2024/11/18 11:49:03

基于InteloneAPI的油锅爆燃预警系统

  • 前言
  • 一、方案介绍
    • 1.系统概述
    • 2.设计思路
  • 二、方案实现
    • 1.ResNet-18模型
    • 2.Intel OneAPI AI Kit 使用
      • 1.Intel® Neural Compressor:
      • 2.Intel® Optimization for PyTorch*
  • 三、方案价值
  • 总结

前言

家居场景下,最容易起火的原因不是私拉电线、卧床吸烟也不是发热电器,而是厨房,厨房里的油锅最容易起火。大部分油锅起火、爆燃。如果不及时处理,火势会迅速蔓延。

本系统计划使用oneAPI AI开发工具,设计一套家政离人预警系统。针对无人看管、油面偏高、锅具位置摆放不当等原因引起的油锅起火进行预警。

通过AI识别爆燃火焰、配合物联网设备网关,进行关闸、消防报警等动作。实现油锅爆燃下的紧急干预处理,为用户减少财产损失。

一、方案介绍

在这里插入图片描述

1.系统概述

油锅爆燃预警系统是一款基于人工智能技术的安全预警设备,用于监测油锅状态,及时预警油锅爆燃事故的发生。该系统采用深度学习算法,利用摄像头+传感器采集油锅温度、烟雾、气体等多种数据以及实时图像,通过模型推理实现爆燃预警。
本系统由物联设备、摄像头、物联网网关、AI分析模块、预警系统等软硬件模块组成。主要以Intel OneAPI 实现AI 图像分析模块进行介绍。

2.设计思路

在这里插入图片描述

Intel OneAPI是一种用于高性能计算和人工智能的跨平台、跨架构的软件开发框架,它支持多种编程语言,如C++、Python等,以及多种硬件平台,如Intel Xe、GPU、FPGA等。使用Intel OneAPI可以轻松实现跨平台的高性能计算和人工智能应用。

针对油锅爆燃预警系统的设计,本次我们使用Intel OneAPI AI工具来构建解决方案。以下是方案的基本步骤:

  1. 收集数据:首先需要收集油锅爆燃的相关数据,包括温度、烟雾、气体等多种传感器数据。本次介绍的是图像分析模块,通过收集大量的爆燃火焰和非火焰图像来训练我们的模型。我们使用了开源的FIRESENSE数据集去挑选数据。

  2. 数据预处理:对于收集到的数据进行预处理,包括清洗、归一化、特征提取等操作。

    input_image = cv2.resize(frame, (224, 224))
    input_tensor = torch.tensor(input_image).permute(2, 0, 1).unsqueeze(0).float()
    input_tensor /= 255
    input_tensor -= torch.tensor([0.485, 0.456, 0.406]).reshape((1, 3, 1, 1))
    input_tensor /= torch.tensor([0.229, 0.224, 0.225]).reshape((1, 3, 1, 1))
  1. 模型训练:使用收集到的数据来训练机器学习模型,我们使用Intel PyTorch等来训练模型。在训练模型时,需要考虑模型的参数、超参数、损失函数等因素。
  2. 模型评估:使用测试数据集来评估模型的性能,评估模型的准确性、稳定性等指标。
  3. 预警系统:将机器学习模型集成到预警系统中,使用传感器数据来实时监测油锅的状态,并使用模型预测结果来进行预警。

二、方案实现

1.ResNet-18模型

ResNet-18是深度残差网络(ResNet)的一种变体,由18个残差块(residual block)组成。这个模型可以用于图像识别任务。

首先从PyTorchvision库中加载预训练的ResNet-18模型。然后,我们定义了火焰识别的类别,并加载了一个测试图像。接着,我们使用transforms对图像进行预处理,将其转化为张量并输入ResNet-18模型进行推理。

...简单示意
model = torchvision.models.resnet18(pretrained=True)

2.Intel OneAPI AI Kit 使用

1.Intel® Neural Compressor:

Intel® Neural Compressor 旨在为TensorFlow、PyTorch、ONNX Runtime和MXNet等主流框架以及 Intel 扩展(如Intel® Extension for TensorFlow* 和 Intel® Extension for PyTorch*)提供流行的模型压缩技术,例如量化、剪枝(稀疏性)、蒸馏和神经架构搜索。

# 应用Intel® Neural Compressor压缩并保存压缩模型

compression_config = {
    'algorithm': 'Quantization',
    'params': {
        'precision': 8,
        'preserve_sparsity': False,
        'mode': 'ASYMMETRIC',
        'per_tensor_compression_ratio': 0.5
    }
}
compressed_model = apply_compression(model, compression_config)
torch.save(compressed_model, 'fire_quantized.pth')
quantized_model = torch.load('fire_quantized.pth')

2.Intel® Optimization for PyTorch*

PyTorch 是一个基于主流 Torch 库的机器学习开源框架。英特尔® PyTorch*扩展为 PyTorch 提供了额外的优化,

  1. 安装PyTorch:首先,您需要安装PyTorch。您可以从PyTorch官方网站上下载并安装最新版本的PyTorch。确保您的PyTorch版本支持Intel Optimization for PyTorch。

  2. 安装Intel Optimization for PyTorch:从Intel官方网站上下载并安装最新版本的Intel Optimization for PyTorch、可以使用pip或者conda下载Intel Optimization for PyTorch。

  3. 导入PyTorch和优化器:在您的Python代码中,导入PyTorch和Intel Optimization for PyTorch优化器。

  4. 创建模型和优化器:创建一个PyTorch模型和一个Intel Optimization for PyTorch优化器。在创建优化器时,您需要指定要使用的优化器类型(例如AdamW)和超参数。

#使用optimize函数进行优化
quantized_model = ipex.optimize(quantized_model)

# 在最后一层输出之前添加一个全连接层
num_ftrs = quantized_model.fc.in_features
quantized_model.fc = torch.nn.Linear(num_ftrs, 2)
# 将模型转换为推理模式
quantized_model.eval()

  1. 训练模型:使用优化器来训练您的模型。可以使用PyTorch的内置函数train()或使用自己的训练循环。
    # 使用量化模型进行推理
    with torch.no_grad():
        output = quantized_model(input_tensor)
        predictions = torch.softmax(output, dim=1)
        _, predicted_class = torch.max(predictions, dim=1)

    # 在图像上绘制结果
    cv2.putText(frame, classes[predicted_class.item()], (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (255, 255, 255), 2)
    cv2.imshow('Fire Detection', frame)

  1. 测试模型:使用测试数据集来测试您的模型。

三、方案价值

  • 实用价值
    该系统应用场景广泛、可以在家居、家政行业进行广泛使用,由于厨房一般不安装烟雾报警,所以炒锅爆燃检测具有一定的实用价值。用户群体包含个人家庭用户,房屋租赁公司、长期家政服务公司。
  • 抗风险性
    对于合租房和家政公司,该系统可以为第三方减少不必要的消防安全风险,并对于已发生的爆燃事故,进行图像、视频的留证。为后续事故责任的认定提供数据支撑,所以该系统具备一定的经济价值和抗风险能力。
  • 创新性
    通过Intel工具使用,将物联网关与AI算法相结合,落地在厨房场景、与民生息息相关。该方案与传统的单一视频算法、或者物联网报警器不同,采用了软硬结合的方案。在保证物联设备识别准确度的情况下,提供了灵活性和可扩展性。

总结

该demo通过 intel-aikit-pytorch 使用预训练的ResNet-18模型 实现了炒锅爆燃的检测。
并通过使用ipex、apply_compression等工具提高了整体模型的效率。
经过本次大赛,学习使用了intel的开发套件,收获很多。
后续增加物联功能和、人脸抓拍功能可以完善该系统应用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/695797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

selenium自动化登录(实战解析)

目录 1.纯英文验证码 1.首先需要了解运行所需要的模块 2.获取我们的目标地址链接 3.进入古诗词首页面,找到验证码的标签,获取并且保存 4.调用超级鹰打码平台 5.调用超级鹰内的方法 6.输入账号密码 7.模拟登陆需要用cookie保持登陆状态 相信有很多…

人工智能 | 技能人才评价证书分析及人工智能/计算机类证书推荐

目录 简介技能人才评价证书相关介绍1. 国家职业资格证书2. 职业技能等级证书 推荐证书目录1. 计算机类的国家职业资格证书a. 证书推荐b. “软高***”和“PMP”的区别 2. 计算机类的职业技能等级证书a. 工信部认证b. 中国人工智能学会证书 专业证书的作用1. 抵税2. 领取职业技能…

想要让视频素材格式快速调整转换的方法分享

有时候有些视频播放软件不支持播放某些格式的视频文件?那要怎么解决呢?换一个播放软件?不妨试试批量转换视频格式,简单的几步操作就能快速解决烦恼,跟着小编一起来看看具体的操作环节吧。 首先先进入“固乔科技”的官网…

Apikit 自学日记:发起快速测试

功能入口:API管理应用 / 选中某个项目 / API文档菜单 / 选中标签页旁加号 发起快速测试 如果未创建该接口文档,仅临时调试接口,则可创建API快速测试页面。可在这个页面输入接口相关的信息并进行快速测试。具体各协议的测试字段配置&#xf…

NoSQL之Redis配置

NoSQL 一、关系型数据库与非关系型数据库关系型数据库非关系型数据库区别 二、Redis简介Redis的优点Redis的使用场景 三、Redis安装部署四、Redis命令工具redis-cli 命令行工具redis-benchmark 测试工具 五、Redis 数据库常用命令六、Redis多数据库常用命令 一、关系型数据库与…

深入浅出设计模式 - 观察者模式

博主介绍: ✌博主从事应用安全和大数据领域,有8年研发经验,5年面试官经验,Java技术专家✌ Java知识图谱点击链接:体系化学习Java(Java面试专题) 💕💕 感兴趣的同学可以收…

【Sql】win11系统安装sqlserver2008r2数据库,找不到文件user.config line 5

【问题描述】 在win11系统环境下, 安装sql server 2008 r2数据库的时候,提示【Microsoft.NET Framework】窗口错误。 如果点击继续,应用程序将忽略此错误并尝试继续。 具体错误明细: 创建userSettings/Microsoft.SqlServer.Config…

centos下的Nginx的安装 --yum安装

1.没有可用软件包 nginx 2.检查yum源下nginx相关软件包 3.解决yum源无nginx软件包问题 yum install epel-release yum update更新yum源后查询结果 4.安装nginx yum -y install nginx5.yum安装后的nginx相关目录 6.查看nginx.conf,确定nginx相关具体目录 详细配置…

ECCV2020-DY-RELU

论文地址:https://arxiv.org/abs/2003.10027论文代码:https://github.com/Islanna/DynamicReLU三方复现:Dynamic ReLU: 与输入相关的动态激活函数 - 知乎 ReLU是深度学习中很重要的里程碑,简单但强大。目前有很多ReLU的改进版&am…

【uniapp学习之分享小程序页面】

一、设置分享功能之前的样子 二、在代码中开启分享转发按钮 <script>export default {data() {return {}},methods: {},onLoad() {wx.showShareMenu({withShareTicket: true,menus: [shareAppMessage, shareTimeline]});},onShareAppMessage(res) { //发送给朋友return …

C1. Make Nonzero Sum (easy version) - 思维

分析&#xff1a; n一但是奇数就一定不行&#xff0c;因为无论有多少-1和1都会导致最后的和是-1或1&#xff0c;每次断开一个区间会改变2&#xff0c;所以一定不行&#xff0c;直接输出-1。 其次&#xff0c;如果数组满足题意也可以一个一个输出每一个下标&#xff0c;遍历数组…

4 测试分类

文章目录 总结:课程笔记 总结: 课程笔记

I/O复用的高级应用三——同时处理TCP和UDP服务

截至目前学习&#xff0c;我们讨论过的服务器程序都只监听一个端口。但在实际应用中&#xff0c;有不少服务器程序能同时监听多个端口&#xff0c;比如超级服务inetd和android的调试服务adbd。 从bind系统调用的参数看&#xff0c;一个socket只能与一个socket地址绑定&#xff…

聚焦 5 大技术领域,腾讯2023 年度犀牛鸟开源人才培养计划启动报名

如今&#xff0c;开源已成为全球科技创新的重要方式&#xff0c;而人才建设则是中国开源生态健康发展的关键。 6 月 28 日&#xff0c;在开放原子校源行清华大学站上&#xff0c;腾讯 2023 年度犀牛鸟开源人才培养计划正式启动&#xff0c;将聚焦AI、大数据、数据库、基础软件…

MATLAB代码:配网节点电价 DLMP 考虑网损,电压,阻塞的配电网二阶锥节点电价 (DLMP)需要gurobi求解器

MATLAB代码&#xff1a;配网节点电价 DLMP 关键词&#xff1a;DLMP SOCP lindistflow 参考文档&#xff1a;《Distribution Locational Marginal Pricing (DLMP) for Congestion Management and Voltage Support》2018 SCI一区 IEEE Transactions on Power System 非完美复现 …

使用 Jetpack Compose 构建 CircularProgressIndicator

欢迎阅读这篇关于如何使用 Jetpack Compose 构建 CircularProgressIndicator&#xff08;圆形进度指示器&#xff09;的博客。Jetpack Compose 是 Google 推出的一款现代化 UI 工具包&#xff0c;用于构建 Android 界面。其声明式的设计使得 UI 开发更加简洁、直观。 一、什么…

Spring 中的 bean 是线程安全的吗?

spring 是一款非常流行的 Java 开源框架&#xff0c;它主要用于构建企业级应用程序。Spring 的 IoC 和AOP技术能够帮助开发人员更加便捷地组织和管理 Java 代码。 在 Spring 中&#xff0c;bean 默认是单例模式&#xff0c;也就是说&#xff0c;每个 bean 只会被 Spring 容器创…

Mac电脑硬件/软件运行状况查看工具

iStat Menus是一款系统监控和管理工具&#xff0c;旨在帮助Mac用户实时监控电脑的各项硬件和软件信息。它以直观和定制化的方式提供了丰富的系统状态指标&#xff0c;让用户能够全面了解和管理自己的Mac电脑。 iStat Menus提供了一系列的菜单栏指示项目&#xff0c;可以显示诸如…

NoSQL之 Redis 配置与优化

目录 一、关系型数据库与非关系型数据库1.1 关系型数据库&#xff1a;1.2 非关系型数据库1.3 关系型数据库和非关系数据库的区别1.3.1 数据存储方式不同1.3.2 扩展方式不同1.3.3 对事务性的支持不同 1.4 非关系型数据库的产生背景1.5 总结 二、Redis介绍三、 Redis 的优点四、 …

深入浅出设计模式 - 建造者模式

博主介绍&#xff1a; ✌博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家✌ Java知识图谱点击链接&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; &#x1f495;&#x1f495; 感兴趣的同学可以收…