• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于人體姿態(tài)估計的泳池溺水檢測算法

      2023-08-21 08:44:26于中陽楊文輝
      科技創(chuàng)新與應用 2023年23期
      關鍵詞:泳池關鍵點姿態(tài)

      于中陽,楊文輝

      (上海旺鏈信息科技有限公司,上海 200443)

      游泳是一項非常受歡迎的運動,但是泳池溺水事故頻發(fā)。目前的泳池防溺水措施大多依賴于人工觀察,人力成本高,并且容易出現(xiàn)人工疏忽,救援不及時的現(xiàn)象。因此,研究人員提出了許多有效的泳池防溺水措施。

      目前的泳池防溺水研究主要分為2 類:①基于可穿戴式防溺水設備的研究,如手環(huán)、泳帽等[1-3]。通過可穿戴式防溺水設備實時監(jiān)測游泳者的生命體征,出現(xiàn)異常,發(fā)出警報[4-6]。這種方法需要額外佩戴設備,影響了游泳者的游泳體驗,并且設備存在易受環(huán)境干擾、需要經(jīng)常維護保養(yǎng)的問題。②基于計算機視覺的泳池防溺水研究[7-9],通過攝像頭獲取游泳者的游泳圖像,利用目標檢測、人體姿態(tài)估計等深度學習模型分析游泳者的運動狀態(tài),判斷游泳者是否溺水,這種方法游泳者不需要佩戴設備,可以帶來更好的游泳體驗。但是,當前的基于計算機視覺的泳池防溺水技術(shù)大多利用目標檢測算法(如YOLO 系列)研究游泳者的頭部、人體與水面的位置關系,人為設置溺水判定規(guī)則,主觀因素太強,模型參數(shù)過多且難以確定,準確率有待提高[8,10]。

      具有研究意義的泳池防溺水研究主要有:Prakash[11]提出一種新方程(NEPTUNE)泳池溺水檢測系統(tǒng),先合并處理視頻序列的圖像,再利用K-means 聚類算法提取合并的圖像的特征,利用每個圖像的變量識別出溺水情況,檢測速度快,誤報率低。青島大學喬羽[12]設計了一種基于Mask R-CNN 泳池中溺水行為檢測系統(tǒng),采用Mask R-CNN 算法對游泳者圖像進行目標檢測,訓練出的分類器模型能夠檢測出游泳者的多種游泳行為,該系統(tǒng)的檢出率為91.2%,誤檢率為7.5%。Dulhare等[13]使用Faster R-CNN 目標檢測模型和數(shù)據(jù)增強算法檢測人們在水下的行為。東華大學張修念[14]設計了一種基于邊緣計算平臺與計算機視覺的泳池溺水預警系統(tǒng),利用改進的輕量級OpenPose 模型先對游泳者圖像進行人體姿態(tài)估計,將姿態(tài)標記后的圖像送入目標檢測模型YoLov4 進行溺水行為檢測。

      現(xiàn)有的基于計算機視覺的泳池防溺水技術(shù)漏檢、誤檢率高。因此,本文提出一種基于人體姿態(tài)估計的泳池溺水檢測算法,利用人體姿態(tài)估計模型OpenPose 對游泳者的圖像進行人體姿態(tài)估計,通過比較游泳者的關鍵點距離向量與溺水狀態(tài)的關鍵點距離向量的相似性來判斷是否溺水。

      1 基于人體姿態(tài)估計的泳池溺水檢測算法

      為了能夠準確地發(fā)現(xiàn)泳池溺水游泳者,本文提出一種基于人體姿態(tài)估計的泳池溺水檢測算法,利用游泳者的關鍵點距離變化來檢測溺水行為,算法流程如圖1 所示,步驟如下。

      圖1 基于人體姿態(tài)估計的泳池溺水檢測算法

      步驟1:對游泳者視頻數(shù)據(jù)每隔10 幀截取一張圖片,輸入到訓練好的OpenPose 姿態(tài)估計模型進行人體姿態(tài)估計(如有關鍵點缺失,則進行填充),獲取圖片中游泳者的18 個關鍵點坐標。

      步驟2:重新建立坐標系,以脖子關鍵點為原點,水平向右方向為x 軸,豎直向下方向為y 軸更新其他關鍵點的坐標。計算其他17 個關鍵點與原點的距離,構(gòu)造游泳者的關鍵點距離向量。

      步驟3:如果當前截取的游泳者圖片的關鍵點距離向量與之前計算好的一個或多個溺水狀態(tài)關鍵點距離向量集合(總共有13 個)的首個距離向量的R2大于等于0.6,則繼續(xù)對截取的下一幀游泳者圖片與對應的溺水狀態(tài)關鍵點距離向量集合的第二個距離向量進行比較,以此類推,若連續(xù)20 次關鍵點距離向量的R2都大于等于0.6,即截取的游泳者的20 幀圖片關鍵點距離變化與其中一種溺水狀態(tài)(不會同時匹配多種溺水狀態(tài))的關鍵點距離變化相似,則判定為溺水。否則,重新進行關鍵點距離向量比較判斷。

      1.1 游泳者關鍵點檢測

      OpenPose[15]是當前熱門的自底向上的多人人體姿態(tài)估計模型,先利用深度學習方法檢測圖像中所有人的關鍵點,再將關鍵點劃分給不同的人。相比于其他目標檢測模型獲取游泳者的類別與邊框,通過人體姿態(tài)估計模型OpenPose 獲取游泳者的18 個關鍵點坐標,能夠更準確地描述游泳者游泳過程中的肢體動作變化。

      如圖2 所示,OpenPose 模型的主干網(wǎng)絡VGG19的前10 層提取圖片的特征圖F,特征圖F 進入兩分支多階段卷積神經(jīng)網(wǎng)絡,其中上分支用來預測人體關鍵點位置置信度圖(Part Confidence Maps,PCM),下分支用來預測人體關鍵點的親和力域(Part Affinity Fields,PAF)。第一階段的ρ1和φ1兩個推理網(wǎng)絡生成關鍵點置信度圖S1和關鍵點親和域L1,后面階段將特征圖F 和t-1 階段的預測結(jié)果一起作為輸入,預測該階段的關鍵點置信度圖和關鍵點親和域。

      圖2 OpenPose 模型網(wǎng)絡架構(gòu)圖

      每個階段的PCM 和PAF 都會進行Loss 求解,最后總的Loss 是所有Loss 的和。OpenPose 模型使用匈牙利算法進行最大值匹配,將關鍵點連接成骨架。OpenPose 模型獲取的18 個關鍵點如圖3 所示。

      圖3 OpenPose 模型獲取的18 個關鍵點

      由于泳池攝像頭的拍攝角度、泳池水面的反光、游泳者濺起的水花等影響因素,通過OpenPose 模型對截取的游泳者的圖片進行關鍵點標記,有時會丟失部分關鍵點信息,影響溺水檢測的結(jié)果。因此,本文根據(jù)空缺關鍵點的前后幀的對應關鍵點的均值來填充丟失的關鍵點。填充游泳者丟失的關鍵點的計算方法如式(3)和式(4)所示。xf和yf分別代表填充的關鍵點的橫坐標和縱坐標,xa,ya代表關鍵點出現(xiàn)空缺的前一幀對應關鍵點的橫坐標和縱坐標,xb,yb代表關鍵點空缺結(jié)束的視頻幀對應關鍵點的橫坐標和縱坐標。

      1.2 構(gòu)造關鍵點距離向量集合

      通過OpenPose 模型獲取游泳者的18 個關鍵點坐標,18 個關鍵點坐標的坐標系以圖片左上角為原點,水平向右方向為x 軸,豎直向下方向為y 軸。因為游泳者游泳過程中脖子的變化幅度小,因此,重新建立坐標系[16],如圖4 所示,以脖子關鍵點(x1,y1)為原點,水平向右方向為x 軸,豎直向下方向為y 軸,更新游泳者18個關鍵點的坐標

      圖4 重新建立坐標系

      利用除脖子關鍵點之外的其他17 個關鍵點與原點的距離來描述游泳者的動作,其他17 個關鍵點與原點的距離計算公式

      構(gòu)造17 個關鍵點與原點的距離向量D=[d1,d2,…d17],此時d1表示關鍵點0 到原點的距離,di(i≥2)表示關鍵點i 到原點的距離。

      由于游泳是個連續(xù)的動作變化過程,因此,連續(xù)計算20 幀游泳圖片(對游泳者視頻數(shù)據(jù)每隔10 幀截取一張圖片)的關鍵點距離向量,構(gòu)成游泳者關鍵點距離向量集合Sw={D1,D2,…D20},描述了截取的20 幀游泳圖片的關鍵點距離變化過程。

      1.3 構(gòu)造溺水狀態(tài)關鍵點距離向量集合

      本算法的重點是將游泳者的關鍵點距離向量與溺水狀態(tài)關鍵點距離向量進行相似性比較從而判斷是否溺水。因此,構(gòu)造能夠表征溺水狀態(tài)肢體動作變化的關鍵點距離向量集合是溺水判斷的關鍵。

      本文定義了13 種不同的溺水狀態(tài),將13 個不同類型的游泳者溺水視頻分別每隔10 幀截取一張圖片,利用訓練好的OpenPose 模型對每個溺水視頻截取的20 幀圖片進行人體姿態(tài)估計(如有關鍵點缺失,則進行填充),獲取溺水游泳者的18 個關鍵點坐標,重新建立坐標系,分別計算每個溺水游泳者視頻截取的20 幀圖片的關鍵點距離向量,構(gòu)造出13 個溺水狀態(tài)關鍵點距離向量集合。

      溺水檢測過程中需要對游泳者的關鍵點距離向量與溺水狀態(tài)關鍵點距離向量進行相似性評估,本算法利用R2來衡量2 個向量的相似性,R2定義如下

      2 算法評估實驗

      2.1 實驗數(shù)據(jù)集和過程

      本文的實驗環(huán)境包括:Windows11 操作系統(tǒng),12th Gen Intel(R)Core(TM)i7-12700F 2.10 GHz、16 GB內(nèi)存,GTX 3060 顯卡,PyCharm。

      由于人工對數(shù)據(jù)集中的游泳者進行人體關鍵點標注,費時費力,因此,采用COCO2017 數(shù)據(jù)集的前五萬個樣本按照訓練集∶驗證集∶測試集=8∶1∶1 的比例對OpenPose 人體姿態(tài)估計模型進行訓練。

      使用自制的20 條溺水游泳者視頻(溺水動作為人工模擬)和80 條正常游泳者視頻(包括蛙泳、仰泳等各類正常游泳動作)對本文提出的基于人體姿態(tài)估計的泳池溺水檢測算法進行評估。對游泳者視頻每隔10 幀截取一張圖片,利用訓練好的OpenPose 模型對截取的圖片進行人體姿態(tài)估計(如有關鍵點缺失,則進行填充),獲取游泳者的18 個關鍵點(關鍵點信息包括關鍵點坐標和置信度,保存為json 文件),重新建立坐標系,以脖子關鍵點為原點,構(gòu)造截取的每幀圖片的關鍵點距離向量,利用游泳者連續(xù)20 幀圖片的關鍵點距離向量與溺水狀態(tài)的關鍵點距離向量的R2(使用sklearn.metrics 計算)進行溺水判定。

      2.2 實驗結(jié)果

      為了驗證本文提出的基于人體姿態(tài)估計的泳池溺水檢測算法的有效性,用準確率accuracy、精確率precision、召回率recall 評估算法的性能。將溺水狀態(tài)作為正類,正常的游泳狀態(tài)作為反類,TP 為真正例(預測正確的溺水類別),TN 為真反例(預測正確的正常游泳類別),F(xiàn)P 為假正例(預測錯誤的溺水類別),F(xiàn)N 為假反例(預測錯誤的正常游泳類別)。

      算法評估實驗中部分游泳者視頻幀的關鍵點檢測如圖5 所示。從圖5 可以看出,OpenPose 模型對截取的圖片進行人體姿態(tài)估計,有時會丟失部分關鍵點信息,而本文根據(jù)空缺關鍵點的前后幀的對應關鍵點的均值來填充丟失的關鍵點,可以有效地減小誤差。

      圖5 部分游泳者視頻幀的關鍵點檢測圖

      基于人體姿態(tài)估計的泳池溺水檢測算法的評估實驗結(jié)果見表1。

      表1 基于人體姿態(tài)估計的泳池溺水檢測算法的評估實驗結(jié)果

      由表1 可以看出,對于用來測試的20 條溺水游泳者視頻和80 條正常游泳者視頻,本文提出的基于人體姿態(tài)估計的泳池溺水檢測算法檢測出了17 條溺水游泳者視頻和78 條正常游泳者視頻,錯檢了3 條溺水游泳者視頻和2 條正常游泳者視頻,準確率為95%,精確率為85%,召回率為89.47%。實驗結(jié)果表明,本文提出的基于人體姿態(tài)估計的泳池溺水檢測算法可以有效地檢測出溺水游泳者。實驗過程中,影響本文提出的基于人體姿態(tài)估計的泳池溺水檢測算法的因素有泳池攝像頭拍攝的游泳者照片的角度、泳池的水面反光、游泳者濺起的水花等,在后續(xù)的研究中,可以對截取的游泳者圖片進一步預處理,如圖片矯正、水下圖像處理、剔除反光和水花區(qū)域等。另外,為了提高OpenPose 模型標記游泳者關鍵點的速度,可以對OpenPose 模型進行輕量化處理,如將OpenPose 模型的主干網(wǎng)絡替換為輕量級網(wǎng)絡、合并預測分支等。

      3 結(jié)束語

      為了準確地檢測出泳池溺水游泳者,本文提出了一種基于人體姿態(tài)估計的泳池溺水檢測算法,利用OpenPose 模型對游泳者的圖像進行人體姿態(tài)估計(如有關鍵點缺失,則進行填充),獲取游泳者的18 個關鍵點坐標,構(gòu)造游泳者的關鍵點距離向量,通過計算游泳者關鍵點距離向量與溺水狀態(tài)關鍵點距離向量的相似性來判斷游泳者是否溺水。利用20 條溺水游泳者視頻和80 條正常游泳者視頻評估本文提出的基于人體姿態(tài)估計的泳池溺水檢測算法。實驗結(jié)果表明,本文提出的基于人體姿態(tài)估計的泳池溺水檢測算法的準確率為95%,精確率為85%,召回率為89.47%,可以準確地檢測出溺水游泳者。

      猜你喜歡
      泳池關鍵點姿態(tài)
      聚焦金屬關鍵點
      肉兔育肥抓好七個關鍵點
      攀爬的姿態(tài)
      學生天地(2020年3期)2020-08-25 09:04:16
      如何成為泳池里最搶鏡的小學生
      全新一代宋的新姿態(tài)
      汽車觀察(2018年9期)2018-10-23 05:46:40
      跑與走的姿態(tài)
      中國自行車(2018年8期)2018-09-26 06:53:44
      泳池派對
      好孩子畫報(2016年5期)2016-05-14 09:54:26
      醫(yī)聯(lián)體要把握三個關鍵點
      鎖定兩個關鍵點——我這樣教《送考》
      語文知識(2014年7期)2014-02-28 22:00:26
      殺人的泳池
      渝北区| 乐亭县| 平舆县| 韶山市| 隆化县| 西林县| 财经| 喀喇沁旗| 郧西县| 白水县| 东港市| 马鞍山市| 贵溪市| 黔江区| 永修县| 黄平县| 丰台区| 民县| 嘉禾县| 湟中县| 平江县| 广安市| 延寿县| 潍坊市| 会同县| 马山县| 西平县| 邹平县| 哈密市| 涞源县| 开远市| 南木林县| 塔城市| 鹤庆县| 探索| 阿巴嘎旗| 玛多县| 平果县| 鹿泉市| 广安市| 兴安县|