基于合成数据的行人检测AI模型训练

news2025/1/24 22:48:29
在线工具推荐: 三维数字孪生场景工具  -  GLTF/GLB在线编辑器  -  Three.js AI自动纹理化开发  YOLO 虚幻合成数据生成器  -  3D模型在线转换  -   3D模型预览图生成服务

近年来,自动驾驶汽车因其对社会的广泛影响而越来越受欢迎,因为它们提高了乘客的安全性和便利性,降低了油耗,减少了交通堵塞和事故,节省了成本,提高了可靠性。然而,自动驾驶汽车存在一些功能错误,在完全部署到主干道上之前,需要将其降至最低。行人检测是自动驾驶汽车中防止事故的最重要任务之一(功能错误)。然而,由于以下问题,准确的行人检测是一项非常具有挑战性的任务:1、遮挡和变形;2、低质量和多光谱图像。

最近,深度学习(DL)技术在解决自动驾驶汽车的上述行人检测问题方面显示出巨大的潜力。本调查报告概述了行人检测问题,以及借助深度学习技术解决这些问题的最新进展。此外,还介绍了内容丰富的讨论和未来的研究工作,旨在为读者提供见解并激发新的研究方向。

行人检测是一种计算机视觉技术,是自动驾驶汽车能够检测其路径上人体运动的最重要功能之一,有助于确保人员安全,识别和追捕人群中的罪魁祸首,防止事故发生,避免移动的车辆和障碍物。此类检测任务可以在雷达、摄像头和光探测和测距 (LiDAR) 等传感器的高级组合的帮助下执行。近年来,引入了一种名为高级驾驶辅助系统(ADS)的系统,该系统有助于预防不可预测的事故。该系统具有许多功能,可以构建多个任务,例如保护通勤者、环境和驾驶员。行人检测是其既定功能之一。

本文介绍了一种基于YOLO的实时计算机视觉机动车道行人检测。YOLO架构速度快,每秒可处理45帧,使基于YOLO的架构可用于实时机动车道行人检测实验。在本文中,将使用UnrealSynth虚幻合成数据生成器 来生成训练所需要的数据集,用户只需要将在UnrealSynth虚幻合成数据生成器中搭建虚拟场景,经过对虚拟场景的简单配置就可以自动生成YOLO模型训练数据集,非常的简单方便:

基于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: Safety helmet

3、YOLOv5模型训练

生成数据集后,下一步就是利用Yolo来训练模型,第一步,打开 ultralytics hub 在线训练工具,将刚才生成的数据集上传到ultralytics hub

将合成数据上传后,选择YOLO模型版本,确定好YOLO模型版本后,点击【continue】就可以开始使用ultralytics来训练集我们的模型了,如下所示:

选择YOLO模型后点击下一步将会生成用户key值,这个key值将在下一步模型训练时用到

复制【step1】中中的内容,点击【step2】进入到google Colab页面,如下所示:

首先,先点击step中的播放按钮,安装环境依赖,如上图所示;环境安装成功后,接下来将【Start】中的整个内容给都换掉,用在上一步中复制的key值整体替换里面原来的信息,如图:

然后点击播放按钮,开始训练模型,如下图所示:

模型训练需要一段时间...

4、训练模型验证

模型训练完成之后,可以用训练好的模型验证一下,用几张工地工人干活的场景图片,导入用图片来验证一下,操作步骤如图所示:

图片验证结果如下:

转载:基于合成数据的行人检测AI模型训练 (mvrlink.com) 

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

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

相关文章

乱序学机器学习——主成分分析法PCA

文章目录 概览PCA核心思想和原理PCA求解算法PCA算法代码实现降维任务代码实现PCA在数据降噪中的应用PCA在人脸识别中的应用主成分分析优缺点和适用条件优点缺点适用条件 概览 PCA核心思想和原理 PCA求解算法 特征向量表示分布的方向,特征值表示沿着个方向分布的程度…

自动锁螺丝机配件直线模组的作用

直线模组的应用非常广泛,在各种需要高精度、高效率的自动化直线运动的场合都有应用,尤其是在自动锁螺丝机中,起着关键性作用。 1、提供精确的定位和导向:在自动锁螺丝机中,螺丝的拧紧和输送都需要精确控制,…

SpringCloudSleuth+Zipkin 整合及关键包汇总

背景 整合了一下 SpringCloudSleuth Zipkin,本来是很简单的东西,但是最终导出依赖包时没注意,导致目标服务上始终没有纳入 Zipkin 的链路追踪中,本文记录这个过程及关键依赖包。 部署zipkin 官网下载最新的 zipkin 可执行包&a…

Java高级技术(反射的作用与应用场景)

一,放射 二,案例 (1),题目 (2),反射类 (3),测试类

JavaScript编程进阶 – Return语句

