在很多工業(yè)園區(qū)生產(chǎn)作業(yè)場(chǎng)景下保障合規(guī)合法進(jìn)行作業(yè)生產(chǎn)操作,對(duì)于保護(hù)工人生命安全降低安全隱患有著非常重要的作用,但是往往在實(shí)際的作業(yè)生產(chǎn)中,因?yàn)橐粋€(gè)安全觀念的淡薄或者是粗心大意,對(duì)于紀(jì)律約束等意思薄弱,導(dǎo)致在進(jìn)行正常的作業(yè)生產(chǎn)中并沒(méi)有按照安全規(guī)范要求去進(jìn)行操作,比如:工地內(nèi)沒(méi)有佩戴或者是沒(méi)有正確佩戴安全帽就進(jìn)行施工生產(chǎn),電力設(shè)備園區(qū)場(chǎng)景下未穿戴絕緣手套或者是反光標(biāo)識(shí)就進(jìn)行作業(yè)施工,等等,對(duì)于這類(lèi)問(wèn)題的早發(fā)現(xiàn)早預(yù)警能夠在源頭端極大程度降低此類(lèi)問(wèn)題可能帶來(lái)的安全隱患,本文正是在這樣的背景基礎(chǔ)上設(shè)想從技術(shù)的角度來(lái)開(kāi)發(fā)構(gòu)建工業(yè)園區(qū)場(chǎng)景下作業(yè)人員違規(guī)行為檢測(cè)識(shí)別系統(tǒng),助力建設(shè)智慧安全園區(qū)。
首先看下實(shí)例效果:
在前文我們已經(jīng)進(jìn)行了相關(guān)的實(shí)踐,感興趣的話(huà)可以自行移步閱讀即可:
《助力工業(yè)園區(qū)作業(yè)違規(guī)行為檢測(cè)預(yù)警,基于YOLOv8【n/s/m/l/x】全系列參數(shù)模型開(kāi)發(fā)構(gòu)建工業(yè)園區(qū)場(chǎng)景下作業(yè)人員違規(guī)行為檢測(cè)識(shí)別系統(tǒng)》
《助力工業(yè)園區(qū)作業(yè)違規(guī)行為檢測(cè)預(yù)警,基于YOLOv7【tiny/l/x】不同系列參數(shù)模型開(kāi)發(fā)構(gòu)建工業(yè)園區(qū)場(chǎng)景下作業(yè)人員違規(guī)行為檢測(cè)識(shí)別系統(tǒng)》
本文是選擇的比較經(jīng)典的也是比較古老的YOLOv3來(lái)進(jìn)行模型的開(kāi)發(fā),YOLOv3(You Only Look Once v3)是一種目標(biāo)檢測(cè)算法模型,它是YOLO系列算法的第三個(gè)版本。該算法通過(guò)將目標(biāo)檢測(cè)任務(wù)轉(zhuǎn)化為單個(gè)神經(jīng)網(wǎng)絡(luò)的回歸問(wèn)題,實(shí)現(xiàn)了實(shí)時(shí)目標(biāo)檢測(cè)的能力。
YOLOv3的主要優(yōu)點(diǎn)如下:
實(shí)時(shí)性能:YOLOv3采用了一種單階段的檢測(cè)方法,將目標(biāo)檢測(cè)任務(wù)轉(zhuǎn)化為一個(gè)端到端的回歸問(wèn)題,因此具有較快的檢測(cè)速度。相比于傳統(tǒng)的兩階段方法(如Faster R-CNN),YOLOv3能夠在保持較高準(zhǔn)確率的情況下實(shí)現(xiàn)實(shí)時(shí)檢測(cè)。
多尺度特征融合:YOLOv3引入了多尺度特征融合的機(jī)制,通過(guò)在不同層級(jí)的特征圖上進(jìn)行檢測(cè),能夠有效地檢測(cè)不同尺度的目標(biāo)。這使得YOLOv3在處理尺度變化較大的場(chǎng)景時(shí)表現(xiàn)出較好的性能。
全局上下文信息:YOLOv3在網(wǎng)絡(luò)結(jié)構(gòu)中引入了全局上下文信息,通過(guò)使用較大感受野的卷積核,能夠更好地理解整張圖像的語(yǔ)義信息,提高了模型對(duì)目標(biāo)的識(shí)別能力。
簡(jiǎn)潔的網(wǎng)絡(luò)結(jié)構(gòu):YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)相對(duì)簡(jiǎn)潔,只有75個(gè)卷積層和5個(gè)池化層,使得模型較易于訓(xùn)練和部署,并且具有較小的模型體積。
YOLOv3也存在一些缺點(diǎn):
較低的小目標(biāo)檢測(cè)能力:由于YOLOv3采用了較大的感受野和下采樣操作,對(duì)于小目標(biāo)的檢測(cè)能力相對(duì)較弱。當(dāng)場(chǎng)景中存在大量小目標(biāo)時(shí),YOLOv3可能會(huì)出現(xiàn)漏檢或誤檢的情況。
較高的定位誤差:由于YOLOv3將目標(biāo)檢測(cè)任務(wù)轉(zhuǎn)化為回歸問(wèn)題,較粗糙的特征圖和較大的感受野可能導(dǎo)致較高的定位誤差。這意味著YOLOv3在需要較高精度的目標(biāo)定位時(shí)可能會(huì)受到一定的限制。
YOLOv3是YOLO系列里程碑性質(zhì)的模型,隨著不斷地演變和發(fā)展,目前雖然已經(jīng)在性能上難以與YOLOv5之類(lèi)的模型對(duì)比但是不可否認(rèn)其做出的突出貢獻(xiàn)。
接下來(lái)簡(jiǎn)單看下數(shù)據(jù)集情況:
本文選擇的是yolov3-tiny模型,訓(xùn)練數(shù)據(jù)配置文件如下:
# path
train: ./dataset/images/train/
val: ./dataset/images/test/
# number of classes
nc: 3
# class names
names: ['nosafehat', 'nowear', 'smoke']
模型配置文件如下:
# parameters
nc: 3 # number of classes
depth_multiple: 1.0 # model depth multiple
width_multiple: 1.0 # layer channel multiple
# anchors
anchors:
- [10,14, 23,27, 37,58] # P4/16
- [81,82, 135,169, 344,319] # P5/32
# YOLOv3-tiny backbone
backbone:
# [from, number, module, args]
[[-1, 1, Conv, [16, 3, 1]], # 0
[-1, 1, nn.MaxPool2d, [2, 2, 0]], # 1-P1/2
[-1, 1, Conv, [32, 3, 1]],
[-1, 1, nn.MaxPool2d, [2, 2, 0]], # 3-P2/4
[-1, 1, Conv, [64, 3, 1]],
[-1, 1, nn.MaxPool2d, [2, 2, 0]], # 5-P3/8
[-1, 1, Conv, [128, 3, 1]],
[-1, 1, nn.MaxPool2d, [2, 2, 0]], # 7-P4/16
[-1, 1, Conv, [256, 3, 1]],
[-1, 1, nn.MaxPool2d, [2, 2, 0]], # 9-P5/32
[-1, 1, Conv, [512, 3, 1]],
[-1, 1, nn.ZeroPad2d, [0, 1, 0, 1]], # 11
[-1, 1, nn.MaxPool2d, [2, 1, 0]], # 12
]
# YOLOv3-tiny head
head:
[[-1, 1, Conv, [1024, 3, 1]],
[-1, 1, Conv, [256, 1, 1]],
[-1, 1, Conv, [512, 3, 1]], # 15 (P5/32-large)
[-2, 1, Conv, [128, 1, 1]],
[-1, 1, nn.Upsample, [None, 2, 'nearest']],
[[-1, 8], 1, Concat, [1]], # cat backbone P4
[-1, 1, Conv, [256, 3, 1]], # 19 (P4/16-medium)
[[19, 15], 1, Detect, [nc, anchors]], # Detect(P4, P5)
]
主要包括:未戴安全帽、未穿工服和違規(guī)抽煙三個(gè)類(lèi)別的目標(biāo)。
默認(rèn)100次epoch的迭代計(jì)算,終端日志輸出如下所示:
等待訓(xùn)練完成后來(lái)整體看下結(jié)果詳情:
【數(shù)據(jù)分布可視化】
【PR曲線(xiàn)】
精確率-召回率曲線(xiàn)(Precision-Recall Curve)是一種用于評(píng)估二分類(lèi)模型性能的可視化工具。它通過(guò)繪制不同閾值下的精確率(Precision)和召回率(Recall)之間的關(guān)系圖來(lái)幫助我們了解模型在不同閾值下的表現(xiàn)。
精確率是指被正確預(yù)測(cè)為正例的樣本數(shù)占所有預(yù)測(cè)為正例的樣本數(shù)的比例。召回率是指被正確預(yù)測(cè)為正例的樣本數(shù)占所有實(shí)際為正例的樣本數(shù)的比例。
繪制精確率-召回率曲線(xiàn)的步驟如下:
使用不同的閾值將預(yù)測(cè)概率轉(zhuǎn)換為二進(jìn)制類(lèi)別標(biāo)簽。通常,當(dāng)預(yù)測(cè)概率大于閾值時(shí),樣本被分類(lèi)為正例,否則分類(lèi)為負(fù)例。
對(duì)于每個(gè)閾值,計(jì)算相應(yīng)的精確率和召回率。
將每個(gè)閾值下的精確率和召回率繪制在同一個(gè)圖表上,形成精確率-召回率曲線(xiàn)。
根據(jù)曲線(xiàn)的形狀和變化趨勢(shì),可以選擇適當(dāng)?shù)拈撝狄赃_(dá)到所需的性能要求。
精確率-召回率曲線(xiàn)提供了更全面的模型性能分析,特別適用于處理不平衡數(shù)據(jù)集和關(guān)注正例預(yù)測(cè)的場(chǎng)景。曲線(xiàn)下面積(Area Under the Curve, AUC)可以作為評(píng)估模型性能的指標(biāo),AUC值越高表示模型的性能越好。
通過(guò)觀察精確率-召回率曲線(xiàn),我們可以根據(jù)需求選擇合適的閾值來(lái)權(quán)衡精確率和召回率之間的平衡點(diǎn)。根據(jù)具體的業(yè)務(wù)需求和成本權(quán)衡,可以在曲線(xiàn)上選擇合適的操作點(diǎn)或閾值。
【訓(xùn)練可視化】
【Batch實(shí)例】
感興趣的話(huà)也都可以自行動(dòng)手嘗試下!
如果自己不具備開(kāi)發(fā)訓(xùn)練的資源條件或者是沒(méi)有時(shí)間自己去訓(xùn)練的話(huà)這里我提供出來(lái)對(duì)應(yīng)的訓(xùn)練結(jié)果可供自行按需索取。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-807464.html
單個(gè)模型的訓(xùn)練結(jié)果默認(rèn)YOLOv3-tiny文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-807464.html
到了這里,關(guān)于助力工業(yè)園區(qū)作業(yè)違規(guī)行為檢測(cè)預(yù)警,基于YOLOv3開(kāi)發(fā)構(gòu)建工業(yè)園區(qū)場(chǎng)景下作業(yè)人員違規(guī)行為檢測(cè)識(shí)別系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!