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

树莓派应用--AI项目实战篇来啦-17.YOLOv8目标检测-安全帽检测

1. YOLOv8介绍

        YOLOv8是Ultralytics公司2023年推出的Yolo系列目标检测算法,可以用于图像分类、物体检测和实例分割等任务。YOLOv8作为YOLO系列算法的最新成员,在损失函数、Anchor机制、样本分配策略等方面进行了全面优化和创新。这些改进不仅提高了模型的检测精度和鲁棒性,还简化了训练流程并提升了模型的可扩展性。

        建立在Yolo系列历史版本的基础上,并引入了新的功能和改进点,以进一步提升性能和灵活性。其核心思想是将目标检测问题转化为一个回归问题,通过一次前向传播过程即可完成目标的位置和类别预测。Yolov8借鉴了Yolov5、Yolov6、YoloX等模型的设计优点,在全面提升改进Yolov5模型结构的基础上实现,同时保持了Yolov5工程化简洁易用的优势。YOLOv8 采用五个预训练模型,包括YOLOv8n、YOLOv8s、YOLOv8m、YOLOv8l和 YOLOv8x,其如下图2-7所示是基于COCO Val 2017数据集测试并对比Yolov8和Yolov5的mAP、参数量和FLOPs结果。由此可以看出,Yolov8相比Yolov5精度提升比较多,但是n/s/m模型参数量和flops增加不少,但是相比Yolov5大部分模型推理速度变慢了。

     1.1 YOLOv8网络结构

        YOLOv8模型网络结构图如下图所示。从YOLOv8的网络结构可以看出,其延用了YOLOv5的网络结构思想,网络还是分为三个部分: 基于CSP(紧凑和分离)的主干网络(backbone)、特征增强网络(neck),检测头(head) 三个部分。

2. 安装 PyTorch和 torchvision

        YOLOv8是基于 PyTorch框架来实现的,所以在使用之前需要安装这两个框架,首先可以去官方网站上下载两个编译好的包进行安装,官方网站为:

https://download.pytorch.org/whl/torch_stable.html

        找到torch-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl和
torchvision-0.16.2-cp311-cp311-linux_aarch64.whl文件,复制到树莓派对应的yolov8项目目录下,然后运行如下命令进行安装:

sudo pip3 install torch-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
sudo pip3 install torchvision-0.16.2-cp311-cp311-linux_aarch64.whl

 安装成功后,检查一下安装是否成功。

        如果报错的话,说明安装有问题,一般问题是 numpy版本过低,我们可以更新一下: 

sudo pip3 install numpy --upgrade --ignore-installed

3. 安装环境所需的包

例如:pandas、opencv-python、tqdm等,都需要在虚拟环境下安装,如下所示。

(在虚拟环境中安装,专栏中 树莓派使用:YOLOv8环境搭建困难--已解决 文章会提到该问题)

4. 安全帽检测

     4.1 识别图片

        使用 Ultralytics提供的 YOLOv8 模型对指定图像进行目标检测。

from ultralytics import YOLO  # 从 Ultralytics 库中导入 YOLO 类。这个类提供了一个方便的接口,用于加载 YOLO 模型并执行目标检测# 导入训练好的模型
model=YOLO("./runs/detect/train5/weights/best.pt",task="detect")# 随意找一些测试数据
# 图片数据和视频数据都可以,直接将数据传入接口
model.predict(source="./ultralytics/assets/construction-safety.jpg",save=True,classes=[0,2])  # 检测图片# 自己构造一些数据
# 在识别自己的构造的数据时,传入了classes=[0,2]  只识别部分的类别
# 代表只输出0和2,也就是安全帽是否佩戴这个类别

识别结果如下所示,可识别出图片中所有的安全帽,并保存识别结果。 

4.2 识别视频

        使用 Ultralytics提供的 YOLOv8 模型对指定视频进行目标检测。


from ultralytics import YOLO  # 从 Ultralytics 库中导入 YOLO 类。这个类提供了一个方便的接口,用于加载 YOLO 模型并执行目标检测# 导入训练好的模型
model=YOLO("./runs/detect/train5/weights/best.pt",task="detect")model.predict(source="./ultralytics/assets/indianworkers.mp4",classes=[0,2],save=True)  # 检测视频

 

相关文章:

树莓派应用--AI项目实战篇来啦-17.YOLOv8目标检测-安全帽检测

1. YOLOv8介绍 YOLOv8是Ultralytics公司2023年推出的Yolo系列目标检测算法,可以用于图像分类、物体检测和实例分割等任务。YOLOv8作为YOLO系列算法的最新成员,在损失函数、Anchor机制、样本分配策略等方面进行了全面优化和创新。这些改进不仅提高了模型的…...

git-secret介绍

git-secret介绍 git-secret 是一个与git兼容的命令行工具,旨在安全地存储和管理敏感数据,如源代码中的密码、密钥以及敏感文件。它通过 GPG 加密来保护文件,确保只有授权的用户才能访问这些敏感信息。 使用流程 1、安装 Git-Secret:在本地开发环境中安装 git-secret。 2…...

