在很多工業(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ì)于這類問(wèn)題的早發(fā)現(xiàn)早預(yù)警能夠在源頭端極大程度降低此類問(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í)踐,感興趣的話可以自行移步閱讀即可:
《助力工業(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)》
YOLOv7是 YOLO 系列最新推出的YOLO 結(jié)構(gòu),在 5 幀/秒到 160 幀/秒范圍內(nèi),其速度和精度都超過(guò)了大部分已知的目標(biāo)檢測(cè)器,在 GPU V100 已知的 30 幀/秒以上的實(shí)時(shí)目標(biāo)檢測(cè)器中,YOLOv7 的準(zhǔn)確率最高。根據(jù)代碼運(yùn)行環(huán)境的不同(邊緣 GPU、普通 GPU 和云 GPU),YOLOv7 設(shè)置了三種基本模型,分別稱為 YOLOv7-tiny、YOLOv7和 YOLOv7-W6。相比于 YOLO 系列其他網(wǎng)絡(luò) 模 型 ,YOLOv7 的 檢 測(cè) 思 路 與YOLOv4、YOLOv5相似,YOLOv7 網(wǎng)絡(luò)主要包含了 Input(輸入)、Backbone(骨干網(wǎng)絡(luò))、Neck(頸部)、Head(頭部)這四個(gè)部分。首先,圖片經(jīng)過(guò)輸入部分?jǐn)?shù)據(jù)增強(qiáng)等一系列操作進(jìn)行預(yù)處理后,被送入主干網(wǎng),主干網(wǎng)部分對(duì)處理后的圖片提取特征;隨后,提取到的特征經(jīng)過(guò) Neck 模塊特征融合處理得到大、中、小三種尺寸的特征;最終,融合后的特征被送入檢測(cè)頭,經(jīng)過(guò)檢測(cè)之后輸出得到結(jié)果。
YOLOv7 網(wǎng)絡(luò)模型的主干網(wǎng)部分主要由卷積、E-ELAN 模塊、MPConv 模塊以及SPPCSPC 模塊構(gòu)建而成 。在 Neck 模塊,YOLOv7 與 YOLOv5 網(wǎng)絡(luò)相同,也采用了傳統(tǒng)的 PAFPN 結(jié)構(gòu)。FPN是YoloV7的加強(qiáng)特征提取網(wǎng)絡(luò),在主干部分獲得的三個(gè)有效特征層會(huì)在這一部分進(jìn)行特征融合,特征融合的目的是結(jié)合不同尺度的特征信息。在FPN部分,已經(jīng)獲得的有效特征層被用于繼續(xù)提取特征。在YoloV7里依然使用到了Panet的結(jié)構(gòu),我們不僅會(huì)對(duì)特征進(jìn)行上采樣實(shí)現(xiàn)特征融合,還會(huì)對(duì)特征再次進(jìn)行下采樣實(shí)現(xiàn)特征融合。Head檢測(cè)頭部分,YOLOv7 選用了表示大、中、小三種目標(biāo)尺寸的 IDetect 檢測(cè)頭,RepConv模塊在訓(xùn)練和推理時(shí)結(jié)構(gòu)具有一定的區(qū)別。
接下來(lái)簡(jiǎn)單看下數(shù)據(jù)集情況:
這里主要是選擇了yolov7-tiny、yolov7和yolov7x這三款不同參數(shù)量級(jí)的模型來(lái)進(jìn)行開(kāi)發(fā)訓(xùn)練,訓(xùn)練數(shù)據(jù)配置文件如下:
# txt path
train: ./dataset/images/train
val: ./dataset/images/test
test: ./dataset/images/test
# number of classes
nc: 3
# class names
names: ['nosafehat', 'nowear', 'smoke']
這里我們構(gòu)建的數(shù)據(jù)集中共包含三種違規(guī)行為,分別是:未戴安全帽、未穿工服和違規(guī)抽煙。
在實(shí)驗(yàn)階段保持完全相同的參數(shù)設(shè)置,等待全部訓(xùn)練完成之后來(lái)從多個(gè)指標(biāo)的維度來(lái)進(jìn)行綜合的對(duì)比分析。
【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ù)的比例。
繪制精確率曲線的步驟如下:
使用不同的閾值將預(yù)測(cè)概率轉(zhuǎn)換為二進(jìn)制類別標(biāo)簽。通常,當(dāng)預(yù)測(cè)概率大于閾值時(shí),樣本被分類為正例,否則分類為負(fù)例。
對(duì)于每個(gè)閾值,計(jì)算相應(yīng)的精確率和召回率。
將每個(gè)閾值下的精確率和召回率繪制在同一個(gè)圖表上,形成精確率曲線。
根據(jù)精確率曲線的形狀和變化趨勢(shì),可以選擇適當(dāng)?shù)拈撝狄赃_(dá)到所需的性能要求。
通過(guò)觀察精確率曲線,我們可以根據(jù)需求確定最佳的閾值,以平衡精確率和召回率。較高的精確率意味著較少的誤報(bào),而較高的召回率則表示較少的漏報(bào)。根據(jù)具體的業(yè)務(wù)需求和成本權(quán)衡,可以在曲線上選擇合適的操作點(diǎn)或閾值。
精確率曲線通常與召回率曲線(Recall Curve)一起使用,以提供更全面的分類器性能分析,并幫助評(píng)估和比較不同模型的性能。
【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)。
繪制召回率曲線的步驟如下:
使用不同的閾值將預(yù)測(cè)概率轉(zhuǎn)換為二進(jìn)制類別標(biāo)簽。通常,當(dāng)預(yù)測(cè)概率大于閾值時(shí),樣本被分類為正例,否則分類為負(fù)例。
對(duì)于每個(gè)閾值,計(jì)算相應(yīng)的召回率和對(duì)應(yīng)的精確率。
將每個(gè)閾值下的召回率和精確率繪制在同一個(gè)圖表上,形成召回率曲線。
根據(jù)召回率曲線的形狀和變化趨勢(shì),可以選擇適當(dāng)?shù)拈撝狄赃_(dá)到所需的性能要求。
通過(guò)觀察召回率曲線,我們可以根據(jù)需求確定最佳的閾值,以平衡召回率和精確率。較高的召回率表示較少的漏報(bào),而較高的精確率意味著較少的誤報(bào)。根據(jù)具體的業(yè)務(wù)需求和成本權(quán)衡,可以在曲線上選擇合適的操作點(diǎn)或閾值。
召回率曲線通常與精確率曲線(Precision Curve)一起使用,以提供更全面的分類器性能分析,并幫助評(píng)估和比較不同模型的性能。
【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),以選擇最佳的閾值。
繪制F1值曲線的步驟如下:
使用不同的閾值將預(yù)測(cè)概率轉(zhuǎn)換為二進(jìn)制類別標(biāo)簽。通常,當(dāng)預(yù)測(cè)概率大于閾值時(shí),樣本被分類為正例,否則分類為負(fù)例。
對(duì)于每個(gè)閾值,計(jì)算相應(yīng)的精確率、召回率和F1分?jǐn)?shù)。
將每個(gè)閾值下的精確率、召回率和F1分?jǐn)?shù)繪制在同一個(gè)圖表上,形成F1值曲線。
根據(jù)F1值曲線的形狀和變化趨勢(shì),可以選擇適當(dāng)?shù)拈撝狄赃_(dá)到所需的性能要求。
F1值曲線通常與接收者操作特征曲線(ROC曲線)一起使用,以幫助評(píng)估和比較不同模型的性能。它們提供了更全面的分類器性能分析,可以根據(jù)具體應(yīng)用場(chǎng)景來(lái)選擇合適的模型和閾值設(shè)置。
【loss曲線】
對(duì)比來(lái)看:tiny輕量級(jí)的模型并沒(méi)有被yolov7l和yolov7x拉開(kāi)明顯的差距,而l和x兩款模型也沒(méi)有呈現(xiàn)明顯的差距,保持相近的結(jié)果水平,綜合考慮這里我們線上yolov7系列最終選定的是l系列的模型。
接下來(lái)以l系列模型為基準(zhǔn),看下詳細(xì)的結(jié)果信息:
【混淆矩陣】
【Batch實(shí)例】
【訓(xùn)練可視化】
【PR曲線】
感興趣的話都可以自行動(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)YOLOv7-tiny文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-789653.html
全系列三個(gè)模型的訓(xùn)練結(jié)果總集文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-789653.html
到了這里,關(guān)于助力工業(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)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!