摘 要:針對(duì)嬰兒不正確睡眠姿勢(shì)對(duì)嬰兒身體健康的危害,提出了基于YOLOv5的睡姿識(shí)別方法。利用YOLOv5的Mosaic數(shù)據(jù)增強(qiáng)和自適應(yīng)圖片縮放技術(shù)處理圖片的局部和全局信息,使模型擁有更好的泛化能力。在卷積模塊中引入CSP結(jié)構(gòu),解決推理過(guò)程中計(jì)算量大的問(wèn)題,提升檢測(cè)模型的準(zhǔn)確度,并使用坐標(biāo)損失、目標(biāo)置信度損失和分類(lèi)損失來(lái)更新梯度損失,進(jìn)一步提高識(shí)別精度。實(shí)驗(yàn)結(jié)果表明,該模型可高效檢測(cè)、識(shí)別多種嬰兒睡姿,精度高達(dá)99%,具有較為廣闊的應(yīng)用前景。
關(guān)鍵詞:YOLOv5;圖像識(shí)別;嬰兒睡姿;智能看護(hù);Mosaic數(shù)據(jù)增強(qiáng);深度學(xué)習(xí)
中圖分類(lèi)號(hào):TP242 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2025)02-00-05
0 引 言
近年來(lái),嬰兒看護(hù)越來(lái)越引起每個(gè)父母的高度重視,嬰兒在初期階段,由于其行為意識(shí)未充分形成,因此嬰兒在睡眠期間會(huì)轉(zhuǎn)換多種姿勢(shì),甚至保持有害于身體健康的姿勢(shì),所以父母需要及時(shí)糾正和調(diào)整嬰兒的睡眠姿勢(shì)。文獻(xiàn)[1]研究表明,相較于仰臥位,側(cè)臥位和俯臥位會(huì)明顯增加猝死綜合征(SuddenInfant Death Syndrome, SIDS)的發(fā)生率;與此同時(shí),在人工智能迅速發(fā)展的時(shí)代,利用機(jī)器學(xué)習(xí)和圖像處理技術(shù)可以有效識(shí)別嬰兒睡眠姿勢(shì),助力嬰兒健康成長(zhǎng)。
隨著機(jī)器學(xué)習(xí)、深度學(xué)習(xí)與圖像處理技術(shù)的不斷發(fā)展,姿勢(shì)識(shí)別成為當(dāng)前社會(huì)的研究熱點(diǎn)。文獻(xiàn)[2]提出了雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short-Term Memory, LSTM),解決了復(fù)雜環(huán)境下的人體識(shí)別問(wèn)題。文獻(xiàn)[3]基于BP神經(jīng)網(wǎng)絡(luò)模型采用Adaboost迭代學(xué)習(xí)方法,相比CNN卷積模型算法精度有較高的提升。文獻(xiàn)[4]提出了一種基于注意力機(jī)制融合時(shí)空特征的深度學(xué)習(xí)睡姿檢測(cè)模型,提高了睡姿檢測(cè)的實(shí)時(shí)性和有效性。文獻(xiàn)[5]提出了一種基于OpenPose的姿態(tài)估計(jì)算法,通過(guò)對(duì)人體各部位關(guān)節(jié)點(diǎn)的定位判斷睡眠姿勢(shì),該算法適應(yīng)于復(fù)雜背景下的姿勢(shì)檢測(cè)。文獻(xiàn)[6]基于心沖擊(BCG)信號(hào),提出了一種睡眠姿勢(shì)識(shí)別算法,非接觸和無(wú)干擾采集BCG信號(hào)后通過(guò)預(yù)處理提取基于J波的特征值,識(shí)別睡眠姿勢(shì),相較于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)和KNN網(wǎng)絡(luò),識(shí)別準(zhǔn)確率有了明顯的提高。
本文提出了基于YOLOv5模型的嬰兒睡姿檢測(cè)算法,構(gòu)建了嬰兒數(shù)據(jù)集,訓(xùn)練通過(guò)自適應(yīng)錨框計(jì)算,在初始錨框的基礎(chǔ)上輸出預(yù)測(cè)框,與真實(shí)框比較,計(jì)算兩者差距,再反向更新,迭代網(wǎng)絡(luò)參數(shù),采用路徑聚合網(wǎng)絡(luò)(PANET)增強(qiáng)模型的檢測(cè)精度,加強(qiáng)模型的識(shí)別效果,提高模型的泛化能力和識(shí)別準(zhǔn)確率。
1 數(shù)據(jù)集構(gòu)建
1.1 數(shù)據(jù)采集
通過(guò)網(wǎng)絡(luò)爬蟲(chóng)技術(shù)爬取數(shù)千張嬰兒圖片,經(jīng)過(guò)篩選與過(guò)濾后,整理出合理有效的嬰兒睡眠圖片,以構(gòu)建數(shù)據(jù)集。本文主要構(gòu)建了單個(gè)嬰兒數(shù)據(jù)集和多個(gè)嬰兒數(shù)據(jù)集兩大類(lèi)。其中,針對(duì)單嬰兒數(shù)據(jù)集,有3種睡眠姿勢(shì):仰臥、側(cè)臥和俯臥。
1.2 數(shù)據(jù)增強(qiáng)
數(shù)據(jù)增強(qiáng)主要通過(guò)增加訓(xùn)練的數(shù)據(jù)量,提高模型的泛化能力,通過(guò)增加噪聲數(shù)據(jù),提升模型的魯棒性。利用已有的數(shù)據(jù)進(jìn)行翻轉(zhuǎn)、平移或旋轉(zhuǎn),創(chuàng)造出更多數(shù)據(jù),使神經(jīng)網(wǎng)絡(luò)具有更好的泛化效果。本文搜集了1 500幅圖像,選擇1 200幅圖像作為訓(xùn)練集,300幅圖像作為測(cè)試集。其中,訓(xùn)練集又分出400幅圖像作為驗(yàn)證集,每幅圖都通過(guò)平移、旋轉(zhuǎn)等操作變成4幅圖。需要注意的是,需要對(duì)訓(xùn)練集和測(cè)試集進(jìn)行Mosaic數(shù)據(jù)增強(qiáng),并確保每幅圖的大小被固定為256×256。
1.3 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理是數(shù)據(jù)建模前的重要環(huán)節(jié),其直接影響所有圖片數(shù)據(jù)處理時(shí)的質(zhì)量和輸出效率。圖2所示為嬰兒圖像數(shù)據(jù)集的預(yù)處理示意圖。其中,彩色圖片的信息量過(guò)大,進(jìn)行圖片識(shí)別時(shí),需要將彩色圖片轉(zhuǎn)換成灰度圖(圖2(a)),從而簡(jiǎn)化矩陣,提高訓(xùn)練時(shí)的運(yùn)算速度。有些圖片在進(jìn)行灰度處理后仍舊很大,可以采用二值化方法減少圖像中的數(shù)據(jù)量(圖2(b)),從而凸顯目標(biāo)的輪廓,得到能反映圖像整體和局部特征的二值化圖像,并對(duì)圖像進(jìn)行歸一化處理(圖2(c))。
為了增強(qiáng)神經(jīng)網(wǎng)絡(luò)的收斂性,通常將讀取圖片轉(zhuǎn)為張量并歸一化處理。將數(shù)據(jù)集預(yù)處理完后,使用圖像標(biāo)注軟件LabelImg注釋?zhuān)⒁訴OC格式保存為XML文件。
2 YOLOv5模型
2.1 算法簡(jiǎn)介
機(jī)器視覺(jué)的主要處理任務(wù)為分類(lèi)、檢測(cè)、分割。YOLO算法[7]擅長(zhǎng)檢測(cè)且能夠兼顧精度和速度,YOLOv5算法[8]是一種更高效的目標(biāo)檢測(cè)模型,共有5個(gè)版本:YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。5個(gè)版本的結(jié)構(gòu)基本相似,且改進(jìn)后的版本更小,速度更快,但在模型深度和模型寬度方面各有不同,其中,YOLOv5s版本的深度和特征圖寬度是5個(gè)版本中最小的,其他4個(gè)版本依次在此基礎(chǔ)上不斷加深加寬。
2.2 模型訓(xùn)練
實(shí)驗(yàn)中使用的計(jì)算機(jī)硬件設(shè)備包括:Intel?CoreTM i5—8300 CPU、NVIDIA GeForce GTX 1050 GPU、8 GB 內(nèi)存。操作系統(tǒng)為Window 11,在Pycharm上使用與Pytorch框架對(duì)應(yīng)的CUDA Version搭建深度學(xué)習(xí)框架[9],設(shè)置的參數(shù)有epoch和batch size,分別為200和4。
2.3 模型網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv5主要分為輸入端、Backbone、Neck和Head。Backbone、Neck分別為New CSP-Darknet53、New CSP-PAN網(wǎng)絡(luò)結(jié)構(gòu)。
輸入端主要參照CutMix數(shù)據(jù)增強(qiáng)方法,使用Mosaic數(shù)據(jù)增強(qiáng)方法將圖片進(jìn)行拼接、隨機(jī)縮放、隨機(jī)裁剪和隨機(jī)排列,以豐富數(shù)據(jù)集,提高魯棒性,減少訓(xùn)練參數(shù),提高檢測(cè)能力[10]。
Backbone采用CSP網(wǎng)絡(luò)結(jié)構(gòu)(圖3),其包含3個(gè)標(biāo)準(zhǔn)卷積層,具體數(shù)量由配置文件yaml和depth_multiple參數(shù)共同決定。該模塊分為兩部分,一部分進(jìn)行卷積操作,另一部分和上一部分卷積操作張量進(jìn)行拼接(Concat),從而降低計(jì)算量,增強(qiáng)CNN的學(xué)習(xí)能力。
Neck采用FPN+PAN結(jié)構(gòu),與之前版本的不同之處在于使用了CSPNet設(shè)計(jì)的CSP2結(jié)構(gòu),加強(qiáng)了網(wǎng)絡(luò)特征的融合能力,Neck結(jié)構(gòu)如圖4所示。
Head部分主要用于檢測(cè)目標(biāo),目標(biāo)框回歸計(jì)算如下:
(1)
(2)
(3)
(4)
式中:(bx, by)表示預(yù)測(cè)框的中心坐標(biāo);bw和bh分別表示預(yù)測(cè)框的寬度和高度;(cx, cy)表示預(yù)測(cè)框中心點(diǎn)所在網(wǎng)格的左上角坐標(biāo);(tx, ty)表示預(yù)測(cè)框的中心點(diǎn)相對(duì)于網(wǎng)格左上角坐標(biāo)的偏移量;(tw, th)表示預(yù)測(cè)框的寬高相對(duì)于anchor寬高的縮放比例;(pw, ph)表示先驗(yàn)框anchor的寬高。
3 實(shí)驗(yàn)結(jié)果和分析
YOLOv5訓(xùn)練結(jié)果如圖5所示。橫坐標(biāo)表示訓(xùn)練的epoch;train/box_loss表示訓(xùn)練集bounding box的損失,越小則表示檢測(cè)的方框越準(zhǔn)確;val/obj_loss表示驗(yàn)證集目標(biāo)檢測(cè)的損失均值,越小則表示目標(biāo)檢測(cè)越準(zhǔn)確;cls_loss表示分類(lèi)loss均值,越小則表示分類(lèi)越準(zhǔn)確;precision和recall分別表示檢測(cè)精度和召回率,即在訓(xùn)練時(shí)判斷嬰兒睡姿正例樣本的比重和判斷嬰兒睡姿時(shí)正確睡姿中真正正例樣本的比重;mAP_0.5和mAP_0.5:0.95分別表示閾值大于0.5的mAP平均值和在不同IoU閾值(從0.5到0.95,步長(zhǎng)0.05)上的mAP平均值。
YOLOv5的損失主要由定位損失、置信度損失和分類(lèi)損失組成。其中,定位損失表示預(yù)測(cè)框與標(biāo)定框之間的誤差(GIoU),總損失的計(jì)算如下:
(5)
圖6為數(shù)據(jù)集(圖6(a))和標(biāo)簽圖片(圖6(b))的分布情況,具體分析如下:數(shù)據(jù)集分布情況的主要內(nèi)容包括訓(xùn)練集的數(shù)據(jù)量、框的尺寸和數(shù)量、中心點(diǎn)相對(duì)于整幅圖的位置、圖中目標(biāo)相對(duì)于整幅圖的高寬比例。標(biāo)簽圖片分布情況中每一行最后一張圖片分別表明中心點(diǎn)橫坐標(biāo)的分布情況、中心點(diǎn)縱坐標(biāo)的分布情況、圖片框?qū)挼姆植记闆r和圖片框高的分布情況,中心點(diǎn)的橫縱坐標(biāo)集中在整幅圖的中心位置,大部分圖片框的寬高超過(guò)了整幅圖寬高的一半。
使用精度、召回率和均值平均精度作為模型的評(píng)估標(biāo)準(zhǔn),來(lái)衡量算法的識(shí)別準(zhǔn)確性。P_curve表示精度和置信度的關(guān)系,當(dāng)置信度越大時(shí),嬰兒姿勢(shì)識(shí)別越準(zhǔn)確,理想值接近1。
R_curve表示召回率和置信度的關(guān)系,當(dāng)置信度越小時(shí),嬰兒姿勢(shì)識(shí)別檢測(cè)越全面。PR_curve表示精度和召回率的關(guān)系,mAP為均值平均精度,精度越高,召回率越低,所以盡可能在精度更高的情況下檢測(cè)到全部類(lèi)別,曲線越接近(1, 1)模型則其精度越高。
精度Pr計(jì)算如下:
(6)
召回率Re計(jì)算如下:
(7)
平均精度AP計(jì)算如下:
(8)
采用插值法計(jì)算平均精度,均值平均精度mAP計(jì)算如下:
(9)
訓(xùn)練完成后,在測(cè)試集得到檢測(cè)結(jié)果,Pr為99.8%,Re為99.8%,mAP為99.5%。
將嬰兒訓(xùn)練集睡眠姿勢(shì)分為3類(lèi),標(biāo)簽0、1、2分別對(duì)應(yīng)仰臥、側(cè)臥和俯臥,圖7為訓(xùn)練集可視化結(jié)果。
使用訓(xùn)練完成的模型在測(cè)試集上進(jìn)行預(yù)測(cè),評(píng)估模型的學(xué)習(xí)能力,測(cè)試模型的性能。圖8為測(cè)試集可視化結(jié)果,結(jié)果顯示YOLOv5在自制的數(shù)據(jù)集中有著突出的檢測(cè)識(shí)別能力,能準(zhǔn)確判斷嬰兒的睡眠姿勢(shì),具有較高的可靠性。
4 結(jié) 語(yǔ)
本文構(gòu)建了嬰兒睡眠姿勢(shì)數(shù)據(jù)集,搭建了嬰兒睡姿檢測(cè)識(shí)別YOLOv5模型,使用Mosaic數(shù)據(jù)增強(qiáng)方法和自適應(yīng)圖片增加數(shù)據(jù)集的容量,提高了模型的泛化性和魯棒性;在卷積神經(jīng)網(wǎng)絡(luò)中引入CSP模塊,大大減少了運(yùn)算量;采用了3個(gè)損失函數(shù)優(yōu)化模型,提高了模型的準(zhǔn)確率,在測(cè)試集中準(zhǔn)確率高達(dá)99%。實(shí)驗(yàn)結(jié)果表明,該模型可以高效準(zhǔn)確地實(shí)現(xiàn)嬰兒睡眠姿勢(shì)的識(shí)別。
注:本文通訊作者為韓振華。
參考文獻(xiàn)
[1]周意喬,徐昱琳.基于雙向LSTM的復(fù)雜環(huán)境下實(shí)時(shí)人體姿勢(shì)識(shí)別[J].儀器儀表學(xué)報(bào),2020,41(3):192-201.
[2]祝睿,薛文華,李汶艾,等.基于Adaboost-BP神經(jīng)網(wǎng)絡(luò)模型的姿勢(shì)識(shí)別研究[J].數(shù)字通信世界,2022(6):52-54.
[3]石用伍,李小勇,石用德,等.基于注意力機(jī)制的空時(shí)融合深度學(xué)習(xí)睡姿監(jiān)測(cè)算法研究[J].中國(guó)醫(yī)療設(shè)備,2022,37(7):39-44.
[4]楊明健,黎鏡林,郭銳坤,等.基于OpenPose的人體睡姿識(shí)別實(shí)現(xiàn)與研究[J].物理實(shí)驗(yàn),2019,39(8):45-49.
[5]張藝超,袁貞明,孫曉燕.基于心沖擊信號(hào)的睡姿識(shí)別[J].計(jì)算機(jī)工程與應(yīng)用,2018,54(17):135-140.
[6] REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection [C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA: IEEE, 2016: 779-788.
[7] YAN P C, SUN Q S, YIN N N, et al. Detection of coal and gangue based on improved YOLOv5.1 which embedded scSE module [J]. Measurement, 2022, 188: 110530.
[8]邱天衡,王玲,王鵬,等.基于改進(jìn)YOLOv5的目標(biāo)檢測(cè)算法研究[J].計(jì)算機(jī)工程與應(yīng)用,2022,58(13):63-73.
[9]蔣文斌,劉湃,陳雨浩,等.基于CUDA流技術(shù)的深度學(xué)習(xí)系統(tǒng)優(yōu)化[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2020,48(7):107-111.
[10]王玲敏,段軍,辛立偉.引入注意力機(jī)制的YOLOv5安全帽佩戴檢測(cè)方法[J].計(jì)算機(jī)工程與應(yīng)用,2022,58(9):303-312.
作者簡(jiǎn)介:巢梓涵(2001—),男,研究方向?yàn)闄C(jī)械電子工程。
韓振華(1986—),男,博士,講師,研究方向?yàn)闄C(jī)電測(cè)控系統(tǒng)設(shè)計(jì)、精密傳動(dòng)與驅(qū)動(dòng)。
收稿日期:2024-01-19 修回日期:2024-03-07
基金項(xiàng)目:2022年江蘇省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃立項(xiàng)項(xiàng)目:基于機(jī)器視覺(jué)的嬰兒異常行為檢測(cè)(202211463005Z)