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

基于YOLOv5、v7、v8的竹簽計(jì)數(shù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了基于YOLOv5、v7、v8的竹簽計(jì)數(shù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前言

該系統(tǒng)是一個(gè)綜合型的應(yīng)用,基于PyTorch框架的YOLOv5、YOLOv7和YOLOv8,結(jié)合了Django后端和Vue3前端,為竹簽生成工廠和串串香店鋪提供了一套全面而強(qiáng)大的實(shí)時(shí)監(jiān)測(cè)與分析解決方案。系統(tǒng)主要特色在于實(shí)時(shí)目標(biāo)檢測(cè)和位置追蹤,支持用戶通過上傳圖片、視頻或攝像頭進(jìn)行推理,實(shí)時(shí)獲取竹簽的位置和數(shù)量。這一功能的實(shí)現(xiàn)基于高度精準(zhǔn)的YOLO模型,為生產(chǎn)過程提供了即時(shí)可用的信息,助力企業(yè)合理安排生產(chǎn)計(jì)劃、優(yōu)化庫存管理。
與此同時(shí),系統(tǒng)還引入了三種模型訓(xùn)練結(jié)果的可視化分析,為用戶提供了深入了解模型訓(xùn)練過程的手段,包括損失曲線、性能評(píng)估和目標(biāo)檢測(cè)結(jié)果的可視展示。這使用戶能夠更好地了解模型的行為,進(jìn)行精細(xì)的參數(shù)調(diào)優(yōu)以提高模型的性能和適應(yīng)性。實(shí)時(shí)訓(xùn)練監(jiān)控與性能評(píng)估功能使用戶能夠?qū)崟r(shí)跟蹤模型訓(xùn)練進(jìn)度,并得到準(zhǔn)確的性能評(píng)估指標(biāo),為模型優(yōu)化提供了有力的支持。
用戶友好的前端界面則進(jìn)一步簡(jiǎn)化了系統(tǒng)的使用體驗(yàn),使上傳圖像、視頻或連接攝像頭等操作更加直觀輕松。系統(tǒng)提供了交互式的界面,允許用戶深入分析特定時(shí)間段或場(chǎng)景的竹簽檢測(cè)結(jié)果,從而更好地理解生產(chǎn)現(xiàn)場(chǎng)的實(shí)時(shí)情況。系統(tǒng)注重靈活性與拓展性,能夠迎合竹簽生成工廠和串串香店鋪的多樣化需求,并為未來業(yè)務(wù)變化提供了良好的適應(yīng)性。綜合而言,該系統(tǒng)不僅提供了實(shí)時(shí)監(jiān)測(cè)功能,更通過全面的數(shù)據(jù)分析和模型性能評(píng)估工具,提升了生產(chǎn)效率和決策能力,為企業(yè)在竹簽管理上提供了強(qiáng)大的支持。

效果演示

前端推理界面
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
單張照片推理界面

yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO

視頻推理界面
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
攝像頭推理界面

yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
結(jié)果可視化頁面

yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO

一、實(shí)現(xiàn)思路

① 算法原理

YOLOv8算法原理
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
YOLOv8 是 ultralytics 公司在 2023 年 1月 10 號(hào)開源的 YOLOv5 的下一個(gè)重大更新版本,目前支持圖像分類、物體檢測(cè)和實(shí)例分割任務(wù),在還沒有開源時(shí)就收到了用戶的廣泛關(guān)注。

具體到 YOLOv8 算法,其核心特性和改動(dòng)可以歸結(jié)為如下:

  • 提供了一個(gè)全新的 SOTA 模型,包括 P5 640 和 P6 1280 分辨率的目標(biāo)檢測(cè)網(wǎng)絡(luò)和基于 YOLACT 的實(shí)例分割模型。和
    YOLOv5 一樣,基于縮放系數(shù)也提供了 N/S/M/L/X 尺度的不同大小模型,用于滿足不同場(chǎng)景需求

  • 骨干網(wǎng)絡(luò)和 Neck 部分可能參考了 YOLOv7 ELAN 設(shè)計(jì)思想,將 YOLOv5 的 C3 結(jié)構(gòu)換成了梯度流更豐富的 C2f
    結(jié)構(gòu),并對(duì)不同尺度模型調(diào)整了不同的通道數(shù),屬于對(duì)模型結(jié)構(gòu)精心微調(diào),不再是無腦一套參數(shù)應(yīng)用所有模型,大幅提升了模型性能。不過這個(gè) C2f
    模塊中存在 Split 等操作對(duì)特定硬件部署沒有之前那么友好了

  • Head 部分相比 YOLOv5 改動(dòng)較大,換成了目前主流的解耦頭結(jié)構(gòu),將分類和檢測(cè)頭分離,同時(shí)也從 Anchor-Based 換成了
    Anchor-Free

  • Loss 計(jì)算方面采用了 TaskAlignedAssigner 正樣本分配策略,并引入了 Distribution Focal Loss

  • 訓(xùn)練的數(shù)據(jù)增強(qiáng)部分引入了 YOLOX 中的最后 10 epoch 關(guān)閉 Mosiac 增強(qiáng)的操作,可以有效地提升精度

YOLOv8 是一個(gè) SOTA 模型,它建立在以前 YOLO 版本的成功基礎(chǔ)上,并引入了新的功能和改進(jìn),以進(jìn)一步提升性能和靈活性。具體創(chuàng)新包括一個(gè)新的骨干網(wǎng)絡(luò)、一個(gè)新的 Ancher-Free 檢測(cè)頭和一個(gè)新的損失函數(shù),可以在從 CPU 到 GPU 的各種硬件平臺(tái)上運(yùn)行。

不過 Ultralytics 并沒有直接將開源庫命名為 YOLOv8,而是直接使用 Ultralytics 這個(gè)詞,原因是 Ultralytics 將這個(gè)庫定位為算法框架,而非某一個(gè)特定算法,一個(gè)主要特點(diǎn)是可擴(kuò)展性。

YOLOv8的算法原理可以概括為以下幾個(gè)步驟:

  • 分割圖片:YOLOv8首先將輸入圖片分割為a×a個(gè)grid,每個(gè)grid的大小相等。不同于之前的滑窗法讓每個(gè)框只能識(shí)別出一個(gè)物體,且要求這個(gè)物體必須在這個(gè)框之內(nèi),YOLOv8只要求物體的中心落在這個(gè)grid中,這使得算法不需要設(shè)計(jì)非常大的框來框住占用較多像素塊的目標(biāo)。

  • 基于grid生成bounding box:每個(gè)grid都預(yù)測(cè)出B個(gè)bounding box,每個(gè)bounding box包含5個(gè)值,分別是物體的中心位置(x,y)、高(h)、寬(w)以及這次預(yù)測(cè)的置信度。每個(gè)grid還要負(fù)責(zé)預(yù)測(cè)這個(gè)框中的物體是什么類別的,這里的類別用one-hot編碼表示。

  • 損失函數(shù)的設(shè)計(jì):YOLOv8的損失函數(shù)由兩部分構(gòu)成,一部分是坐標(biāo)預(yù)測(cè)的損失,也就是預(yù)測(cè)出的bounding box中心位置和大小的損失;另一部分是類別預(yù)測(cè)的損失,也就是預(yù)測(cè)出的物體類別的損失。

  • 預(yù)測(cè)階段:在預(yù)測(cè)階段,YOLOv8將輸入的圖片經(jīng)過一次神經(jīng)網(wǎng)絡(luò)的前向傳播,就可以得到每個(gè)grid預(yù)測(cè)的bounding box和類別概率,然后通過非極大值抑制(NMS)算法去除多余的框,得到最終的預(yù)測(cè)結(jié)果。

YOLOv5算法原理
YOLOv5與歷代YOLO算法相似,使用了網(wǎng)格的概念,將圖像劃分為多個(gè)網(wǎng)格,每個(gè)網(wǎng)格負(fù)責(zé)預(yù)測(cè)一個(gè)或多個(gè)物體,簡(jiǎn)單來說每個(gè)網(wǎng)格都可以產(chǎn)生預(yù)測(cè)框。網(wǎng)格可以產(chǎn)生預(yù)測(cè)框的原因也很簡(jiǎn)單。網(wǎng)格內(nèi)存有幾個(gè)(一般為三個(gè))預(yù)測(cè)框的模板,也就是"anchor"每個(gè)anchor都有預(yù)設(shè)的寬高、坐標(biāo)以及置信度。置信度表示網(wǎng)格內(nèi)存在物體的概率。在訓(xùn)練過程中,真實(shí)的人工標(biāo)注框的中點(diǎn)落在哪個(gè)在網(wǎng)格內(nèi),哪個(gè)網(wǎng)格內(nèi)的anchor就會(huì)朝著這個(gè)真實(shí)框瘋狂“生長(zhǎng)”或者“萎縮”,并將置信度設(shè)為1因?yàn)槠浯嬖谖矬w,表示anchor所在的網(wǎng)格有物體,其他沒有預(yù)測(cè)框的anchor置信度則為0。如果把a(bǔ)nchor與真實(shí)框之間寬高的差、坐標(biāo)的差看成是損失,把二元交叉熵作為置信度的損失,那么目標(biāo)檢測(cè)問題就會(huì)大大簡(jiǎn)化為簡(jiǎn)單的回歸預(yù)測(cè)和分類問題。

