0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

YOLOv8也能打小目標檢測實戰(zhàn)

OpenCV學堂 ? 來源:OpenCV學堂 ? 2024-01-18 14:51 ? 次閱讀

數(shù)據(jù)集地址

該圖像數(shù)據(jù)集是 通過一個特色的渠道獲取了數(shù)據(jù)集,然后一通處理以后得到的數(shù)據(jù),其中一張圖的一部分顯示如下(因為保密):。

c419c2a0-b5cd-11ee-8b88-92fbcf53809c.png

整個數(shù)據(jù)集有100張圖像,但是每張圖像上的對象實在太多了,每辦法,花了兩天的時候,標注了其中65張圖像,60張作為訓練集、5張做為測試集。算是完成了數(shù)據(jù)標注工作。

模型訓練

準備好數(shù)據(jù)集以后,直接按下面的命令行運行即可:

yolotrainmodel=yolov8s.ptdata=sperm_dataset.yamlepochs=50imgsz=1280batch=8

c42521ea-b5cd-11ee-8b88-92fbcf53809c.png

c429759c-b5cd-11ee-8b88-92fbcf53809c.png

導出與測試

模型導出與測試

yolo export model=sperm50_640_best.pt format=onnx
yolo predict model=sperm50_640_best.pt source=.sperm_test

c4346b6e-b5cd-11ee-8b88-92fbcf53809c.png

c438909a-b5cd-11ee-8b88-92fbcf53809c.jpg

c443e3c8-b5cd-11ee-8b88-92fbcf53809c.jpg

部署推理

轉成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()

c4490948-b5cd-11ee-8b88-92fbcf53809c.png








審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關注

    關注

    56

    文章

    4797

    瀏覽量

    84689
  • OpenVINO
    +關注

    關注

    0

    文章

    93

    瀏覽量

    202

原文標題:實戰(zhàn) | YOLOv8也能打小目標檢測

