數據集地址
該圖像數據集是 通過一個特色的渠道獲取了數據集,然后一通處理以后得到的數據,其中一張圖的一部分顯示如下(因為保密):。
整個數據集有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文章
4826瀏覽量
86536 -
OpenVINO
+關注
關注
0文章
114瀏覽量
459
原文標題:實戰 | YOLOv8也能打小目標檢測
文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
labview調用yolov8/11目標檢測、分割、分類
labview使用2020版本64位編輯,調用yolov8/11的onnx模型案例。
源碼:
通過網盤分享的文件:Labview_cls.zip等4個文件
鏈接: https
發表于 04-21 19:37
YOLOv8水果檢測示例代碼換成640輸入圖像出現目標框繪制錯誤的原因 ?
官網中的YOLOv8 水果檢測關于圖片推理的示例源代碼:
from libs.YOLO import YOLOv8
import os,sys,gc
import ulab.numpy as np
發表于 06-18 06:37
在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個類別對象檢測,包括車輛、船只、典型

RV1126 yolov8訓練部署教程
YOLOv8 是 ultralytics 公司在 2023 年 1月 10 號開源的基于YOLOV5進行更新的 下一個重大更新版本,目前支持圖像分類、物體檢測和實例分割任務,鑒于Yolov

評論