YOLO v5的網(wǎng)絡(luò)結(jié)構(gòu)分為三部分:backbone骨干網(wǎng)絡(luò)、neck頸部結(jié)構(gòu)、head頭部結(jié)構(gòu)。在yolov5s.yaml文件中,作者將head與neck放在了一起。YOLOv5的網(wǎng)絡(luò)結(jié)構(gòu)為全卷積網(wǎng)絡(luò),即網(wǎng)絡(luò)結(jié)構(gòu)全由卷積、批歸一化層等構(gòu)成,不包含全連接層。YOLOv5中的Focus結(jié)構(gòu)是一種用于特征提取的卷積神經(jīng)網(wǎng)絡(luò)層,用于將輸入特征圖中的信息進(jìn)行壓縮和組合,從而提取出更高層次的特征表示。Focus結(jié)構(gòu)是YOLOv5中的一種特殊卷積操作,它被用作網(wǎng)絡(luò)中的第一個(gè)卷積層,用于對(duì)輸入特征圖進(jìn)行下采樣,以減少計(jì)算量和參數(shù)量。YOLOv5模型結(jié)構(gòu)如下圖所示。
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
Focus結(jié)構(gòu)
.YOLOv5中的Focus結(jié)構(gòu)是一種用于特征提取的卷積神經(jīng)網(wǎng)絡(luò)層,用于將輸入特征圖中的信息進(jìn)行壓縮和組合,從而提取出更高層次的特征表示。Focus結(jié)構(gòu)是YOLOv5中的一種特殊卷積操作,它被用作網(wǎng)絡(luò)中的第一個(gè)卷積層,用于對(duì)輸入特征圖進(jìn)行下采樣,以減少計(jì)算量和參數(shù)量。
具體來說,F(xiàn)ocus結(jié)構(gòu)可以將輸入特征圖劃分成四個(gè)子圖,并將這四個(gè)子圖進(jìn)行通道拼接,從而得到一個(gè)更小的特征圖。假設(shè)輸入特征圖的大小為N×N×C,其中N為特征圖的尺寸,C為通道數(shù),則Focus結(jié)構(gòu)的計(jì)算過程可以分為以下幾個(gè)步驟:

