口罩?jǐn)?shù)據(jù)集:GitHub - X-zhangyang/Real-World-Masked-Face-Dataset: Real-World Masked Face Dataset,口罩人臉數(shù)據(jù)集
yolov5 源碼:GitHub - ultralytics/yolov5: YOLOv5 ?? in PyTorch > ONNX > CoreML > TFLite
一.深度學(xué)習(xí)目標(biāo)檢測算法分類
1.?基于區(qū)域提取的兩階段目標(biāo)檢測
1.1 SPP-Net
1.2 R-CNN
?1.3 FAST R-CNN
?1.4 FASTER-CNN
2.?基于回歸的單階段為目標(biāo)檢測
2.1?YOLO系列(YOLO,YOLOv1,2,3,4,5,7)
2.2?OverFeat
二.YOLO系列目標(biāo)檢測算法介紹
- YOLOv1:YOLOv1是利用整張圖作為網(wǎng)絡(luò)的輸入,直接在輸出層回歸bounding box的位置和bounding box所屬的類別。
- YOLOv2:YOLOv2相較v1版本,預(yù)測更準(zhǔn)確,速度更快,識(shí)別對象更多這三個(gè)方面進(jìn)行了改進(jìn)
- YOLOv3:YOLOv3的Bounding Box由YOLOv2又做出了更好的改進(jìn)
- YOLOv4:YOLOv4結(jié)合了大量前人研究技術(shù),加以組合并進(jìn)行適當(dāng)創(chuàng)新的算法,實(shí)現(xiàn)了速度和精度的完美平衡。?
- YOLOv5:YOLOv5在YOLOv4算法的基礎(chǔ)上做了進(jìn)一步的改進(jìn),檢測性能得到進(jìn)一步的提升。在COCO數(shù)據(jù)集上面的測試效果較好。
三 .Yolov5介紹
?3.1?YOLOv5網(wǎng)絡(luò)模型主要包括:Yolov5s、Yolov5m、Yolov5l、Yolov5x
?3.2?Yolov5s網(wǎng)絡(luò)為Yolov5系列中深度最小,特征圖的寬度最小的網(wǎng)絡(luò)。而后面的3種則是在此基礎(chǔ)上不斷加深,不斷加寬,速度的消耗也在不斷增加
3.3 YOLOv5主要部分
?四、基于yolov5的人臉口罩識(shí)別檢測
4.1?受新型冠狀病毒的影響,人臉口罩佩戴檢測成為了當(dāng)前急需的應(yīng)用,而YOLOv5作為目前檢測能力較強(qiáng)的目標(biāo)檢測技術(shù),因此,結(jié)合本次專業(yè)認(rèn)識(shí)實(shí)習(xí)以及所學(xué)知識(shí),我使用了YOLOv5來實(shí)現(xiàn)人臉口罩佩戴的檢測。實(shí)踐的內(nèi)容包括:運(yùn)用網(wǎng)絡(luò)爬蟲爬取一定量的數(shù)據(jù)集,運(yùn)用MakeSense對數(shù)據(jù)集進(jìn)行打標(biāo)簽,然后在云服務(wù)器上利用YOLOv5網(wǎng)絡(luò)模型訓(xùn)練數(shù)據(jù)集得到最佳模型,最后利用其實(shí)現(xiàn)人臉口罩佩戴的一定精度的檢測。
4.2 實(shí)現(xiàn)過程:
4.2.1:獲取并準(zhǔn)備數(shù)據(jù)集(此數(shù)據(jù)集較小,需要大數(shù)據(jù)集的可參考我上傳的資源或者開源數(shù)據(jù)集)
Part2:包括100張(不佩戴口罩)
Part3:包括100張(佩戴口罩)
4.2.2:利用MakeSense進(jìn)行逐個(gè)打標(biāo)簽 (也可以使用labelme進(jìn)行打標(biāo)簽)
MaskSense上手快,使用較為容易
鏈接:?Make Sense
?
?
4.2.3. 為后期的訓(xùn)練
需要將數(shù)據(jù)集mydata首先劃分為兩個(gè)部分(一個(gè)存放圖片,一個(gè)存放標(biāo)簽)
1.image, 2.labels
并劃分為訓(xùn)練集,測試集與驗(yàn)證集
1.test, 2.train, 3train_2
?
4.2.4 文件目錄介紹
data:主要是存放一些超參數(shù)的配置文件,是用來配置訓(xùn)練集和測試集還有驗(yàn)證集的路徑,其中還包括目標(biāo)檢測的種類數(shù)和種類的名稱;還有官方提供測試的圖片。訓(xùn)練自己的數(shù)據(jù)集需要修改其中的yaml文件
models:里面主要是一些網(wǎng)絡(luò)構(gòu)建的配置文件和函數(shù),其中包含了該項(xiàng)目的四個(gè)不同的版本,分別為是s、m、l、x
utils:存放的是工具類的函數(shù),里面有l(wèi)oss函數(shù),metrics函數(shù),plots函數(shù)等等
weights:放置訓(xùn)練好的權(quán)重參數(shù)
detect.py:利用訓(xùn)練好的權(quán)重參數(shù)進(jìn)行目標(biāo)檢測,可以進(jìn)行圖像、視頻和攝像頭的檢測
train.py:訓(xùn)練自己的數(shù)據(jù)集的函數(shù)
test.py:測試訓(xùn)練的結(jié)果的函數(shù)
4.2.5 yaml文件配置
在開始訓(xùn)練前還需要對項(xiàng)目里的相關(guān)文件進(jìn)行修改,一個(gè)是數(shù)據(jù)配置文件,另一個(gè)是模型配置文件。首先是數(shù)據(jù)配置文件,在data下找到coco.yaml,將其復(fù)制一份再重命名為mydata.yaml,修改路徑以及類的個(gè)數(shù)與標(biāo)簽名稱
4.2.6 train.py文件中的路徑以及參數(shù)
修改模型的配置文件,train.py中默認(rèn)使用的yolov5s.pt這個(gè)權(quán)重,可以修改為yolov5m等,或自己訓(xùn)練出來的best.pt
修改
4.2.7 開始訓(xùn)練
?
4.2.7 訓(xùn)練300輪 一共用時(shí)3.1h
訓(xùn)練結(jié)果分析
訓(xùn)練結(jié)束后,會(huì)產(chǎn)生一個(gè)runs/exp的文件夾
?1.Weights下將會(huì)產(chǎn)生兩個(gè)權(quán)重文件 分別是best.pt以及l(fā)ast.pt(代表最好的模型和最后的模型)
val.py文件可以對best.pt進(jìn)行單獨(dú)驗(yàn)證,需要給出數(shù)據(jù)集的配置文件和權(quán)重文件的配置文件
2.F1_curve.png F1是衡量指標(biāo),可以看到all class1.0 at 0.629,即所有類別的判斷精度大約是在1.0左右
- result.png
文章來源:http://www.zghlxwxcb.cn/news/detail-476551.html
可視化了數(shù)值的結(jié)果,可以大體看出誤差在不斷下降,準(zhǔn)確在不斷提高文章來源地址http://www.zghlxwxcb.cn/news/detail-476551.html
到了這里,關(guān)于基于Yolov5的目標(biāo)檢測(以口罩檢測為例)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!