机器学习之危险品车辆目标检测
危险品的运输涉及从离开仓库到由车辆运输到目的地的风险。监控事故、车辆运动动态以及车辆通过特定区域的频率对于监督车辆运输危险品的过程至关重要。
在线工具推荐: 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数据生成器 - 3D模型在线转换 - 3D模型预览图生成服务
危险品是指具有爆炸性、易燃性、中毒杀人、烧成放射性等特性,在运输、装卸与存放的保管过程中,容易造成人身伤害,需要特别保护的物品造成财产损失。随着社会经济的发展,危险品的生产和使用量呈逐年上升趋势,而中国是世界上仅次于美国的危险品生产第二大国,这恰恰使得危险品的监督管理需要人们高度重视。2009年20月,秘鲁天然气运输卡车和一辆长途汽车撞到后面,造成10人死亡,5000人受伤。同年,美国运送有毒化学品的卡车氢萤石倾覆,并造成2005名居民紧急疏散。30年400月,国产京沪高速一代液氨运输车被揭露,造成近多人死亡,多人中毒,l居民万人以上被疏散,大量家畜和农作物死亡。造成的危害是巨大的,因此,危险品在公路运输过程中显然处于危险之中,因此,加强危险品运输过程的管理是极其紧迫的,势在必行的。
危险品车辆的GPS定位是动态车辆运动监控的主要基础。摄像机识别的车辆的次数和连续检测时间可用于确定危险货物车辆通过特定地点的具体频率和事故情况。危险品车辆识别的准确性受到环境特征(如照明、凌乱的背景和部分遮挡)的显着影响。
基于图像和深度学习的危险品车辆识别技术
两种基本的车辆识别技术是基于图像的,也是基于深度学习的。
基于图像的检测方法主要通过车辆图像特征和方向梯度直方图特征来识别车辆目标。基于车辆图像纹理和边缘特征的车辆检测系统的根本缺点是照明和车辆完整性会显着影响它们。然而,随着深度学习的不断进步,越来越多的研究人员正在研究使用深度学习进行车辆检测的主题。
在这项研究中,使用深度学习技术实现了车辆检测。为了实现快速、精确的车辆识别,研究人员增强了深度学习YOLO模型的训练阶段,并构建了阶段性训练模型。首先,使用高效的深度学习模型对危险品车辆进行训练,然后利用训练好的模型对危险品车辆进行识别。
本文介绍了一种基于基于图像和深度学习的危险品车辆识别技术的YOLO模型。YOLO架构速度快,每秒可处理45帧,使基于YOLO的架构可用于危险品车辆检测。
在本文章,将使用UnrealSynth虚幻合成数据生成器 来生成训练所需要的数据集,用户只需要将3D模型导入UnrealSynth中,经过简单的配置就可以自动生成数据集,非常的简单方便:
基于YOLO的实时计算机视觉危险品车辆检测:
1. 场景准备
- 将模型导入到场景。
- 配置场景先关参数,如:生成的图片数据集的图片分辨率、生成的图片的数量等。
2. 生成数据集
设置参数后,点击【确定】后会在本地目录中...\UnrealSynth\Windows\UnrealSynth\Content\UserData 生成本地合成数据集,本地数据包含两个文件夹以及一个 yaml 文件:images、labels、test.yaml 文件;images中存放着生成的图片数据集,labels中存放着生成的标注数据集。
images和labels目录下各有两个目录:train 和 val,train 目录表示训练数据目录,val 表示验证数据目录,标注数据的格式如下所示:
0 0.68724 0.458796 0.024479 0.039815
0 0.511719 0.504167 0.021354 0.034259
0 0.550781 0.596759 0.039062 0.04537
0 0.549219 0.368519 0.023438 0.044444
0 0.47526 0.504167 0.009896 0.030556
0 0.470313 0.69537 0.027083 0.035185
0 0.570052 0.499074 0.016146 0.040741
0 0.413542 0.344444 0.022917 0.037037
0 0.613802 0.562037 0.015104 0.027778
0 0.477344 0.569444 0.017188 0.016667
synth.yaml是数据的配置文件,数据格式如下:
path:
train: images
val: images
test:
names:0: Oil tank truck
3、YOLOv5模型训练
生成数据集后,下一步就是利用Yolo来训练模型,第一步,打开 ultralytics hub 在线训练工具,将刚才生成的数据集上传到ultralytics hub
将合成数据上传后,选择YOLO模型版本,确定好YOLO模型版本后,点击【continue】就可以开始使用ultralytics来训练集我们的模型了,如下所示:
选择YOLO模型后点击下一步将会生成用户key值,这个key值将在下一步模型训练时用到
复制【step1】中中的内容,点击【step2】进入到google Colab页面,如下所示:
首先,先点击step中的播放按钮,安装环境依赖,如上图所示;环境安装成功后,接下来将【Start】中的整个内容给都换掉,用在上一步中复制的key值整体替换里面原来的信息,如图:
然后点击播放按钮,开始训练模型,如下图所示:
模型训练需要一段时间...
4、训练模型验证
模型训练完成之后,可以用训练好的模型验证一下,用几张工地工人干活的场景图片,导入用图片来验证一下,操作步骤如图所示:
图片验证结果如下:
转载:机器学习之危险品车辆目标检测
相关文章:

