当前位置: 首页 > news >正文

使用机器学习边缘设备的快速目标检测

论文标题:Fast Object Detection with a Machine Learning Edge Device

中文标题:使用机器学习边缘设备的快速目标检测

作者信息:

  • Richard C. Rodriguez, MSDA Information Systems and Cyber Security Department, The University of Texas at San Antonio, San Antonio, Texas, USA
  • Jonah Elijah P. Bardos, MS Electrical and Computer Engineering Department, The University of Texas at San Antonio, San Antonio, Texas, USA

论文出处:arXiv:2410.04173v1 [cs.RO] 5 Oct 2024

摘要: 这项机器学习研究探讨了一种低成本的边缘设备,该设备与具有计算机视觉功能的嵌入式系统集成,以提高目标检测和分类的推理时间和精度。研究的主要目标是减少推理时间并降低功耗,以支持一个竞技型类人机器人的嵌入式设备,并实现实时目标识别、场景理解、视觉导航、运动规划和机器人的自主导航。本研究比较了中央处理单元(CPU)、图形处理单元(GPU)和张量处理单元(TPU)在推理时间性能上的差异。TPU在推理时间上比GPU减少了25%,与CPU相比则大幅减少了87.5%。本文的许多信息都有助于最终选择谷歌的Coral品牌Edge TPU设备。虽然也考虑了Arduino Nano 33 BLE Sense Tiny ML Kit进行比较,但由于初始的不兼容性和完成研究的时间限制,决定在未来的实验中审查该套件。

引言: 机器学习是人工智能(AI)的一个子集,它使计算机能够从图像中提取特征并学会识别模式。这对于图像质量、照明和其他因素的广泛变化非常重要。AI擅长基于图像定义概率,这使其成为目标检测和识别等任务的理想选择。除了目标检测和识别,计算机视觉还使类人机器人能够导航和与环境互动。AI为机器人提供了感知周围环境和理解对象之间空间关系的能力。这使它们能够检测和跟踪目标,估计深度,并重建3D场景。

CPU、GPU和TPU的比较: CPU是通用处理器,可以用于许多不同的应用,但它们在机器学习任务上的速度不如GPU或TPU快。在这项处理器比较中使用的CPU是第13代Intel Core i9-13900H 2.60 GHz。GPU是专为矩阵乘法设计的专用处理器,这是神经网络中的常见操作。GPU在机器学习任务上的速度比CPU快,但仍然不如TPU快。在这项处理器比较中使用的GPU是NVidia品牌的GEFORCE RTX 4070。TPU是专为神经网络工作负载设计的专用处理器,如用于计算机视觉推理的卷积神经网络(CNN)。TPU是机器学习任务中速度最快的处理器类型。在这项处理器比较中使用的TPU是谷歌Coral品牌的Edge TPU。

假设: 假设1:将张量处理单元(TPU)与嵌入式设备或微处理器(无论是否带有图形处理单元GPU)集成,将显著提高推理时间和目标检测,为嵌入式设备提供低成本和低功耗的选项。 假设2:使用机器学习并配备单目相机的嵌入式设备在目标检测性能上显著提高,成本更低,与立体视觉相机相比。

方法论: A. 卷积神经网络 图2描述了用于图像识别的卷积神经网络(CNN)架构的概述。来自具有三通道RGB输入的彩色相机的图像,在卷积神经网络的卷积主干部分,通过卷积+激活函数(例如,修正线性单元ReLU)和最大池化操作反复执行,直到它们到达分类器,这是架构的头部,是一个完全连接的多层人工神经网络。 B. 训练和部署 使用卷积神经网络进行目标检测是一种强大且多功能的技术,用于识别和定位图像中的对象。使用CNN进行目标检测的一般过程可能包括以下步骤:图像预处理、特征提取、目标分类和边界框回归、后处理。

硬件: A. 实验套件选项 考虑了两种设备进行实验,Arduino Nano 33 BLE Sense ML Kit和谷歌Coral Edge TPU设备。由于软件版本的问题和无头连接的困难,选择了TPU设备作为本研究的主要设备。 B. 谷歌Coral Edge TPU 图3展示了谷歌Coral TPU。谷歌Coral Edge TPU在CPU和GPU之上提供了最佳的推理时间性能。以下是本研究使用的关键硬件组件。

