張素嫻,黃 俊,張志豪
(湖州師范學院 信息與工程學院,浙江 湖州 313000)
人腦對形象信息的理解遠比對抽象信息的理解更有為效,用更加形象、直觀的圖形方式表達信息已成為人們日益追求研究目標[1]。與此同時,隨著軟硬件技術的發展,更加切合人類自然行為的人機交互技術也越來越受到人們的重視[2]。
在電腦、手機等電子產品中使用通訊錄作為人腦與機器存儲之間的一種常見接口,大大提高了人們對聯系對象的記錄與查詢效率。傳統通訊錄通常用二維表結構存儲聯系人信息。這類通訊錄可以很方便地通過關鍵字進行檢索,比如常用的根據姓名進行查詢的方式。根據人們的認知習慣與記憶規律,人的大腦更傾向于對圖像、聲音、氣味等形象信息的存儲與處理。人與人之間的信息交流已不僅局限于手機通話、短信等,還包括了以圖像為媒介的信息傳遞與交流。“圈人”等基于人臉檢測與識別的網絡社交工具日漸風靡,表明可視化的信息交流將成為社交網絡的重要需求。將聯系人照片添加到通訊錄中無疑是一種有效方法。然而,基于目前圖像處理技術的發展程度,直接通過圖像索引來查詢通訊錄的方式還遠未普及。
本文結合人腦記憶特性,通過將有意義的人臉照片作為通訊錄查詢的入口,設計、開發一個通訊錄管理工具,實現可視化的信息組織及查詢,為將人的自然行為引入人機交互過程進行了初步嘗試。本文認為,用戶對一些有意義的照片具有較深刻的記憶。通過梳理記憶中的照片,能夠更方便地找到朋友的聯系信息。
傳統通訊錄的查找通?;谛彰ヅ?。比如要找“張三”的聯系方式,需要直接在通訊錄中以“張三”作為關鍵字進行搜索。用戶在被查找的聯系方式之間通過“姓名”這一高度抽象的載體進行一級關聯。關聯模式如圖1所示。

圖1 通過姓名的抽象關聯模式
該圖反映了在用戶(U)與聯系人(C)之間的關系,這種關系由關鍵字(K,如姓名等)進行關聯。如式(1)所示。

關鍵字與聯系人之間是一一對應關系。之所以稱之為抽象關聯,是因為在用戶與關鍵字之間的對應是抽象的,即用戶需維護一張抽象的關鍵字列表。目前有些通訊錄也支持模糊查詢,即可通過名稱子串、相似串甚至別名等方式來索引聯系人信息,但這種方式本質上并未改變這種抽象關聯的本質。
本文設計的方案融合了“場景”、“肖像”等具體的載體,在用戶與被查找的聯系人之間建立了多級形象關聯。如圖2所示。
這種方式將用戶對具體載體的記憶融入查詢過程,即將用戶與聯系人之間的關系用形象化的記憶信息實行關聯。如式(2)所示。

其中M表示用戶的形象化記憶信息,該信息是掩映不同側面的關鍵字的融合。用符號θ表示這種融合,則M可表示為:

圖2 融合場景與肖像的形象關聯模式

θ反映了M的構成,但具體表達與人腦的思維有關,可能有不同形式。在這個問題中,M是可知的,θ是不可知的,K對M的表征是不全面、不準確的。在軟件設計中,通常的做法是選擇更具代表性的K,以期望其更加準確地表征M。而如何在人機交互過程中直接引入M應該是提高軟件易用性的途徑之一。本文提出的方案在這一方面進行了初步嘗試。
這種關聯方式有以下優點:一是引入了具體化的場景、肖像等元素,使用戶在查找過程中能夠充分利用記憶中的形象信息進行檢索;二是避免了傳統通訊中由于“記不住名字”所帶來的麻煩。
為實現將有意義的照片與通訊錄進行關聯,將系統分為照片獲取、人臉檢測、通訊錄管理三個模塊。照片獲取分別采用本地打開、實時拍攝兩種方式;人臉檢測主要實現人臉的定位及人數統計;通訊錄管理分為編輯通訊錄條目、管理已識別圖片等功能。其中人臉的定位及人數統計是該系統的核心。系統總體結構如圖3所示。

圖3 系統總體結構
該圖虛線上部表示通訊錄的創建過程;虛線下方表示基于圖庫的聯系人查找功能。經過系統處理的圖片將被保存在圖庫中。用戶可根據模糊的記憶通過該軟件打開圖庫中的圖片,進而獲得圖片中朋友的聯系信息。
根據應用需求,一張照片往往包含多位聯系人,基于形象關聯模式的通訊錄軟件需要維護照片、聯系人兩大類信息,因此需分別針對圖片及聯系人創建數據表。本文設計了Picture表用于存儲圖片信息,包含圖片的編號、名稱、圖中人數等字段。結構如表1所示。

表1 Picture表結構
Contact表用于存儲聯系人信息,包含聯系人編號、姓名、電話、通訊地址、備注等字段。結構如表2所示。

表2 Contacts表結構
Picture表和Contact表的主鍵(id)及外鍵(picid)都不為空。關系如圖4所示。