a.將輸入特征圖進(jìn)行通道分離,得到兩個(gè)大小為N×N×C/4的特征圖,記為x和y。
b.對(duì)x和y分別進(jìn)行橫向和縱向的步長(zhǎng)為2的卷積操作,得到兩個(gè)大小為N/2×N/2×C/4的特征圖,記為x’和y’。
c.將x’和y’進(jìn)行通道拼接,得到一個(gè)大小為N/2×N/2×C/2的特征圖,記為z。
d.對(duì)z進(jìn)行橫向和縱向的步長(zhǎng)為2的卷積操作,得到一個(gè)大小為N/4×N/4×C/2的特征圖,即為Focus結(jié)構(gòu)的輸出。

由于Focus結(jié)構(gòu)對(duì)輸入特征圖進(jìn)行了下采樣,因此可以有效地減少計(jì)算量和參數(shù)量,同時(shí)保留了輸入特征圖中的重要信息,有助于提高模型的特征提取能力。在YOLOv5中,F(xiàn)ocus結(jié)構(gòu)被廣泛用于各個(gè)卷積塊的第一個(gè)卷積層,以實(shí)現(xiàn)對(duì)輸入特征圖的下采樣和特征壓縮。

YOLOv5的代碼中有時(shí)會(huì)將Focus結(jié)構(gòu)替換為卷積層,F(xiàn)ocus結(jié)構(gòu)在實(shí)現(xiàn)上比較復(fù)雜,需要進(jìn)行通道分離、卷積、通道拼接等操作,導(dǎo)致計(jì)算量較大,不利于模型的訓(xùn)練和推理。為了簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu)并提高運(yùn)行效率,YOLOv5的作者采用了一種策略,即將Focus結(jié)構(gòu)替換為標(biāo)準(zhǔn)的卷積層,從而減少計(jì)算量和參數(shù)量。

