国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

YOLOv5目標檢測學習(1):yolo系列算法的基礎概念

這篇具有很好參考價值的文章主要介紹了YOLOv5目標檢測學習(1):yolo系列算法的基礎概念。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔


前言

關于深度學習目標檢測,有許多概念性的東西需要先了解一下。這里主要以基于深度學習的目標檢測算法的部署實現(xiàn)來學習。

一、基于深度學習的目標檢測需要哪些步驟?

以yolov5為例:

使用YOLOv5進行車輛和行人的目標檢測通常涉及以下步驟:

數(shù)據(jù)準備:準備包含車輛和行人的訓練數(shù)據(jù)集,確保數(shù)據(jù)集中包含足夠數(shù)量和多樣性的車輛和行人的圖像,并標注它們的位置信息。

模型選擇:選擇適合目標檢測任務的YOLOv5模型,根據(jù)任務需求選擇不同的模型大?。ㄈ鏨OLOv5s、YOLOv5m、YOLOv5l、YOLOv5x)。

模型訓練:使用準備好的數(shù)據(jù)集對選定的YOLOv5模型進行訓練。在訓練過程中,模型會學習識別車輛和行人等目標的特征。

模型優(yōu)化:根據(jù)訓練過程中的驗證結(jié)果,調(diào)整模型的超參數(shù)、學習率等,以優(yōu)化模型的性能。

模型評估:使用測試數(shù)據(jù)集對訓練好的模型進行評估,評估模型在車輛和行人目標檢測任務上的準確率、召回率等指標。

模型部署:將訓練好的YOLOv5模型部署到實際應用中,用于車輛和行人的目標檢測任務。可以將模型集成到自動駕駛系統(tǒng)、智能監(jiān)控系統(tǒng)等中。

實時檢測:在部署后,可以利用YOLOv5模型進行實時的車輛和行人目標檢測,識別圖像或視頻流中的車輛和行人,并提供相應的輸出結(jié)果。

我逐步介紹這里面涉及到的一些內(nèi)容。

二、數(shù)據(jù)準備(即準備數(shù)據(jù)集)

1.目標檢測的數(shù)據(jù)集如何獲?。?/h3>

獲取目標檢測的數(shù)據(jù)集通??梢酝ㄟ^以下幾種途徑:

公開數(shù)據(jù)集:有許多公開的目標檢測數(shù)據(jù)集可供使用,如COCO(Common Objects in Context)、PASCAL VOC(Visual Object Classes)、ImageNet等。這些數(shù)據(jù)集包含了各種類別的圖像和相應的標注信息,可以用于訓練和評估目標檢測模型。

自行標注:如果需要特定領域或特定任務的數(shù)據(jù)集,可以自行收集圖像數(shù)據(jù)并進行標注。標注可以包括物體的邊界框、類別信息等??梢允褂脴俗⒐ぞ呷鏛abelImg、LabelMe等進行標注工作。

第三方數(shù)據(jù)提供商:有些數(shù)據(jù)提供商提供各種類型的標注數(shù)據(jù)集,可以根據(jù)需求購買或獲取這些數(shù)據(jù)集。一些公司和組織也提供定制的數(shù)據(jù)集收集和標注服務。

數(shù)據(jù)增強:除了獲取現(xiàn)有的數(shù)據(jù)集外,還可以通過數(shù)據(jù)增強技術來擴充數(shù)據(jù)集規(guī)模,增加數(shù)據(jù)的多樣性。數(shù)據(jù)增強包括旋轉(zhuǎn)、翻轉(zhuǎn)、縮放、亮度調(diào)整等操作,可以提高模型的泛化能力。

合作伙伴和社區(qū):與合作伙伴、學術界或開發(fā)者社區(qū)合作,共享數(shù)據(jù)集或參與共同構(gòu)建數(shù)據(jù)集,可以獲得更多的數(shù)據(jù)資源和支持。

2.數(shù)據(jù)集包括訓練集和驗證集嗎?

數(shù)據(jù)集通常包括訓練集和驗證集。在機器學習和深度學習任務中,訓練集用于訓練模型的參數(shù),而驗證集用于評估模型的性能和調(diào)整超參數(shù)。

訓練集是模型用來學習特征和參數(shù)的數(shù)據(jù)集,通常包含大量的標注數(shù)據(jù),用于訓練模型進行目標檢測、分類、分割等任務。訓練集的目的是讓模型學習到數(shù)據(jù)集中的模式和規(guī)律,以便對新的數(shù)據(jù)進行預測和分類。

