YOLOv8——CV界的XGBoost

yolov8是ultralytics公司于2023年1月开源的anchor-free的最新目标检测算法框架。

封装在ultralytics这个库中:https://github.com/ultralytics/ultralytics

它具有以下优点:

1,性能速度领先:借鉴了之前许多YOLO版本的trick,达到了领先的性能和极致的速度。

2,多种任务支持:支持图片分类,目标检测, 实例分割,目标追踪,关键点检测 这些最常用的CV任务。

6d534d6e1c5c2cd3cfdff8da0e9957f2.png

3,完整的落地工具链: 提供从数据准备,到模型训练,模型评估,到模型导出部署 整个工业落地应用非常完整的工具。

4,强大的灵活性:ultralytics主打以python库的形式使用,方便定制化改进算法或者用于其它CV项目中。

我感觉ultralytics的使用体验,非常像xgboost/lightgbm/catboost这些库,使用简单,功能强大。

完全不懂原理的小白,简单粗暴把数据喂进去,就能够做出非常好的效果。

下面我们主要演示yolov8中的预训练模型的使用方法。

公众号后台回复关键词:yolov8,获取本文notebook源代码和B站视频讲解。

〇,环境准备

#!pip install -U ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple
#!pip install torchkeras -i https://pypi.tuna.tsinghua.edu.cn/simple
#!pip install 'lap>=0.4' -i https://pypi.tuna.tsinghua.edu.cn/simple
import ultralytics
print(ultralytics.__version__)
from PIL import Image 
from torchkeras.data import get_example_image
import torch 
img = get_example_image('park.jpg')
img.save('park.jpg')

一,图片分类

from ultralytics import YOLO 
model = YOLO('yolov8n-cls.pt')
#save保存预测可视化, save_txt保存预测
preds = model.predict(source='park.jpg',save_txt=True,save=True)
#查看预测结果
from PIL import Image 
Image.open(model.predictor.save_dir/'park.jpg')

二,目标检测

from ultralytics import YOLO 
model = YOLO('yolov8n.pt')
#save保存预测可视化, save_txt保存预测
preds = model.predict(source='park.jpg',save_txt=True,save=True)
#查看预测结果
from PIL import Image 
Image.open(model.predictor.save_dir/'park.jpg')
#摄像头作为输入
model.predict(source=0, show=True)

a47e3a455d5c8de535a3138604f49a0c.png

三,目标追踪

目标追踪使用的是目标检测模型,输出中可以给视频中的每个对象分配一个id。常用于给视频中某类物体出现的个数进行计数。

from ultralytics import YOLO 
model = YOLO('yolov8n.pt')
from ultralytics.yolo.utils import set_logging
set_logging(verbose=False)

#视频作为输入
preds = model.track(
    source='乒乓球.mp4',
    save=True,
    show=True
)
for p in preds[::20]:
    print(p.boxes.id)

e66158ba132ce2890c8189b456b43be9.png

四,实例分割

from ultralytics import YOLO 
model = YOLO('yolov8s-seg.pt')
#save保存预测可视化, save_txt保存预测
preds = model.predict(source='park.jpg',save_txt=True,save=True)
#查看预测结果
from PIL import Image 
Image.open(model.predictor.save_dir/'park.jpg')

5946a8b063751d864ad1d86aa88f6286.png

#摄像头作为输入
preds = model.predict(source=0, show=True)

五,关键点检测

from ultralytics import YOLO 
model = YOLO('yolov8s-pose.pt')
#save保存预测可视化, save_txt保存预测
preds = model.predict(source='park.jpg',save_txt=True,save=True)
from PIL import Image 
Image.open(model.predictor.save_dir/'park.jpg')

18ca22d6afbb8fcd50d74982366683b2.png

#摄像头进行预测
preds = model.predict(source=0,show=True)

7836d21fda44bc36c97a1aa3c68013d3.png

