【YOLOv8新玩法】姿态评估解锁找圆心位置

2023-12-22 11:28

本文主要是介绍【YOLOv8新玩法】姿态评估解锁找圆心位置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

Hello大家好,今天给大家分享一下如何基于深度学习模型训练实现圆检测与圆心位置预测,主要是通过对YOLOv8姿态评估模型在自定义的数据集上训练,生成一个自定义的圆检测与圆心定位预测模型

制作数据集

本人从网络上随便找到了个工业工件,然后写代码合成了一些数据,总计数据有360张图像、其中336张作为训练集、24张作为验证集。
在这里插入图片描述
其中YOLOv的数据格式如下:
在这里插入图片描述
解释一下:

Class-index 表示对象类型索引,
从0开始 后面的四个分别是对象的中心位置与宽高 xc、yc、width、height
px1,py1表示第一个关键点坐标、p1v表示师傅可见,默认填2即可

模型训练

跟训练YOLOv8对象检测模型类似,直接运行下面的命令行即可:

yolo train model=yolov8n-pose.pt data=circle_dataset.yaml epochs=15 imgsz=640 batch=1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模型导出预测

训练完成以后模型预测推理测试 使用下面的命令行:

yolo predict model=D:\python\my_yolov8_train_demo\runs\pose\train3\weights\best.pt source=D:\bird_test\back1\2.png

在这里插入图片描述
导出模型为ONNX格式,使用下面命令行即可

yolo export model=D:\python\my_yolov8_train_demo\runs\pose\train3\weights\best.pt format=onnx

在这里插入图片描述

部署推理

基于ONNX格式模型,采用ONNXRUNTIME推理结果如下:
在这里插入图片描述
在这里插入图片描述

ORT相关的推理演示代码如下:

def ort_circle_demo():# initialize the onnxruntime session by loading model in CUDA supportmodel_dir = "D:/python/my_yolov8_train_demo/circle_detect.onnx"session = onnxruntime.InferenceSession(model_dir, providers=['CUDAExecutionProvider'])# 就改这里, 把RTSP的地址配到这边就好啦,然后直接运行,其它任何地方都不准改!# 切记把 onnx文件放到跟这个python文件同一个文件夹中!frame = cv.imread("D:/bird_test/back1/3.png")bgr = format_yolov8(frame)fh, fw, fc = frame.shapestart = time.time()image = cv.dnn.blobFromImage(bgr, 1 / 255.0, (640, 640), swapRB=True, crop=False)# onnxruntime inferenceort_inputs = {session.get_inputs()[0].name: image}res = session.run(None, ort_inputs)[0]# matrix transpose from 1x8x8400 => 8400x8out_prob = np.squeeze(res, 0).Tresult_kypts, confidences, boxes = wrap_detection(bgr, out_prob)for (kpts, confidence, box) in zip(result_kypts, confidences, boxes):cv.rectangle(frame, box, (0, 0, 255), 2)cv.rectangle(frame, (box[0], box[1] - 20), (box[0] + box[2], box[1]), (0, 255, 255), -1)cv.putText(frame, ("%.2f" % confidence), (box[0], box[1] - 10), cv.FONT_HERSHEY_SIMPLEX, .5, (0, 0, 0))cx = kpts[0]cy = kpts[1]cv.circle(frame, (int(cx), int(cy)), 3, (255, 0, 255), 4, 8, 0)cv.imshow("Circle Detection Demo", frame)cv.waitKey(0)cv.destroyAllWindows()if __name__ == "__main__":ort_circle_demo()

从此,我又相信YOLOv8了。

特别推荐

学会使用最新版本OpenCV4.8部署YOLO系列模型,请看本人新书
《OpenCV应用开发:入门、进阶与工程化实践》

这篇关于【YOLOv8新玩法】姿态评估解锁找圆心位置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/523774

相关文章

POJ1269 判断2条直线的位置关系

题目大意:给两个点能够确定一条直线,题目给出两条直线(由4个点确定),要求判断出这两条直线的关系:平行,同线,相交。如果相交还要求出交点坐标。 解题思路: 先判断两条直线p1p2, q1q2是否共线, 如果不是,再判断 直线 是否平行, 如果还不是, 则两直线相交。  判断共线:  p1p2q1 共线 且 p1p2q2 共线 ,共线用叉乘为 0  来判断,  判断 平行:  p1p