驗證集是用來評估模型在訓練過程中的性能和泛化能力的數(shù)據(jù)集。在訓練過程中,可以使用驗證集來監(jiān)控模型的性能,并根據(jù)驗證集的表現(xiàn)調(diào)整模型的超參數(shù),防止模型過擬合或欠擬合。

通常,數(shù)據(jù)集會被劃分為訓練集和驗證集兩部分,比例可以根據(jù)具體任務和數(shù)據(jù)量來確定。常見的劃分比例是將數(shù)據(jù)集的大約80%用作訓練集,20%用作驗證集。

3.如何訓練自己的數(shù)據(jù)集?

這里的方法CSDN上有許多博主都在介紹,大致的流程是:
練自己的數(shù)據(jù)集通常涉及以下步驟:

數(shù)據(jù)收集標注——對收集到的圖像數(shù)據(jù)進行預處理——將數(shù)據(jù)集劃分為訓練集和驗證集——選擇適合目標檢測任務的模型,如YOLOv5、Faster R-CNN、SSD——使用訓練集對選定的模型進行訓練
——使用驗證集對訓練好的模型進行評估——根據(jù)評估結(jié)果調(diào)整模型的超參數(shù)、學習率等——將訓練好的模型部署到實際應用中,用于目標檢測任務,可以將模型集成到自動駕駛系統(tǒng)、智能監(jiān)控系統(tǒng)等中。
有一位博主利用yolov5進行訓練的過程如下:
集成 yolov5,YOLO深度學習,YOLO,目標檢測,學習

4.環(huán)境配置中的python、pycharm、numpy、panda、anaconda、tensorflow、pytorch都是什么?

①python是一門編程語言。

②pycharm是一個IDE,即集成了解釋、編譯、調(diào)試等各種功能的開發(fā)平臺。

③numpy是Python中用于科學計算的基礎庫,提供了多維數(shù)組對象(ndarray)和各種數(shù)學函數(shù)。

④Pandas是建立在NumPy之上的數(shù)據(jù)處理庫,提供了高級數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工具,如Series和DataFrame,用于處理和分析結(jié)構(gòu)化數(shù)據(jù)

⑤Anaconda 是包管理工具,也是一個解釋器。

⑥TensorFlow 是由Google開發(fā)的開源深度學習框架,提供了豐富的API和工具,支持各種深度學習任務,如圖像識別、自然語言處理、目標檢測等

⑦PyTorch 是由Facebook開發(fā)的開源深度學習框架,也用于構(gòu)建和訓練深度學習模型

⑧yolo是一種深度學習的算法,可以在TensorFlow或者PyTorch構(gòu)建的框架下實現(xiàn)。

三、目標檢測性能指標

分為檢測速度和檢測精度。

1.檢測精度

準確率(Precision):指檢測出的目標中真正為目標的比例,即檢測為目標且確實為目標的數(shù)量與所有檢測為目標的數(shù)量的比值。即

召回率(Recall):指所有真正為目標的樣本中被檢測出的比例,即檢測為目標且確實為目標的數(shù)量與所有真正為目標的數(shù)量的比值。

F1分數(shù):綜合考慮準確率和召回率,是準確率和召回率的調(diào)和平均值,可以幫助評估模型在準確率和召回率之間的平衡。

平均精度均值(mAP):是目標檢測任務中常用的評估指標,綜合考慮了不同類別的準確率和召回率,計算出每個類別的AP(平均精度),然后取所有類別AP的平均值作為最終的mAP。

交并比(IoU):指預測框與真實框之間的重疊程度,通常用于衡量目標檢測算法的定位準確性。

漏檢率(Miss Rate):指未檢測到的目標數(shù)量與所有真實目標數(shù)量的比值,是召回率的補數(shù)。

誤檢率(False Alarm Rate):指被錯誤檢測為目標的數(shù)量與所有未真實目標數(shù)量的比值,是準確率的補數(shù)。

2.檢測速度

前傳耗時:指模型進行一次前傳(從輸入到輸出的計算過程)所花費的時間。前傳耗時直接影響模型的推理速度,通常希望前傳耗時越短越好,特別是在實時應用中,如視頻分析、自動駕駛等。

FPS(Frames Per Second):指模型每秒能夠處理的幀數(shù),即模型每秒能夠進行多少次推理。FPS是衡量模型推理速度的重要指標,通常希望模型的FPS越高越好,以實現(xiàn)實時的目標檢測和識別。

FLOPS(Floating Point Operations Per Second):指模型每秒執(zhí)行的浮點運算次數(shù)。FLOPS是衡量模型計算復雜度的指標,可以用來評估模型的計算資源消耗和效率。通常情況下,F(xiàn)LOPS越低表示模型計算效率越高。