软件: 以下是支持本研究中使用的硬件的软件产品列表。

数据源: 作为该项目数据源的计算机视觉数据集来自RoboFlow.com,包含4000张图像。

结果: A. 类型1和类型2错误的含义 类型1错误是假阳性,类型2错误是假阴性。这对于利益相关者来说很重要,他们需要了解使用基于ML的决策和设计的错误类型,以避免最严重的后果。 B. 精确度和召回率 精确度是检测结果为真阳性的比率。换句话说,它是实际正确的阳性识别的比例。例如,如果精确度为0.8,则80%的时间你识别某物为阳性,它实际上是阳性的。召回率是检测结果正确的比率。换句话说,它是实际阳性被正确识别的比例。例如,如果召回率为0.9,则90%的时间有某物为阳性,你将正确识别它。 C. 训练和验证 程序被设置为运行50个周期,直到训练过程达到可接受的准确度水平。训练和测试数据的80/20分割确保神经网络不会意外地在稍后用于评估的数据上进行训练。我们利用迁移学习或使用预训练的网络并重新利用它。TensorFlow被用来帮助提高准确度并最小化框损失、分类损失(CLS)和双重焦点损失(DFL)。 D. 推理时间处理器性能 表II显示了每个处理器的推理时间性能结果。

结论和未来工作: 我们的研究得出结论,拥有强大的CPU对于目标检测并没有显著优势。将机器学习推理边缘设备(Edge TPU)与嵌入式设备集成,证明了在低功耗和最低成本下运行的可行选项。此外,使用单目视觉相机与立体视觉相比没有显著差异。未来的工作将是将Coral Edge TPU设备与竞技型类人机器人的主板处理器集成,以检测足球。

GitHub代码链接: Richard Rodriguez和Jonah Elijah Bardos的该项目和编程代码的GitHub仓库链接如下。 https://github.com/ThinkFastAI/AI Practicum

相关文章:

使用机器学习边缘设备的快速目标检测

论文标题:Fast Object Detection with a Machine Learning Edge Device 中文标题:使用机器学习边缘设备的快速目标检测 作者信息: Richard C. Rodriguez, MSDA Information Systems and Cyber Security Department, The University of Tex…...

Anthropic的CEO达里奥·阿莫迪(Dario Amodei)文章传达他对AI未来的乐观展望

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

Human-M3 多模态姿态估计数据集-初步解读

文章概述(个人总结):该论文重点提出一个用于人体姿态估计的RGB+点云数据集,针对该多模态数据集,作者阐述了数据集的收集、数据标注以及该数据集的特点。并提出了一个简单的多模态3D人体姿态估计算法,对比其他模型,该方法性能较好。最后总结了该数据集和该方法的限制。 …...

python爬虫 - 进阶正则表达式

🌈个人主页:https://blog.csdn.net/2401_86688088?typeblog 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、匹配中文 (一)匹配单个中文字符 (二…...

静态路由和nqa 联动实验

nqa 配置 1 test 断端口 很明显是切换到备机上了...

golang用any类型去接收前端传的数字类型的值,类型断言为float64

在 Go 中,使用 any 类型接收前端传来的数字时,通常会发现其被类型断言为 float64。这是因为在 JSON 解码的过程中,Go 的 encoding/json 包会将数字解析为 float64。但如果你在结构体中指明字段为 int 类型,框架会根据字段类型进行…...

5、Spring Boot 3.x 集成 RabbitMQ

一、前言 本篇主要是围绕着 Spring Boot 3.x 与 RabbitMQ 的集成,这边文章比较简单,RabbitMQ 的集成没有太大的变化,这篇文章主要是为了后续的 RabbitMQ 的动态配置做铺垫。 1、Docker 安装 RabbitMQ 2、Spring Boot 3.x 集成 RabbitMQ二、D…...

ENSP搭建基础网络拓扑图

