以Java自由軟體平台為基礎之視覺型居家照護與查詢系統
A Vision-based Home Care and Query System on Java Open Source Platform
研究生:蘇忠原 指導教授:劉震昌 博士
隨著國家的經濟與醫療日漸發展,可以預期的是國人的平均壽命會逐年攀升,老年人口的比例也會因少子化而升高,為了要降低看護獨居老人所花費的人力成本,本論文發展出一套視覺型居家照護與查詢系統,可偵測獨居老人是否有跌倒的情況發生,並適時發出警報訊息通知監控者,期望以電腦視覺代替人類視覺,確保獨居老人的安全。系統開發架構在一個以 Java 自由軟體平台為基礎的監視系統下 [1][2],此監視系統不但提供網路群播的功能,更具有功能的擴充性。
本論文基於行為分析來偵測跌倒事件,可分類的姿勢包括站著、坐著、彎腰、側躺和傾斜躺等五種。在特徵擷取的部份,除了求出前景輪廓的最小矩形的長寬比和水平、垂直投影的離散傅立葉係數 (discrete Fourier transform,DFT) 外,我們也提出利用主成份分析 (principle component analysis,PCA) 計算出共變異矩陣(covariance)、特徵向量 (eigenvectors) 和特徵值 (eigenvalues) 以求出最符合前景輪廓橢圓的長短軸比,與長寬比一起使用可得到一組非常具有鑑別性的特徵。我們自行模擬各種跌倒的情況當作訓練與測試資料,實驗的結果顯示我們所提出的特徵能有效的改善傾斜躺和整體姿勢的辨識率,分別為 99% 和 98.6%。另外本論文是利用站著和躺著姿勢之間的時間關係來區分跌倒和正常的躺下,所以對於正常的躺下並不會有錯誤的警報發生。
本論文參考計畫 [1] 所建置之網際網路為基礎的數位監視系統 (IP-based Video Surveillance System,IVSS) ,架構圖如圖 1 所示,壓縮影像送出伺服器子系統 (Compressed Video Pumping Server Subsystem,CVPS) 負責擷取監視的影像畫面並壓縮後,透過群播的方式將監視影像傳送至網路,然而在廣域網路上的路由器並非都支援群播,這是因為網路管理者為了避免外部大量群播封包影響到內部的網路,通常都會將群播轉送的功能關閉,因此造成了群播網路與群播網路之間形成群播孤島 (multicast islands) 的關係。因此在先前計畫中亦利用 IP tunneling 的技術實作了可連通多個群播孤島的群播代理人 (Multicast Agent,MA) 與負責管理 MA 資訊的超級代理人 (Super Agent,SA)。此外亦有指令與組態網頁伺器子系統 (Script and Configuration Web Server Subsystem,SCWS) 負責執行使用者所選擇的監視需求以及各監視點設定和管理權限,瀏覽器檢視與管理子系統 (Web Browser View and Management Subsystem,WBPM) 提供完善的介面讓使用者方便管理各項參數設定與即時與錄存監視畫面的檢視,影像錄製及查詢子系統 (Video Record and Query Subsystem,VRQS) 負責將接收到的監視影像轉成影片格式並存檔備份以提供日後需要可調閱監視畫面。
圖 1 網際網路為基礎的數位監視系統 (IVSS)
我們將參考 [3] 所實做出來的系統稱為 baseline system,可以辨識的姿勢有 standing、bending、sitting 和 side lying 等四種,如圖 2 (a) ~(d),side lying 為跌倒的方向為側邊。而為了增加系統的實用性,我們加入 slantwise lying 類別,也就是跌倒的方向為傾斜,如圖 2 (e),並針對此類別提出新的特徵,稱為 proposed system。
圖 2 可分類的姿勢。(a) standing,(b) bending,(c) sitting,(d) side lying,(e) slantwise lying。
本論文所建置的居家照護與查詢系統 (Home Care and Query System,HCQS) 的架構圖如圖 3 所示。本系統會接收在同一個網段的 CVPS 或是不同網段的 MA 所送過來的監視影像,將擷取到不含有前景的影像畫面經過 Gaussian model 來建立背景模型,為了讓背景模型符合目前的環境,我們會隨時更新背景模型,然後利用背景相減的方法將前景從背景中分割出來,並求出前景輪廓的水平和垂直投影的直方圖,之後使用水平和垂直投影的直方圖求出最小矩形的長寬比、DFT 係數和使用 PCA 求出前景橢圓的長短軸比來當作特徵,經過 SVM (林智仁 [4] 等人所發展的 LIBSVM) 可得到目前前景的姿勢,再將此前景的姿勢經過 [3] 所提出偵測跌倒機制的流程來判定是否為異常的姿勢行為。所謂異常的姿勢行為是當前景跌倒後一直躺在地上,此為緊急事件 (emergency event),或是當前景跌倒後轉換為坐著的姿勢但無法自行爬起來,此為緊告事件 (warning event)。發生以上兩種情況,系統會自動發送警報訊息通知使用者,並會開始錄製影像與記錄相關資訊到資料庫中,以便使用者日後查詢與觀看影像,如圖 4 為本系統演算法的流程圖。
圖 3 居家照護與查詢系統 (HCQS)
圖 4 本系統的流程圖
雖然前景最小矩形的長寬比特徵具有一定程度的鑑別性,但較容易將 slantwise lying 與 sitting 混淆,為了改善此問題,我們另外求出前景橢圓的長短軸比,並提出了結合前景最小矩形的長寬比和橢圓的長短軸比來當作一組強健的特徵。方法主要為利用 PCA 的演算法計算出前景的共變異矩陣、特徵向量和特徵值,接下來利用特徵向量和特徵值計算出橢圓的長短軸比。我們畫出橢圓的長短軸比與最小矩形的長寬比的分佈圖,如圖 5。從圖中可以看出五種姿勢類別分別呈現群聚的現象,此現象對之後分類器的分類會有不錯的結果。
圖 5 橢圓的長短軸比與最小矩形的長寬比分佈圖
實驗結果 1:baseline system 與 Juang [3] 的方法比較
訓練影像資料為四種姿勢各 20 張,測試影像資料為四種姿勢各 100 張。從表 1 中可以看出 baseline system 與 [3] 不同的地方在於我們的分類器是選擇 SVM。從 Average recognition rate 可以看出我們的 baseline system 和 [3] 的四種姿勢的平均辨識率都是 97.8%,這證明了 SVM 是一個強健的分類器。接下來我們觀察表 2 和表 3 的 Confusion Matrix,表中 Ground truth 為正確的答案,Classification 則為系統所分類的答案,兩者顯示各種姿勢的正確率是差不多的。
表 1 baseline system 與 [3] 的比較 (四種姿勢)
表 2 baseline system 的 Confusion Matrix (四種姿勢)
表 3 [3] 的 Confusion Matrix (四種姿勢)
實驗結果 2:baseline system 與 proposed system 實驗數據結果比較
訓練影像資料為五種姿勢各 20 張,測試影像資料為五種姿勢各 100 張。為了提升系統的實用性,我們於 baseline system 加入 slantwise lying 類別,使用的特徵與之前一樣, 而 proposed system 則加入橢圓的長短軸比特徵。表 4 中 baseline system 的 Average recognition rate 為 97.0%,而 proposed system 則為 98.6%,底下我們進一步的分析探討原因。從表 5 和表 6 中可看出 proposed system 中每一種姿勢的 Recognition rate 皆高於或等於 baseline system,接下來我們看表 5 中 slantwise lying 類別,標記橙色的部分為有 2 個 slantwise lying 類別錯誤分類到 sitting 類別,也就是說,當發生跌倒的方向為傾斜時,系統有可能會將 slantwise lying 類別錯誤分類到 sitting 類別,這會影響到後續的警報結果。表 6 中標記橙色的部分則沒有任何的 slantwise lying 類別錯誤分類到 sitting 類別。以上結果顯示加入橢圓的長短軸比這特徵除了會提高姿勢整體的辨識率,還可以有效的改善 slantwise lying 類別錯誤分類到 sitting 類別。這裡需要說明一下的是 side lying 類別與 slantwise lying 類別混淆時對本系統其實是沒有什麼影響,因為此兩種類別的性質同屬於躺著,只是方向不同,所以本系統還是會適時的發出警報。
表 4 baseline system 與 proposed system 的比較 (五種姿勢)
表 5 baseline system 的 Confusion Matrix (五種姿勢)
表 6 proposed system 的 Confusion Matrix (五種姿勢)
實驗結果 3:proposed system 實驗結果
由於真實跌倒的影片取得不易,所以我們模擬跌倒的方式來測試本篇論文所提出
proposed system
的效能,本系統在影像解析度大小為
320240
的實驗環境硬體平台上每秒可處理
15
張
frame。圖
6
為跌倒後一直坐在地上,沒辦法站起來,大約經過
250 張
frame,約為
17 秒,系統會自動發出
warning
事件訊號並開始錄製影像,表示此人雖然沒有立即的危險,但還是需要有人幫忙。而系統會持續發出warning
事件訊號直到前景能夠站起來。圖
6
(a) 為接收
CVPS
所傳送來的監視影像,分別為
frame 29、36、49、60、104、181、337
和
560。圖
6 (b)
為經過
SVM
分類器所得到的姿勢類別。圖
6
(c) 為當偵測到跌倒並經過
100 張
frame
後,每
150 張
frame
就會送出
warning
事件訊號,結果顯示本系統能夠成功的偵測到
warning
事件。圖
7
為跌倒後一直躺在地上爬不起來,系統在經過約
17 秒後自動發出
emergency
事件訊號,並開始錄製影像,表示此人的生命有危險,需要立即的幫助,結果顯示本系統能夠成功的偵測到
emergency 事件。圖
8
為前景跌倒的方向為傾斜,實驗結果顯示當發生傾斜方向的跌倒事件時,本系統能成功的偵測到並適時的發出
emergency
事件訊號。
圖 6 前景跌到後一直坐在地上。(a) 從左到右,從上到下,影像分別為 frame 29、36、49、60、104、181、337 和 560,(b) 經 SVM 分類後的姿勢類別,(c) 所送出的 warning 訊號。
圖 7 前景跌到後一直躺在地上。(a) 從左到右,從上到下,影像分別為 frame 138、189、200、211、226、261、301 和 486,(b) 經 SVM 分類後的姿勢類別,(c) 所送出的 emergency 訊號。
圖 8 前景跌倒的方向為傾斜。(a) 從左到右,從上到下,影像分別為 frame 131、153、156、166、181、455、546 和 705,(b) 經 SVM 分類後的姿勢類別,(c) 所送出的 emergency 訊號。
本論文發展出一套視覺型居家照護與查詢系統,具有即時性,為了增加系統的實用性,我們加入了 slantwise lying 姿勢類別,並且提出了一組橢圓的長短軸比結合最小矩形的長寬比為一組強健的特徵,除了能有效的偵測 slantwise lying 以及降低 slantwise lying 錯誤分類到 sitting 的可能,也提高了整體姿勢類別的辨識率。而當系統偵測到跌倒後一直躺在地上或是坐在地上無法站起來時,系統會即時的發出警報通知監控者予以協助,這樣不但能降低跌倒可能帶來的傷亡,更能增加老人對於獨立生活的信心。
本系統目前只能偵測走路時發生跌倒的情況,未來將根據不同跌倒的特性來設計出其它的演算法,如從椅子或是床上摔下來等情況。另外跌倒的事件在夜晚發生的機率較白天高,所以未來將結合 IR 攝影機,來偵測夜間是否有跌倒事件,以期發展出一套更完整的居家照護與查詢系統。
[1] 王家輝, 張瑞益, “建構網際網路協定為基礎的數位監視系統的 Java 自由軟體平台 (IVSS),” 國科會計畫結案報告, NSC 95-2218-E-130-002.
[2] 張瑞益, 王家輝, 劉震昌, “Java 自由軟體平台之數位監視系統,” 國科會計畫結案報告, NSC 96-2218-E-002-029.
[3] Chia-Feng Juang and Chia-Ming Chang, “Human Body Posture Classification by a Neural Fuzzy Network and Home Care System Application,” IEEE Transactions on System, Man, and Cybernetics, page(s): 984-994, 2007.
[4] Chih-Chung Chang and Chih-Jen Lin, LIBSVM: a library for support vector machines, 2001. Software available at http://www.csie.ntu.edu.tw/~cjlin/libsvm