


摘 要:本文設計并實現了一套基于優化后的YOLOv5算法的老年人跌倒行為檢測與監測系統。采用深度學習技術和實時視頻流處理,系統能夠高效、準確地監測和識別老年人的跌倒行為,以提升其安全保障水平。優化后的算法在保持高檢測率(97.08%)的同時,顯著降低了錯誤檢測率(僅為0.8%),并表現出優異的區分能力,有效減少了誤報。該系統的設計不僅在試驗中取得了顯著成果,還在老年人健康管理中具有潛在應用價值。
關鍵詞:老年人跌倒檢測;YOLOv5算法優化;深度學習;實時視頻處理;安全監測系統
中圖分類號:TP 391 " " " " 文獻標志碼:A
老年人跌倒是導致傷害和死亡的常見原因,特別是在家庭和養老院等環境中,因此,及時檢測和響應老年人的跌倒行為,對預防事故后果具有重要意義。深度學習技術在計算機視覺領域的快速發展為解決該問題提供了新的可能性。YOLOv5是一種先進的目標檢測算法,具有高效的實時性能和精準的檢測能力,在多個應用領域受到廣泛關注。本文旨在利用優化和定制化YOLOv5算法,設計一套專門用于老年人跌倒行為檢測與監測的系統。優化后的算法將結合實時視頻流處理和高精度目標識別,在各種環境條件下穩定運行,并準確識別跌倒事件。利用本系統可以提升老年人的安全保障水平,及時發現跌倒并采取緊急救援措施,從而降低跌倒帶來的風險和損害。
1 系統設計與實施
1.1 需求分析
在設計和實現基于優化YOLOv5算法的老年人跌倒行為檢測與監測系統過程中,需要滿足以下2個方面的需求。
1.1.1 系統功能需求
系統功能需求是老年人跌倒行為檢測與監測系統設計的核心要素。首先,系統需要精確識別老年人的跌倒行為,包括準確識別站立、彎腰和躺倒等多種狀態。這種能力基于優化后的YOLOv5算法,采用深度學習技術對人體姿態變化進行高效監測[1]。其次,系統需要具備實時處理能力,能夠在視頻流中連續監測并分析老年人的動作變化,以保證對跌倒事件進行即時響應[2]。最重要的是,一旦系統檢測到老年人發生跌倒行為,能夠立即觸發警報或通知相關人員進行緊急處理,從而有效提升老年人的安全保障水平。
1.1.2 性能需求
系統的性能需求對老年人跌倒行為檢測與監測系統至關重要。系統需要具備高準確性,保證能夠準確識別老年人的跌倒行為,并能有效區分跌倒與其他日常活動[3]。此外,系統必須具有低延遲的特性,以保證跌倒事件發生后能夠迅速做出反應,觸發警報或通知相關人員及時處理。同時,系統應具備實時處理能力,能夠在實時視頻流中連續監測和識別跌倒行為,保證監測的即時性和連續性,以提高老年人的安全保障水平。
1.1.3 環境需求
在設計基于優化YOLOv5算法的老年人跌倒行為檢測與監測系統過程中,需要保證系統在不同環境條件下的穩定性和可靠性。1) 光照條件。系統必須在各種光照條件下穩定運行,包括明亮、昏暗的環境和光線變化大的場景。系統應能利用優化YOLOv5算法,結合圖像增強和自動曝光控制技術,準確識別老年人的跌倒行為,并在光線突然變化情況下迅速適應環境,避免誤檢和漏檢。2) 復雜背景與攝像頭配置。系統需要處理復雜背景中的干擾因素,例如家具、家電和其他人員活動。深度學習模型應針對常見背景干擾進行訓練,保證能夠準確檢測跌倒行為。同時,系統還需要適應不同攝像頭的安裝位置和角度,利用多視角融合技術提升檢測的準確性。
1.2 系統總體設計
系統采用優化后的YOLOv5算法的架構,對跌倒行為進行高效檢測。整體架構包括以下4個關鍵組成部分。1) 數據采集模塊。該模塊能夠從攝像頭獲取實時視頻流數據。2) 數據預處理模塊。該模塊能夠對采集的視頻流進行預處理,包括調整圖像大小、歸一化像素值等,以便于后續的算法處理。3) YOLOv5模型集成。整合優化后的YOLOv5模型包括模型的加載、推理過程和結果輸出。4) 警報觸發與通知模塊。當檢測到老年人跌倒行為時,觸發警報或通知相關人員及時處理。
1.3 詳細設計
1.3.1 數據預處理與OpenCV集成
在處理實時視頻流過程中,數據預處理在老年人跌倒行為檢測系統中具有關鍵作用。數據預處理階段包括調整圖像和歸一化2個主要步驟。調整圖像包括調整圖像大小、裁剪或填充圖像,以適應模型的輸入要求。
YOLOv5模型對輸入圖像的尺寸和格式有特定要求,需要保證每個輸入圖像具有相同的尺寸和像素值范圍,以便模型能夠正確地進行檢測和分類。首先,在OpenCV中,可以使用resize函數來調整圖像大小。其次,歸一化是另一個重要步驟,它將圖像的像素值映射到一個固定的范圍內,通常為[0,1]或[-1,1]。這種歸一化可以提高模型的訓練速度和穩定性,并減少數據偏差對模型性能的影響。在實時視頻流處理過程中,OpenCV是一個開源的計算機視覺庫,它具有豐富的圖像處理功能和視頻處理能力,可以從攝像頭或視頻文件中輕松地獲取實時視頻流,并快速、有效地處理每一幀圖像。此外,OpenCV還支持硬件加速和多線程處理,對實時視頻流的高效處理至關重要。它能夠利用現代計算硬件(例如GPU)來加速圖像處理和算法推理過程,從而提高系統對實時視頻流的即時響應和高效處理能力。OpenCV集成代碼如下所示。
import cv2
# 打開攝像頭(0為默認攝像頭)
cap = cv2.VideoCapture(0)
while True:
# 讀取視頻流幀
ret, frame = cap.read()
if ret:
# 調整圖像大小
target_size = (640, 480)
resized_frame = cv2.resize(frame, target_size)
# 灰度化和歸一化處理
gray_frame = cv2.cvtColor(resized_frame, cv2.COLOR_BGR2GRAY)
normalized_frame = gray_frame / 255.0
# 在這里可以將normalized_frame送入YOLOv5模型進行跌倒行為檢測
# 顯示處理后的圖像
cv2.imshow('Processed Frame', normalized_frame)
# 按下 'q' 鍵退出循環
if cv2.waitKey(1) amp; 0xFF == ord('q'):
break
# 釋放攝像頭并關閉所有窗口
cap.release()
cv2.destroyAllWindows()
采用以上方法,并利用OpenCV的功能對實時視頻流進行預處理,使其適用于后續的跌倒行為檢測任務。這種集成能夠保證系統在各種光照條件和復雜背景下都能穩定運行。
1.3.2 YOLOv5算法設計與優化
1.3.2.1 YOLOv5架構
YOLO(You Only Look Once)算法是一種實時目標檢測算法,其核心思想是將目標檢測任務視為一個回歸問題,利用單次前向傳播來直接預測目標的位置和類別。YOLOv5是YOLO系列中的最新版本,在之前的版本基礎上進行了顯著改進和優化。YOLOv5的關鍵點可以描述如下。
對于給定的圖像I,YOLOv5算法利用神經網絡生成多個預測框,即B={b1,b2,...bN},其中N為預測框的總數。每個預測框b可以表示為公式(1)。
b=(bx,by,bw,bh,Conf,P(class|object)) " " " " " (1)
式中:bx、by分別為預測框b的中心點在網格單元(i,j)內的偏移;bw、bh分別為預測框b的寬度和高度;Conf為預測框b內物體的置信度;P(class|object)為預測框b內物體所屬類別的概率分布。
公式(1)描述了YOLOv5算法如何通過神經網絡輸出預測框,并利用優化損失函數,使這些預測框盡可能地準確定位并圖像中的物體進行分類。
1.3.2.2 YOLOv5算法優化
在YOLOv5中,無錨設計和多尺度檢測技術是關鍵優化點,旨在提高目標檢測的精度和速度。1) 無錨設計。YOLOv5放棄了傳統目標檢測算法中的錨框方法,采用無錨設計的方式進行物體檢測。具體來說,YOLOv5使用自適應的格子預測框,每個圖像被劃分為S×S個網格單元,每個網格單元能夠預測其內部的物體。這些預測框的位置和大小不再基于手動設計的錨框,而是利用神經網絡預測物體中心點的偏移量和物體的尺寸。對于每個網格單元,YOLOv5預測物體的中心點相對于網格左上角的偏移量bx、by。這種方式不需要預先定義和調整多個錨框,不僅簡化了設計,而且減少了計算復雜性。預測框的寬度bw、bh直接由網絡輸出,代表物體的尺寸信息。這些預測框不僅可以適應不同大小的物體,還能在單一的網絡結構下統一處理各種尺度的物體。2) 多尺度檢測。為了提高對不同大小物體的檢測能力和適應性,YOLOv5引入了多尺度檢測技術。YOLOv5的網絡結構包括多個特征提取層,每個層次可產生不同分辨率的特征圖。低層特征圖可以捕獲更精細的細節,高層特征圖則具有更廣泛的語義信息。利用這種層級結構,YOLOv5能夠同時處理不同尺度的物體。在檢測階段,YOLOv5綜合利用不同層次的特征圖進行目標檢測。每個預測框都可以從多個特征層次中獲取信息,以提高對物體的定位精度和類別預測準確性。YOLOv5還引入了自適應的多尺度訓練(Adaptive Multi-scale Training),在訓練過程中動態調整輸入圖像的分辨率,從而使模型能夠更好地適應不同尺度物體的檢測需求。
1.3.3 數據集準備與標注
1.3.3.1 數據集描述:Fall-Down-Det-v1數據集
Fall-Down-Det-v1數據集是用于檢測和監測老年人摔倒行為的數據集。該數據集包括摔倒和非摔倒場景的視頻和圖像數據,用于訓練和評估摔倒檢測算法的性能。
1.3.3.2 數據集劃分與標注格式
數據集分為訓練集和測試集。訓練集用于訓練摔倒檢測模型,通常包括大量的摔倒和非摔倒場景的圖像或視頻。測試集用于評估模型在新數據上的泛化能力和性能。測試集與訓練集具有相似的數據分布,但是數據不會重疊。
1.3.4 實時監測與警報系統集成
1.3.4.1 實時推理與結果處理
接收視頻流或圖像后,實時監測系統會進行以下處理。首先,對輸入圖像進行預處理,包括大小調整和歸一化,以適應模型的輸入要求。其次,將預處理后的圖像輸入摔倒檢測模型中進行推理,得到每個檢測框的位置、類別和置信度等信息。最后,根據模型輸出結果進行后處理,例如濾除低置信度的檢測框、合并重疊的檢測框,以保證檢測結果的準確性和可靠性。這一系列步驟保證系統能夠實時、準確地監測和檢測摔倒行為。
1.3.4.2 警報觸發機制與系統響應時間優化
為了實現及時報警和系統快速響應,采用以下3個策略。1) 設定一個置信度閾值,只有置信度高于該閾值的檢測框才會觸發警報,從而減少誤報。2) 當檢測到摔倒行為時,系統應立即生成警報,通過多種方式通知相關人員或系統,例如短信、電子郵件或觸發警報聲。此外,采用實時通信技術(例如WebSocket),將警報信息即時推送到監控系統或手機應用,保證相關人員能夠及時收到警報。3) 采用輕量化模型或模型優化技術(例如量化和剪枝),并利用硬件加速(例如GPU、TPU)優化模型推理和警報生成的流程,減少推理時間,保證系統能夠在短時間內響應摔倒事件。
2 性能評估與分析
在試驗過程中,首先,本文在室內走廊拍攝了多段模擬老年人摔倒的真實視頻,將其作為測試數據,輸入摔倒檢測系統文件夾中。其次,打開系統服務器后臺界面,系統讀取真實視頻并進行自動仿真識別,即將視頻數據實時輸入摔倒檢測算法中,由算法對每一幀圖像進行處理和分析,識別潛在的摔倒事件。最后,仿真結束后,系統后臺展示了處理后的視頻,從中能夠清晰地看到,摔倒瞬間被準確識別,檢測算法用紅色框標注摔倒事件,并向系統服務器后臺發送報警信號,提示有人員摔倒,需要救助。系統模擬檢測結果如圖1所示。
經過大量試驗后,所得試驗統計數據見表1。
試驗結果表明,系統跌倒檢測率為97.08%,表明系統在真實環境中具有較高的檢測準確性,錯誤檢測率僅為0.8%,在區分相似日常活動方面表現優越,極大減少了誤報情況,提高了系統的可靠性。
3 結論
本文基于優化后的YOLOv5算法,設計了一種專門用于老年人跌倒行為檢測與監測的系統。通過系統的設計與實施,本文成功解決了老年人跌倒帶來的安全隱患問題。優化后的算法結合實時視頻流處理和高精度目標識別,能夠對跌倒行為進行高效監測和準確識別。試驗結果表明,系統的跌倒檢測率為97.08%,錯誤檢測率僅為0.8%,并且在區分相似日常活動方面表現優越,有效減少了誤報,具有在實際應用中廣泛推廣的潛力。這些特點使本系統在老年人健康管理和安全保障方面具有重要意義,為社會提供了一種有效的、應對老齡化社會問題的技術解決方案。
參考文獻
[1]代菁菁,胡立夫,陳大越.一種適老化跌倒檢測預警系統設計[J].電子制作,2024,32(9):20-23.
[2]王寧.基于STM32的老人跌倒監測系統設計與實現[D].銀川:北方民族大學,2024.
[3]劉子琪,王芳,曾顯,等.基于物聯網的社區智慧養老系統設計[J].工業儀表與自動化裝置,2024(1):34-37,46.
通信作者:陳丹丹(1990—),女,江蘇南通市人,碩士,講師,研究方向為信息系統。
電子郵箱:339472751@qq.com。