去年十一那會(huì)無(wú)意間刷到一個(gè)視頻展示的就是德國(guó)機(jī)械收割機(jī)非常高效自動(dòng)化地24小時(shí)不間斷地在超廣闊的土地上采摘各種作物,專家設(shè)計(jì)出來(lái)了很多用于采摘不同農(nóng)作物的大型機(jī)械,看著非常震撼,但是我們國(guó)內(nèi)農(nóng)業(yè)的發(fā)展還是相對(duì)比較滯后的,小的時(shí)候拔草是一個(gè)人一列蹲在地里就在那埋頭拔草,不知道什么時(shí)候才能走到地的盡頭,小塊的分散的土地太多基本上都是只能人工手工來(lái)取收割,大點(diǎn)的連片的土地可以用收割機(jī)來(lái)收割,不過(guò)收割機(jī)基本都是用來(lái)收割小麥的,最近幾年好像老家也能看到用于收割玉米的機(jī)器了不過(guò)相對(duì)還是比較少的,玉米的收割我們基本上還是人工來(lái)收割的,不僅累效率還低遇上對(duì)玉米葉片過(guò)敏的就更要命了。。。。閑話就扯到這里了。
有時(shí)候經(jīng)常在想我們的農(nóng)業(yè)機(jī)械化自動(dòng)化什么時(shí)候能再向前邁進(jìn)一大步,回顧德國(guó)的工業(yè)機(jī)械,在視頻展示的效果中,其實(shí)很關(guān)鍵的主要是兩部分,一部分是機(jī)器視覺(jué)定位檢測(cè)識(shí)別,另一部分是機(jī)械臂傳動(dòng)軸,兩部分相互配合才能完成采摘工作,前文實(shí)踐如下:
《AI助力農(nóng)作物自動(dòng)采摘,基于YOLOv7【tiny/l/x】不同系列參數(shù)模型開(kāi)發(fā)構(gòu)建作物生產(chǎn)場(chǎng)景下番茄采摘檢測(cè)計(jì)數(shù)分析系統(tǒng)》
《AI助力農(nóng)作物自動(dòng)采摘,基于YOLOv8全系列【n/s/m/l/x】參數(shù)模型開(kāi)發(fā)構(gòu)建作物生產(chǎn)場(chǎng)景下番茄采摘檢測(cè)計(jì)數(shù)分析系統(tǒng)》
《AI助力農(nóng)作物自動(dòng)采摘,基于YOLOv5全系列【n/s/m/l/x】參數(shù)模型開(kāi)發(fā)構(gòu)建作物生產(chǎn)場(chǎng)景下番茄采摘檢測(cè)計(jì)數(shù)分析系統(tǒng)》
《AI助力農(nóng)作物自動(dòng)采摘,基于YOLOv3全系列【yolov3tiny/yolov3/yolov3spp】參數(shù)模型開(kāi)發(fā)構(gòu)建作物生產(chǎn)場(chǎng)景下番茄采摘檢測(cè)計(jì)數(shù)分析系統(tǒng)》
《AI助力農(nóng)作物自動(dòng)采摘,基于YOLOv8全系列【n/s/m/l/x】參數(shù)模型開(kāi)發(fā)構(gòu)建作物番茄采摘場(chǎng)景下番茄成熟度檢測(cè)識(shí)別分析系統(tǒng)》
《AI助力農(nóng)作物自動(dòng)采摘,基于YOLOv7【tiny/l/x】不同系列參數(shù)模型開(kāi)發(fā)構(gòu)建作物番茄采摘場(chǎng)景下番茄成熟度檢測(cè)識(shí)別分析系統(tǒng)》
《AI助力農(nóng)作物自動(dòng)采摘,基于DETR(DEtection TRansformer)開(kāi)發(fā)構(gòu)建作物生產(chǎn)場(chǎng)景下番茄采摘檢測(cè)計(jì)數(shù)分析系統(tǒng)》
《AI助力農(nóng)作物自動(dòng)采摘,基于DETR(DEtection TRansformer)開(kāi)發(fā)構(gòu)建番茄采摘場(chǎng)景下番茄成熟度檢測(cè)識(shí)別計(jì)數(shù)分析系統(tǒng)》
本文的主要想法是想要基于YOLOv5全系列的不同參數(shù)量級(jí)的模型來(lái)開(kāi)發(fā)構(gòu)建用于番茄采摘場(chǎng)景下的番茄作物成熟度檢測(cè)識(shí)別系統(tǒng),首先看下實(shí)例效果:
本文是選擇的是YOLOv5算法模型來(lái)完成本文項(xiàng)目的開(kāi)發(fā)構(gòu)建。相較于前兩代的算法模型,YOLOv5可謂是集大成者,達(dá)到了SOTA的水平,下面簡(jiǎn)單對(duì)v3-v5系列模型的演變進(jìn)行簡(jiǎn)單介紹總結(jié)方便對(duì)比分析學(xué)習(xí):
【YOLOv3】
YOLOv3(You Only Look Once version 3)是一種基于深度學(xué)習(xí)的快速目標(biāo)檢測(cè)算法,由Joseph Redmon等人于2018年提出。它的核心技術(shù)原理和亮點(diǎn)如下:
技術(shù)原理:
YOLOv3采用單個(gè)神經(jīng)網(wǎng)絡(luò)模型來(lái)完成目標(biāo)檢測(cè)任務(wù)。與傳統(tǒng)的目標(biāo)檢測(cè)方法不同,YOLOv3將目標(biāo)檢測(cè)問(wèn)題轉(zhuǎn)化為一個(gè)回歸問(wèn)題,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)輸出圖像中存在的目標(biāo)的邊界框坐標(biāo)和類別概率。
YOLOv3使用Darknet-53作為骨干網(wǎng)絡(luò),用來(lái)提取圖像特征。檢測(cè)頭(detection head)負(fù)責(zé)將提取的特征映射到目標(biāo)邊界框和類別預(yù)測(cè)。
亮點(diǎn):
YOLOv3在保持較高的檢測(cè)精度的同時(shí),能夠?qū)崿F(xiàn)非??斓臋z測(cè)速度。相較于一些基于候選區(qū)域的目標(biāo)檢測(cè)算法(如Faster R-CNN、SSD等),YOLOv3具有更高的實(shí)時(shí)性能。
YOLOv3對(duì)小目標(biāo)和密集目標(biāo)的檢測(cè)效果較好,同時(shí)在大目標(biāo)的檢測(cè)精度上也有不錯(cuò)的表現(xiàn)。
YOLOv3具有較好的通用性和適應(yīng)性,適用于各種目標(biāo)檢測(cè)任務(wù),包括車輛檢測(cè)、行人檢測(cè)等。
【YOLOv4】
YOLOv4是一種實(shí)時(shí)目標(biāo)檢測(cè)模型,它在速度和準(zhǔn)確度上都有顯著的提高。相比于其前一代模型YOLOv3,YOLOv4在保持較高的檢測(cè)精度的同時(shí),還提高了檢測(cè)速度。這主要得益于其采用的CSPDarknet53網(wǎng)絡(luò)結(jié)構(gòu),主要有三個(gè)方面的優(yōu)點(diǎn):增強(qiáng)CNN的學(xué)習(xí)能力,使得在輕量化的同時(shí)保持準(zhǔn)確性;降低計(jì)算瓶頸;降低內(nèi)存成本。YOLOv4的目標(biāo)檢測(cè)策略采用的是“分而治之”的策略,將一張圖片平均分成7×7個(gè)網(wǎng)格,每個(gè)網(wǎng)格分別負(fù)責(zé)預(yù)測(cè)中心點(diǎn)落在該網(wǎng)格內(nèi)的目標(biāo)。這種方法不需要額外再設(shè)計(jì)一個(gè)區(qū)域提議網(wǎng)絡(luò)(RPN),從而減少了訓(xùn)練的負(fù)擔(dān)。然而,盡管YOLOv4在許多方面都表現(xiàn)出色,但它仍然存在一些不足。例如,小目標(biāo)檢測(cè)效果較差。此外,當(dāng)需要在資源受限的設(shè)備上部署像YOLOv4這樣的大模型時(shí),模型壓縮是研究人員重新調(diào)整較大模型所需資源消耗的有用工具。
優(yōu)點(diǎn):
速度:YOLOv4 保持了 YOLO 算法一貫的實(shí)時(shí)性,能夠在檢測(cè)速度和精度之間實(shí)現(xiàn)良好的平衡。
精度:YOLOv4 采用了 CSPDarknet 和 PANet 兩種先進(jìn)的技術(shù),提高了檢測(cè)精度,特別是在檢測(cè)小型物體方面有顯著提升。
通用性:YOLOv4 適用于多種任務(wù),如行人檢測(cè)、車輛檢測(cè)、人臉檢測(cè)等,具有較高的通用性。
模塊化設(shè)計(jì):YOLOv4 中的組件可以方便地更換和擴(kuò)展,便于進(jìn)一步優(yōu)化和適應(yīng)不同場(chǎng)景。
缺點(diǎn):
內(nèi)存占用:YOLOv4 模型參數(shù)較多,因此需要較大的內(nèi)存來(lái)存儲(chǔ)和運(yùn)行模型,這對(duì)于部分硬件設(shè)備來(lái)說(shuō)可能是一個(gè)限制因素。
訓(xùn)練成本:YOLOv4 模型需要大量的訓(xùn)練數(shù)據(jù)和計(jì)算資源才能達(dá)到理想的性能,這可能導(dǎo)致訓(xùn)練成本較高。
精確度與速度的權(quán)衡:雖然 YOLOv4 在速度和精度之間取得了較好的平衡,但在極端情況下,例如檢測(cè)高速移動(dòng)的物體或復(fù)雜背景下的物體時(shí),性能可能會(huì)受到影響。
誤檢和漏檢:由于 YOLOv4 采用單一網(wǎng)絡(luò)對(duì)整個(gè)圖像進(jìn)行預(yù)測(cè),可能會(huì)導(dǎo)致一些誤檢和漏檢現(xiàn)象。
【YOLOv5】
YOLOv5是一種快速、準(zhǔn)確的目標(biāo)檢測(cè)模型,由Glen Darby于2020年提出。相較于前兩代模型,YOLOv5集成了眾多的tricks達(dá)到了性能的SOTA:
技術(shù)原理:
YOLOv5同樣采用單個(gè)神經(jīng)網(wǎng)絡(luò)模型來(lái)完成目標(biāo)檢測(cè)任務(wù),但采用了新的神經(jīng)網(wǎng)絡(luò)架構(gòu),融合了領(lǐng)先的輕量級(jí)模型設(shè)計(jì)理念。YOLOv5使用較小的骨干網(wǎng)絡(luò)和新的檢測(cè)頭設(shè)計(jì),以實(shí)現(xiàn)更快的推斷速度,并在不降低精度的前提下提高目標(biāo)檢測(cè)的準(zhǔn)確性。
亮點(diǎn):
YOLOv5在模型結(jié)構(gòu)上進(jìn)行了改進(jìn),引入了更先進(jìn)的輕量級(jí)網(wǎng)絡(luò)架構(gòu),因此在速度和精度上都有所提升。
YOLOv5支持更靈活的模型大小和預(yù)訓(xùn)練選項(xiàng),可以根據(jù)任務(wù)需求選擇不同大小的模型,同時(shí)提供豐富的數(shù)據(jù)增強(qiáng)擴(kuò)展、模型集成等方法來(lái)提高檢測(cè)精度。YOLOv5通過(guò)使用更簡(jiǎn)潔的代碼實(shí)現(xiàn),提高了模型的易用性和可擴(kuò)展性。
訓(xùn)練數(shù)據(jù)配置文件如下:
# Dataset
path: ./dataset
train:
- images/train
val:
- images/test
test:
- images/test
# Classes
names:
0: unripe
1: sem-ripe
2: fullyripe
實(shí)驗(yàn)截止目前,本文將YOLOv5系列五款不同參數(shù)量級(jí)的模型均進(jìn)行了開(kāi)發(fā)評(píng)測(cè),接下來(lái)看下模型詳情:
# Ultralytics YOLO ??, AGPL-3.0 license
# YOLOv5 object detection model with P3-P5 outputs. For details see https://docs.ultralytics.com/models/yolov5
# Parameters
nc: 3 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolov5n.yaml' will call yolov5.yaml with scale 'n'
# [depth, width, max_channels]
n: [0.33, 0.25, 1024]
s: [0.33, 0.50, 1024]
m: [0.67, 0.75, 1024]
l: [1.00, 1.00, 1024]
x: [1.33, 1.25, 1024]
# YOLOv5 v6.0 backbone
backbone:
# [from, number, module, args]
[[-1, 1, Conv, [64, 6, 2, 2]], # 0-P1/2
[-1, 1, Conv, [128, 3, 2]], # 1-P2/4
[-1, 3, C3, [128]],
[-1, 1, Conv, [256, 3, 2]], # 3-P3/8
[-1, 6, C3, [256]],
[-1, 1, Conv, [512, 3, 2]], # 5-P4/16
[-1, 9, C3, [512]],
[-1, 1, Conv, [1024, 3, 2]], # 7-P5/32
[-1, 3, C3, [1024]],
[-1, 1, SPPF, [1024, 5]], # 9
]
# YOLOv5 v6.0 head
head:
[[-1, 1, Conv, [512, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[[-1, 6], 1, Concat, [1]], # cat backbone P4
[-1, 3, C3, [512, False]], # 13
[-1, 1, Conv, [256, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[[-1, 4], 1, Concat, [1]], # cat backbone P3
[-1, 3, C3, [256, False]], # 17 (P3/8-small)
[-1, 1, Conv, [256, 3, 2]],
[[-1, 14], 1, Concat, [1]], # cat head P4
[-1, 3, C3, [512, False]], # 20 (P4/16-medium)
[-1, 1, Conv, [512, 3, 2]],
[[-1, 10], 1, Concat, [1]], # cat head P5
[-1, 3, C3, [1024, False]], # 23 (P5/32-large)
[[17, 20, 23], 1, Detect, [nc]], # Detect(P3, P4, P5)
]
在實(shí)驗(yàn)訓(xùn)練開(kāi)發(fā)階段,所有的模型均保持完全相同的參數(shù)設(shè)置,等待訓(xùn)練完成后,來(lái)整體進(jìn)行評(píng)測(cè)對(duì)比分析。
【F1值曲線】
F1值曲線是一種用于評(píng)估二分類模型在不同閾值下的性能的可視化工具。它通過(guò)繪制不同閾值下的精確率(Precision)、召回率(Recall)和F1分?jǐn)?shù)的關(guān)系圖來(lái)幫助我們理解模型的整體性能.F1分?jǐn)?shù)是精確率和召回率的調(diào)和平均值,它綜合考慮了兩者的性能指標(biāo)。F1值曲線可以幫助我們確定在不同精確率和召回率之間找到一個(gè)平衡點(diǎn),以選擇最佳的閾值。
【loss曲線】
【Precision曲線】
精確率曲線(Precision-Recall Curve)是一種用于評(píng)估二分類模型在不同閾值下的精確率性能的可視化工具。它通過(guò)繪制不同閾值下的精確率和召回率之間的關(guān)系圖來(lái)幫助我們了解模型在不同閾值下的表現(xiàn)。精確率(Precision)是指被正確預(yù)測(cè)為正例的樣本數(shù)占所有預(yù)測(cè)為正例的樣本數(shù)的比例。召回率(Recall)是指被正確預(yù)測(cè)為正例的樣本數(shù)占所有實(shí)際為正例的樣本數(shù)的比例。
【Recall曲線】
召回率曲線(Recall Curve)是一種用于評(píng)估二分類模型在不同閾值下的召回率性能的可視化工具。它通過(guò)繪制不同閾值下的召回率和對(duì)應(yīng)的精確率之間的關(guān)系圖來(lái)幫助我們了解模型在不同閾值下的表現(xiàn)。召回率(Recall)是指被正確預(yù)測(cè)為正例的樣本數(shù)占所有實(shí)際為正例的樣本數(shù)的比例。召回率也被稱為靈敏度(Sensitivity)或真正例率(True Positive Rate)。
從整體實(shí)驗(yàn)結(jié)果對(duì)比來(lái)看:n系列的模型效果最差,被其他幾款模型拉開(kāi)了明顯的差距,s系列的模型在60個(gè)epoch之前同樣被拉開(kāi)了明顯的差距,隨后達(dá)到了與其他幾款模型相近的水準(zhǔn),m和l系列的模型性能相近,x系列的模型最優(yōu),略高于m和l系列的模型,考慮到計(jì)算量的問(wèn)題,這里我們最終選擇使用m系列的模型來(lái)作為最終的推理模型。
接下來(lái)就以m系列的模型為基準(zhǔn),詳細(xì)看下結(jié)果詳情:
【Batch實(shí)例】
【數(shù)據(jù)分布可視化】
【PR曲線】
【訓(xùn)練可視化】
【混淆矩陣】
感興趣的話都可以自行動(dòng)手嘗試下!
如果自己不具備開(kāi)發(fā)訓(xùn)練的資源條件或者是沒(méi)有時(shí)間自己去訓(xùn)練的話這里我提供出來(lái)對(duì)應(yīng)的訓(xùn)練結(jié)果可供自行按需索取。
單個(gè)模型的訓(xùn)練結(jié)果默認(rèn)YOLOv5s文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-828489.html
全系列五個(gè)模型的訓(xùn)練結(jié)果總集文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-828489.html
到了這里,關(guān)于AI助力農(nóng)作物自動(dòng)采摘,基于YOLOv5全系列【n/s/m/l/x】參數(shù)模型開(kāi)發(fā)構(gòu)建作番茄采摘場(chǎng)景下番茄成熟度檢測(cè)識(shí)別計(jì)數(shù)分析系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!