文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用YOLOv8目標檢測和實例分割的演示

    YOLOv8是來自Ultralytics的最新的基于YOLO的對象檢測模型系列,提供最先進的性能。
    的頭像 發(fā)表于 02-06 10:11 ?7497次閱讀

    YOLOv8自定義數(shù)據(jù)集訓練到模型部署推理簡析

    如果你只是想使用而不是開發(fā),強烈推薦通過pip安裝方式獲取YOLOv8包!YOLOv8安裝命令行
    的頭像 發(fā)表于 03-24 09:27 ?4665次閱讀

    TensorRT 8.6 C++開發(fā)環(huán)境配置與YOLOv8實例分割推理演示

    YOLOv8實例分割TensorRT 推理代碼已經完成C++類封裝,三行代碼即可實現(xiàn)YOLOv8對象檢測與實例分割模型推理,不需要改任何代碼即可支持自定義數(shù)據(jù)訓練部署推理
    的頭像 發(fā)表于 04-25 10:49 ?5809次閱讀
    TensorRT 8.6 C++開發(fā)環(huán)境配置與<b class='flag-5'>YOLOv8</b>實例分割推理演示

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8分類模型

    本系列文章將在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件依次部署并測評 YOLOv8 的分類模型、目標檢測模型、實例分割模型和人體姿態(tài)估計模型。
    的頭像 發(fā)表于 05-05 11:47 ?1060次閱讀
    在AI愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>分類模型

    在AI愛克斯開發(fā)板上用OpenVINO?加速YOLOv8目標檢測模型

    《在 AI 愛克斯開發(fā)板上用 OpenVINO 加速 YOLOv8 分類模型》介紹了在 AI 愛克斯開發(fā)板上使用 OpenVINO 開發(fā)套件部署并測評 YOLOv8 的分類模型,本文將介紹在 AI 愛克斯開發(fā)板上使用 OpenVINO 加速
    的頭像 發(fā)表于 05-12 09:08 ?1328次閱讀
    在AI愛克斯開發(fā)板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b><b class='flag-5'>目標</b><b class='flag-5'>檢測</b>模型

    YOLOv8版本升級支持小目標檢測與高分辨率圖像輸入

    YOLOv8版本最近版本又更新了,除了支持姿態(tài)評估以外,通過模型結構的修改還支持了小目標檢測與高分辨率圖像檢測。原始的YOLOv8模型結構如
    的頭像 發(fā)表于 05-16 11:14 ?1.2w次閱讀
    <b class='flag-5'>YOLOv8</b>版本升級支持小<b class='flag-5'>目標</b><b class='flag-5'>檢測</b>與高分辨率圖像輸入

    AI愛克斯開發(fā)板上使用OpenVINO加速YOLOv8目標檢測模型

    《在AI愛克斯開發(fā)板上用OpenVINO加速YOLOv8分類模型》介紹了在AI愛克斯開發(fā)板上使用OpenVINO 開發(fā)套件部署并測評YOLOv8的分類模型,本文將介紹在AI愛克斯開發(fā)板上使用OpenVINO加速YOLOv8
    的頭像 發(fā)表于 05-26 11:03 ?1251次閱讀
    AI愛克斯開發(fā)板上使用OpenVINO加速<b class='flag-5'>YOLOv8</b><b class='flag-5'>目標</b><b class='flag-5'>檢測</b>模型

    教你如何用兩行代碼搞定YOLOv8各種模型推理

    大家好,YOLOv8 框架本身提供的API函數(shù)是可以兩行代碼實現(xiàn) YOLOv8 模型推理,這次我把這段代碼封裝成了一個類,只有40行代碼左右,可以同時支持YOLOv8對象檢測、實例分割
    的頭像 發(fā)表于 06-18 11:50 ?3065次閱讀
    教你如何用兩行代碼搞定<b class='flag-5'>YOLOv8</b>各種模型推理

    目標檢測算法再升級!YOLOv8保姆級教程一鍵體驗

    YOLO作為一種基于圖像全局信息進行預測的目標檢測系統(tǒng),始終保持著極高的迭代更新率,從YOLOv5到YOLOv8,本次升級主要包括結構算法、命令行界面、PythonAPI等。具體到
    的頭像 發(fā)表于 02-28 11:16 ?2692次閱讀
    <b class='flag-5'>目標</b><b class='flag-5'>檢測</b>算法再升級!<b class='flag-5'>YOLOv8</b>保姆級教程一鍵體驗

    三種主流模型部署框架YOLOv8推理演示

    部署。這里以YOLOv8為例,演示了YOLOv8對象檢測模型在OpenVINO、ONNXRUNTIME、TensorRT三個主流框架上C++推理演示效果。
    的頭像 發(fā)表于 08-06 11:39 ?2749次閱讀

    解鎖YOLOv8修改+注意力模塊訓練與部署流程

    很多人想跟修改YOLOv5源碼一樣的方式去修改YOLOv8的源碼,但是在github上面卻發(fā)現(xiàn)找到的YOLOv8項目下面TAG分支是空的
    的頭像 發(fā)表于 08-11 14:14 ?4362次閱讀
    解鎖<b class='flag-5'>YOLOv8</b>修改+注意力模塊訓練與部署流程

    如何修改YOLOv8的源碼

    很多人想跟修改YOLOv5源碼一樣的方式去修改YOLOv8的源碼,但是在github上面卻發(fā)現(xiàn)找到的YOLOv8項目下面TAG分支是空的,然后就直接從master/main下面把源碼
    的頭像 發(fā)表于 09-04 10:02 ?2006次閱讀
    如何修改<b class='flag-5'>YOLOv8</b>的源碼

    基于YOLOv8的自定義醫(yī)學圖像分割

    YOLOv8是一種令人驚嘆的分割模型;它易于訓練、測試和部署。在本教程中,我們將學習如何在自定義數(shù)據(jù)集上使用YOLOv8。但在此之前,我想告訴你為什么在存在其他優(yōu)秀的分割模型時應該使用YOLOv8呢?
    的頭像 發(fā)表于 12-20 10:51 ?782次閱讀
    基于<b class='flag-5'>YOLOv8</b>的自定義醫(yī)學圖像分割

    YOLOv8實現(xiàn)旋轉對象檢測

    YOLOv8框架在在支持分類、對象檢測、實例分割、姿態(tài)評估的基礎上更近一步,現(xiàn)已經支持旋轉對象檢測(OBB),基于DOTA數(shù)據(jù)集,支持航拍圖像的15個類別對象檢測,包括車輛、船只、典型
    的頭像 發(fā)表于 01-11 10:43 ?1831次閱讀
    <b class='flag-5'>YOLOv8</b>實現(xiàn)旋轉對象<b class='flag-5'>檢測</b>

    YOLOv8中的損失函數(shù)解析

    YOLO長期以來一直是目標檢測任務的首選模型之一。它既快速又準確。此外,其API簡潔易用。運行訓練或推斷作業(yè)所需的代碼行數(shù)有限。在2023年下半年,YOLOv8在框架中引入了姿態(tài)估計后,該框架現(xiàn)在支持最多四個任務,包括分類、
    的頭像 發(fā)表于 11-05 17:15 ?942次閱讀
    <b class='flag-5'>YOLOv8</b>中的損失函數(shù)解析