一、ENSP的基本操作 1、配置网关 进入系统视图与退出 <Huawei>system-view [Huawei]quit 进入G0/0/0接口后配置ip [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.1.1 24查询所有接口的ip配置 [R1]display ip interface brief…...

尚硅谷rabbitmq 2024 消息可靠性答疑二 第22节

returnedMessage()只有失败才调用&#xff0c;confirm()成功失败了都会调用&#xff0c;为什么&#xff1f; 在RabbitMQ中&#xff0c;消息的确认和返回机制是为了确保消息的可靠传递和处理。confirm和returnedMessage方法的调用时机和目的不同&#xff0c;因此它们的行为也有…...

在 Ubuntu 上安装 Whisper 支撑环境(ffmpeg、PyTorch)的教程(2024亲测可用)

在 Ubuntu 上安装 Whisper 的教程 以下是如何在 Ubuntu 系统上安装 Whisper 以进行视频转录的详细步骤。 步骤 1&#xff1a;更新系统 首先更新你的 Ubuntu 系统&#xff0c;确保安装最新的软件包&#xff1a; sudo apt update && sudo apt upgrade -y步骤 2&#…...

vue+echarts实现雷达图及刻度标注

文章目录 前言代码实现实现效果总结 前言 最近项目有做数据可视化 大屏 不免再次使用些echarts应用 记录下其中echarts雷达图的实现 代码实现 先上代码 <template><div class"container"><div ref"chart" style"width: 500px; heig…...

【进阶OpenCV】 (9)--摄像头操作--->答题卡识别改分项目

文章目录 项目&#xff1a;答题卡识别改分1. 图片预处理2. 描绘轮廓3. 轮廓近似4. 透视变换5. 阈值处理6. 找每一个圆圈轮廓7. 将每一个圆圈轮廓排序8. 找寻所填答案&#xff0c;比对正确答案8.1 思路8.2 图解8.3 代码体现 9. 计算正确率 总结 项目&#xff1a;答题卡识别改分 …...

实时从TDengine数据库采集数据到Kafka Topic

实时从TDengine数据库采集数据到Kafka Topic 一、认识TDengine二、TDengine Kafka Connector三、什么是 Kafka Connect&#xff1f;四、前置条件五、安装 TDengine Connector 插件六、启动 Kafka七、验证 kafka Connect 是否启动成功八、TDengine Source Connector 的使用九、添…...

Linux -- 初识动静态库

目录 为什么要有库&#xff1f; 静态库 什么是静态库&#xff1f; 特点 优点 缺点 动态库 什么是动态库&#xff1f; 优点 缺点 编译器会选择哪个库&#xff1f; 为什么要有库&#xff1f; 库的存在是为了提高软件开发的效率、促进代码复用以及简化维护工作。通过使用…...

vite 打包前请求接口和打包后的不一致

在使用 Vite 进行项目打包时&#xff0c;如果发现打包前请求接口和打包后的行为不一致&#xff0c;这可能是由于多种原因导致的。以下是一些可能的原因和相应的解决方案&#xff1a; 1. 代理配置问题 开发环境&#xff1a;在开发环境中&#xff0c;Vite 通常使用 vite.config…...

fairseq 安装包python

背景&#xff1a; Collecting fairseq Using cached https://pypi.tuna.tsinghua.edu.cn/packages/d7/0f/b7043b451a97eb9b4cfb1b1e23e567b947d9d7bca542403228bd53b435fe/fairseq-0.12.1.tar.gz (9.6 MB) Installing build dependencies ... done Getting requirements…...

使用Mockaroo生成测试数据

使用Mockaroo生成测试数据 最近在学习【Spring Boot & React】Spring Boot和React教程视频的P51.Generating 1000 students一课中&#xff0c;看到了https://www.mockaroo.com/网站可以用来模拟生成测试数据&#xff0c;觉得还不错&#xff0c;特此记录一下。感觉每次看老…...

使用频率最高的 opencv 基础绘图操作 - python 实现

以下是 opencv-python 基本操作绘制示例&#xff0c;绘制&#xff1a; 1&#xff09;圆&#xff0c;2&#xff09;矩形&#xff0c;3&#xff09;线段&#xff0c;4&#xff09;文本。 安装 opencv-python pip install opencv-python 在图上绘制圆的操作&#xff0c;示例如…...

Python 在Excel中添加数据条

在Excel中添加数据条是一种数据可视化技巧&#xff0c;它通过条形图的形式在单元格内直观展示数值的大小&#xff0c;尤其适合比较同一列或行中各个单元格的数值。这种表示方式可以让大量的数字信息一目了然。本文将介绍如何使用Python在Excel中的指定单元格区域添加数据条。 …...

Unity中搜索不到XR Interaction Toolkit包解决方法

问题&#xff1a; 针对Unity版本2020.3在中PackageManager可能搜素不到XR Interaction Toolkit包 在Package Manager中未显示XR Interaction Toolkit包 解决方法&#xff1a; Package manager左上角&#xff0c;点加号&#xff0c;选择 Add package from git URL..&#xff0c;…...

【前端】JQ验证每个单选按钮是否已经选择

验证每个单选题是否都已经选择&#xff0c;其中每个input中不带name值&#xff0c;直接遍历input[type"radio"]验证 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewpor…...

【无人机设计与控制】滑模控制、反步控制、传统PID四旋翼无人机轨迹跟踪控制仿真

摘要 本文基于滑模控制、反步控制和传统PID控制&#xff0c;设计了针对四旋翼无人机的轨迹跟踪控制系统。通过对比这三种控制策略在四旋翼无人机轨迹跟踪中的表现&#xff0c;分析了各自的优缺点和适用场景。仿真结果表明&#xff0c;滑模控制具有更强的鲁棒性&#xff0c;反步…...

MongoDB 介绍

一、MongoDB 介绍 MongoDB 是一个开源的、面向文档的数据库管理系统。它采用了灵活的数据模型&#xff0c;以类似 JSON 的文档形式存储数据&#xff0c;具有高可扩展性、高性能和丰富的功能。 主要特点包括&#xff1a; 灵活的数据模型&#xff1a;文档型数据库允许存储不同…...

计算机网络:物理层 —— 物理层概述

文章目录 物理层功能物理层接口特性常见特性 相关概念 物理层&#xff08;Physical Layer&#xff09;是OSI&#xff08;Open Systems Interconnection&#xff09;模型的第一层&#xff0c;负责提供原始比特流传输的服务。它定义了硬件接口的电气、机械、功能和过程特性&#…...

HTTP的工作原理

HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于在计算机网络上传输超文本数据的应用层协议。它是构成万维网的基础之一&#xff0c;被广泛用于万维网上的数据通信。&#xff08;超文本(Hypertext)是用超链接的方法&#xff0c;将各种不同空间的文字信息组…...

缓存数据减轻服务器压力

问题:不是所有的数据都需要请求后端的 不是所有的数据都需要请求后端的,有些数据是重复的、可以复用的解决方案:缓存 实现思路:每一个分类为一个key,一个可以下面可以有很多菜品 前端是按照分类查询的,所以我们需要通过分类来缓存缓存代码 /*** 根据分类id查询菜品** @pa…...

【自动驾驶】控制算法(十二)横纵向综合控制 | 从理论到实战全面解析

写在前面&#xff1a; &#x1f31f; 欢迎光临 清流君 的博客小天地&#xff0c;这里是我分享技术与心得的温馨角落。&#x1f4dd; 个人主页&#xff1a;清流君_CSDN博客&#xff0c;期待与您一同探索 移动机器人 领域的无限可能。 &#x1f50d; 本文系 清流君 原创之作&…...

Python基础之List列表用法

1、创建列表 names ["张三","李四","王五","Mary"] 2、列表分片 names[1]&#xff1a;获取数组的第2个元素。 names[1:3]&#xff1a;获取数组的第2、第3个元素。包含左侧&#xff0c;不包含右侧。 names[:3]等同于names[0:3]&…...

视觉检测开源库-功能包框架搭建

chapt9/chapt9_ws/src&#xff0c;接着在目录下新建 yolov5_ros2 功能包&#xff0c;并添加相关依赖&#xff0c;完整命令如下&#xff1a; ros2 pkg create yolov5_ros2 --build-type ament_python --dependencies rclpy yolov5 cv_bridge sensor_msgs vision_msgs cv2 --lic…...

pytest的基础入门

pytest判断用例的成功或者失败 pytest识别用例失败时会报AssertionError或者xxxError错误&#xff0c;当捕获异常时pytest无法识别到失败的用例 pytest的fixture夹具 pytest的参数化 #coding:utf-8 import pytestfrom PythonProject.pytest_test.funcs.guess_point import ge…...