前言
大家好,YOLOv8 框架本身提供的API函數是可以兩行代碼實現 YOLOv8 模型推理,這次我把這段代碼封裝成了一個類,只有40行代碼左右,可以同時支持YOLOv8對象檢測、實例分割、姿態評估模型的GPU與CPU上推理演示。
程序實現
使用PyQT5開發一個簡單的YOLOv8 框架本身提供的API函數演示交互界面,支持從界面上選擇模型文件、測試圖像或者視頻文件,點擊開始推理 按鈕就可以運行了,整個程序的界面如下:
YOLOv8框架支持的函數推理會自動識別模型的類型是對象檢測、實例分割、姿態評估中哪一種,有GPU支持的情況下,默認會使用GPU推理。
推理運行在一個單獨的PyQT線程中,通過信號與槽機制實現推理結果返回與更新。實現的線程代碼如下:
classInferenceThread(QtCore.QThread): fire_stats_signal=QtCore.pyqtSignal(dict) def__init__(self,settings): super(InferenceThread,self).__init__() self.settings=settings self.detector=YOLOv8PtInference(settings) self.input_image=settings.input_image defrun(self): ifself.detectorisNone: return ifself.input_image.endswith(".mp4"): cap=cv.VideoCapture(self.input_image) whileTrue: ret,frame=cap.read() ifretisTrue: self.detector.infer_image(frame) self.fire_stats_signal.emit({"result":frame}) else: break else: frame=cv.imread(self.input_image) self.detector.infer_image(frame) self.fire_stats_signal.emit({"result":frame}) self.fire_stats_signal.emit({"done":"done"}) return直接通過PT模型推理的好處有兩點,一個是不需要寫部署代碼了,二是精度不會在模型轉化中有細微損失了。特別適合Python開發者
對象檢測 - 運行截圖如下:
實例分割-運行截圖如下:
姿態評估-運行截圖如下:
審核編輯:劉清
-
gpu
+關注
關注
28文章
4774瀏覽量
129350 -
python
+關注
關注
56文章
4807瀏覽量
85037 -
pyqt5
+關注
關注
0文章
25瀏覽量
3407
原文標題:兩行代碼搞定YOLOv8各種模型推理
文章出處:【微信號:CVSCHOOL,微信公眾號:OpenCV學堂】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
【愛芯派 Pro 開發板試用體驗】yolov8模型轉換
在AI愛克斯開發板上用OpenVINO?加速YOLOv8目標檢測模型
![在AI愛克斯開發板上用OpenVINO?加速<b class='flag-5'>YOLOv8</b>目標檢測<b class='flag-5'>模型</b>](https://file1.elecfans.com/web2/M00/82/B1/wKgZomRdkeGAd8S2AAAm8DCq3H4572.png)
AI愛克斯開發板上使用OpenVINO加速YOLOv8目標檢測模型
![AI愛克斯開發板上使用OpenVINO加速<b class='flag-5'>YOLOv8</b>目標檢測<b class='flag-5'>模型</b>](https://file1.elecfans.com/web2/M00/88/B7/wKgaomRwIXSAVKmcAAAm8DCq3H4143.png)
三種主流模型部署框架YOLOv8推理演示
如何修改YOLOv8的源碼
![如何修改<b class='flag-5'>YOLOv8</b>的源碼](https://file1.elecfans.com/web2/M00/A1/77/wKgZomT1O6yAV5T0AAA-83oi1cg976.png)
OpenCV4.8+YOLOv8對象檢測C++推理演示
![OpenCV4.8+<b class='flag-5'>YOLOv8</b>對象檢測C++<b class='flag-5'>推理</b>演示](https://file1.elecfans.com/web2/M00/A6/4A/wKgaomUTnKaAcPtnAAAnAPpreBA561.png)
基于YOLOv8的自定義醫學圖像分割
![基于<b class='flag-5'>YOLOv8</b>的自定義醫學圖像分割](https://file1.elecfans.com/web2/M00/B6/E6/wKgaomWCWJiAM1oBAAARpnn1nSs514.jpg)
基于OpenCV DNN實現YOLOv8的模型部署與推理演示
![基于OpenCV DNN實現<b class='flag-5'>YOLOv8</b>的<b class='flag-5'>模型</b>部署與<b class='flag-5'>推理</b>演示](https://file1.elecfans.com/web2/M00/C2/4A/wKgZomXhidOAS5bgAAA85lM3BAY512.png)
評論