YOLOv5中的卷積層是以步長(zhǎng)為2的方式進(jìn)行下采樣的,與Focus結(jié)構(gòu)類似,它可以實(shí)現(xiàn)對(duì)輸入特征圖的壓縮和下采樣。因此,將Focus結(jié)構(gòu)替換為卷積層可以在一定程度上提高模型的訓(xùn)練和推理效率,同時(shí)減少代碼的復(fù)雜度和開發(fā)難度。

CSP結(jié)構(gòu)
CSP(Cross Stage Partial)結(jié)構(gòu)是YOLOv5中的一個(gè)重要組成部分,用于構(gòu)建骨干網(wǎng)絡(luò)(backbone)。CSP結(jié)構(gòu)最初在CVPR 2020中提出,可以有效地減少網(wǎng)絡(luò)參數(shù)和計(jì)算量,同時(shí)提高特征提取的效率。

CSP結(jié)構(gòu)的核心思想是將輸入特征圖分成兩部分,一部分經(jīng)過一個(gè)小的卷積網(wǎng)絡(luò)(稱為子網(wǎng)絡(luò))進(jìn)行處理,另一部分則直接進(jìn)行下一層的處理。然后將兩部分特征圖拼接起來,作為下一層的輸入。
具體來說,CSP結(jié)構(gòu)包括以下幾個(gè)步驟:

a.將輸入特征圖分成兩部分,一部分進(jìn)行子網(wǎng)絡(luò)的處理,另一部分直接進(jìn)行下一層的處理。
b.在子網(wǎng)絡(luò)中,先使用一個(gè)卷積層將輸入特征圖進(jìn)行壓縮,然后進(jìn)行一系列卷積操作,最后再使用一個(gè)卷積層進(jìn)行擴(kuò)張。這樣可以提取出相對(duì)較少的高層次特征。
c.在下一層中,將經(jīng)過子網(wǎng)絡(luò)處理的特征圖與直接處理的特征圖進(jìn)行拼接,然后再進(jìn)行一系列卷積操作。這樣可以將低層次的細(xì)節(jié)特征和高層次的抽象特征結(jié)合起來,提高特征提取的效率。

CSP結(jié)構(gòu)在YOLOv5中被廣泛應(yīng)用,包括骨干網(wǎng)絡(luò)中的多個(gè)階段以及頭部網(wǎng)絡(luò)(head)中的一些模塊。它可以顯著地減少網(wǎng)絡(luò)的參數(shù)和計(jì)算量,同時(shí)提高特征提取的效率,從而加快模型的訓(xùn)練和推理速度。

Yolov7算法算法原理

YOLOv7是一種最先進(jìn)的實(shí)時(shí)目標(biāo)檢測(cè)器,它在速度和準(zhǔn)確性方面都超過了所有已知的目標(biāo)檢測(cè)器,范圍從5 FPS到160 FPS1。它在GPU V100上達(dá)到了30 FPS或更高的30% AP的最高準(zhǔn)確率2。

