日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

基于深度学习的高精度野生动物检测识别系统(PyTorch+Pyside6+YOLOv5模型)

發布時間:2024/1/18 windows 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于深度学习的高精度野生动物检测识别系统(PyTorch+Pyside6+YOLOv5模型) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要:基于深度學習的高精度野生動物檢測(水牛、犀牛、斑馬和大象)識別系統可用于日常生活中或野外來檢測與定位野生動物目標,利用深度學習算法可實現圖片、視頻、攝像頭等方式的野生動物目標檢測識別,另外支持結果可視化與圖片或視頻檢測結果的導出。本系統采用YOLOv5目標檢測模型訓練數據集,使用Pysdie6庫來搭建頁面展示系統,同時支持ONNX、PT等模型作為權重模型的輸出。本系統支持的功能包括野生動物訓練模型的導入、初始化;置信分與IOU閾值的調節、圖像上傳、檢測、可視化結果展示、結果導出與結束檢測;視頻的上傳、檢測、可視化結果展示、結果導出與結束檢測;攝像頭的上傳、檢測、可視化結果展示與結束檢測;已檢測目標列表、位置信息;前向推理用時。另外本野生動物檢測識別系統同時支持原始圖像與檢測結果圖像的同時展示,原始視頻與檢測結果視頻的同時展示。本博文提供了完整的Python代碼和使用教程,適合新入門的朋友參考,完整代碼資源文件請轉至文末的下載鏈接。

基本介紹

近年來,機器學習和深度學習取得了較大的發展,深度學習方法在檢測精度和速度方面與傳統方法相比表現出更良好的性能。YOLOv5是單階段目標檢測算法YOLO的第五代,根據實驗得出結論,其在速度與準確性能方面都有了明顯提升,開源的代碼可見https://github.com/ultralytics/yolov5。因此本博文利用YOLOv5檢測算法實現一種高精度野生動物識別檢測模型,再搭配上Pyside6庫寫出界面系統,完成目標檢測識別頁面的開發。注意到YOLO系列算法的最新進展已有YOLOv6、YOLOv7、YOLOv8等算法,將本系統中檢測算法替換為最新算法的代碼也將在后面發布,歡迎關注收藏。

環境搭建