智能教育系统能够根据学生的学习情况提供个性化的教学方案的任务书,任务书案例如上1.目的和意义 通过综合性实验,让学生能够综合运用之前所学习的相关基础知识点,并将其应用于项目案例的设计和开发中,从而加深对智能图像算法相关知识点的理解和巩固效果。 (1)掌握Roboflow对图像数据集的标注 (2)掌握YOLOv8的目标检测算法训练和推演 (3)掌握使用PyQt5构建一个智能结算系统——至诚的24h食堂面,具备用户安全管理、视频读取、结算等模块 2.《智能结算系统》项目 2.1.项目背景 目前,随着智能信息化时代的到来,人工智能与传感技术取得了巨大进步,智能机器人的发展从传统的工业机器人逐渐转向服务机器人及教育娱乐机器人等。由于机器生产相比人工作业具有产量稳定、效率高及节省成本等巨大优势,机器取代人工的趋势愈加明显,而机器视觉是帮助机器人感知周围环境,提高机器人的灵活性、适应性及智能化水平的关键因素之一。因此,针对目前快餐结算人工结算不准确,效率低下等诸多弊端,使用机器视觉技术实现智能结算具有十分重要的意义。基本的需求大致分为:用户的注册、登录,用户管理;视频读取,菜品结算等。 2.2.项目内容 本智能结算系统的开发主要分为三大部分:数据标注、模型训练、系统开发。数据标注部分将使用Roboflow对食堂采集的快餐图像数据集进行标注;模型训练部分则需要使用YOLOv8对标注的数据集在GPU上训练和推理;系统开发则包括用户安全管理、视频读取、结算等模块,用户安全管理模块包括用户账号注册,登录账户,用户注销,用户个人主页,视频读取模块包括视频流读取和获取当前快餐图像帧,结算模块则要实现当前菜品的二维码结算。 2.2.1.数据集 FIT-DISH2000是专为餐盘识别而设计的图像数据集。利用2K高清摄像头,在食堂捕捉了近2000张分辨率为1080P的餐盘实物图片。共分为5个不同类别,为确保模型具有良好的泛化能力,在数据采集过程中考虑了多种环境、光照条件和拍摄角度,以确保模型能够准确识别不同场景下的餐盘图片。部分数据集图片,如图所示。 FIT-DISH2000数据集图片 2.2.2.系统开发 本系统主要由计算机终端设备,支架式摄像头,基于YOLOv8的检测网络权重模型和PyQt5展示窗口面组成。搭载已经训练好的网络权重,可以做到对餐盘进行识别检测并输出价格,通过与PyQt5设计的面窗口进行前后端的数据结合,展示出支付窗口。其总体流程概图如下: 以下将重点介绍基于PyQt5的模块介绍,PyQt5包括登录注册面和系统面,系统面则要包含读取视频流区域、显示检测结果区域、结算和返回按钮以及显示当前菜品总计金额和扫码支付二维码。 (1)用户安全管理模块 1)注册 用户没有账号时需要进行注册账号,当用户点击注册按钮,切换到注册页面,输入自己的账号密码后确认。后台获取输入的内容后传递给服务器并发送请求。若服务器请求成功,便把获取到的内容保存到后端数据库的用户表单里,并返回注册成功的消息;若请求失败,则发送注册失败的提示。 2)登录 用户需登录才能进入智能结算的主页面,当用户点击登录按钮,切换到登录页面,输入自己注册的账号密码后确认。后台获取输入的内容传递给服务器并发送请求。若服务器请求成功,便把获取到的内容与后端数据库中的用户表单中保存的账号密码进行比对,并返回对应的结果;若请求失败,则提示登录失败。 3)注销 用户点击退出按钮,即从登录状态变为非登录状态,页面将直接刷新并返回到登录页面。 4)用户主页 用户登录后可以查看用户的用户名和密码的修改。 (2)视频读取模块: 使用OpenCV读取本地摄像头的视频流数据,可使用VideoCapture读取视频。 (3)结算模块: 结算模块主要通过结算按钮,从视频流中拉取一帧图像送入餐盘检测模型进行检测,并将检测结果后处理后显示在结果区,并显示总计金额和收款二维码。 任务下达日期: 年 月 日 完成日期: 年 月 日 指导教师 (签名) 学 生 (签名)
05-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值