在 YOLOv7 中,模型重參數(shù)是指將模型的層數(shù)和參數(shù)量減少,同時(shí)保持模型性能不變或提高模型性能。YOLOv7 的模型重參數(shù)是通過以下步驟實(shí)現(xiàn)的:

  • CSPNet 網(wǎng)絡(luò)結(jié)構(gòu):YOLOv7 采用了 CSPNet 網(wǎng)絡(luò)結(jié)構(gòu),它將一個(gè)較大的卷積層分成兩個(gè)較小的卷積層,從而減少了模型的參數(shù)數(shù)量。yolov7總體結(jié)構(gòu)由Input、Backbone、Head、Detect四部分組成。Input為6406403的數(shù)據(jù)輸入。Backbone為骨干網(wǎng)絡(luò)由CBS、ELAN、MP-1組成。Head由CBS、SPPCSPC、E-ELAN、MP-2、RepConv組成。Detect為三個(gè)檢測(cè)頭。此外,
    CSPNet 還采用了跨階段連接技術(shù),使得網(wǎng)絡(luò)可以在不增加參數(shù)數(shù)量的情況下獲得更高的性能。
  • 剪枝:YOLOv7 采用了通道剪枝技術(shù),將網(wǎng)絡(luò)中一些不重要的通道刪除,從而減少模型的參數(shù)數(shù)量。通道剪枝技術(shù)可以通過對(duì)每個(gè)通道的重要性進(jìn)行評(píng)估來實(shí)現(xiàn)。具體而言,可以使用結(jié)構(gòu)感知剪枝(Structural-Aware Pruning)或自適應(yīng)剪枝(Adaptive Pruning)等技術(shù)來評(píng)估每個(gè)通道的重要性。
  • SPP 網(wǎng)絡(luò)結(jié)構(gòu):YOLOv7 中使用了 SPP 網(wǎng)絡(luò)結(jié)構(gòu),該結(jié)構(gòu)可以在不增加參數(shù)數(shù)量的情況下增加感受野,從而提高網(wǎng)絡(luò)的性能。具體而言,SPP 網(wǎng)絡(luò)結(jié)構(gòu)通過使用不同尺寸的池化核來提取不同大小的特征圖,然后將這些特征圖拼接在一起,從而形成一個(gè)具有更大感受野的特征圖。
  • 模型微調(diào):在模型訓(xùn)練過程中,YOLOv7 采用了模型微調(diào)技術(shù),通過微調(diào)模型的參數(shù)來進(jìn)一步提高模型的性能。具體而言,YOLOv7 通過在較小的數(shù)據(jù)集上進(jìn)行微調(diào),使得模型可以更好地適應(yīng)新的數(shù)據(jù)集。

同時(shí),YOLOv7 的模型重參數(shù)是一種有效的模型優(yōu)化方法,可以減少模型的參數(shù)量和計(jì)算量,同時(shí)提高模型的推理速度和性能。增強(qiáng)CNN的學(xué)習(xí)能力,能夠在輕量化的同時(shí)保持準(zhǔn)確性,降低計(jì)算瓶頸,降低內(nèi)存成本。
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
模型縮放

