Python 基于 Yolov8 + CPU 实现物体检测

目录

一、开发环境

二、安装 Python 基于 Yolov8 物体检测关联库

2.1 打开命令提示符(cmd)或终端,安装库 

2.2 关联库安装过程遇到的问题 

三、基于 Yolov8 物体检测代码实现(完整)

3.1 Yolov8 物体检测完整代码

3.2 代码首次运行下载 yolov8 模型很慢解决方法

四、Yolov8 + CPU 物体检测效果展示 


一、开发环境

1. PyCharm 【点击下载】

2. Python3.9 【点击下载】

注:最新版本是 Pyhton 3.11.5,大家根据实际情况下载即可。

二、安装 Python 基于 Yolov8 物体检测关联库

ultralytics==8.0.26 

opencv-python==4.5.4.60

cvzone==1.5.6

math

time

2.1 打开命令提示符(cmd)或终端,安装库 

1. 输入以下命令来安装 ultralytics 库: 

pip install ultralytics==8.0.26

2. 输入以下命令来安装 cv2 库(OpenCV):

pip install opencv-python==4.5.4.60 

3. 输入以下命令来安装 cvzone 库:

pip install cvzone==1.5.6 

4. 输入以下命令来安装math库(Python内置库,无需额外安装):

pip install math 

5. time 库是 python 内置库,无需额外安装。 

2.2 关联库安装过程遇到的问题 

问题描述1: 安装 ultralytics 库提示错误:ERROR: Operation cancelled by user

原因分析: 提示这些错误原因是网络环境不好,下载库的速度很慢中途可能断开了,而导致下载失败。

解决方法: 解决方法就是换好一点的环境下载,如果环境无法更换,就不断的重试安装直到成功为止:pip install ultralytics==8.0.26 

问题描述2: ultralytics 等关联库已经安装成功,但是 Pycharm 无法检测得到。

原因分析:

  1. 可能是你的 PyCharm 与 cmd 使用的 Python 解释器不相同;
  2. PyCharm 与 cmd 使用的 Python 解释器相同,但是关联的库并没有添加到 PyCharm 环境里。

解决方法:

1. 首先确保你的 PyCharm 与 cmd 使用的 Python 解释器相同:

2. 将关联的库添加到 PyCharm 环境里:

