数据集地址
该图像数据集是 通过一个特色的渠道获取了数据集,然后一通处理以后得到的数据,其中一张图的一部分显示如下(因为保密):。
整个数据集有100张图像,但是每张图像上的对象实在太多了,每办法,花了两天的时候,标注了其中65张图像,60张作为训练集、5张做为测试集。算是完成了数据标注工作。
模型训练
准备好数据集以后,直接按下面的命令行运行即可:
yolotrainmodel=yolov8s.ptdata=sperm_dataset.yamlepochs=50imgsz=1280batch=8
导出与测试
模型导出与测试
yolo export model=sperm50_640_best.pt format=onnx yolo predict model=sperm50_640_best.pt source=.sperm_test
部署推理
转成ONNX格式文件以后,基于OpenVINO-Python部署推理,相关代码如下
ie=Core() fordeviceinie.available_devices: print(device) #ReadIR model=ie.read_model(model="sperm_best.onnx") compiled_model=ie.compile_model(model=model,device_name="CPU") output_layer=compiled_model.output(0) frame=cv.imread("D:/1.jpg") 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)] rr=int((box[2]+box[3])/4) cv.circle(frame,(box[0]+int(box[2]/2),box[1]+int(box[3]/2)),rr-4,color,2) cv.putText(frame,class_list[class_ids[index]],(box[0]+int(box[2]/2),box[1]+int(box[3]/2)), cv.FONT_HERSHEY_SIMPLEX,.5,(0,0,0)) cv.putText(frame,"gloomyfish@2024",(20,45),cv.FONT_HERSHEY_SIMPLEX,1,(0,0,255),2) cv.imshow("YOLOv8+OpenVINO2023SpermCount",frame) cv.waitKey(0) cv.destroyAllWindows()
审核编辑:刘清
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
python
+关注
关注
56文章
4783浏览量
84474 -
OpenVINO
+关注
关注
0文章
90浏览量
182
原文标题:实战 | YOLOv8也能打小目标检测
文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
TensorRT 8.6 C++开发环境配置与YOLOv8实例分割推理演示
对YOLOv8实例分割TensorRT 推理代码已经完成C++类封装,三行代码即可实现YOLOv8对象检测与实例分割模型推理,不需要改任何代码即可支持自定义数据训练部署推理
在AI爱克斯开发板上用OpenVINO™加速YOLOv8分类模型
本系列文章将在 AI 爱克斯开发板上使用 OpenVINO 开发套件依次部署并测评 YOLOv8 的分类模型、目标检测模型、实例分割模型和人体姿态估计模型。
在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型
《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署并测评 YOLOv8 的分类模型,本文将介绍在 AI 爱克斯开发板上使用 OpenVINO 加速
AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型
《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评YOLOv8的分类模型,本文将介绍在AI爱克斯开发板上使用OpenVINO加速YOLOv8
教你如何用两行代码搞定YOLOv8各种模型推理
大家好,YOLOv8 框架本身提供的API函数是可以两行代码实现 YOLOv8 模型推理,这次我把这段代码封装成了一个类,只有40行代码左右,可以同时支持YOLOv8对象检测、实例分割
目标检测算法再升级!YOLOv8保姆级教程一键体验
YOLO作为一种基于图像全局信息进行预测的目标检测系统,始终保持着极高的迭代更新率,从YOLOv5到YOLOv8,本次升级主要包括结构算法、命令行界面、PythonAPI等。具体到
三种主流模型部署框架YOLOv8推理演示
部署。这里以YOLOv8为例,演示了YOLOv8对象检测模型在OpenVINO、ONNXRUNTIME、TensorRT三个主流框架上C++推理演示效果。
如何修改YOLOv8的源码
很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的,然后就直接从master/main下面把源码
基于YOLOv8的自定义医学图像分割
YOLOv8是一种令人惊叹的分割模型;它易于训练、测试和部署。在本教程中,我们将学习如何在自定义数据集上使用YOLOv8。但在此之前,我想告诉你为什么在存在其他优秀的分割模型时应该使用YOLOv8呢?
YOLOv8实现旋转对象检测
YOLOv8框架在在支持分类、对象检测、实例分割、姿态评估的基础上更近一步,现已经支持旋转对象检测(OBB),基于DOTA数据集,支持航拍图像的15个类别对象检测,包括车辆、船只、典型
YOLOv8中的损失函数解析
YOLO长期以来一直是目标检测任务的首选模型之一。它既快速又准确。此外,其API简洁易用。运行训练或推断作业所需的代码行数有限。在2023年下半年,YOLOv8在框架中引入了姿态估计后,该框架现在支持最多四个任务,包括分类、
评论