轉(zhuǎn)載自:3D視覺工坊
編輯:AI深度學(xué)習(xí)視線
教程來自:https://github.com/PeterH0323/Smart/_Construction
一、YOLO v5訓(xùn)練自己數(shù)據(jù)集教程
1.1 創(chuàng)建自己的數(shù)據(jù)集配置文件
1.2 創(chuàng)建每個(gè)圖片對(duì)應(yīng)的標(biāo)簽文件
1.3 文件放置規(guī)范
1.4 聚類得出先驗(yàn)框(可選)
1.5 選擇一個(gè)你需要的模型
1.6 開始訓(xùn)練
1.7 看訓(xùn)練之后的結(jié)果
二、偵測(cè)
三、檢測(cè)危險(xiǎn)區(qū)域內(nèi)是否有人
3.1 危險(xiǎn)區(qū)域標(biāo)注方式
3.2 執(zhí)行偵測(cè)
3.3 效果:在危險(xiǎn)區(qū)域里面的人體會(huì)被 紅色框 選出來
四、生成 ONNX
五、增加數(shù)據(jù)集的分類
該項(xiàng)目是使用 YOLOv5 v2.x 來訓(xùn)練在智能工地安全領(lǐng)域中頭盔目標(biāo)檢測(cè)的應(yīng)用,先來一波演示!
指標(biāo)
yolov5s 為基礎(chǔ)訓(xùn)練,epoch = 50
對(duì)應(yīng)的權(quán)重文件:https://pan.baidu.com/share/i.../_5A,提取碼: b981
yolov5m 為基礎(chǔ)訓(xùn)練,epoch = 100
對(duì)應(yīng)的權(quán)重文件:https://pan.baidu.com/share/i.../_vHnPHwEA,提取碼: psst
yolov5l 為基礎(chǔ)訓(xùn)練,epoch = 100
對(duì)應(yīng)的權(quán)重文件:https://pan.baidu.com/share/i...,提取碼: a66e
1
YOLOv5訓(xùn)練自己數(shù)據(jù)集教程
使用的數(shù)據(jù)集:Safety-Helmet-Wearing-Dataset ,感謝這位大神的開源數(shù)據(jù)集!
https://github.com/njvisionpo...
本文結(jié)合 YOLOv5官方教程 來寫
環(huán)境準(zhǔn)備
首先確保自己的環(huán)境:
Python >= 3.7
訓(xùn)練自己的數(shù)據(jù)
提示:
關(guān)于增加數(shù)據(jù)集分類的方法,請(qǐng)看【5. 增加數(shù)據(jù)集的分類】
1.1 創(chuàng)建自己的數(shù)據(jù)集配置文件
因?yàn)槲疫@里只是判斷 【人沒有帶安全帽】、【人有帶安全帽】、【人體】 3個(gè)類別 ,基于 data/coco128.yaml 文件,創(chuàng)建自己的數(shù)據(jù)集配置文件 custom_data.yaml
# 訓(xùn)練集和驗(yàn)證集的 labels 和 image 文件的位置
1.2 創(chuàng)建每個(gè)圖片對(duì)應(yīng)的標(biāo)簽文件
使用標(biāo)注工具類似于 Labelbox 、CVAT 、精靈標(biāo)注助手 標(biāo)注之后,需要生成每個(gè)圖片對(duì)應(yīng)的 .txt 文件,其規(guī)范如下:
每一行都是一個(gè)目標(biāo)
類別序號(hào)是零索引開始的(從0開始)
每一行的坐標(biāo) class x_center y_center width height 格式
框坐標(biāo)必須采用歸一化的 xywh格式(從0到1)。如果您的框以像素為單位,則將x_center和width除以圖像寬度,將y_center和height除以圖像高度。代碼如下:
import numpy as np
生成的 .txt 文件放置的名字是圖片的名字,放置在 label 文件夾中,例如:
./score/images/train/00001.jpg # image
生成的.txt例子
1 0.1830000086920336 0.1396396430209279 0.13400000636465847 0.15915916301310062
1.3文件放置規(guī)范
文件樹如下
1.4 聚類得出先驗(yàn)框(Yolov5 內(nèi)部已做適配,可選)
使用代碼 ./data/gen_anchors/clauculate_anchors.py ,修改數(shù)據(jù)集的路徑
FILE_ROOT = r"xxx" # 根路徑
跑完會(huì)生成一個(gè)文件 anchors.txt,里面有得出的建議先驗(yàn)框:
Best Accuracy = 79.72%
1.5 選擇一個(gè)您需要的模型
在文件夾 ./models 下選擇一個(gè)你需要的模型然后復(fù)制一份出來,將文件開頭的 nc = 修改為數(shù)據(jù)集的分類數(shù),下面是借鑒 ./models/yolov5s.yaml來修改的
# parameters
1.6 開始訓(xùn)練
這里選擇了 yolov5s 模型進(jìn)行訓(xùn)練,權(quán)重也是基于 yolov5s.pt 來訓(xùn)練
pythontrain.py--img640--batch16--epochs10--data./data/custom_data.yaml--cfg./models/custom_yolov5.yaml--weights./weights/yolov5s.pt
其中,yolov5s.pt 需要自行下載放在本工程的根目錄即可,下載地址 官方權(quán)重
1.7 看訓(xùn)練之后的結(jié)果
訓(xùn)練之后,權(quán)重會(huì)保存在 ./runs 文件夾里面的每個(gè) exp 文件里面的 weights/best.py ,里面還可以看到訓(xùn)練的效果
2
推斷
偵測(cè)圖片會(huì)保存在 ./inferenct/output/ 文件夾下
運(yùn)行命令:
python detect.py --source 0 # webcam
例如使用我的 s 權(quán)重檢測(cè)圖片,可以運(yùn)行以下命令,偵測(cè)圖片會(huì)保存在 ./inferenct/output/ 文件夾下
python detect.py --source 圖片路徑 --weights ./weights/helmet_head_person_s.pt
3
檢測(cè)危險(xiǎn)區(qū)域內(nèi)是否有人
3.1 危險(xiǎn)區(qū)域標(biāo)注方式
我這里使用的是 精靈標(biāo)注助手 標(biāo)注,生成了對(duì)應(yīng)圖片的 json 文件
3.2 執(zhí)行偵測(cè)
偵測(cè)圖片會(huì)保存在 ./inferenct/output/ 文件夾下
運(yùn)行命令:
python area_detect.py --source ./area_dangerous --weights ./weights/helmet_head_person_s.pt
3.3 效果:在危險(xiǎn)區(qū)域里面的人體會(huì)被 紅色框 選出來
生成 ONNX
4.1 安裝 onnx 庫(kù)
pip install onnx
4.2 執(zhí)行生成
python ./models/export.py --weights ./weights/helmet_head_person_s.pt --img 640 --batch 1
onnx 和 torchscript 文件會(huì)生成在 ./weights 文件夾中
增加數(shù)據(jù)集的分類
關(guān)于增加數(shù)據(jù)集分類的方法:
SHWD 數(shù)據(jù)集里面沒有 person 的類別,先將現(xiàn)有的自己的數(shù)據(jù)集執(zhí)行腳本生成yolov5需要的標(biāo)簽文件.txt,之后再用yolov5x.pt 加上 yolov5x.yaml ,使用指令檢測(cè)出人體
python detect.py --save-txt --source ./自己數(shù)據(jù)集的文件目錄 --weights ./weights/yolov5x.pt
yolov5
修改 ./data/gen_data/merge_data.py 中的自己數(shù)據(jù)集標(biāo)簽所在的路徑,執(zhí)行這個(gè)python腳本,會(huì)進(jìn)行 person 類型的合并
本文僅做學(xué)術(shù)分享,如有侵權(quán),請(qǐng)聯(lián)系刪文。
審核編輯 黃昊宇
-
檢測(cè)
+關(guān)注
關(guān)注
5文章
4861瀏覽量
94160 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5599瀏覽量
124401
發(fā)布評(píng)論請(qǐng)先 登錄
基于RK3576開發(fā)板的安全帽檢測(cè)算法
MAT400安全帽標(biāo)簽的相關(guān)資料下載
ZLG安全帽佩戴檢測(cè)方案的解讀
無人機(jī)在建筑工地的應(yīng)用
基于YOLOv3的施工安全帽圖像檢測(cè)算法
新移可視定位安全帽—4G/5G智能安全帽
4G工作記錄儀在建筑工地中的應(yīng)用優(yōu)勢(shì)
瑞尼4G智能安全帽工地施工安全管理解決方案
安全帽佩戴檢測(cè)算法
安全帽佩戴識(shí)別攝像機(jī)
安全帽未佩戴預(yù)警系統(tǒng) 勞保防護(hù)用品穿戴監(jiān)測(cè)系統(tǒng)
基于RV1126開發(fā)板的安全帽檢測(cè)算法開發(fā)
RTK+藍(lán)牙融合定位系統(tǒng)在建筑工地中的優(yōu)勢(shì)
安全帽人員定位系統(tǒng)在建筑工地的應(yīng)用及優(yōu)勢(shì)
保姆教程:YOLOv5在建筑工地中安全帽佩戴檢測(cè)的應(yīng)用
評(píng)論