yolov8Pose实战

news/2024/7/11 1:53:25 标签: YOLO, python, 开发语言

目录

  • 前言
  • 一、yolov8环境搭建
  • 二、测试
    • 训练模型,评估模型,并导出模型
    • 实测检测效果
  • 测试人体姿态估计


前言

YOLO系列层出不穷,从yolov5到现在的yolov8仅仅不到一年的时间。追踪新技术,了解前沿算法,一起来测试下yolov8在不同人物如pose检测的效果吧!


一、yolov8环境搭建

1.1 Source code: git

1.2 安装必要的package:

安装须知:yolo5是可以兼容python3.7以及对应的numpy; 而yolo8使用python3.8以上。
不然会遇到问题:

  1. TypeError: concatenate() got an unexpected keyword argument ‘dtype’ #2029
  • 解决办法:conda一个新的环境,python=3.8 并直接pip install ultralytics
  1. 按照上述操作,还遇到bug:
    F.conv2d(input, weight, bias, self.stride,
    RuntimeError: GET was unable to find an engine to execute this computation"
  • 解决方法参考:Issue

此外,国内防火墙有可能会禁止某些package的下载,特别是与pytorch相关的大文件。可参考国内镜像下载包

二、测试

训练模型,评估模型,并导出模型

python">from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO('yolov8n.yaml')

# Load a pretrained YOLO model (recommended for training)
model = YOLO('yolov8n.pt')

# Train the model using the 'coco128.yaml' dataset for 3 epochs
results = model.train(data='coco128.yaml', epochs=3)

# Evaluate the model's performance on the validation set
results = model.val()

# Perform object detection on an image using the model
results = model('https://ultralytics.com/images/bus.jpg')

# Export the model to ONNX format
success = model.export(format='onnx')

可以成功训练评估以及导出onnx模型文件.
在这里插入图片描述

实测检测效果

拿一张照片去测试上述训练后的模型

python">from ultralytics import YOLO
from PIL import Image
import cv2

model = YOLO("model.pt")

# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True) # Display preds. Accepts all YOLO predict arguments

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # save plotted images

# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # save predictions as labels

# from list of PIL/ndarray
results = model.predict(source=[im1, im2])

实测效果如下:
在这里插入图片描述

测试人体姿态估计

打开摄像头,检测人物的姿态

python">from ultralytics import YOLO
import cv2
import math
import os
import glob
import numpy as np

# Load a model
model = YOLO('yolov8n-pose.pt')  # load an official model
# model = YOLO('path/to/best.pt')  # load a custom trained

video_path = 0
cap = cv2.VideoCapture(video_path)

while cap.isOpened():
    success, frame = cap.read()
    results = model(frame, imgsz=256)
    annotated_frame = results[0].plot()
    print(results[0].tojson('data.json'))
    cv2.imshow("YOLOv8 pose inference", annotated_frame)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

cap.release()
cv2.destroyAllWindows()

在这里插入图片描述
这是打开本地摄像头实测的效果图,实时性能佳



http://www.niftyadmin.cn/n/392386.html

相关文章

1_5 光流法计算VO(optical_flow)

采用特征点法做VO存在耗时较大的问题,一般耗时情况:如下 (1) 在图像中提取特征点并计算特征描述, 非常耗时 ~10ms ORB,shift耗时更多; (2) 在不同图像中寻找特征匹配, 非常耗时 …

常见面试题

牛客网公司真题_免费模拟题库_企业面试|笔试真题 (nowcoder.com) 1、简述下垃圾回收机制 垃圾回收 (计算机科学) - 维基百科,自由的百科全书 (wikipedia.org) 浅析JAVA的垃圾回收机制(GC) - 简书 (jianshu.com) 原理 分类 收集器的实现 引…

DC1通关

环境自己百度装好。 我的一台kali,一台DC都是52网段 1.nmap 扫一扫52网段 确定是143,然后针对143进行扫描 80开放,进去。 老熟人了 Drupal,直接msf开打 试了几个,use2直接getshell了 看看权限 尝试SUID提权 进入sh…

一文了解0欧电阻的奥秘:它不是导线,也不是真的0欧

目录 一、0欧电阻的定义 二、 0欧电阻和导线的区别 三、0欧电阻的选型 四、0欧电阻长什么样 五、0欧姆电阻的用途 1.调试和兼容设计: 2.预留电阻位置: 3.方便布线: 4.方便测试电流: 5.噪声抑制: 6.信号隔离…

继电器的工作原理及应用

继电器是一种根据电气量(如电压、电流等)或非电气量(如热、时间、压力、转速等)的变化接通或断开电路以实现自动控制和保护电力拖动装置的电气。继电气一般由感测机构、中间机构和执行机构三个基本部分组成。感测机构把感测到的电…

idea使用native-image打包springboot项目

native-image简介 native-image 是一个用于将 Java 程序编译为本地可执行文件的工具。它是 GraalVM 的一部分,GraalVM 是一个高性能的通用虚拟机,支持多种语言。 使用步骤 下载GraalVM 安装 GraalVM:首先,你需要安装 GraalVM。…

vmware虚拟机NAT网络模式下链接putty

vmware player ubuntu14.04 宿主机 windows8 连接方式: NAT vmnet8虚拟网卡 问题: 1、主机和虚拟机都可以ping通外网,主机可以ping通虚拟机,虚拟机却ping不通主机. 2、putty连接虚拟机被拒绝 解决1: 要么互相都不通,否则,只要…

【HISI IC萌新虚拟项目】spt_core模块方案文档

spt_core为实现包转发功能的模块,为spt模块的核心部分。spt还包含test_core和spt_core访问sram的分发功能。该文档仅为参考 spt_core模块概述 spt_core需要实现的功能如下: 1 、根据头域 (Header) 指示,开始一包的接收;2 、净荷内容进行字节序的转换,高位字节放低位,低位…