(1)下載YOLOv5源碼庫,放到自己電腦的目錄,之后打開cmd進入到YOLOv5目錄里面,本文演示的目錄是:D:\vscode_workspace\yolov5
(2)利用Conda創建環境(Anacodna),conda create -n yolo5 python=3.8 然后安裝torch和torchvision(pip install torch1.10.0+cu113 torchvision0.11.0+cu113 -f https://download.pytorch.org/whl/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple)其中-i https://pypi.tuna.tsinghua.edu.cn/simple代表使用清華源,這行命令要求nvidia-smi顯示的CUDA版本>=11.3,最后安裝剩余依賴包使用:pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

(3)安裝Pyside6庫 pip install pyside6==6.3 -i https://pypi.tuna.tsinghua.edu.cn/simple

(4)對于windows系統下的pycocotools庫的安裝:pip install pycocotools-windows -i https://pypi.tuna.tsinghua.edu.cn/simple

界面及功能展示

下面給出本博文設計的軟件界面,整體界面簡潔大方,大體功能包括訓練模型的導入、初始化;置信分與IOU閾值的調節、圖像上傳、檢測、可視化結果展示、結果導出與結束檢測;視頻的上傳、檢測、可視化結果展示、結果導出與結束檢測;已檢測目標列表、位置信息;前向推理用時。希望大家可以喜歡,初始界面如下圖:

模型選擇與初始化

用戶可以點擊模型權重選擇按鈕上傳訓練好的模型權重,訓練權重格式可為.pt、.onnx以及。engine等,之后再點擊模型權重初始化按鈕可實現已選擇模型初始化信息的設置。


置信分與IOU的改變

在Confidence或IOU下方的輸入框中改變值即可同步改變滑動條的進度,同時改變滑動條的進度值也可同步改變輸入框的值;Confidence或IOU值的改變將同步到模型里的配置,將改變檢測置信度閾值與IOU閾值。

圖像選擇、檢測與導出

用戶可以點擊選擇圖像按鈕上傳單張圖片進行檢測與識別。

再點擊圖像檢測按鈕可完成輸入圖像的目標檢測功能,之后系統會在用時一欄輸出檢測用時,在目標數量一欄輸出已檢測到的目標數量,在下拉框可選擇已檢測目標,對應于目標位置(即xmin、ymin、xmax以及ymax)標簽值的改變。

再點擊檢測結果展示按鈕可在系統左下方顯示輸入圖像檢測的結果,系統將顯示識別出圖片中的目標的類別、位置和置信度信息。

點擊圖像檢測結果導出按鈕即可導出檢測后的圖像,在保存欄里輸入保存的圖片名稱及后綴即可實現檢測結果圖像的保存。

點擊結束圖像檢測按鈕即可完成系統界面的刷新,將所有輸出信息清空,之后再點擊選擇圖像或選擇視頻按鈕來上傳圖像或視頻。

視頻選擇、檢測與導出

用戶可以點擊選擇視頻按鈕上傳視頻進行檢測與識別,之后系統會將視頻的第一幀輸入到系統界面的左上方顯示。

再點擊視頻檢測按鈕可完成輸入視頻的目標檢測功能,之后系統會在用時一欄輸出檢測用時,在目標數量一欄輸出已檢測到的目標數量,在下拉框可選擇已檢測目標,對應于目標位置(即xmin、ymin、xmax以及ymax)標簽值的改變。

點擊暫停視頻檢測按鈕即可實現輸入視頻的暫停,此時按鈕變為繼續視頻檢測,輸入視頻幀與幀檢測結果會保留在系統界面,可點擊下拉目標框選擇已檢測目標的坐標位置信息,再點擊繼續視頻檢測按鈕即可實現輸入視頻的檢測。
點擊視頻檢測結果導出按鈕即可導出檢測后的視頻,在保存欄里輸入保存的圖片名稱及后綴即可實現檢測結果視頻的保存。

點擊結束視頻檢測按鈕即可完成系統界面的刷新,將所有輸出信息清空,之后再點擊選擇圖像或選擇視頻按鈕來上傳圖像或視頻。

標題攝像頭打開、檢測與結束

用戶可以點擊打開攝像頭按鈕來打開攝像頭設備進行檢測與識別,之后系統會將攝像頭圖像輸入到系統界面的左上方顯示。

再點擊攝像頭檢測按鈕可完成輸入攝像頭的目標檢測功能,之后系統會在用時一欄輸出檢測用時,在目標數量一欄輸出已檢測到的目標數量,在下拉框可選擇已檢測目標,對應于目標位置(即xmin、ymin、xmax以及ymax)標簽值的改變。

點擊結束視頻檢測按鈕即可完成系統界面的刷新,將所有輸出信息清空,之后再點擊選擇圖像或選擇視頻或打開攝像按鈕來上傳圖像、視頻或打開攝像頭。

算法原理介紹

本系統采用了基于深度學習的單階段目標檢測算法YOLOv5,相比于YOLOv3和YOLOv4,YOLOv5在檢測精度和速度上都有很大的提升。YOLOv5算法的核心思想是將目標檢測問題轉化為一個回歸問題,通過直接預測物體中心點的坐標來代替Anchor框。此外,YOLOv5使用SPP(Spatial Pyramid Pooling)的特征提取方法,這種方法可以在不增加計算量的情況下,有效地提取多尺度特征,提高檢測性能。YOLOv5s模型的整體結構如下圖所示。

YOLOv5網絡結構是由Input、Backbone、Neck、Prediction組成。YOLOv5的Input部分是網絡的輸入端,采用Mosaic數據增強方式,對輸入數據隨機裁剪,然后進行拼接。Backbone是YOLOv5提取特征的網絡部分,特征提取能力直接影響整個網絡性能。在特征提取階段,YOLOv5使用CSPNet(Cross Stage Partial Network)結構,它將輸入特征圖分為兩部分,一部分通過一系列卷積層進行處理,另一部分直接進行下采樣,最后將這兩部分特征圖進行融合。這種設計使得網絡具有更強的非線性表達能力,可以更好地處理目標檢測任務中的復雜背景和多樣化物體。在Neck階段使用連續的卷積核C3結構塊融合特征圖。在Prediction階段,模型使用結果特征圖預測目標的中心坐標與尺寸信息。博主覺得YOLOv5不失為一種目標檢測的高性能解決方案,能夠以較高的準確率對目標進行分類與定位。當然現在YOLOv6、YOLOv7、YOLOv8等算法也在不斷提出和改進,后續博主也會將這些算法融入到本系統中,敬請期待。

數據集介紹

本系統使用的野生動物數據集手動標注了野生動物中水牛、犀牛、斑馬和大象這四個類別,數據集總計1504張圖片。該數據集中類別都有大量的旋轉和不同的光照條件,有助于訓練出更加魯棒的檢測模型。本文實驗的野生動物檢測識別數據集包含訓練集1233張圖片,驗證集271張圖片,選取部分數據部分樣本數據集如下圖所示。由于YOLOv5算法對輸入圖片大小有限制,需要將所有圖片調整為相同的大小。為了在不影響檢測精度的情況下盡可能減小圖片的失真,我們將所有圖片調整為640x640的大小,并保持原有的寬高比例。此外,為了增強模型的泛化能力和魯棒性,我們還使用了數據增強技術,包括隨機旋轉、縮放、裁剪和顏色變換等,以擴充數據集并減少過擬合風險。

關鍵代碼解析

本系統的深度學習模型使用PyTorch實現,基于YOLOv5算法進行目標檢測。在訓練階段,我們使用了預訓練模型作為初始模型進行訓練,然后通過多次迭代優化網絡參數,以達到更好的檢測性能。在訓練過程中,我們采用了學習率衰減和數據增強等技術,以增強模型的泛化能力和魯棒性。
在測試階段,我們使用了訓練好的模型來對新的圖片和視頻進行檢測。通過設置閾值,將置信度低于閾值的檢測框過濾掉,最終得到檢測結果。同時,我們還可以將檢測結果保存為圖片或視頻格式,以便進行后續分析和應用。本系統基于YOLOv5算法,使用PyTorch實現。代碼中用到的主要庫包括PyTorch、NumPy、OpenCV、PyQt等。

Pyside6界面設計

Pyside6是Python語言的GUI編程解決方案之一,可以快速地為Python程序創建GUI應用。在本博文中,我們使用Pyside6庫創建一個圖形化界面,為用戶提供簡單易用的交互界面,實現用戶選擇圖片、視頻進行目標檢測。
我們使用Qt Designer設計圖形界面,然后使用Pyside6將設計好的UI文件轉換為Python代碼。圖形界面中包含多個UI控件,例如:標簽、按鈕、文本框、多選框等。通過Pyside6中的信號槽機制,可以使得UI控件與程序邏輯代碼相互連接。

實驗結果與分析

在實驗結果與分析部分,我們使用精度和召回率等指標來評估模型的性能,還通過損失曲線和PR曲線來分析訓練過程。在訓練階段,我們使用了前面介紹的野生動物數據集進行訓練,使用了YOLOv5算法對數據集訓練,總計訓練了300個epochs。在訓練過程中,我們使用tensorboard記錄了模型在訓練集和驗證集上的損失曲線。從下圖可以看出,隨著訓練次數的增加,模型的訓練損失和驗證損失都逐漸降低,說明模型不斷地學習到更加精準的特征。在訓練結束后,我們使用模型在數據集的驗證集上進行了評估,得到了以下結果。

下圖展示了我們訓練的YOLOv5模型在驗證集上的PR曲線,從圖中可以看出,模型取得了較高的召回率和精確率,整體表現良好。

下圖展示了本博文在使用YOLOv5模型對野生動物數據集進行訓練時候的Mosaic數據增強圖像。

綜上,本博文訓練得到的YOLOv5模型在數據集上表現良好,具有較高的檢測精度和魯棒性,可以在實際場景中應用。另外本博主對整個系統進行了詳細測試,最終開發出一版流暢的高精度目標檢測系統界面,就是本博文演示部分的展示,完整的UI界面、測試圖片視頻、代碼文件等)文件私信博主獲取。

總結

以上是生活随笔為你收集整理的基于深度学习的高精度野生动物检测识别系统(PyTorch+Pyside6+YOLOv5模型)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。