四、YOLO目標檢測系列的發(fā)展史

集成 yolov5,YOLO深度學習,YOLO,目標檢測,學習
YOLO(You Only Look Once)是一種流行的目標檢測算法,以其簡單、快速和高效而聞名。以下是YOLO的發(fā)展歷程:

YOLO v1:YOLO v1是于2015年由Joseph Redmon等人提出的第一個YOLO版本。YOLO v1采用單個神經(jīng)網(wǎng)絡模型,將目標檢測任務轉(zhuǎn)化為回歸問題,通過在圖像中預測邊界框的坐標和類別來實現(xiàn)目標檢測。YOLO v1的特點是速度快,但在小目標檢測和定位精度上存在一定問題。

YOLO v2:YOLO v2(也稱為YOLO9000)是于2016年提出的改進版本,引入了一些新的技術和優(yōu)化,如使用更深的網(wǎng)絡、多尺度訓練、Batch Normalization等,提高了檢測精度和泛化能力。YOLO v2還引入了目標類別的多標簽預測,使得模型可以同時檢測多個類別。

YOLO v3:YOLO v3是于2018年發(fā)布的最新版本,進一步改進了檢測精度和速度。YOLO v3采用了更深的Darknet-53網(wǎng)絡作為基礎網(wǎng)絡結(jié)構(gòu),引入了多尺度預測、特征融合和更細粒度的邊界框預測,提高了模型的檢測性能。YOLO v3還支持多種不同尺寸的輸入圖像,適應不同場景的需求。

YOLO v4:YOLO v4是YOLO系列的最新版本,于2020年發(fā)布。YOLO v4引入了一系列新技術和優(yōu)化,如CSPDarknet53網(wǎng)絡、Mish激活函數(shù)、SAM模塊等,進一步提高了檢測精度和速度。YOLO v4還支持混合精度訓練、模型剪枝等技術,使得模型更加高效和靈活。

①one-stage和two-stage的區(qū)別?

Two-stage(兩階段):代表-- Fsater-rcnn Mask-rcnn系列

One-stage(單階段):代表-- Yolo系列
集成 yolov5,YOLO深度學習,YOLO,目標檢測,學習
簡單地說,單階段相比多階段,更加一步到位,把圖像直接輸入單個神經(jīng)網(wǎng)絡后就能直接輸出結(jié)果,但是兩階段算法必須先將圖像生成一個可能含有目標對象的候選區(qū)域,再進一步處理。

所以,
One-stage

優(yōu)勢:速度非??欤m合做實時檢測任務
劣勢:效果通常不會太好
Two-stage

優(yōu)勢:效果通常比較好
劣勢:速度較慢,不適合做實時檢測任務

②yolo系列算法的特點

集成 yolov5,YOLO深度學習,YOLO,目標檢測,學習
這個圖可以看出,yolo系列算法的mAP(即檢測精度)沒有快速線性卷積神經(jīng)網(wǎng)絡(RCNN)高,但是其FPS卻非常高,所以處理實時性要求高的場景比較合適。

五、YOLOV5算法的實現(xiàn)原理

集成 yolov5,YOLO深度學習,YOLO,目標檢測,學習
集成 yolov5,YOLO深度學習,YOLO,目標檢測,學習
總結(jié)就是:

①將輸入圖像分割成網(wǎng)格:YOLO5將輸入圖像分成S×S個網(wǎng)格,每個網(wǎng)格負責檢測一個目標。如果一個目標的中心點在某個網(wǎng)格內(nèi),那么就會在該網(wǎng)格內(nèi)擬合出一個邊界框。

②提取特征向量:使用卷積神經(jīng)網(wǎng)絡提取每個網(wǎng)格的特征向量,該特征向量代表了該網(wǎng)格內(nèi)目標的特征。

③預測邊界框和類別:對于每個網(wǎng)格,使用全連接層來預測一個或多個邊界框,以及每個邊界框可能的類別和置信度得分。

④預測結(jié)果的后處理:對于每個目標,選擇置信度最高的邊界框。然后,根據(jù)非極大值抑制(NMS)算法去掉重復邊界框并選擇最終的目標框。

5.1 分割網(wǎng)格的作用

主要起四個作用:
減少計算量:相比于對整張圖像進行目標檢測,只對每個網(wǎng)格進行檢測可以大大提高算法的運行速度。

定位目標:通過將圖像分割成網(wǎng)格,可以更精確地定位目標的位置。每個網(wǎng)格負責檢測其中的目標,減少目標位置的搜索范圍