模型縮放方法通常使用不同的縮放因子,如resolution(輸入圖像的大?。?、深度(層數(shù))、寬度(通道數(shù))和階段(特征pyramid的數(shù)量),以便對(duì)網(wǎng)絡(luò)參數(shù)量、計(jì)算、推理速度和ac-curacy進(jìn)行良好的權(quán)衡。

論文提到,所有基于串聯(lián)的模型,如DenseNet或VoVNet,當(dāng)此類模型的深度被縮放時(shí),會(huì)改變一些層的輸入寬度。由于提出的架構(gòu)是基于串聯(lián)的,我們必須為這個(gè)模型設(shè)計(jì)一個(gè)新的復(fù)合縮放方法。

多尺度訓(xùn)練:YOLOv7 采用了多尺度訓(xùn)練技術(shù),即在訓(xùn)練過程中使用不同尺度的圖像來訓(xùn)練模型。這可以讓模型學(xué)習(xí)到不同尺度的目標(biāo),從而提高模型的魯棒性和泛化能力。具體而言,YOLOv7 使用了 3 個(gè)不同的尺度來訓(xùn)練模型,分別為 640x640、960x960 和 1280x1280。

PANet 網(wǎng)絡(luò)結(jié)構(gòu):YOLOv7 中采用了 PANet 網(wǎng)絡(luò)結(jié)構(gòu),它可以將不同尺度的特征圖融合在一起,從而提高模型的檢測(cè)精度。具體而言,PANet 網(wǎng)絡(luò)結(jié)構(gòu)通過自頂向下和自底向上的方式來進(jìn)行特征融合,使得模型可以更好地處理不同尺度的目標(biāo)。

E-ELAN

yolov7的基礎(chǔ)模塊ELAN,論文還提出了ELAN的擴(kuò)展E-ELAN(擴(kuò)展的高效層聚合網(wǎng)絡(luò)),將兩個(gè)并行的ELAN,輸出按位置相加,E-ELAN只在yolov7-e6中使用。

E-ELAN利用expand、shuffle、merge cardinality來實(shí)現(xiàn)不破壞原來梯度路徑的情況下不斷增強(qiáng)網(wǎng)絡(luò)學(xué)習(xí)能力的能力。它使用組卷積來增加特征的基數(shù)(cardinality),并以shuffle和merge cardinality的方式組合不同組的特征。這種操作方式可以增強(qiáng)不同特征圖學(xué)到的特征,改進(jìn)參數(shù)的使用和計(jì)算效率。

重參數(shù)化卷積

RepConv在VGG上取得了出色的表現(xiàn),但直接將其應(yīng)用于ResNet和DenseNet以及其他架構(gòu)時(shí),其準(zhǔn)確性將大大降低。,比如不帶殘差的3×3卷積可以直接替換成重參數(shù)化卷積,但是對(duì)于resnet的殘差模塊,本來就有一個(gè)恒等連接,再替換成重參數(shù)化卷積效果只會(huì)更差,RepConv中的身份連接破壞了ResNet中的殘差和DenseNet中的拼接,為不同的特征映射提供了更多樣化的梯度?;谏鲜鲈?,使用無單位連接的RepConv (RepConvN)來設(shè)計(jì)規(guī)劃的重新參數(shù)化卷積的體系結(jié)構(gòu)。當(dāng)一個(gè)帶有殘差或串聯(lián)的卷積層被重新參數(shù)化的卷積所取代時(shí),應(yīng)該沒有恒等連接。

標(biāo)簽分配方法

深度監(jiān)督:在模型訓(xùn)練的過程中,除了最終的檢測(cè)頭(Lead Head)外,給中間的一些層也增加一些輔助頭(Aux Head),輔助檢測(cè)頭也會(huì)參與損失值的計(jì)算。

標(biāo)簽分配:把輸入圖像中的標(biāo)注框和最終預(yù)測(cè)的預(yù)測(cè)值對(duì)應(yīng)起來,便于進(jìn)一步求損失值,硬標(biāo)簽和軟標(biāo)簽(trian中的OTA算法)

過去,在深度網(wǎng)絡(luò)的訓(xùn)練中,標(biāo)簽賦值通常是直接參考ground truth,根據(jù)給定的規(guī)則生成硬標(biāo)簽。然而,近年來,以物體檢測(cè)為例,研究人員往往利用網(wǎng)絡(luò)輸出的預(yù)測(cè)質(zhì)量和分布,然后與ground truth一起考慮,使用一些計(jì)算和優(yōu)化方法來生成可靠的軟標(biāo)簽。例如,YOLO使用邊界盒回歸預(yù)測(cè)的IoU和地面真實(shí)作為物體的軟標(biāo)簽。在本文中,我們把把網(wǎng)絡(luò)預(yù)測(cè)結(jié)果和地面實(shí)況一起考慮,然后分配軟標(biāo)簽的機(jī)制稱為 “標(biāo)簽分配器”。

② 程序流程圖

yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO

二、系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

該系統(tǒng)采用了PyTorch框架的YOLOv5、YOLOv7和YOLOv8,結(jié)合Django后端和Vue3前端,致力于為竹簽生成工廠和串串香店鋪提供高效的實(shí)時(shí)監(jiān)測(cè)解決方案。通過實(shí)時(shí)目標(biāo)檢測(cè)和位置追蹤,系統(tǒng)確保對(duì)竹簽的高精準(zhǔn)度識(shí)別,并通過用戶友好的前端界面展示實(shí)時(shí)檢測(cè)結(jié)果。同時(shí),引入了三種模型訓(xùn)練結(jié)果的可視化分析,包括損失曲線、性能評(píng)估等,以協(xié)助用戶優(yōu)化模型參數(shù)。系統(tǒng)還集成了實(shí)時(shí)訓(xùn)練監(jiān)控模塊,使用戶能夠隨時(shí)追蹤模型訓(xùn)練的進(jìn)度。這一設(shè)計(jì)旨在提高竹簽管理的效率和決策能力,注重核心功能的實(shí)時(shí)性和用戶體驗(yàn)。

在串串香店內(nèi),我正著手收集大量竹簽,為構(gòu)建一個(gè)嚴(yán)謹(jǐn)?shù)臄?shù)據(jù)集做準(zhǔn)備。此數(shù)據(jù)集將專注于竹簽的多角度拍照標(biāo)注,旨在為后續(xù)研究和應(yīng)用提供基礎(chǔ)資料。每個(gè)竹簽都將以高清圖像記錄,以確保數(shù)據(jù)集的質(zhì)量和多樣性。這一收集過程不僅僅局限于數(shù)量,我還將特別注重竹簽的形狀、長(zhǎng)度和其他相關(guān)特征。
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
模型設(shè)計(jì)方面,我首先采用的是最主流的深度學(xué)習(xí)框架PyTorch,檢測(cè)算法模型采用的是最新的YOLOv8。YOLOv8和YOLOv5是同一個(gè)作者,YOLOv8 主要參考了最近提出的諸如 YOLOX、YOLOv6、YOLOv7 和 PPYOLOE 等算法的相關(guān)設(shè)計(jì),本身的創(chuàng)新點(diǎn)不多,偏向工程實(shí)踐,主推的還是 ultralytics 這個(gè)框架本身。