【实战】Nginx+Lua脚本+Redis 实现自动封禁访问频率过高IP

大家好,我是冰河~~ 自己搭建的网站刚上线,短信接口就被一直攻击,并且攻击者不停变换IP,导致阿里云短信平台上的短信被恶意刷取了几千条,加上最近工作比较忙,就直接在OpenResty上对短信接口做了一些限制&am…...

计算机专业大一课程:线性代数探秘

计算机专业大一课程:线性代数探秘 对于计算机专业的大一新生来说,线性代数是一门基础且重要的课程。它不仅是数学的一个分支,更是计算机科学中不可或缺的工具。那么,线性代数究竟包含哪些内容,对我们的计算机学习有何…...

vscode写markdown插入图片视频并放在指定目录

目录 前言正文 前言 各种云文档非常好用,但是当你想把这些资料保存在本地时,markdown我觉得是最好的选择 markdown编辑器也有很多,但我还是觉得vscode最好用,直接粘贴文件就可以插入也类似云文档的使用体验,但是想要…...

鸿蒙富文本显示

1.使用 RichText 组件(ArkTS) 背景知识:在 ArkTS(一种鸿蒙应用开发语言)中,RichText组件提供了更强大的富文本显示功能。它允许设置不同的文本样式,包括字体、颜色、字号等多种属性。 Rich Te…...

手写mybatis之细化XML语句构建器,完善静态SQL解析

前言 1:在流程上,通过 DefaultSqlSession#selectOne 方法调用执行器,并通过预处理语句处理器 PreparedStatementHandler 执行参数设置和结果查询。 2:那么这个流程中我们所处理的参数信息,也就是每个 SQL 执行时&#…...

使用Milvus和Llama-agents构建更强大的Agent系统

代理(Agent)系统能够帮助开发人员创建智能的自主系统,因此变得越来越流行。大语言模型(LLM)能够遵循各种指令,是管理 Agent 的理想选择,在许多场景中帮助我们尽可能减少人工干预、处理更多复杂任…...

Python 工具库每日推荐【Arrow】

文章目录 引言Python时间日期处理库的重要性今日推荐:Arrow工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例:跨时区会议安排器案例分析高级特性时间范围和区间自定义时间格式扩展阅读与资源优缺点分析优点:缺点:总结【 已更新完 TypeScript…...

Win10 安装 Redis 数据库

一、Redis 数据库介绍 Redis 是一个开源的高性能键值对(key-value)的非关系型数据库。它通常用作数据结构服务器,支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表&a…...

使用springboot生成war包

1.生成war包 1.1 更改pom包 打开一个springboot 项目 &#xff0c;右击项目名从项目管理器打开 在pom.xml文件中插入以下两个依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><…...

见微知著:OpenEuler系统启动流程

OpenEuler是一个开源的Linux发行版&#xff0c;它的启动流程涉及到多个阶段&#xff0c;包括固件初始化、引导加载程序、内核启动、初始化系统和服务管理器等。下面将详细介绍OpenEuler的启动流程。 一、启动流程 1. 固件初始化&#xff08;BIOS/UEFI&#xff09; 启动过程首…...

支持向量机-笔记

支持向量机&#xff08;Support Vector Machine, SVM&#xff09; 是一种强大的监督学习算法&#xff0c;广泛应用于分类和回归任务&#xff0c;特别是在分类问题中表现优异。SVM 的核心思想是通过寻找一个最优超平面&#xff0c;将不同类别的数据点进行分割&#xff0c;并最大…...

研发线上事故风险解读之缓存篇

专业在线打字练习平台-巧手打字通&#xff0c;只输出有价值的知识。 一 前言 本文继续基于《线上事故案例集》&#xff0c;进一步深入梳理线上事故缓存使用方面的问题点&#xff0c;重点关注缓存在使用和优化过程中可能出现的问题&#xff0c;旨在为读者提供具有实践指导意义的…...

JavaScript前端开发技术

JavaScript前端开发技术 引言 JavaScript&#xff08;简称JS&#xff09;是一种广泛使用的脚本语言&#xff0c;特别在前端开发领域&#xff0c;它几乎成为了网页开发的标配。从简单的表单验证到复杂的单页应用&#xff08;SPA&#xff09;&#xff0c;JavaScript都扮演着不可…...

H.264 编码参数优化策略

一、概述 随着数字媒体技术的发展&#xff0c;视频编码成为了多媒体领域中的重要研究方向之一。而H.264作为一种广泛应用的视频编码标准&#xff0c;具有高压缩比、优质画面和广泛兼容性等优点。为了进一步提高视频质量和压缩效率&#xff0c;对H.264编码参数进行优化成为了一个…...

C++ 游戏开发技术选型指南

C 游戏开发技术选型指南 游戏开发是一个复杂而多元化的领域&#xff0c;而C凭借其高性能和强大的控制能力&#xff0c;成为许多游戏引擎的首选编程语言。在这篇博客中&#xff0c;我们将探讨如何选择合适的C技术栈进行游戏开发&#xff0c;包括技术背景、代码示例、优化实践、…...

