close

  這是清華大學金仲達教授在資訊系統應用研究所的教學講義。裡面從情境感知的研究動機, 各種方法論, 介紹到目前已有的情境感知應用, 開發情境感知應用的流程, 目前的挑戰與議題, 和林林總總相關題材, 都收錄其中, 可說是相當完整的一份教材, 投影片 124 張可不是來虛的。


  研究動機不用多說, 總之科技始終來自於人性, 這是至理名言。我們希望帶領計算機走出自閉症的黑箱世界, 過去透過人為互動的介入, 來修正需求與資訊輸出不對稱 ( 媒合失誤 ) 的狀況, 得以經由情境感知的技術, 來盡量排除人為介入的部份。


  對於情境種類的定義, 除了之前 Wiki 上提到 Schmidt 的分類法外, 另外有 Kotz 的分類法, 區分為主動式情境 ( Active Context ), 以及被動事情境 ( Passive Context )。主動式, 代表情境資訊會整個改變應用系統的行為模式, 例如會議中, 行動電話自動拒接或轉接。被動式, 則只是單純影響應用系統資訊呈現方式, 例如依使用者習慣與喜好, 對資訊做不同的優先排序。


  情境感知可以舉出的應用例子太多了, 這篇投影片也用了三分之一的篇幅來呈現這些例子, 然而對我來說, 真正有價值的部份從中段才開始: 如何開發情境感知系統?


  這個開發流程主要有五個步驟:


  1. 定出規格: 要利用哪些情境? 對應的行為表現? 好的開始是成功的一半, 問對問題遠比回答問題重要。

  2. 情境資訊的獲取: 需要哪些感應器 ( Sensor )? 要感應哪裡? 感應頻繁次數? 如何描述情境? 如何儲存情境?

  3. 傳送與分佈: 如何傳送資訊? 1 to N or N to 1?

  4. 接收: 如何接收情境資訊? 輪詢? 主動通知? 收集? 過濾? 混合?

  5. 行動: 累積式分析? 分析結果後的行動?


  上述這些是開發情境感知系統必須思考的基本問題, 看似簡單, 其實卻牽引出許多不同的挑戰和議題。例如感應器不同, 背後所需整合的技術就不同, 攝錄機背後需要影像處理與識別的技術, 麥克風需要訊號分析處理的技術, 情境資訊的處理, 使用集中式 / 分散式架構, 感應器的精確度與穩定度, 系統設計的容錯性...。這樣的技術整合, 決不是一個簡單的任務。


  然而除了技術層面仍有重重障礙, 人的因素也有許多必須一同深思熟慮的議題:


  1. 產生尷尬狀況: 例如用來定位的感應徽章, 透露使用者在廁所的資訊, 或是會議中的來電自動轉接, 將一些不合適的電話轉接給外人 - 情婦的來電轉到老婆大人的手機代接?

  2. 避免危險狀況: 需要考慮系統誤判時所造成的代價? 因為煮飯炒菜而誤響的煙霧感應器, 不小心將人困在廁所內的自動門鎖...。

  3. 更多的情境真的帶來更多的幫助嗎?

  4. 隱私權問題: 使用者更加擔心系統捕捉的情境資訊如何運用? 傳送給誰?


  除此之外, 我們也必須考慮市場接受度與實用性等問題。再好的技術, 不被人需要也只是垃圾。


  再來的重點, 也是實做的關鍵就是 Context Modeling, 情境表述的塑模。好的演算法必須架構在合適的資料結構上, 所以情境資訊的塑模決定了感知系統的表現能力範圍。以物件的觀點來看情境塑模這件事, 參予者, 進行活動, 關聯性, 地點, 全都是可供使用的物件 ( Entity ), 這些物件彼此間可以互相參照與多重關聯, 例如一個地點物件可以同時關聯許多參予者物件 ( 代表許多人擠在一個房間 ), 參予者可以關聯到多個活動 ( 趕通告的大明星 ), 一個活動又可以關聯到多個參予者 ( 大家來 meeting 吧 ), 一個活動又可以關聯到多個地點 ( 環島馬拉松 )..., 也就是藉由這樣的關連性塑模, 描述整個情境。


  接下來, 根據這樣的塑模理論, 金教授介紹一套 Java base 實做出來的 Context ToolKit Framework, 這可以經由視覺化元件 ( Context Widget ) 來呈現出感知的反應效果。這套 Framework 可以藉由偵測使用者電腦的周邊設備 ( 鍵盤, 滑鼠, 讀卡機... ) 來感受使用者目前的活動狀態。在這套 Framework 的首頁 http://www.cc.gatech.edu/fce/contexttoolkit/ , 有提供一個範例, 也是金教授投影片後來解說的 In / Out Board


  最後, 提到一種新的 Programming 技術, 稱為 COP - Context Oriented Programming 情境導向編程, 藉由一種可攜移動式文件, 可自動依載具特性不同, 呈現不同表達方式的文件形式 ( 載具是印表機就列印, 螢幕就顯示, 喇叭就唸出內容來... ), 來說明這樣的開發應用。藉由 XML 作為文件描述工具, 內容本文會置於 <gap></gap> 標籤內, 裡面會有 context 情境的資訊, 例如載具, 或是地區, 然後應用系統會根據情境的資訊再跟本文內容做媒合, 取到適當的 Stub 票根程式, 進行資訊適當的呈現, 甚至翻譯。以物件導向的觀點, 這些 Stub 程式其實會繼承自同一個 Stub interface, 而經過類似 Factory / Registry 的機制來媒合決定實際產生的 Stub ( PrinterStub / MonitorStub / SpeakerStub ) 呼叫其 API 來產生 representable content。


  伴隨著感應器, 無線裝置, 無線網路訊號等基礎建設的普及, 這類智慧型行動裝置將進入如雨後春筍的爆炸性演進時代, 當然, 很多問題仍需克服, 其中處理人為因素的問題不見得比技術性問題少, 但是其潛力與前景是不容小覷的, 金教授的這份完整教材, 帶領我們入門到一個科技的新視野, 值得期盼這方面未來的發展。


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 tomtang0406 的頭像
    tomtang0406

    Tom's crazy CS Lab

    tomtang0406 發表在 痞客邦 留言(3) 人氣()