机器学习之危险品车辆目标检测
危险品的运输涉及从离开仓库到由车辆运输到目的地的风险。监控事故、车辆运动动态以及车辆通过特定区域的频率对于监督车辆运输危险品的过程至关重要。 在线工具推荐: 三维数字孪生场景工具 - GLTF/GLB在线编辑器 - Three.js AI自动纹理化开发 - YOLO 虚幻合成数…...

DHCP协议及实验omnipeek抓包工具分析 IPv4协议
一 抓包命令 adb shell tcpdump -i wlan0 -w /data/tcpdump.pcap 抓包后截图如下 二 DHCP是什么 2.1 DHCP定义 DHCP( Dynamic Host Configuration Protocol, 动态主机配置协议)定义: 存在于应用层(OSI) 前身是BOOTP(Bootstrap Protocol)协议 是一个使用UDP(User …...

考过了PMP,面试的时候应该怎么办?
近期喜番在后台收到了很多同学们的私信,表示自己已经过了8月份的PMP考试,开始着手往项目管理岗位转型,但是对于项目管理岗位的面试却一筹莫展。放轻松,大家的需求喜番都了解了,喜番给大家总结了一些项目经理在面试的时…...

技巧-PyTorch中num_works的作用和实验测试
简介 在 PyTorch 中,num_workers 是 DataLoader 中的一个参数,用于控制数据加载的并发线程数。它允许您在数据加载过程中使用多个线程,以提高数据加载的效率。 具体来说,num_workers 参数指定了 DataLoader 在加载数据时将创建的…...
Android:FragmentTransaction
上一篇Android:FragmentTransaction我们大概介绍了FragmentManager的大致工作流程,知道了每个动作都会添加到Op队列里,并由FragmentTransaction进行管理,那么我们就来看看FragmentTransaction的具体内容。 首先FragmentTransacti…...

5.golang字符串的拆解和拼接
字符串是 Go 中的字节切片。可以通过将一组字符括在双引号中来创建字符串" "。Go 中的字符串是兼容Unicode编码的,并且是UTF-8编码的。 访问字符串的单个字节或字符 由于字符串是字节切片,因此可以访问字符串的每个字节。 func printStr(s …...

配置 Mantis 在 Windows 上的步骤
配置 Mantis Bug Tracker 在 Windows 上的步骤 Mantis Bug Tracker 是一款开源的缺陷跟踪系统,用于管理软件开发中的问题和缺陷。在 Windows 环境下配置 Mantis 可以帮助开发者更方便地进行项目管理。以下是一个详细的教程,包含了 EasyPHP Devserver 和…...

Android 单元测试初体验(二)-断言
[TOC](Android 单元测试初体验(二)-断言) 前言 当初在学校学安卓的时候,老师敢教学进度,翻到单元测试这一章节的时候提了两句,没有把单元测试当重点讲,只是说我们工作中几乎不会用到,果真在之前的几年工作当中我真的没…...

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示
通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(一) 图片数据转成base64编码方式 #include <ros/ros.h> #include <signal.h> #include <sensor_msgs/Image.h> #include <message_filters/subscriber.h> #include <message_filt…...
【 Kubernetes 风云录 】- Istio 应用多版本流量控制
文章目录 原理实现DeploymentVirtualServiceDestinationRule 约束部署 目的: 根据不同的引擎版本,可以把请求发送到指定的引擎上。可以实现版本降级。 原理 Istio通过VirtualService和DestinationRule两个资源对象来实现流量管理,其中VirtualService用于…...

比尔盖茨:GPT-5不会比GPT-4好多少,生成式AI已达到极限
比尔盖茨一句爆料,成为机器学习社区热议焦点: “GPT-5不会比GPT-4好多少。” 虽然他已不再正式参与微软的日常运营,但仍在担任顾问,并且熟悉OpenAI领导团队的想法。 消息来自德国《商报》(Handelsblatt)对…...

let const 与var的区别
1、let可以形成块级作用域,在es6之前javascript只有函数作用域,没有块级作用域。在es6之前实现块级作用域: 2、可以看到通过一个立即执行函数表达式,我们实现了一个局部作用域或者块级作用域,但是有了let之后就不需要写这样的代…...
git 把项目托管到码云
码云: 把项目托管到码云 1.注册并微活码云账号(https://gitee.com/] 2.牛成井前博 SSH公钥 (运行 ssh -t gitgitee.com 构测 SSH 公明是否有开成功) 3.创建率户的码人伦;库 4.把本地项口上传到码云对应的空白仓库中 第一:上传个新项目 cd existing_git_…...

sCrypt 现已支持各类主流前端框架
sCrypt 现已支持各类主流前端框架,包括: ReactNext.jsAngularSvelteVue 3.x or 2.x bundled with Vite or Webpack 通过在这些支持的前端框架中集成sCrypt开发环境,你可以直接在前端项目里访问合约实例和调用合约,方便用户使用Se…...

leetcode:2549. 统计桌面上的不同数字(python3解法)
难度:简单 给你一个正整数 n ,开始时,它放在桌面上。在 109 天内,每天都要执行下述步骤: 对于出现在桌面上的每个数字 x ,找出符合 1 < i < n 且满足 x % i 1 的所有数字 i 。然后,将这些…...
数据结构 / day03作业
1.顺序表按元素删除 //main.c#include "head.h" int main(int argc, const char *argv[]) {sqlist *listcreate_space();// printf("&list%p\n", list);int n;int index;data_type element, key;printf("please input n;");scanf("%d&…...

异步爬虫提速实践-在Scrapy中使用Aiohttp/Trio
在构建爬虫系统时,提高爬虫速度是一个关键问题。而使用异步爬虫技术可以显著提升爬取效率。在本文中,我将与大家分享如何在Scrapy中利用Aiohttp或Trio库实现异步爬取,以加快爬虫的速度。让我们开始吧! 1. 安装所需的库 首先&…...
Python与设计模式--访问者模式
23种计模式之 前言 (5)单例模式、工厂模式、简单工厂模式、抽象工厂模式、建造者模式、原型模式、(7)代理模式、装饰器模式、适配器模式、门面模式、组合模式、享元模式、桥梁模式、(11)策略模式、责任链模式、命令模式、中介者模…...

为社会做贡献的EasyDarwin 4.0.1发布了,支持视频点播、文件直播、摄像机直播、直播录像、直播回放、录像MP4合成下载
经过几个月的不懈努力和测试,最新的EasyDarwin 4.0版本总算是发布出来了,功能还是老几样:文件点播、视频直播(支持各种视频源)、直播录像与回放、录像合成MP4下载,稍稍看一下细节: 文件上传与点…...
CG向量和矩阵元素的获取
swizzle swizzle可以获取向量分量值;表现形式是点符号和rgba或xyzw rgba一般用作颜色表示 xyzw一般用于坐标表示分量值可以进行组合 例如:fixed4 test(1,2,3,4) 获取分量值:test.r 获取第一个分量值、test.g、test.xy、test.yx 向量维度转换…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八
现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...