三、基于 Yolov8 物体检测代码实现(完整

3.1 Yolov8 物体检测完整代码

from ultralytics import YOLO
import cv2
import cvzone
import math
import timecap = cv2.VideoCapture("motorbikes.mp4")  # For Videomodel = YOLO("yolov8n.pt")classNames = ["person", "bicycle", "car", "motorbike", "aeroplane", "bus", "train", "truck", "boat","traffic light", "fire hydrant", "stop sign", "parking meter", "bench", "bird", "cat","dog", "horse", "sheep", "cow", "elephant", "bear", "zebra", "giraffe", "backpack", "umbrella","handbag", "tie", "suitcase", "frisbee", "skis", "snowboard", "sports ball", "kite", "baseball bat","baseball glove", "skateboard", "surfboard", "tennis racket", "bottle", "wine glass", "cup","fork", "knife", "spoon", "bowl", "banana", "apple", "sandwich", "orange", "broccoli","carrot", "hot dog", "pizza", "donut", "cake", "chair", "sofa", "pottedplant", "bed","diningtable", "toilet", "tvmonitor", "laptop", "mouse", "remote", "keyboard", "cell phone","microwave", "oven", "toaster", "sink", "refrigerator", "book", "clock", "vase", "scissors","teddy bear", "hair drier", "toothbrush"]prev_frame_time = 0
new_frame_time = 0while True:new_frame_time = time.time()success, img = cap.read()results = model(img, stream=True)for r in results:boxes = r.boxesfor box in boxes:# Bounding Boxx1, y1, x2, y2 = box.xyxy[0]x1, y1, x2, y2 = int(x1), int(y1), int(x2), int(y2)w, h = x2 - x1, y2 - y1cvzone.cornerRect(img, (x1, y1, w, h))# Confidenceconf = math.ceil((box.conf[0] * 100)) / 100# Class Namecls = int(box.cls[0])cvzone.putTextRect(img, f'{classNames[cls]} {conf}', (max(0, x1), max(35, y1)), scale=1, thickness=1)fps = 1 / (new_frame_time - prev_frame_time)prev_frame_time = new_frame_timeprint(fps)cv2.imshow("Image", img)cv2.waitKey(1)

3.2 代码首次运行下载 yolov8 模型很慢解决方法

1. 本章物体检测使用的 Yolov8 模型是基于 yolov8n.pt 实现;

2. 代码在首次运行时,会从 Github 上下载相关模型到本地;

3. 如果网络环境不好的情况下,下载速度可能很慢;

4. 因此建议先停止运行代码,然后手动从 Github 将模型下载下来。

yolov8n.pt 模型【点击下载】

四、Yolov8 + CPU 物体检测效果展示 

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

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

相关文章

力扣:112. 路径总和(Python3)

题目: 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。 叶子节点…

Flink状态

8.1 Flink中的状态 8.1.1 概述 状态的分类 1)托管状态(Managed State)和原始状态(Raw State) Flink的状态有两种:托管状态(Managed State)和原始状态(Raw State&#…

PICO首届XR开发者挑战赛正式启动,助推行业迈入“VR+MR”新阶段

9月25日,“PICO 2023首届XR开发者挑战赛”(下文简称“挑战赛”)媒体启动会在北京圆满落幕,官方赛事报名通道已于今日开启。据悉,本次挑战赛是PICO首次针对全球开发者举办的大型挑战赛事,旨在与开发者保持连…

redis介绍

一、简介 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,…

从入门到精通:详解SVN版本控制系统的使用方法

从入门到精通:详解SVN版本控制系统的使用方法 一、引言1.1、版本控制的概念和重要性1.2、流行的版本控制系统SVN 二、SVN基础知识2.1、SVN的基本概念和术语解释2.2、SVN的工作原理和架构 三、创建SVN仓库3.1、创建本地仓库3.2、配置访问权限 四、使用SVN进行版本控制…

基于视频技术与AI检测算法的体育场馆远程视频智能化监控方案

一、方案背景 近年来,随着居民体育运动意识的增强,体育场馆成为居民体育锻炼的重要场所。但使用场馆内的器材时,可能发生受伤意外,甚至牵扯责任赔偿纠纷问题。同时,物品丢失、人力巡逻成本问题突出,体育场…

企业如何寻找适合的CRM系统软件

在数字化转型步伐不断加快的今天,CRM软件成为企业必不可少的一项工具。如果您并不清楚如何寻找合适的CRM系统软件?不妨通过下列几点来寻觅。 1.根据CRM系统行业和类别 例如企业重视营销功能,搜寻营销型CRM软件; 企业希望梳理好…

Open3D 进阶(11)使用GMM-Tree算法对点云配准

GMM-Tree算法 一、算法原理1、主要函数2、参考文献二、代码实现三、结果展示1、点云初始位置2、配准后的位置四、测试数据本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、

DevExpress WinForms图表组件 - 直观的数据信息呈现方式!(二)

在上文中(点击这里回顾>>),我们为大家介绍了DevExpress WinForms图表控件的互动图表、图标设计器及可定制功能等,本文将继续介绍DevExpress WinForms图表控件的数据分析、大数据功能等,欢迎持续关注我们哦~ Dev…

PDF文件超出上传大小?三分钟学会PDF压缩

PDF作为一种流行的文档格式,被广泛用于各种场合,然而有时候PDF文件的大小超出了上传限制,这时候我们就需要采取一些措施来减小PDF文件的大小,下面就给大家分享几个方法,一起来学习下吧~ 方法一:嗨格式压缩大…

基于数据驱动的成本洞察,趣丸科技的FinOps进阶之路~

今年以来,我们注意到越来越多的单位开始积极实践FinOps,而随着FinOps的发展,大家对于其落地过程的关注也更加具体和深入,涉及了账单波动、FinOps的边际效应、成本模型、依赖工具等多个关键问题。 本月「UGeek大咖说」线上直播活动…

【网络协议】Http-中

搜索引擎:搜索引擎是指根据一定的策略、运用特定的计算机程序从互联网上采集信息,在对信息进行组织和处理后,为用户提供检索服务,将检索的相关信息展示给用户的系统。搜索引擎是工作于互联网上的一门检索技术,它旨在提…

表格内日期比较计算

需求&#xff1a;在表格中新增数据&#xff0c;计算开始日期中最早的和结束日期中最晚的&#xff0c;回显到下方。 <el-formref"formRef":model"ruleForm":rules"rules"style"margin-top: 20px;"label-position"top">…

SpringMVC+统一表现层返回值+异常处理器

一、统一表现层返回值 根据我们不同的处理方法&#xff0c;返回的数据格式都会不同&#xff0c;例如添加只返回true|false&#xff0c;删除同理&#xff0c;而查询却返回数据。 Result类 为此我们封装一个result类来用于表现层的返回。 public class Result {//描述统一格式…

vscode调试webpack项目的方法

vscode调试webpack项目的方法 首先安装vscode插件Javascript Debugger 这个插件的介绍也写清楚了&#xff1a; An extension for debugging Node.js programs and Chrome. 那就是用来调试Node.js和Chrome的vscode扩展插件&#xff0c;包括typescript. 然后按F5启动调试&…

力扣每日一题(+日常水几道题)

每日一题1333. 餐厅过滤器 - 力扣&#xff08;LeetCode&#xff09; 简单的按规则排序,去除几个不满足的条件然后排序返回即可 #include<algorithm> class Solution { public:vector<int> filterRestaurants(vector<vector<int>>& restaurants, …

嵌入式Linux应用开发-第七章-IMX6ULL-QEMU的LED驱动程序

嵌入式Linux应用开发-第七章-IMX6ULL-QEMU的LED驱动程序 IMX6ULL-QEMU的 LED驱动程序7.5 IMX6ULL-QEMU的 LED驱动程序7.5.1 看原理图确定引脚及操作方法7.5.2 所涉及的寄存器操作7.5.3 写程序7.5.4 上机实验7.5.5 课后作业 IMX6ULL-QEMU的 LED驱动程序 7.5 IMX6ULL-QEMU的 LED驱…

Ros2 学习02- ubuntu22.04 安装ros2

设置镜像源 sudo vim /etc/apt/sources.list#阿里源 deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jamm…

Sentinel结合Nacos实现配置持久化(全面)

1、前言 我们在进行分布式系统的开发中&#xff0c;无论是在开发环境还是发布环境&#xff0c;配置一定不能是内存形式的&#xff0c;因为系统可能会在中途宕机或者重启&#xff0c;所以如果放在内存中&#xff0c;那么配置在服务停到就是就会消失&#xff0c;那么此时就需要重…

ITSM和ITIL有什么区别?

ITIL是最广泛接受的ITSM方法&#xff0c;是用于管理组织IT运营和服务的最佳实践和建议的框架。它是由英国政府的中央计算机和电信局&#xff08;CCTA&#xff09;在1980年代中期委托创建的。基于ITIL框架构建的ITSM流程为更好的IT服务和改善业务铺平了道路。总而言之&#xff0…