徐弘毅 鮑蓉 侍亞東



摘要:隨著人口老齡化的形勢不斷嚴峻,養老成為社會一個焦點話題。大多數年輕人選擇背井離鄉或者疲于工作,造成空巢老人數量不斷增加。而在老人獨處時發生安全隱患概率明顯增大。本文以計算機視覺為基礎,探討老人獨處時發生跌倒行為的現象的解決方案,介紹了特征提取和深度學習兩種主流思路,詳細說明了其發展和常用方法,同時對公開數據集進行利弊分析。最后總結了全文使用的方法同時闡述了對該技術未來發展方向的見解。
關鍵詞: 養老機器人; 深度學習; 特征提取; 行為檢測; 危險預警
中圖分類號: TP18? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)03-0211-05
Abstract:As the population ageing situation continues to be severe, elderly care has become a hot topic in society. Most young people choose to leave their homes or get tired of work, resulting in an increasing number of empty-nest elderly people. The probability of potential safety hazards when the elderly is alone increases significantly. Based on computer vision, the solution to the phenomenon of falling behavior when the elderly is alone is explored, two mainstream ideas of feature extraction and deep learning are introduced, and its development and common methods are explained in detail. At the same time, the pros and cons of public data sets are analyzed. Finally. Summarizes the methods used in the full text and expounds insights into the future development direction of the technology.
Key words:pension robot; deep learning; feature extraction; behavior detection; hazard warning
引 言
當今老人的監護問題成為社會焦點,前段時間的新聞報道說“65歲+”5年后將破2億,2050年中國60歲及以上老年人口將接近5億,應對老齡化最重要窗口期開啟。所以在這個大趨勢背景下,迫切需要一個老人監護產品來幫助年輕子女上班時實時關注老人健康,而老人監護一大重要功能即行為識別檢測,老人在家的行為例如站立,跌倒等能夠真實反映老人在家的狀態。本論文即對這項功能進行深入研究。
目前,行為識別已經成為計算機行業的熱點問題,大公司都致力于研究這一非常具有前景的問題。行為識別具有廣泛的應用前景,目前社會最大的應用即監控報警技術,目前行為識別還離不開視頻或圖像技術,所以目前大部分行為識別都基于神經網絡與圖像卷積處理。一開始行為識別主要基于的是特征提取,這是非常有效并且在實時更新的,眾多特征提取算法在這些年噴涌而出,而隨著AI技術的發展,在基于原本行為識別的基礎上更是可以添加機器學習的算法,讓識別更加精確,更具有魯棒性,具備應對各種極端和意外情況的發生。
近年來,國內國外很多優秀的學者在研究行為識別方面取得了很多成果,并且也發表了很多優秀的論文,但是那些論文更多的是基于人體行為識別本身進行討論,而未考慮到行為發生過程中例如老人跌倒的情況,從科研理論算法到真正進入社會應用是需要更多的測試和歸納總結優化的。鑒于此,本文首先對公開數據集進行了介紹,隨后研究了當今行為識別檢測的現狀和目前仍存在的問題,隨后討論當今流行的基于特征提取的跌倒檢測識別和基于深度學習的跌倒檢測識別,對它們的實現原理和實現工具算法等進行詳細的綜述與實踐總結,最后分析結果得出本次實驗的結論,分析該領域的研究趨勢,旨在對老人監護產品中的老人行為識別監測提供不可或缺的幫助。
1 公開數據集介紹
一個好的模型離不開一個好的數據集訓練和測試。在跌倒檢測方面有不少數據集。
UR Fall Detection Dataset由University of Rzeszow創立。該數據集包括70個活動序列。其中30個為跌倒情況,40個為日常情況。數據記錄方面使用了2臺Microsoft kinect相機和相應加速度計記錄跌倒事件。ADL事件即日常生活事件由1臺相機和加速度計記錄[1]。同時每一個活動序列都采用PS Move和x-IMU設備收集傳感器數據。
Fall detection Dataset創建目的在于研究室內跌倒檢測。數據集包括21499張圖像,記錄著8個不同視角組成的5個房間中的景象[2]。參與數據集創建共有5人,兩個男性三個女性分別記錄站著,坐著,躺著和爬行動作。
Multiple cameras fall dataset創建于2010年,該數據集由8個攝像機記錄的24個場景。其中前22個情景包含跌倒和正常情況,后2個僅僅包含正常情況[3]。
UCI Human Activity Recognition Using Smartphones DataSet有美國加州大學歐文分校創立。數據包含30位年齡在19-48歲的志愿者的數據,借助于手機加速度傳感器和陀螺儀傳感器記錄了行走,上樓梯,坐,站立,躺下,下樓梯6個行為[4]。
對于上述四個數據集總結如表1。
2 基于特征提取的跌倒檢測識別
2.1特征提取技術發展概述
特征提取即提取人體圖像采集,然后將圖像進行特征分析,進行分類等操作,最終達到行為識別的效果。特征提取分為全局特征提取和局部特征提取。全局特征提取需要對背景進行優化,隨后能對人體輪廓進行提取,Davis等人最早使用了輪廓來識別描述人體的行為信息,這是基于二維的方法進行人體識別。隨著特征提取的發展,局部特征提取也成了目前研究的熱點,最早由1975年Johansson的實驗,作者將人體劃分為12個特征點,通過這些點模型對人體的行為識別以及特征點提取起到了非常大的引導作用,有了這個特征點方法,可以方便準確地對人的行為進行劃分。
2.2常見特征提取方法
2.2.1基于特征點提取的輪廓識別方法
采用該方法主體流程圖如圖1所示:
首先進行的工作是圖像降噪,圖片往往有很多背景會擾亂人體輪廓的識別,這些干擾往往是由于顏色引起的,所以圖像去燥以及灰度化是對人體識別最先做的工作,圖像去噪有多種方法,這里采用雙邊濾波去燥和鄰域去燥相結合的方法。
鄰域去燥是指對局部相似度分析,從而共同決定在一個鄰域內的像素值,鄰域運算是圖像去燥最基礎的圖像處理工具,常用的有8鄰域去燥,8鄰域就是判斷周圍8個像素點。如果這8個點中255的個數大于某個閾值則判斷這個點為噪聲,閾值可以根據實際情況修改。
而雙邊去燥是將一種非線性濾波器,它采用加權平均降噪方法,這和例如高斯去噪的濾波原理是一樣的,高斯去噪僅僅考慮空間歐式距離,而雙邊濾波去噪正是在高斯去噪的基礎上加入了高斯灰度距離信息的權重考慮,在鄰域內,會導致越接近中心點灰度值的點的權重更大,灰度值相差大的點權重越小。其中空間距離相關高斯函數表達式如式1所示其中(xi,yi)為當前點位置,(xc,yc)為中心點的位置,灰度距離相關高斯函數如式2所示,其中 gray(xi,yi)為當前點灰度值,gray(xc,yc)為中心點灰度值:
相比之下雙邊濾波去噪的優點是相比于高斯濾波,多考慮了一項內容權重,會使最終效果更好,而缺點是由于多計算了一項權重,會讓計算負擔和運算時間變長。最終兩者相乘即最后的雙邊濾波卷積模版。
其次是圖像灰度化,圖像灰度化,目的是去除顏色的影響,讓像素類型從255變成0-1,變成1維像素表示,這樣可以大大減小工作量和計算量,同時易于提取需要的輪廓信息。同樣,灰度化方法也有很多,例如分量法,最大值法,平均值法和加權平均法,這里選擇采用加權平均法,讓生成的圖像相對RGB三分量更加合理。加權平均法公式如式3所示其中[ωR]、[ωG]、[ωB]分別是R,G,B的權值,一般分別取0.299,0.587,0.114時得到的效果最好,這是通過人眼的生理特點得出的最優參數。
然后是輪廓描繪,對于該方面有很多算法算子實現,大多數選擇canny算子,原因是在大部分情況下canny算子實現的效果較好,Canny算子通常基于Sobel算子產生的,Canny算子適用于不同的場合[5],Canny算子有很多可以調整的參數,所以允許根據不同的要求進行調整,所以非常靈活實用,其中還有個算法思想是非極大值抑制,是尋找局部像素點的最大值,然后沿著梯度方向逐個比較。設g1的幅值M(g1),g2的幅值M(g2):
2.2.2基于骨架特征點的行為識別方法
行為識別受到多方面因素的影響,例如光照,視角,背景等,這時候骨架關節點特征點提取的方法就極大可能回避這些問題,1973年Johansson發現人體運動可以通過關節點的移動來描述,有了這一理論后,對于行為識別的方法又提供了一個新思路。
人體骨架主要通過RGB圖像進行關節點估計,隨后追蹤這些關節點的坐標位置,最終判斷出人體的行為,每一時刻的骨架對應關節點都會被計算機或者攝像頭設備記錄下來,形成一系列的時間軸,隨后匹配已經設定好的一系列時間軸在人體骨架提取特征點的基礎上加入人工智能會更加精確[6],但是這里暫時只討論運用圖像識別的方法,暫不涉及人工智能領域方面的知識。
基于人體骨架提取特征點的行為識別可以識別出人體的各類行為,例如站立,坐,行走,摔倒等,滿足監護老人安全的需求,而且人體骨架可以完美匹配任何人,無論是高矮胖瘦的人,都可以識別出骨架特征點,而且骨架的姿勢和幀的時間軸也是固定的,不會隨人和環境的改變而改變,所以這個方法的準確率是可以保證的。如圖2為識別示例。
3 基于深度學習的跌倒檢測識別
3.1深度學習發展概述
隨著機器學習和人工智能的飛速發展,AI技術也被許多學者設想加入傳統行為識別算法中,以提高算法的準確度和識別的成功率,自從發明出CNN后,許多關于使用CNN神經網絡來輔助優化人體行為識別,也有許多相關的資料和源碼供實驗,后續還有RNN,KNN等衍生的神經網絡算法,總體來說,引入了人工智能算法使得識別更加準確,目前人工智能仍處于上升期,后面還會有更多的算法以在行為識別上運用,而目前這些人工智能方法還具有一些或大或小的問題例如分類存在過擬合等意外性,還需要進一步優化,而本章即進行加入了人工智能算法后的人體行為識別。
3.2常用深度學習工具
由于近幾年深度學習發展火熱,使得深度學習工具有了跨越式進步,一方面提高了開發模型效率,同時降低了深度學習入門的門檻。
Tensorflow[7]是由Google公司獨立開發的深度學習工具,是前一代深度學習工具DistBelief的升級款。Tensorflow核心正如其名字含義,即為張量的使用,引入張量的概念大大簡化了開發流程。由于其完全開源,引來一大批AI愛好者使用,成為目前使用最廣泛的深度學習庫之一。
Torch[8]為Facebook公司開發的用于支持機器學習的科學計算框架。主要特點可以隨時查看動態圖,查看網絡變化。同時torch開發團隊重視用戶體驗,根據用戶需求做出很多優化。所以torch成為適用于個人或者小規模團隊開發更青睞的工具。
Keras是一個基于Theano的深度學習庫。其主要特點有采用模塊化各模塊封裝較好,上手簡單,網絡或網絡組合使用更自由等。故依托于這些優點,keras同樣成為目前主流深度學習工具之一。
Caffe是由畢業于UC Berkeley的賈揚清創建。同樣作為一個開源庫,使用語言為C++,同時和很多其他語言有很好的兼容性。目前應用于計算機視覺,自然語言處理,機器人等領域。
3.3跌倒檢測方法
3.3.1卷積神經網絡
卷積神經網絡,即在網絡層中部分層以卷積計算代替矩陣運算。關于卷積神經網絡誕生可追溯到1962年Hubel和Wiesel對于貓大腦中視覺系統研究,提出了Receptive fields[9]的概念。在1980年福島邦彥提出了包含1個卷積層和池化層的神經網絡結構。在20世紀末法國科學家Yann Lecun首次將BP算法應用神經網絡來降低損失,提出LeNet-5網絡,此網絡出現奠定了CNN發展的基礎,但由于當時實現效果并不如主流的機器學習算法所以沒得到大力推廣。CNN大放異彩是在2012年Imagenet比賽中,采用Alexnet和dropout[10]方法使最終錯誤率降低了10%,直接導致CNN的大熱。隨后越來越多的人投入與CNN研究出現VGG[11],DenseNet,GoogleNet,SENet等網絡。
在卷積神經網絡中層的設定主要有5種分別為卷積層,激活層,池化層,全連接層。
對于卷積層,是一組平行的特征圖,該層核心在于卷積運算,對于卷積運算及在特征圖和卷積核在各自定義域上,卷積核每個部分像素點和矩陣對應部分點乘求和操作,數學符號可表達為式11所示,其中f,g分別代表特征圖和卷積核的像素值。
通過卷積運算可以提取數據集中關于跌倒部分的特征,而不同的卷積單元因為權值的不同提取特征不同。
對于激活層,主要目的是為之前提取特征增加非線性特性,常見的激活函數有Sigmoid,Tanh,ReLu,Softmax。各個激活函數優缺利弊不同,需要根據實際問題進行考究。
對于池化層操作和卷積層相同,區別在于池化層分為平均池化層和最大池化層。主要用于對卷積層輸出結果進行降維,增加模型泛化能力。
對于全連接層,在該層主要工作根據前面卷積層和池化層得出的圖像特征進行組合,最終傳送至分類器。
如果模型層數過多而訓練數據過少則會出現過擬合現象,需要進行正則化。常見正則化方法dropout,其工作原理在每個訓練批次中,通過忽略指定規模的特征檢測器,減少過擬合現象。
網絡搭建方面可以選擇手動搭建,如圖3所示網絡為手動搭建網絡。其中輸入格式為247×247,輸出為2×1。
同時更多地采用目前發展成熟的網絡,如VGG,AlexNet,GoogLeNet等,在大多數場景可以有效降低擬合情況。
為了進一步提高準確度引入運動歷史圖(MHI),運動歷史圖即統計同一位置像素變化,并以一定亮度表現出來。基于上述卷積神經網絡提取的人物區域,可以重點監察區域任務上半身的移動情況,出現過快現象及時預警。
總體來看,基于卷積神經網絡的檢測方法在人體檢測,圖像分割方面做得很好,但視頻間各幀信息呈現獨立性,會導致忽略關聯性,盡管通過圖像處理方法一定程度上增加關聯性,但對最終準確率影響不是很大,仍有很大提升空間。
3.3.2 循環神經網絡
卷積神經網絡在圖像特征提取,圖像分割表現十分優異,但對于連續性或者前后關聯性很強的網絡卷積神經網絡表現很差,由此產生循環神經網絡。循環神將網絡彌補了卷積神經網絡在處理序列化數據的不足,同時為深度學習增添新的思想,廣泛用于自然語言處理,圖像識別。
循環神經網絡,即以序列形式數據作為輸入,每個節點類似于鏈表的結點,鏈式連接[4],重復進行同樣操作的一種網絡。廣義上來講循環神經網絡隸屬于遞歸神經網絡范疇。真正意義上循環神經網絡起源于20世紀80年代美國科學家基于Little神經網絡創建具有存儲能力的神經網絡,即為Hopfield神經網絡[12]。同時為了解決出現的長期依賴問題,Jurgen Schmidhuber及其合作者在20世紀90年代提出了神經歷史壓縮器[13]和長短期記憶網絡[14],其中長短期記憶網絡至今任被廣泛使用。而后提出的雙向循環神經網絡[15],門控循環單元網絡[16],XLNet[17]等模型,都為推動循環神經網絡發展起重要作用。見解推進自然語言處理方面研究。
循環神經網絡核心思想用循環的隱含層代替多重隱含層,如圖4,圖5所示為其與傳統神經網絡比較和循環神經網絡展開圖。由此可看出用循環隱含層代替了多個隱含層,而隱含層輸出作為下一次隱含層一個輸入,所以在合并隱含層個數的步數內循環神經網絡具有記憶功能,可以記得合并的隱含層中間的關聯,所以在具有序列特性數據表現良好。
循環神經網絡特別對于文本數據相對敏感,由于在對老人跌倒行為檢測時,輸入的數據可以為傳感器數據,前后幀具有很大的相關性,循環神經網絡作為數據理解描述最合適之選之一[18]。同時還有思路,結合卷積神經網絡和循環神經網絡優點在視頻上實現檢測。此方法既借鑒卷積神經網絡的對圖像特征敏感性可以準確提取圖像特征做圖像分割,去除干擾項,同時利用循環神經網絡對于序列數據處理能力強特點,去除干擾后更易于模型理解視頻內容,從而做出正確判斷。目前來講考慮經濟因素和模型效率,第一種思路即采用循環神經網絡基于傳感器數據的跌倒檢測為常用方法。很多手環,App等借助于基礎設備上傳感器實現跌倒預警功能。
采用循環神經網絡方法對文本數據處理的話速度快,檢測準確率相對較高。但忽略圖像細節容易造成一些上樓,跑步等行為誤判為跌倒,雖然可以人為糾正,但仍需要不影響效率下結合一定圖像細節來實現。
4 結語及展望
盡管行為識別在測試時取得了不同程度的效果,有的效果還是很好的,但是還需要考慮更多老人監護實際情況會遇到的情況,盡量提高方法的泛化解決問題的能力,以應對現實生活中會出現的各種各樣復雜的情況。
首先,基于特征提取的跌倒檢測。其中基于輪廓識別進行匹配分析行為識別,這會在一些簡單場景以及一些設備簡陋的情況下相當實用的算法,實現起來也沒有難度,而且可以隨時通過更改參數等途徑根據實際情況優化算法,可以說很適合情況復雜的實際情況。在當今都是學術研究的行為識別領域,將學術轉入現實生活還是非常有必要的。同時本文也分析研究了基于骨架特征點提取的方法以及人工智能行為識別的實現過程,這兩者都有效一定程度上規避了一些客觀因素的影響,同時出現bug的概率也會大大減小,未來還可以在兩者結合的方向更加深入,在骨架特征點提取的方法基礎上加入人工智能的算法會更加增加準確度,同時大大縮小兩個算法本身的缺點。
目前跌倒檢測發展受阻主要原因有算法發展和設備之間的矛盾,由于算法不斷更新迭代,而部分算法要求設備越來越高使得真正準確率高的算法實用起來難。此外還有數據集的欠缺,目前對于行為檢測數據集很多但對于跌倒檢測數據集仍有欠缺,小程度的影響該技術發展。故對于未來跌倒檢測發展觀點主要有:
1)行為識別產品的算法得到優化,算法和設備矛盾得到一定緩解,系統的識別準確率和實用性更好。
2)擴充更多關于跌倒檢測公開數據集,便于開發者研究。
4)硬件上越來越小巧,運行速度快,低功耗,價格越親民,用戶體驗度好。
參考文獻:
[1] Kwolek B,Kepski M.Human fall detection on embedded platform using depth maps and wireless accelerometer[J].Computer Methods and Programs in Biomedicine,2014,117(3):489-501.
[2] Adhikari, Kripesh, Hamid Bouchachia, Hammadi Nait-Charif. Activity recognition for indoor fall detection using convolutional neural network.2017 Fifteenth IAPR International Conference on Machine Vision Applications (MVA). IEEE, 2017.
[3] Auvinet, Edouard.Multiple cameras fall dataset. DIRO-Université de Montréal, Tech. Rep 1350 ,2010.
[4] Anguita D,Ghio A,Oneto L,et al.A public domain dataset for human activity recognition using smartphones[C]//2013:437-442.
[5] Canny J.A computational approach to edge detection[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1986,8(6):679-698.
[6] 肖秦琨,趙艷,高嵩.基于RGB彩色和深度信息的人體關節點定位[J].國外電子測量技術,2015,34(2):27-30.
[7] Abadi, Martín. Tensorflow: A system for large-scale machine learning.12th {USENIX} symposium on operating systems design and implementation ({OSDI} 16). 2016.
[8] Collobert, Ronan, Samy Bengio, and Johnny Mariéthoz. Torch: a modular machine learning software library. No. REP_WORK. Idiap, 2002.
[9] Hubel, David H, and Torsten N. Wiesel. Receptive fields and functional architecture of monkey striate cortex.The Journal of physiology 195.1 (1968): 215-243.
[10] Krizhevsky, Alex, Ilya Sutskever, Geoffrey E. Hinton. Imagenet classification with deep convolutional neural networks.Advances in neural information processing systems. 2012.
[11] Simonyan K,Zisserman A.Very deep convolutional networks for large-scale image recognition[EB/OL].2014:arXiv:1409.1556[cs.CV].https://arxiv.org/abs/1409.1556
[12] Farhat N H,Psaltis D,Prata A,et al.Optical implementation of the Hopfield model[J].Applied Optics,1985,24(10):1469-1475.
[13] Schmidhuber, Jürgen. Learning complex, extended sequences using the principle of history compression.Neural Computation 4.2 (1992): 234-242.
[14] Huang Z H,Xu W,Yu K.Bidirectional LSTM-CRF models for sequence tagging[EB/OL].2015:arXiv:1508.01991[cs.CL].https://arxiv.org/abs/1508.01991
[15] Schuster M,Paliwal K K.Bidirectional recurrent neural networks[J].IEEE Transactions on Signal Processing,1997,45(11):2673-2681.
[16] Cho K,van Merrienboer B,Gulcehre C,et al.Learning phrase representations using RNN encoder-decoder for statistical machine translation[EB/OL].2014:arXiv:1406.1078[cs.CL].https://arxiv.org/abs/1406.1078
[17] Peters M E,Neumann M,Iyyer M,et al.Deep contextualized word representations[EB/OL].2018:arXiv:1802.05365[cs.CL].https://arxiv.org/abs/1802.05365
[18] 熊昕,陳曉輝,吳宇軒,等.基于改進的循環神經網絡深度學習跌倒檢測算法[J].電腦編程技巧與維護,2020(3):126-127,139.
【通聯編輯:唐一東】