摘? 要:摔倒是影響老人生命安全的重要問題之一,為提高檢測準確率,將YOLOv5模型應用于摔倒檢測并做了改進。首先,用K-means聚類算法得到更符合目標形態(tài)的anchor長寬比例,使邊界框更精確,提高摔倒檢測準確率。其次,用EIoU損失函數(shù)替換CIoU損失函數(shù),加快收斂速度,使目標定位更準確。實驗結(jié)果表明,改進后的YOLOv5模型檢測效果較好,準確率達到99.1%,mAP值達到99.3%,能夠更好地滿足摔倒檢測的要求。
關鍵詞:改進YOLOv5算法;人體摔倒檢測;K-means聚類;EIoU損失函數(shù)
中圖分類號:TP391.4? 文獻標識碼:A? 文章編號:2096-4706(2023)04-0121-04
Improved YOLOv5 Human Fall Detection
ZHANG Jing
(College of Computer Science and Technology, Taiyuan Normal University, Jinzhong? 030619, china)
Abstract: Falling is one of the important problems affecting the life safety of the elderly. In order to improve the detection accuracy, YOLOv5 model is applied to fall detection and improved. Firstly, K-means clustering algorithm is used to get the ratio of the length and width of the anchor which is more in line with the target shape, and it makes the bounding box more accurate and improves the accuracy of fall detection. Secondly, it replaces the CIoU loss function with EIoU loss function to speed up the convergence and make the target location more accurate. The experimental results show that the improved YOLOv5 model has a better detection effect, with an accuracy rate of 99.1% and the mAP value reaches 99.3%, which can better meet the requirements of fall detection.
Keywords: improved YOLOv5 algorithm; human fall detection; K-means clustering; EIoU loss
0? 引? 言
全國第七次人口普查結(jié)果顯示60周歲及以上人口突破2.6億,約占總?cè)丝跀?shù)的18.7%,比2010年上升5.44%[1]。隨著人口老齡化比例的逐年增加,摔倒是危害老年人健康的首要原因[2,3]。一旦老人摔倒后長時間不被發(fā)現(xiàn)將會有生命危險。目前,針對摔倒檢測方法主要有以下兩種:基于傳感器和基于計算機視覺?;趥鞲衅鞯脑O備有穿戴式和環(huán)境傳感器兩種。如Alesin等人[4]設計了多功能可穿戴設備,可以戴在手腕、上臂、上腿或腳踝上,用于監(jiān)測人體的實時位置和運動活動。但是,人體運動幅度較大時誤報警率高。Lin等人[5]通過在眼鏡框上鑲?cè)爰铀俣绕骱屯勇輧x獲取信號,檢測加速度和用戶頭部方向的變化來判斷是否發(fā)生摔倒。但老人經(jīng)常會忘記佩戴。Yang等人[6]使用Wi-Fi設備的通道狀態(tài)信息,通過識別不同活動會對Wi-Fi信號產(chǎn)生不同的影響進行摔倒檢測。Wi-Fi設備檢測摔倒誤檢率較高。
在計算機視覺領域深度學習技術廣泛應用到目標檢測和圖像識別中,基于準確性與實時性兩方面考慮,分為基于YOLO系列算法的人體行為識別和基于SSD算法的人體行為識別。Wang等人[7]在YOLOv3算法中引入錨點參數(shù),通過K-means算法優(yōu)化錨框,在gpu服務器上用自建數(shù)據(jù)集對網(wǎng)絡模型進行訓練和測試。實驗結(jié)果mAP值為0.83。周洪成等人[8]采用YOLOv5算法對攝像頭采集到的數(shù)據(jù)判斷人體的動作姿態(tài),將動作姿態(tài)信息經(jīng)連接樹莓派的Wi-Fi模塊發(fā)送到監(jiān)護人的手機上,如有摔倒發(fā)生可及時救助。實驗結(jié)果mAP值為0.83。精確度仍有待提高。馬露等人[9]提出改進FSSD(Feature Fusion Single Shot Multibox Detector)網(wǎng)絡模型進行摔倒檢測。該網(wǎng)絡模型通過基礎網(wǎng)絡和輔助網(wǎng)絡對圖像特征進行提取,增加上下文信息提高摔倒檢測的準確率。
綜上所述,針對以上方法對于摔倒檢測的準確率和實時性不高的問題,本文提出用K-means算法優(yōu)化錨框并采用EIoU損失函數(shù)的YOLOv5檢測算法,提高了摔倒檢測的準確率和實時性,能夠更好地檢測出摔倒行為。
1? 算法描述
2020年Ultralytics公司發(fā)布了YOLOv5網(wǎng)絡模型,該模型易于部署且檢測速度快,分為YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x這5種網(wǎng)絡架構(gòu)。本文選用YOLOv5中典型的網(wǎng)絡模型YOLOv5s進行摔倒檢測,YOLOv5s(以下簡稱YOLOv5)網(wǎng)絡的深度和特征圖寬度都很小使得訓練速度快、實時性強。YOLOv5分為輸入端、Backbone、Neck、輸出端四部分。如圖1所示(YOLOv5-6.0版本)。本文對YOLOv5-6.0版本進行改進,以提高摔倒檢測的準確率和實時性。
YOLOv5的輸入端包含Mosaic數(shù)據(jù)增強技術、圖片尺寸縮放和自適應錨框計算三種方法。通過Mosaic數(shù)據(jù)增強技術隨機選取四張圖片進行隨機縮放、剪裁等操作后拼接成一張圖片,豐富了訓練數(shù)據(jù)集。通過圖片尺寸縮放技術將圖片縮放成固定大小,提高訓練速度。通過自適應錨框計算方法生成最佳錨框值。
YOLOv5中使用了兩種CSP結(jié)構(gòu)。主干網(wǎng)絡Backbone使用CSP1_X結(jié)構(gòu),Neck網(wǎng)絡使用CSP2_X結(jié)構(gòu)。其中的X表示有幾個殘差組件。兩種CSP結(jié)構(gòu)對應兩個網(wǎng)絡,從而使得殘差結(jié)構(gòu)的輸出更易融合。在目標檢測的后處理過程中,通常使用NMS方法對多目標框進行篩選,加強了遮擋目標的檢測能力。
2? 模型改進
2.1? 損失函數(shù)改進
損失函數(shù)能夠評估模型訓練結(jié)果的好壞,訓練結(jié)果通常用于調(diào)整網(wǎng)絡權(quán)重,從而加快模型收斂,因此損失函數(shù)會直接影響到目標檢測的效果。YOLOv5采用的損失函數(shù)是CIoU loss[10],該損失函數(shù)考慮了重疊面積、中心點距離以及長寬比這三個幾何參數(shù)。CIoU loss的公式為:
(1)
(2)
式中,IoU為預測框與真實框的交并比,β2(b,bgt)表示真實框和預測框的中心點距離,c表示真實框和預測框最小外接矩形的最短對角線長度。v表示衡量長寬比一致性參數(shù),α表示平衡參數(shù),v的梯度w和h的計算如下:
(3)
由式(3)可推出? 表示w和h的梯度值是相反的,即一個增大時另一個必然在減少。將導致預測框不能很好的與真實框貼合以及損失函數(shù)收斂過慢。對于此問題,本文采用EIoU損失函數(shù)[11],EIoU提出了分別計算w和h的損失,得到更快的收斂速度。EIoU損失函數(shù)公式為:
(4)
其中cw、ch表示真實框和預測框的最小外接矩形的寬和高,EIoU將損失函數(shù)劃分成:IoU損失LIOU、距離損失Ldis和長寬比損失Lasp,通過這種方式,可以保留CIoU損失的有利特征。同時,EIoU損失直接最小化了真實框和預測框的寬度和高度之差,得到了更快的收斂速度和更好的定位結(jié)果。
為了提高YOLOv5算法在摔倒檢測中的檢測精度,將EIoU損失函數(shù)引入到Y(jié)OLOv5網(wǎng)絡中替換掉原始的CIoU損失函數(shù),進行網(wǎng)絡訓練。
2.2? 改進anchor機制
anchor框尺度的設定與模型的檢測性能好壞有直接關系。YOLOv5有默認的anchor boxs尺度和長寬比,但不同數(shù)據(jù)集與所給定的anchor boxs默認參數(shù)不能很好的匹配。理論上來說,anchor boxs的尺寸與數(shù)據(jù)集中的真實框(ground truth)尺寸越接近,模型的檢測性能越好。因此本文采用K-means聚類算法對標注的數(shù)據(jù)集真實框尺寸進行聚類,從而得到適用于本實驗數(shù)據(jù)集的anchor框尺寸。其中K等于9,具體步驟為:
(1)讀取訓練集中包含M張圖片的標注文件,解析真實框的寬高;
(2)在訓練集中挑選k個真實框?qū)個anchor boxs進行初始化;
(3)依次計算每個真實框與每個anchor box的誤差d,其中d=1-IoU,IoU(Intersection over Union)為真實框與anchor框的交并比,將真實框分類給與其誤差d最小的anchor box;
(4)根據(jù)分類結(jié)果找到每個anchor box包含的所有真實框的均值,用其對anchor box進行更新;
(5)重復3、4步驟,直到真實框的分類不再更新。
通過K-means聚類分析手工標注的訓練集,得到更符合人體目標邊界框的先驗框,設置優(yōu)化算法中的anchor參數(shù),使之與人體摔倒的目標形態(tài)相匹配,提高摔倒檢測算法精度。
3? 實驗分析
3.1? 數(shù)據(jù)集與實驗環(huán)境
本文所采用的是UR fall detection dataset(URFD)摔倒數(shù)據(jù)集,從中選取30個摔倒圖像和28個正?;顒訄D像進行手工標注后訓練,包含多個身高體型不同的人類進行正常以及摔倒活動,存在光照變化以及部分目標遮擋現(xiàn)象。
本實驗的操作系統(tǒng)為Windows 10,GPU為NVIDIA Quadro RTX 5000,GPU顯存為16 GB,CUDA10.1版本,使用Python程序設計語言,Python 3.6版本,算法框架為Pytorch,torch1.7.1版本,YOLOv5s訓練時迭代次數(shù)為210次,batch size為16,學習率為0.01。
3.2? 算法的評價指標
在檢測出目標后,需要對檢測效果進行評價。評價所用到的指標有,平均精度(Average Precision, AP);多個類別平均精度的平均值(mean Average Precision, mAP)。
準確率(Precision)表示真正例在檢索所有數(shù)據(jù)中所占的比例,公式為:
(5)
召回率(Recall)表示正樣本中的正例有多少被預測正確了,公式為:
(6)
其中TP(True Positive)表示摔倒行為并分為摔倒的次數(shù);TN(True Negatives)表示非摔倒行為并分為非摔倒的次數(shù);FP(False Positive)表示非摔倒行為卻被分為摔倒的次數(shù);FN(False Negatives)表示摔倒行為卻被分為非摔倒的次數(shù)。
平均精度(AP)表示以Precision為縱軸,Recall為橫軸組成的曲線所圍成的面積:
(7)
平均精度均值(mAP)表示數(shù)據(jù)集中所有類別的平均精度的均值,公式為:
(8)
其中m表示測試集中的樣本個數(shù)。
3.3? 實驗結(jié)果與分析
本文在URFD數(shù)據(jù)集上對各種不同身形的人進行摔倒和日?;顒有袨檫M行檢測。圖2為模型訓練的mAP圖,圖3為模型訓練的YOLOv5與改進后的YOLOv5的box_loss 值對比,可以看出隨著模型迭代次數(shù)的增加,模型的mAP值和box_loss值逐漸趨于收斂,說明模型具有較好的擬合程度。
圖4展示了改進的YOLOv5摔倒檢測模型在URFD數(shù)據(jù)集上的檢測效果,不同的行為由不同的顏色框定,由此可以看出,本文算法可以正確的框定目標以及識別出目標行為。
由表1可知,改進后的YOLOv5算法在URDF數(shù)據(jù)集上的準確率為99.1%比原始YOLOv5提高了2.1%,比YOLOv3提高了3.5%,mAP為99.3,比YOLOv3、YOLOv5提高了0.6%。本文算法具有更好的檢測能力,改進后的YOLOv5算法在檢測視頻時的檢測速度為56.94FPS,可以實時檢測摔倒行為。
4? 結(jié)? 論
本文闡述了YOLOv5在摔倒檢測中的應用,針對已有檢測方法對摔倒檢測的精確度低、實時性不強的問題,本文提出了改進的YOLOv5摔倒檢測算法提高了檢測精度并且實時性強,本文通過使用K-means算法優(yōu)化錨框得到更適合本實驗的先驗框,提高模型的收斂速度。對于衡量模型擬合程度好壞的損失函數(shù),用EIoU替換CIoU損失函數(shù),分別計算框的寬和高損失,使模型收斂速度更快并且提高了精度,減少了神經(jīng)網(wǎng)絡的損失。實驗結(jié)果表明,改進后的YOLOv5摔倒檢測模型的準確率為99.1%,比原始YOLOv5提高了2.1%,說明模型檢測取得了不錯的效果,可以很好的識別摔倒行為,下一步將繼續(xù)優(yōu)化YOLOv5目標檢測模型提高識別穩(wěn)定性,使其在遮擋和復雜場景下效果更好。
參考文獻:
[1] 國家統(tǒng)計局.第七次全國人口普查主要數(shù)據(jù)情況 [EB/OL].(2021-05-11).http://www.stats.gov.cn/ztjc/zdtjgz/zgrkpc/dqcrkpc/ggl/202105/t20210519_1817693.html.
[2] 中國老年人跌倒風險評估專家共識(草案) [J].中國老年保健醫(yī)學,2019,17(04):47-48+50.
[3] 崔建英,劉燕,熊英.老年綜合評估護理方案在老年人院外跌倒防范中的應用 [J].護理研究,2020,34(24):4473-4475.
[4] ALESIN A,OSANLOU A,MAW S W. A low budget multifunctional wearable device for motion and falls detection [C]//2018 IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering (EIConRus).IEEE,2018:1850-1855.
[5] LIN C L,CHIU W C,CHEN F H,et al. Fall Monitoring for the Elderly Using Wearable Inertial Measurement Sensors on Eyeglasses [J].IEEE Sensors Letters,2020,4(6):1-4.
[6] YANG X,XIONG F,SHAO Y,et al. WmFall:WiFi-based multistage fall detection with channel state information [J].International Journal of Distributed Sensor Networks,2018,14(10):1-10.
[7] WANG X,JIA K. Human Fall Detection Algorithm Based on YOLOv3 [C]//2020 IEEE 5th International Conference on Image,Vision and Computing(ICIVC).IEEE,2020:50-54.
[8] 周洪成,楊娟,徐志國.基于YOLOv5算法的人體跌倒檢測系統(tǒng)設計 [J].金陵科技學院學報,2022,38(2):22-29.
[9] 馬露,裴偉,朱永英,等.基于深度學習的跌倒行為識別 [J].計算機科學,2019,46(9):106-112.
[10] ZHENG Z,WANG P,REN D,et al. Enhancing Geometric Factors in Model Learning and Inference for Object Detection and Instance Segmentation [J].IEEE Transactions on Cybernetics,2022,52(8):8574-8586.
[11] ZHANG Y F,REN W,ZHANG Z,et al. Focal and Efficient IOU Loss for Accurate Bounding Box Regression [J].arXiv:2101.08158 [cs.CV].(2021-01-20).https://arxiv.org/abs/2101.08158v2.
作者簡介:張靖(1997—),女,漢族,陜西寶雞人,碩士研究生在讀,研究方向:智能數(shù)據(jù)分析、目標檢測。
收稿日期:2022-10-10