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