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

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

3天内不再提示

YOLOv8自定义数据集训练实现安全帽检测

OpenCV学堂 来源:OpenCV学堂 2024-01-15 10:14 次阅读

数据集地址

该图像数据集包含8000张图像,两个类别分别是安全帽与人、以其中200多张图像为验证集,其余为训练集。

模型训练

准备好数据集以后,直接按下面的命令行运行即可:

yolotrainmodel=yolov8s.ptdata=hat_dataset.yamlepochs=50imgsz=640batch=4

59df2744-b15f-11ee-8b88-92fbcf53809c.jpg

59f94ebc-b15f-11ee-8b88-92fbcf53809c.png

导出与测试

模型导出与测试

yolo export model=hat_best.pt format=onnx
yolo predict model=hat_best.pt source=./hats

5a06966c-b15f-11ee-8b88-92fbcf53809c.png

5a12741e-b15f-11ee-8b88-92fbcf53809c.jpg

部署推理

转成ONNX格式文件以后,基于OpenVINO-Python部署推理,相关代码如下

#ReadIR
model=ie.read_model(model="hat_best.onnx")
compiled_model=ie.compile_model(model=model,device_name="CPU")
output_layer=compiled_model.output(0)

capture=cv.VideoCapture("D:/images/video/hat_test.mp4")
whileTrue:
_,frame=capture.read()
ifframeisNone:
print("Endofstream")
break
bgr=format_yolov8(frame)
img_h,img_w,img_c=bgr.shape

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

res=compiled_model([image])[output_layer]#1x84x8400
rows=np.squeeze(res,0).T
class_ids=[]
confidences=[]
boxes=[]
x_factor=img_w/640
y_factor=img_h/640

forrinrange(rows.shape[0]):
row=rows[r]
classes_scores=row[4:]
_,_,_,max_indx=cv.minMaxLoc(classes_scores)
class_id=max_indx[1]
if(classes_scores[class_id]>.25):
confidences.append(classes_scores[class_id])
class_ids.append(class_id)
x,y,w,h=row[0].item(),row[1].item(),row[2].item(),row[3].item()
left=int((x-0.5*w)*x_factor)
top=int((y-0.5*h)*y_factor)
width=int(w*x_factor)
height=int(h*y_factor)
box=np.array([left,top,width,height])
boxes.append(box)

indexes=cv.dnn.NMSBoxes(boxes,confidences,0.25,0.45)
forindexinindexes:
box=boxes[index]
color=colors[int(class_ids[index])%len(colors)]
cv.rectangle(frame,box,color,2)
cv.rectangle(frame,(box[0],box[1]-20),(box[0]+box[2],box[1]),color,-1)
cv.putText(frame,class_list[class_ids[index]],(box[0],box[1]-10),cv.FONT_HERSHEY_SIMPLEX,.5,(0,0,0))
end=time.time()
inf_end=end-start
fps=1/inf_end
fps_label="FPS:%.2f"%fps
cv.putText(frame,fps_label,(20,45),cv.FONT_HERSHEY_SIMPLEX,1,(0,0,255),2)

cv.imshow("YOLOv8hatDetection",frame)
cc=cv.waitKey(1)
ifcc==27:
break
cv.destroyAllWindows()

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

    关注

    1

    文章

    2704

    浏览量

    47687
  • 数据集
    +关注

    关注

    4

    文章

    1178

    浏览量

    24351
  • 命令行
    +关注

    关注

    0

    文章

    75

    浏览量

    10344

原文标题:YOLOv8自定义数据集训练实现安全帽检测

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

