0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何基于深度学习模型训练实现圆检测与圆心位置预测

OpenCV学堂 来源:OpenCV学堂 2023-12-21 10:50 次阅读

前言

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

01制作数据集

本人从网络上随便找到了个工业工件,然后写代码合成了一些数据,总计数据有360张图像、其中336张作为训练集、24张作为验证集。

其中YOLOv的数据格式如下:

ee5ef9ca-9f4a-11ee-8b88-92fbcf53809c.png

解释一下:

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

02模型训练

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

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

ee70d988-9f4a-11ee-8b88-92fbcf53809c.png

ee918aca-9f4a-11ee-8b88-92fbcf53809c.png

eebba508-9f4a-11ee-8b88-92fbcf53809c.png

eed90814-9f4a-11ee-8b88-92fbcf53809c.png

03模型导出预测

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

yolo predict model=D:pythonmy_yolov8_train_demo
unspose	rain3weightsest.pt source=D:ird_testack12.png

导出模型为ONNX格式,使用下面命令行即可

yolo export model=D:pythonmy_yolov8_train_demo
unspose	rain3weightsest.pt format=onnx

ef11215e-9f4a-11ee-8b88-92fbcf53809c.png

04部署推理

基于ONNX格式模型,采用ONNXRUNTIME推理结果

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

defort_circle_demo():

#initializetheonnxruntimesessionbyloadingmodelinCUDAsupport
model_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.shape

start=time.time()
image=cv.dnn.blobFromImage(bgr,1/255.0,(640,640),swapRB=True,crop=False)

#onnxruntimeinference
ort_inputs={session.get_inputs()[0].name:image}
res=session.run(None,ort_inputs)[0]

#matrixtransposefrom1x8x8400=>8400x8
out_prob=np.squeeze(res,0).T

result_kypts,confidences,boxes=wrap_detection(bgr,out_prob)
for(kpts,confidence,box)inzip(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("CircleDetectionDemo",frame)
cv.waitKey(0)
cv.destroyAllWindows()


if__name__=="__main__":
ort_circle_demo()

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据集
    +关注

    关注

    4

    文章

    1206

    浏览量

    24664
  • 命令行
    +关注

    关注

    0

    文章

    77

    浏览量

    10382
  • 深度学习
    +关注

    关注

    73

    文章

    5495

    浏览量

    121059
  • 模型训练
    +关注

    关注

    0

    文章

    18

    浏览量

    1333

原文标题:【YOLOv8新玩法】姿态评估解锁找圆心位置

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何才能高效地进行深度学习模型训练

    分布式深度学习框架中,包括数据/模型切分、本地单机优化算法训练、通信机制、和数据/模型聚合等模块。现有的算法一般采用随机置乱切分的数据分配方
    的头像 发表于 07-09 08:48 1.4w次阅读
    如何才能高效地进行<b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b><b class='flag-5'>训练</b>?

    请问怎么根据最小二乘圆心确定最大内接圆心

    怎么根据最小二乘圆心确定最大内接圆心
    发表于 05-12 19:23

    全网唯一一套labview深度学习教程:tensorflow+目标检测:龙哥教你学视觉—LabVIEW深度学习教程

    ,使用labview训练和部署深度学习模型,并配备相关案例视频。课程目录:Tensorflow环境搭建Object_detection api安装相关py文件编译测试测试tensorf
    发表于 08-10 10:38

    labview深度学习应用于缺陷检测

    标注产品后通过训练平台完成模型训练经过少量样品训练得到测试结果,表明深度学习对传统视觉算法比较棘
    发表于 08-16 18:12

    深度学习预测和健康管理中的应用

    方法方面的最新进展,目的是发现研究差距并提出进一步的改进建议。在简要介绍了几种深度学习模型之后,我们回顾并分析了使用深度学习进行故障
    发表于 07-12 06:46

    labview深度学习PCB插件光学检测

    `labview在检测PCBA插件的错、漏、反等缺陷中的应用检测原理通过高精度彩色工业相机不停板实时抓取板卡图像,采取卷积神经网络算法处理图像,智能判定元器件不良。采用最新的深度学习
    发表于 07-13 15:27

    深度学习模型是如何创建的?

    具有深度学习模型的嵌入式系统应用程序带来了巨大的好处。深度学习嵌入式系统已经改变了各个行业的企业和组织。
    发表于 10-27 06:34

    基于深度学习模型的点云目标检测及ROS实现

    近年来,随着深度学习在图像视觉领域的发展,一类基于单纯的深度学习模型的点云目标检测方法被提出和应
    的头像 发表于 11-05 16:47 1.8w次阅读

    基于预训练模型和长短期记忆网络的深度学习模型

    作为模型的初始化词向量。但是,随机词向量存在不具备语乂和语法信息的缺点;预训练词向量存在¨一词-乂”的缺点,无法为模型提供具备上下文依赖的词向量。针对该问题,提岀了一种基于预训练
    发表于 04-20 14:29 19次下载
    基于预<b class='flag-5'>训练</b><b class='flag-5'>模型</b>和长短期记忆网络的<b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b>

    深度学习框架区分训练还是推理吗

    模型,以便将来能够进行准确的预测。推理是指在训练完成后,使用已经训练好的模型进行新的预测。然而,
    的头像 发表于 08-17 16:03 1355次阅读

    视觉深度学习迁移学习训练框架Torchvision介绍

    Torchvision是基于Pytorch的视觉深度学习迁移学习训练框架,当前支持的图像分类、对象检测、实例分割、语义分割、姿态评估
    的头像 发表于 09-22 09:49 881次阅读
    视觉<b class='flag-5'>深度</b><b class='flag-5'>学习</b>迁移<b class='flag-5'>学习</b><b class='flag-5'>训练</b>框架Torchvision介绍

    深度学习如何训练出好的模型

    算法工程、数据派THU深度学习在近年来得到了广泛的应用,从图像识别、语音识别到自然语言处理等领域都有了卓越的表现。但是,要训练出一个高效准确的深度
    的头像 发表于 12-07 12:38 1075次阅读
    <b class='flag-5'>深度</b><b class='flag-5'>学习</b>如何<b class='flag-5'>训练</b>出好的<b class='flag-5'>模型</b>

    如何基于深度学习模型训练实现工件切割点位置预测

    Hello大家好,今天给大家分享一下如何基于深度学习模型训练实现工件切割点位置
    的头像 发表于 12-22 11:07 782次阅读
    如何基于<b class='flag-5'>深度</b><b class='flag-5'>学习</b><b class='flag-5'>模型</b><b class='flag-5'>训练</b><b class='flag-5'>实现</b>工件切割点<b class='flag-5'>位置</b><b class='flag-5'>预测</b>

    深度学习模型训练过程详解

    深度学习模型训练是一个复杂且关键的过程,它涉及大量的数据、计算资源和精心设计的算法。训练一个深度
    的头像 发表于 07-01 16:13 1169次阅读

    深度学习的典型模型训练过程

    深度学习作为人工智能领域的一个重要分支,近年来在图像识别、语音识别、自然语言处理等多个领域取得了显著进展。其核心在于通过构建复杂的神经网络模型,从大规模数据中自动学习并提取特征,进而
    的头像 发表于 07-03 16:06 1318次阅读