圖4 Picture表和Contact表的關系
兩張表建立關聯主要目的是實現照片與聯系人信息之間的關聯,從而將人腦對場景及肖像的零散記憶融入通訊錄查詢過程。
系統采用Java語言進行開發。照片中人臉的檢測與計數采用 OpenCV(Open Source Computer Vision Library)[3]實現。OpenCV 是一款跨平臺的開源計算機視覺庫,廣泛用于攝像機位置標定[4]、動態手勢軌跡識別[5]、人臉檢測與跟蹤[6-8]等領域。
通過本文設計的通訊錄軟件,用戶可打開本地圖像或即時拍攝圖像,然后分別針對圖像中的人物添加通訊錄并實現基于形象關聯模式的查詢與管理。主要實現了照片獲取、人臉檢測、通訊錄管理等功能模塊。
照片獲取采用兩種方法,一是打開本地圖像,二是實時拍攝。實際應用中可能以打開本地圖像的方法更為常用。
(1)打開本地圖像
采用MyEclipse內置的JFileChooser的對象創建文件打開界面,同時在Description中設置目錄下可選文件格式,在accept函數中篩選出符合Description中的文件格式。核心代碼如下:

若創建多個圖片格式,需重寫setFileFilter接口,及接口中的Description和accept函數。
(2)實時拍攝
該功能需要用到sun公司的媒體流的插件JMF。首先調用攝像頭驅動接口,獲得視頻流地址,創建DataSourse的數據源,然后用Swing組件的方式調用攝像頭顯示視頻流。同時還需要編寫輔助線程用于播放點擊時拍照的聲音。顯示視頻流的核心代碼如下所示:

點擊拍照按鈕時執行兩項操作:一是在控件上顯示圖像流數據;二是保存圖像文件。
本文用OpenCV確定人臉位置并計數,通過將圖像掃描窗口中的內容與預存的人臉特征圖片對比進行判斷。為提高檢測精度,首先采用級聯分類器進行多重循環掃描,然后選擇最合適分類器的結果作為最終結論。
識別期間采用多輪分層次的地毯式掃描,如果一個區域多次呈現與視覺庫中模型相似的特重,則對該區域進行坐標標記,并進行計數。核心代碼如下:

在識別后的圖片中采用紅色方框標出所有人臉區域,并給出照片中的人數。
系統將保存已經檢測過的圖片,并對其進行管理,包括修改圖像信息、根據姓名或其他關鍵字進行檢索等,以便于更加有效地查找用戶所需信息。該模型主要包含聯系人的添加、更新、檢索等功能。由于本文設計的通訊錄將以圖片及圖中的人物肖像為索引。因此系統需針對圖片中不同的人臉區域添加聯系人信息,主要包括姓名、手機號、通訊地址等,還可以對相應人臉區域進行備注。
例如,系統打開一張照片,將首先檢查該照片是否已存儲在數據庫中,如果未存儲在數據庫中,則意味著該照片尚未進行過人臉檢測,接下來將啟動人臉檢測流程。經過人臉檢測的圖片,可以分別針對人臉區域編輯聯系人信息,或通過點擊人臉區域進行信息查詢。
在后臺以圖片聯系人編號檢索數據庫。在界面中將系統識別出的人臉位置與聯系人數據建立一一關聯,方便用戶根據對照片的理解迅速找到聯系人數據,提供了更為新穎的查詢體驗。系統界面如圖5所示。

圖5 系統界面
該圖展示的是打開圖片后系統自動識別出人臉區域,并在左下角顯示人數統計結果。人臉區域的淺色矩形指示了系統識別出的人臉位置。在右側區域可以進行通訊錄管理。
隨著移動技術的發展及電子設備的普及,用戶與系統之間的交互越來越占有突出的地位。針對目前的通訊錄查詢交互模式多基于抽象關鍵字列表的情況,本文提出一種用戶與聯系人之間的形象關聯模式,并基于該模式實現了一款通訊錄軟件。利用該軟件,用戶可在對照片識別進行人臉檢測的基礎上進行聯系人信息管理,從而實現了將用戶記憶中的形象信息引入人機交互過程,有效提高了查詢效果與軟件應用趣味性。
[1] 戴超凡,王明利.研討信息交互式可視化平臺設計與實現[J].計算機工程,2010,36(1):238-240.
[2] 管業鵬.基于多模態視覺特征的自然人機交互[J].電子學報,2013,41(11):2223-2229.
[3] 陳勝勇,劉盛.基于OpenCV的計算機視覺技術實現[M].北京:科學出版社,2008.
[4] 李洪雷,管群,胡凱衡,等.VC++環境下基于OpenCV的攝像機標定系統的開發[J].計算機應用與軟件,2011,28(6):19-21,31.
[5] 江超,艾矯燕.基于OpenCV的攝像頭動態手勢軌跡識別及其應用[J].計算機應用,2012,32(S1):128-133.
[6] 朱承志.基于OpenCV的人臉檢測與跟蹤[J].計算機工程與應用,2012,48(26):157-161.
[7] 陶穎軍.基于OpenCV的人臉識別應用[J].計算機系統應用,2012,21(3):220-223.
[8] 張瑩,李勇平,敖新宇.基于OpenCV的通用人臉檢測模塊設計[J].計算機工程與科學,2011,33(1):97-101.