收藏 人收藏

    评论

    相关推荐

    基于YOLOv8实现自定义姿态评估模型训练

    Hello大家好,今天给大家分享一下如何基于YOLOv8姿态评估模型,实现自定义数据集上,完成自定义姿态评估模型的
    的头像 发表于 12-25 11:29 1268次阅读
    基于<b class='flag-5'>YOLOv8</b><b class='flag-5'>实现</b><b class='flag-5'>自定义</b>姿态评估模型<b class='flag-5'>训练</b>

    maixcam部署yolov5s 自定义模型

    maixcam部署yolov5s 自定义模型 本博客将向你展示零基础一步步的部署好自己的yolov5s模型(博主展示的是安全帽模型),训练
    发表于 04-23 15:43

    MAT400安全帽标签的相关资料下载

    MAT400安全帽标签产品简介MAT400是奔骝科技自主研发的一款属于区域定位产品线的定位标签,主要功能是附着在安全帽上,用在佩戴安全帽的人员定位。功能特性和定位基站远距离有效定位距离达80米和锚点
    发表于 11-29 06:45

    RK3399pro实现安全帽识别

    省了。   这个数据中把没戴安全帽的头标注为 head, 把戴了安全帽的头标注为 helmet, 没戴在头上的安全帽没有标注。这样算法就不会把没戴在头上的
    发表于 05-11 16:09

    基于AI自定义视觉工作场所安全检测系统

    电子发烧友网站提供《基于AI自定义视觉工作场所安全检测系统.zip》资料免费下载
    发表于 12-09 10:25 0次下载
    基于AI<b class='flag-5'>自定义</b>视觉工作场所<b class='flag-5'>安全</b><b class='flag-5'>检测</b>系统

    使用YOLOv8做目标检测和实例分割的演示

    YOLOv8是来自Ultralytics的最新的基于YOLO的对象检测模型系列,提供最先进的性能。
    的头像 发表于 02-06 10:11 5977次阅读

    YOLOv8自定义数据集训练到模型部署推理简析

    如果你只是想使用而不是开发,强烈推荐通过pip安装方式获取YOLOv8包!YOLOv8安装命令行
    的头像 发表于 03-24 09:27 3734次阅读

    TensorRT 8.6 C++开发环境配置与YOLOv8实例分割推理演示

    YOLOv8实例分割TensorRT 推理代码已经完成C++类封装,三行代码即可实现YOLOv8对象检测与实例分割模型推理,不需要改任何代码即可支持
    的头像 发表于 04-25 10:49 3698次阅读
    TensorRT 8.6 C++开发环境配置与<b class='flag-5'>YOLOv8</b>实例分割推理演示

    目标检测算法再升级!YOLOv8保姆级教程一键体验

    以在大型数据集上进行训练,并且能够在各种硬件平台上运行;YOLOv8还有一个关键特性是它的可扩展性,由于其被设计成一个框架,支持所有以前YOLO的版本,使得在不同
    的头像 发表于 02-28 11:16 1480次阅读
    目标<b class='flag-5'>检测</b>算法再升级!<b class='flag-5'>YOLOv8</b>保姆级教程一键体验

    YOLOv8实现任意目录下命令行训练

    当你使用YOLOv8命令行训练模型的时候,如果当前执行的目录下没有相关的预训练模型文件,YOLOv8就会自动下载模型权重文件。这个是一个正常操作,但是你还会发现,当你在参数model中
    的头像 发表于 09-04 10:50 627次阅读
    <b class='flag-5'>YOLOv8</b><b class='flag-5'>实现</b>任意目录下命令行<b class='flag-5'>训练</b>

    用自己的数据集训练YOLOv8实例分割模型

    YOLOv8 于 2023 年 1 月 10 日推出。截至目前,这是计算机视觉领域分类、检测和分割任务的最先进模型。该模型在准确性和执行时间方面都优于所有已知模型。
    的头像 发表于 11-10 16:44 1414次阅读
    用自己的<b class='flag-5'>数据</b><b class='flag-5'>集训练</b><b class='flag-5'>YOLOv8</b>实例分割模型

    基于YOLOv8自定义医学图像分割

    YOLOv8是一种令人惊叹的分割模型;它易于训练、测试和部署。在本教程中,我们将学习如何在自定义数据集上使用YOLOv8。但在此之前,我想告
    的头像 发表于 12-20 10:51 409次阅读
    基于<b class='flag-5'>YOLOv8</b>的<b class='flag-5'>自定义</b>医学图像分割

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

    Hello大家好,今天给大家分享一下如何基于深度学习模型训练实现检测与圆心位置预测,主要是通过对YOLOv8姿态评估模型在自定义
    的头像 发表于 12-21 10:50 684次阅读
    如何基于深度学习模型<b class='flag-5'>训练</b><b class='flag-5'>实现</b>圆<b class='flag-5'>检测</b>与圆心位置预测

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

    Hello大家好,今天给大家分享一下如何基于深度学习模型训练实现工件切割点位置预测,主要是通过对YOLOv8姿态评估模型在自定义数据集上
    的头像 发表于 12-22 11:07 345次阅读
    如何基于深度学习模型<b class='flag-5'>训练</b><b class='flag-5'>实现</b>工件切割点位置预测

    YOLOv8+PyQT5打造细胞计数与识别应用说明

    YOLOv8对象检测模型基于自定义数据集训练红白细胞检测模型,然后通过工具导出模型为ONNX,基
    的头像 发表于 01-15 17:22 541次阅读
    <b class='flag-5'>YOLOv</b>8+PyQT5打造细胞计数与识别应用说明