PR曲线——一个更敏感的性能评估工具

在不均衡数据集的情况下,精确率-召回率(Precision-Recall, PR)曲线是一种非常有用的工具,因为它提供了比传统的ROC曲线更准确的性能评估。以下是PR曲线在不均衡数据情况下的一些作用: 关注少数类:在不均衡数据集中,少数类的样本数量远少于多数类。PR曲线通过关注少数类(通常是正类)的性能来弥补这一点,因为它直接评估模型在识别正类方面的能力。 精确率与召回率的平衡:精确率(Pr

Linux Centos 迁移Mysql 数据位置

转自:http://www.tuicool.com/articles/zmqIn2 由于业务量增加导致安装在系统盘(20G)磁盘空间被占满了, 现在进行数据库的迁移. Mysql 是通过 yum 安装的. Centos6.5Mysql5.1 yum 安装的 mysql 服务 查看 mysql 的安装路径 执行查询 SQL show variables like

PDFQFZ高效定制:印章位置、大小随心所欲

前言 在科技编织的快节奏时代,我们不仅追求速度,更追求质量,让每一分努力都转化为生活的甜蜜果实——正是在这样的背景下,一款名为PDFQFZ-PDF的实用软件应运而生,它以其独特的功能和高效的处理能力,在PDF文档处理领域脱颖而出。 它的开发,源自于对现代办公效率提升的迫切需求。在数字化办公日益普及的今天,PDF作为一种跨平台、不易被篡改的文档格式,被广泛应用于合同签署、报告提交、证书打印等各个

Python中的属性装饰器:解锁更优雅的编程之道

引言 在Python的世界里,装饰器是一个强大的工具,它允许我们以一种非侵入性的方式修改函数或方法的行为。而当我们谈论“属性装饰器”时,则是在探讨如何使用装饰器来增强类中属性的功能。这不仅让我们的代码更加简洁、易读,同时也提供了强大的功能扩展能力。本文将带你深入了解属性装饰器的核心概念,并通过一系列实例展示其在不同场景下的应用,从基础到进阶,再到实际项目的实战经验分享,帮助你解锁Python编程

《C++中的移动构造函数与移动赋值运算符:解锁高效编程的最佳实践》

在 C++的编程世界中,移动构造函数和移动赋值运算符是提升程序性能和效率的重要工具。理解并正确运用它们,可以让我们的代码更加高效、简洁和优雅。 一、引言 随着现代软件系统的日益复杂和对性能要求的不断提高,C++程序员需要不断探索新的技术和方法来优化代码。移动构造函数和移动赋值运算符的出现,为解决资源管理和性能优化问题提供了有力的手段。它们允许我们在不进行不必要的复制操作的情况下,高效地转移资源

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户

YOLOv8改进实战 | 注意力篇 | 引入CVPR2024 PKINet 上下文锚点注意力CAAttention

YOLOv8专栏导航:点击此处跳转 前言 YOLOv8 是由 YOLOv5 的发布者 Ultralytics 发布的最新版本的 YOLO。它可用于对象检测、分割、分类任务以及大型数据集的学习,并且可以在包括 CPU 和 GPU 在内的各种硬件上执行。 YOLOv8 是一种尖端的、最先进的 (SOTA) 模型,它建立在以前成功的 YOLO 版本的基础上,并引入了新的功能和改进,以

Python中的私有属性与方法:解锁面向对象编程的秘密

在Python的广阔世界里,面向对象编程(OOP)是一种强大而灵活的方法论,它帮助我们更好地组织代码、管理状态,并构建可复用的软件组件。而在这个框架内,私有属性与方法则是实现封装的关键机制之一。它们不仅有助于隐藏类内部的具体实现细节,还能保护数据免受外部干扰。今天,让我们一起探索Python中私有属性与方法的魅力所在,了解它们如何在实际开发中发挥重要作用。 引言 随着软件系统变得越来越复杂,维

数据集 3DPW-开源户外三维人体建模-姿态估计-人体关键点-人体mesh建模 >> DataBall

3DPW 3DPW-开源户外三维人体建模数据集-姿态估计-人体关键点-人体mesh建模 开源户外三维人体数据集 @inproceedings{vonMarcard2018, title = {Recovering Accurate 3D Human Pose in The Wild Using IMUs and a Moving Camera}, author = {von Marc