JavaScript编程进阶 – Return语句 JavaScript Programming Advanced – Return Statement By JacksonML 就像人们习惯的函数一样,总觉得在函数体最后需要一个return语句,标志着函数的结束,就像下面这个函数 theFunc() 那样。 function theFunc() { re…

2023年11月编程语言排行榜——你的编程语言上榜了吗?

编程语言的流行度是一个热门的话题,不同的机构和平台有不同的评判标准和排名方法。本文将以 TIOBE 编程社区指数为例,介绍 2023 年 11 月的编程语言趋势榜单,分析各种编程语言的表现和原因,以及对未来的展望。 TIOBE 编程社区指数…

【傻瓜级JS-DLL-WINCC-PLC交互】6.​向PLC里面装载数据变量

思路 JS-DLL-WINCC-PLC之间进行交互,思路,先用Visual Studio创建一个C#的DLL控件,然后这个控件里面嵌入浏览器组件,实现JS与DLL通信,然后DLL放入到WINCC里面的图形编辑器中,实现DLL与WINCC的通信。然后PLC与…

【数据结构】——解决topk问题

前言:我们前面已经学习了小堆并且也实现了小堆,那么我们如果要从多个数据里选出最大的几个数据该怎么办呢,这节课我们就来解决这个问题。我们就用建小堆的方法来解决。 首先我们来看到这个方法的时间复杂度,我们先取前k个数据建立…

JAVAEE---多线程线程安全

根本原因:随机调度,抢占式执行 多个线程同时修改同一个变量 修改操作不是原子的 内存可见性 指令重排序 上面这段代码可以正常打印出hello,按照我们前面所学,第一次加锁之后,第二次加锁应该有所冲突啊。这里是因为…

java el表达式解析

使用Java EL表达式解析 在Java开发中,我们经常需要对表达式进行解析和计算。EL(Expression Language)表达式是一种用于在Java应用程序中计算和输出动态值的简单语言。它可以用于实现动态的条件判断、数学计算、字符串合并等功能。本文将教你…

【LeetCode刷题】--90.子集II

90.子集II class Solution {public List<List<Integer>> subsetsWithDup(int[] nums) {List<List<Integer>> ans new ArrayList<>();List<Integer> list new ArrayList<>();//排序后便于去重Arrays.sort(nums);dfs(0,nums,ans,lis…

OpenMMlab导出FCN模型并用onnxruntime推理

导出onnx文件 直接使用脚本 import torch from mmseg.apis init_modelconfig_file configs/fcn/fcn_r18-d8_4xb2-80k_cityscapes-512x1024.py checkpoint_file fcn_r18-d8_512x1024_80k_cityscapes_20201225_021327-6c50f8b4.pth model init_model(config_file, checkpoin…

mybatis参数输入 #{}和${}

1、建库建表 CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT AUTO_INCREMENT,emp_name CHAR(100),emp_salary DOUBLE(10,5),PRIMARY KEY(emp_id) );INSERT INTO t_emp(emp_name,emp_salary) VALUES("tom",200.33); INSERT INTO…

除了Whimsical,这4款在线协作软件也值得推荐!干货建议收藏。

Whimsical介绍 Whimsical是一款流行的在线协作工具&#xff0c;旨在帮助团队成员更好地进行头脑风暴、设计和规划工作。它提供了多种工具&#xff0c;包括流程图、线框图、思维导图和便签板&#xff0c;以满足团队在不同阶段的需求。Whimsical的界面简洁直观&#xff0c;易于使…

Windows核心编程 注册表

目录 注册表概述 打开关闭注册表 创建删除子健 查询写入删除键值 子健和键值的枚举 常用注册表操作 注册表概述 注册表是Windows操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心"数据库"&#xff0c;也可以说是一个非常巨大的树状分层结构的…

浅学指针(3)

系列文章目录 文章目录 系列文章目录前言系列文章目录前言1. 字符指针变量2. 数组指针变量那数组指针变量应该是&#xff1a;存放的应该是数组的地址&#xff0c;能够指向数组的指针变量。2.2 数组指针变量怎么初始化总结&#xff1a;函数名就是地址&#xff0c;&函数名和直…

YOLOv8改进 | 2023 | DWRSeg扩张式残差助力小目标检测 (附修改后的C2f+Bottleneck)

论文地址&#xff1a;官方论文地址 代码地址&#xff1a;该代码目前还未开源&#xff0c;我根据论文内容进行了复现内容在文章末尾。 一、本文介绍 本文内容给大家带来的DWRSeg中的DWR模块来改进YOLOv8中的C2f和Bottleneck模块&#xff0c;主要针对的是小目标检测&#xff0c…

深圳市东星制冷机电受邀莅临2024国际生物发酵展,济南与您相约

深圳市东星制冷机电有限公司受邀莅临2024国际生物发酵展&#xff0c;济南3月5-7日与您相约&#xff01; 展位号&#xff1a;1号馆A53 深圳市东星制冷机电有限公司&#xff0c;&#xff08;东星集团&#xff09;是一家专业生产制冷设备的外商独资大型集团企业,拥有30多年的生产…

虚拟机安装centos7系统后网络配置

一.桥接网络和nat网络的区别1&#xff0c;桥接模式&#xff08;如果外部访问虚拟机&#xff0c;最好选这个&#xff09; 通过使用物理机网卡 具有单独ip,但是需要手动配置。 在bridged模式下&#xff0c;VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机&#xff0c;它…

react-route-dom 实现简单的嵌套路由

最终效果 点击 to test1 点击to test2 > to test21 点击to test2 > to test22 代码如下 path: "page",element: <父组件 />,children: [{ path: "test1", element: <Test1 /> },{path: "test2",element: <Test2 />…