基于Python Django的在线考试管理系统

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…...

《Java基础》变量和数据类型

综述 在开始学习变量之前&#xff0c;我们思考一下为什么需要使用变量。 首先我们从小开始学习加法减法的时候&#xff0c;后来我们再学更难的东西就是代数&#xff0c;其中的x和y是我们要求解的内容&#xff0c;这些内容就是变量。 变量是人的思维的提升&#xff0c;没有变量…...

FLINK内存管理解析,taskmanager、jobmanager

1、在 Flink 中设置内存的方法是配置以下两个选项之一&#xff1a; 1&#xff09;Total Flink memory&#xff1a;taskmanager.memory.flink.sizejobmanager.memory.flink.size 2&#xff09;Total process memory&#xff1a;taskmanager.memory.process.sizejobmanager.mem…...

【人生底稿 28】新疆出差终章:几番波折终汇报,尽兴踏归津门路

三日游玩尽数落幕&#xff0c;忙碌工作正式回归。轻松的闲暇时光悄然收尾&#xff0c;紧绷的工作状态再次上线。整趟新疆之行&#xff0c;在起伏辗转中迎来最终收尾。一、深夜复盘材料&#xff0c;彻夜待汇报游玩结束回到酒店&#xff0c;我没有松懈休息&#xff0c;静下心重新…...

Java 大厂面试 200 题完整版含答案解析

前言本文整理了近两年从阿里、腾讯、字节、美团、京东、拼多多等大厂面试中高频出现的 200 道 Java 面试题&#xff0c;覆盖 Java 基础、集合、并发、JVM、Spring、MySQL、Redis、消息队列、分布式、场景设计 等核心模块&#xff0c;每题都附有简明扼要的答案解析&#xff0c;助…...

如何在10分钟内搭建个人游戏流媒体服务器:Sunshine跨平台游戏串流完全指南

如何在10分钟内搭建个人游戏流媒体服务器&#xff1a;Sunshine跨平台游戏串流完全指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 您是否梦想过在任何设备上畅玩PC游戏&#x…...

Sketchfab数据提取终极指南:打破在线3D模型下载壁垒的完整解决方案

Sketchfab数据提取终极指南&#xff1a;打破在线3D模型下载壁垒的完整解决方案 【免费下载链接】sketchfab sketchfab download userscipt for Tampermonkey by firefox only 项目地址: https://gitcode.com/gh_mirrors/sk/sketchfab 你是否曾在Sketchfab上发现完美的3D…...

【Midjourney图像生成黑科技】:树胶重铬酸盐工艺原理、复刻难点与AI艺术胶片质感还原全流程指南

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;树胶重铬酸盐工艺的历史溯源与数字时代复兴意义 树胶重铬酸盐工艺&#xff08;Gum Bichromate Process&#xff09;诞生于19世纪中叶&#xff0c;是人类最早实现光敏图像复制的化学摄影术之一。其核心原…...

如何用Wedecode实现微信小程序源代码的完美还原:从加密包到可读代码的完整指南

如何用Wedecode实现微信小程序源代码的完美还原&#xff1a;从加密包到可读代码的完整指南 【免费下载链接】wedecode 全自动化&#xff0c;微信小程序 wxapkg 包 源代码还原工具, 线上代码安全审计&#xff0c;支持 Windows, Macos, Linux 项目地址: https://gitcode.com/gh…...

Docker容器MCP服务镜像:AI安全运维与自动化实践

1. 项目概述&#xff1a;一个为Docker容器提供MCP服务的镜像最近在折腾一些自动化工作流&#xff0c;发现很多工具都开始支持一种叫做MCP&#xff08;Model Context Protocol&#xff09;的协议。简单来说&#xff0c;MCP就像是一个标准化的“插座”&#xff0c;让各种AI模型&a…...

MedAgentBench:大模型临床决策能力评估基准详解与应用

1. 项目概述&#xff1a;当大模型成为医疗决策的“实习生” 最近在医疗AI的圈子里&#xff0c;一个名为“MedAgentBench”的开源项目引起了不小的讨论。这个由斯坦福机器学习组&#xff08;Stanford ML Group&#xff09;发布的项目&#xff0c;其核心目标非常明确&#xff1a;…...

Otter多模态大模型实战:从架构解析到部署应用的完整指南

1. 项目概述&#xff1a;当多模态大模型学会“看”与“说”最近在开源社区里&#xff0c;一个名为Otter的多模态大模型项目引起了我的注意。它来自EvolvingLMMs-Lab&#xff0c;这个实验室的名字就很有意思&#xff0c;“Evolving LMMs”—— 进化中的大型多模态模型。Otter 这…...

Linux权限继承与umask配置实践

Linux权限继承与umask配置实践很多协作目录问题并不是因为当前权限错了&#xff0c;而是因为新建文件的默认权限总是不符合预期。背后的核心变量之一就是 umask。中级阶段如果不理解默认权限是怎么生成的&#xff0c;就会陷入“每次都手工 chmod”的低效循环。一、默认权限不是…...