金,陳少昌
(海軍工程大學 電子工程學院,湖北 武漢 430000)
隨著物聯(lián)網的不斷發(fā)展,各種家用電器逐漸實現了智能化[1],但是生活中最常見的鏡子還處于比較初級的狀態(tài)。2012年,日本科技展示會上出現了一面基于安卓系統(tǒng)的智能鏡,除了可以顯示日常的天氣、人體體重等信息,還可感知用戶的手勢操作,可以說是智能鏡的“鼻祖”[2];2017年8月美國紐約一個團隊研制出的智能鏡Eve采用了完全可定制的交互式觸控屏幕,擁有自己的應用商店,可以作為智能家居的控制中樞,實現多種家居控制功能;國內近幾年也出現了功能繁多、應用場景多樣的智能鏡[3]。針對智能鏡的研究一直在進行,但其普及率卻不高,主要原因是成本較高、功能的針對性不夠以及智能鏡與整體智能家居的融合度不高[4]。
本文針對以上問題,構思并設計了基于樹莓派的智能家居機器人i-mirror。利用單向鏡成像原理,通過互聯(lián)網實現通信和控制,加入語音識別、人臉識別等技術,實現智能家居智慧生活的目的。
本文根據實際應用情況,設計出一種適用于多種場合、具備常用智能家居功能、通過人臉識別技術增加安全系數的智能家居機器人i-mirror,它采用樹莓派作為控制處理中心以滿足多功能的實現和信號處理。樹莓派外接成像控制、喚醒觸控、語音轉換、圖像攝取等模塊以及內置人像處理識別、語音識別交互等程序,使智能鏡具有信息顯示、語音交互、人體感知、智能安防、休閑娛樂等功能。智能鏡工作原理如圖1所示。
本文系統(tǒng)的硬件由單面鏡、紅外感應框、顯示屏、驅動板、紅外感應器、樹莓派開發(fā)板、麥克風、攝像頭及繼電器等組成,構成如圖2所示。
圖1 智能鏡工作原理圖
圖2 硬件構成圖
智能鏡的成像控制系統(tǒng)主要由單向鏡、驅動板、顯示屏、紅外框等組成。成像控制系統(tǒng)是智能鏡顯示和人機交互的基礎系統(tǒng)[5]。在保留鏡子本身成像特性的情況下可以顯示包括天氣、新聞等由互聯(lián)網獲得的日常信息。并通過網絡連接可通過用戶的手機進行同步備忘錄、更改提詞板內容、監(jiān)控鏡前鏡像,甚至通過觸摸交互控制連入網絡的智能家居,實現在鏡前自拍、翻閱家庭內置照片等功能。成像控制系統(tǒng)主要依托顯示技術,在家居鏡子上呈現出用戶想要獲得的信息和操控單元。
為解決最基本的觸控交互問題,本文系統(tǒng)采用外加紅外框的方式實現。紅外框通過USB端口可直接與樹莓派相連。其主要工作方式是在紅外框內部構建紅外網絡,通過觸控物體遮擋網絡的某一點確定預期觸控位置,從而達到觸控交互的目的[6]。優(yōu)勢在于這種交互問題解決方式對鏡面無更高要求,價格便宜,只需在連接紅外框后進行相關定位調試即可,開發(fā)成本低,有利于在現有的鏡面基礎上進行開發(fā)而無需重新進行相關設計。同時,相較于電容電阻屏幕觸控,該方式對于用戶的觸控端沒有過高要求,可以滿足潮濕手指、非導體觸控棒、任意細棒形狀物體等不被電容電阻屏識別的物體對i-mirror進行觸控。
智能家居最根本的要求是節(jié)能。智能鏡也應立足于原有鏡子的價格成本等優(yōu)勢進行發(fā)展,因此i-mirror外接自動紅外喚醒模塊,只有當用戶走近時才會喚醒其智能功能,其余時間只是一塊普通的鏡子,以節(jié)省家庭用電成本。
在進行軟件設計前要對開發(fā)平臺進行相關的準備工作。具體工作為:準備一張2 GB以上的SD卡(建議選用高速卡,推薦Class4以上的卡),卡的速度將直接影響樹莓派的運行速度;下載樹莓派Debian系統(tǒng)鏡像文件;配置SD卡,連接操作鍵盤鼠標、電源線、HDMI線等硬件設備[7]。
由于在日常家居生活中,智能家居系統(tǒng)的各部分工作都相對獨立,所以在本文系統(tǒng)中采用模塊化設計[8]。軟件設計主要涉及人像處理與識別、語音處理與交互、網絡連接、外設控制、信息顯示等模塊設計。整體設計流程如圖3所示。
圖3 系統(tǒng)軟件設計流程
目前,云計算的發(fā)展使得較多終端設備的交互可通過云計算的方式高效準確地實現[9]。在語音交互部分,智能鏡通過調用百度語音識別的應用程序編程接口完成對人類聲音的語音識別。語音識別在云端進行,而語音處理部分在本地進行。該處理方式的優(yōu)勢為:應答模式固定,用戶可通過手機或PC機自主設定,便于控制;處理速度較傳統(tǒng)語音識別更快;中心平臺更安全,語音的閉源處理使得智慧鏡在網絡安全保護方面更具優(yōu)勢。
在語音交互的基礎上,本文編程實現了語音控制。當監(jiān)聽到“開燈”或“關燈”的語音命令后,自動完成對電燈的開關操作。由于智能鏡的開關也通過控制電器的電路,因此該聲控命令可用于控制其他家電。同時,當監(jiān)聽到“放首歌”的語音命令后,自動對音樂庫歌曲進行播放。由于采用了Python程序的線程工作機制,放歌的同時依舊可以使用語音識別功能而互不沖突,從而可使語音識別系統(tǒng)高效運轉[10]。
采用Python語言編寫語音識別程序的步驟如下:
(1)編寫必要的語音庫。包括儲存播放語音內容的字符串數組,儲存歌曲文件名的字符串數組等。
(2)編寫Audiorecord函數完成對用戶的錄音工作。
(3)編寫語音識別V2T函數,將錄下的聲音文件通過百度語音API提交得到返回值,即轉換成文字。若API返回的dict[u'err_no']為0,則識別成功;若返回dict[u'result'],則識別不成功,返回'bad'。
(4)根據返回的字符串結果進行關鍵字匹配,對滿足條件的語音命令、主程序進行對應的操作。當關鍵字中含有“放首歌XXX”的語音命令時,自動搜索歌曲庫中的歌曲。若找到歌曲名為XXX的歌曲,則開啟一路線程播放歌曲,另一路線程繼續(xù)進行語音識別工作;若未找到歌曲,則播放指定的語音提示。當關鍵字中含有“開/關燈”的語音命令時,系統(tǒng)調用Python的GPIO庫,讀取并輸出電位,實現開關繼電器操作;當語音識別結果中含有其他關鍵字信息時,系統(tǒng)根據關鍵字匹配庫播放指定的語音內容。
(5)重復(1)的操作。
智能家居發(fā)展越迅速就越不能忽視安全問題[11],針對一些必要的使用場合,智能鏡添加了人臉識別功能。通過調用優(yōu)圖人臉識別的API,完成對用戶的人臉識別操作。當智能鏡前方無用戶時,鏡子保持在主界面;當智能鏡前方較近距離出現用戶時,自動開啟人臉識別服務,鏡子顯示的內容跳轉至人臉識別頁面。系統(tǒng)自動將攝像頭拍下的人物圖片提交至優(yōu)圖人臉識別API,人臉識別頁面顯示出人臉識別的結果。系統(tǒng)將結果與圖片庫內的圖片進行比較,確認該人臉與圖片庫中人臉的匹配度。若匹配度高于設定值,則執(zhí)行某一特定任務,如輸出語音“主人回來了”或者打開重要的門鎖;若匹配度低于設定值,則執(zhí)行另一特定任務,如控制繼電器導通激發(fā)報警器。當鏡子前方較近距離再次無人時,智能鏡重新跳轉至主界面。
針對鏡子的主要受眾——女性,通過人臉識別與卷積神經網絡技術為i-mirror增加化妝指導功能。在 i-mirror 上訓練好的人臉識別模型包括20余種常見面部情況和10余種臉部常見化妝情況。根據不同的識別結果,i-mirror 給出相應的圖片提示和化妝指導,同時語音播報化妝步驟。i-mirror 形象指導完全在本地運行,不依賴任何聯(lián)網或者設備互聯(lián)。這意味著它不僅可以安放在家用大鏡子上,還可以安放在女士的小化妝盒里,方便隨身攜帶,可隨時隨地給用戶提供指導建議。日常生活中,用戶化妝的主要目的是遮蓋毛孔、雀斑、痘印、黑眼圈等各類面部問題。本文挑選了幾千張人臉圖片,通過R-CNN完成在人臉圖像中可能出現的雀斑、痘印等各種對象的分類和檢測。模型的訓練時長約10 h,迭代訓練2萬次,最終在測試集上達到的平均檢測準確率約為93%。根據分類檢測結果,i-mirror將提供不同的化妝指導建議。另外,i-mirror 還可根據用戶的面部識別結果,判斷用戶的情緒表現,做出更有效的答復。
智能鏡作為智能家居的控制平臺,相當于為用戶在操作與體驗方面提供了一個物理終端,同時在不額外增加家具設備的前提下高效、智能地為用戶提供高品質生活。由于智能鏡本身不含有機電系統(tǒng),故外接控制系統(tǒng)開發(fā)簡單,且成本較低。總體來說,本文提出的智能鏡在開發(fā)、應用等方面都為智能家居提供了一個中心平臺解決方案?;谠摾砟詈驮O計原理實現的“智能鏡”作品,在2018年首屆中國高校智能機器人創(chuàng)意大賽中獲得了創(chuàng)意組“一等獎”。