YOLOv8的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì),在暫時(shí)不考慮Head情況下,對(duì)比YOLOv5和YOLOv8的yaml配置文件可以發(fā)現(xiàn)改動(dòng)較?。?br>yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
左側(cè)為 YOLOv5-s,右側(cè)為 YOLOv8-s。
骨干網(wǎng)絡(luò)和 Neck 的具體變化為:

  • 第一個(gè)卷積層的 kernel 從 6x6 變成了 3x3
  • 所有的 C3 模塊換成 C2f,結(jié)構(gòu)如下所示,可以發(fā)現(xiàn)多了更多的跳層連接和額外的 Split 操作
    yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
  • 去掉了 Neck 模塊中的 2 個(gè)卷積連接層
  • Backbone 中 C2f 的 block 數(shù)從 3-6-9-3 改成了 3-6-6-3
  • 查看 N/S/M/L/X 等不同大小模型,可以發(fā)現(xiàn) N/S 和 L/X 兩組模型只是改了縮放系數(shù),但是 S/M/L 等骨干網(wǎng)絡(luò)的通道數(shù)設(shè)置不一樣,沒有遵循同一套縮放系數(shù)。如此設(shè)計(jì)的原因應(yīng)該是同一套縮放系數(shù)下的通道設(shè)置不是最優(yōu)設(shè)計(jì),YOLOv7 網(wǎng)絡(luò)設(shè)計(jì)時(shí)也沒有遵循一套縮放系數(shù)作用于所有模型

Head 部分變化最大,從原先的耦合頭變成了解耦頭,并且從 YOLOv5 的 Anchor-Based 變成了 Anchor-Free。其結(jié)構(gòu)如下所示:
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
從上面兩張圖可以看出,yolov8不再有之前的 objectness 分支,只有解耦的分類和回歸分支,并且其回歸分支使用了 Distribution Focal Loss 中提出的積分形式表示法。

三、模型評(píng)估與優(yōu)化

① Yolov5

F1曲線
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
PR圖
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
yolov5訓(xùn)練結(jié)果圖
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO

② Yolov7

F1曲線
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
PR圖
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
yolov7訓(xùn)練結(jié)果圖
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO

③Yolov8

F1曲線
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
PR圖
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
yolov8訓(xùn)練結(jié)果圖
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO

四、模型對(duì)比

yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO
yolov8分割高分辨率圖片,YOLO實(shí)戰(zhàn)筆記,深度學(xué)習(xí)之目標(biāo)檢測(cè),YOLO文章來源地址http://www.zghlxwxcb.cn/news/detail-819327.html

到了這里,關(guān)于基于YOLOv5、v7、v8的竹簽計(jì)數(shù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包