適應不同尺寸的目標:分割成多個網(wǎng)格可以更好地適應不同尺寸和比例的目標。每個網(wǎng)格可以獨立地檢測目標,無需對整個圖像進行縮放或調(diào)整,從而提高了算法的魯棒性。

多尺度檢測:通過將圖像分割成多個網(wǎng)格,可以實現(xiàn)多尺度的目標檢測。不同大小的目標可能出現(xiàn)在不同大小的網(wǎng)格中,這樣可以更全面地檢測圖像中的目標。

5.2 對劃分出來的每個網(wǎng)格都使用一次卷積神經(jīng)網(wǎng)絡來提取特征向量嗎?

在YOLO算法中,每個網(wǎng)格都會經(jīng)過一次卷積神經(jīng)網(wǎng)絡的前向傳播過程,從而提取該網(wǎng)格內(nèi)目標的特征向量。這些特征向量將用于后續(xù)的目標邊界框和類別的預測。

至于如何用CNN進行特征提取的,這個就是先送入池化層減少復雜度,簡單的卷積層進行滑動窗口的卷積操作得到一個特征矩陣,然后送入全連接層,進行特征映射、非線性變換和參數(shù)學習,最終得到輸出特征圖。

5.3 每個邊界框的類別和置信度是怎么得出的?

在全連接層后,通常會使用softmax函數(shù)將網(wǎng)絡輸出轉(zhuǎn)換為概率分布,以表示每個類別的可能性。

5.4 非極大值抑制(NMS)算法是什么?

非極大值抑制(Non-Maximum Suppression,NMS)是一種常用的目標檢測算法后處理技術,用于去除重疊邊界框并選擇最終的目標框。其主要思想是在檢測到的多個邊界框中,保留置信度最高的邊界框,同時抑制與該邊界框重疊度較高的其他邊界框。

NMS算法的步驟如下:

①按照置信度排序:首先,對所有檢測到的邊界框按照其置信度得分進行排序,置信度高的邊界框排在前面。
②選擇置信度最高的邊界框:從排好序的邊界框列表中選擇置信度最高的邊界框,并將其添加到最終的目標框列表中。
③計算重疊度:對于剩余的邊界框,計算它們與已選中的最高置信度邊界框的重疊度(如IoU,交并比)。
④去除重疊邊界框:對于重疊度高于設定閾值的邊界框,將其從列表中去除,只保留重疊度較低的邊界框。
⑤重復操作:重復以上步驟,直到所有邊界框都被處理完畢。

通過非極大值抑制算法,可以有效地減少重疊邊界框,保留置信度最高的邊界框,從而得到最終的目標檢測結(jié)果。NMS算法在目標檢測領域被廣泛應用,能夠提高檢測結(jié)果的準確性和穩(wěn)定性。

六、實現(xiàn)一個yolov5目標檢測的項目,需要哪些基礎的軟件和環(huán)境配置呢?

要實現(xiàn)一個YOLOv5目標檢測項目,需要以下基礎的軟件和環(huán)境配置:

Python環(huán)境:YOLOv5是基于Python實現(xiàn)的,因此需要安裝Python環(huán)境。推薦使用Python 3.6及以上版本。

PyTorch:YOLOv5使用PyTorch作為深度學習框架,因此需要安裝PyTorch。可以通過PyTorch官方網(wǎng)站提供的安裝指南安裝對應版本的PyTorch。

CUDA和cuDNN:如果要在GPU上加速訓練和推理過程,需要安裝相應版本的CUDA和cuDNN,并配置PyTorch以支持GPU加速。

YOLOv5代碼庫:下載YOLOv5的代碼庫,可以從GitHub上的ultralytics/yolov5倉庫獲取??梢允褂胓it命令克隆代碼庫或直接下載zip文件。

依賴庫:安裝項目所需的依賴庫,如NumPy、OpenCV、Matplotlib等??梢酝ㄟ^pip或conda安裝這些庫。

數(shù)據(jù)集:準備用于訓練和測試的目標檢測數(shù)據(jù)集。可以使用已有的數(shù)據(jù)集,也可以自行收集和標注數(shù)據(jù)集。

預訓練模型:下載YOLOv5的預訓練模型權重,可以從YOLOv5官方發(fā)布的權重文件中獲取。

配置文件:根據(jù)項目需求,可以修改YOLOv5的配置文件,如模型結(jié)構(gòu)、超參數(shù)設置等。文章來源地址http://www.zghlxwxcb.cn/news/detail-845523.html

到了這里,關于YOLOv5目標檢測學習(1):yolo系列算法的基礎概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包