智能家居語音控制及人臉識別報告設計(樹莓派)

智能家居語音控制及人臉識別

 

目錄

摘要................................................................................................................................. 3

1 設計背景...................................................................................................................... 4

2 項目分析...................................................................................................................... 4

2.1 硬件模塊............................................................................................................ 4

2.1.1 硬件清單................................................................................................. 5

2.1.2 硬件整體框圖.......................................................................................... 5

2.1.3 硬件系統設計.......................................................................................... 5

2.1.4 項目成品................................................................................................. 6

2.1.5 項目基本功能流程................................................................................... 6

2.2 軟件模塊............................................................................................................ 6

2.2.1 工廠架構................................................................................................. 7

2.2.2 語音控制................................................................................................. 7

2.2.3 人臉識別................................................................................................. 9

3 創新點........................................................................................................................ 10

4 未來發展趨勢............................................................................................................. 11

5 流程圖........................................................................................................................ 11

6 總結........................................................................................................................... 12

 

摘要

隨着國民經濟和科學技術水平的提高,各領域的技術迅猛發展,促使家居方面逐漸實現現代化,居住環境更舒適化,所以智能家居也是這種形勢下應運而生的。本次實驗設計並實現了智能家居語音控制以及人臉識別。討論了基於linux的操作系統,以使用(樹莓派)爲硬件基礎,以Visual Studio爲軟件開發平臺,使用了C語言和python作爲開發語言的智能家居系統的設計與實現。通過設計系統,開發了相應的軟件程序,融入了多種學科知識。系統測試表明,該系統滿足實驗最初的設計目的,並且還可以進一步擴展功能。
關鍵詞:智能家居;語音控制;人臉識別

1 設計背景

隨着社會經濟和科學技術的發展,人們對智能化的日常生活愈發嚮往,智能家居已經逐漸成爲未來家居的發展方向。

家居智能化,即將舒適、安全、方便、節能加入我們的生活方式中,能夠實現自動控制、遠程控制操作的系統,比如照明、取暖、空調、安全通信、水系統等系統,讓這些系統更加容易被使用。智能家居是在互聯網影響之下物聯化的體現。智能家居通過物聯網技術將家中的各種設備連接到一起,提供多種功能和手段。與普通家居相比,智能家居不僅具有傳統的居住功能,還兼備建築、網絡通信、信息家電、設備自動化,提供全方位的信息交互功能,甚至爲各種能源費用節約資金。

本次實驗就是設計並實現了智能家居中比較重要的語音控制以及人臉識別功能。

 

 

2 項目分析

2.1 硬件模塊

 

         本智能家居+人臉識別項目採用 樹莓派 爲整體系統的主控芯片,協調系統各個部分的功能,軟硬件結合,作品包括前端傳感器,語音傳感器(WEGASUN-M6),攝像頭模塊(Raspberryb PI 3代),通過語音識別串口數據傳輸,實現語音對家居的燈光控制,與攝像頭控制,攝像頭在接受了語音模塊的指令後,會自動開啓進行對人的人臉識別,一共有5次識別的次數,當這5次中有一次識別是內置的人臉圖像,門鎖會自動開啓,當5次識別不成功,就識別失敗。

 

 

2.1.1 硬件清單

       ·樹莓派主板

    ·樹莓派電源(3節 3.3的鋰電池)

    ·穩壓模塊(AMS1117)

    ·攝像頭模塊

    ·若干個LED

    ·繼電器(5v 低電平觸發)

    ·語音識別模塊(WEGASUN-M6)

 

2.1.2 硬件整體框圖

 

2.1.3 硬件系統設計

    1. 語音識別模塊(   WEGASUN-M6) 來採集外界的聲音,經過模塊芯片的處理來對相應的語音來返回相關的數據,語音模塊通過串口的傳輸將相應的數據到樹莓派。

    2. 攝像頭模塊,facehttp.c函數主要驅動攝像頭進行拍照,拍照後通過popen函數運行p1.py程序,捕獲到p1.py程序運行後輸出到緩衝區的信息,並進行判斷人臉是否匹配並是否開鎖

    3. 樹莓派 用來處理語音模塊返回的串口數據,和攝像頭的人臉比對數據,並將這些數據整理,並得出該處理的結果,協調打開相應的模塊

 


 

 

 

2.1.4 項目成品

 

   

 

 

2.2 軟件模塊

本次實驗的整體代碼架構使用的是工廠模式設計,這種模式在創建對象時不會對客戶單暴露創建邏輯,並且可以通過接口來指向新的創建對象。如圖所示。

     

2.2.1 工廠架構

工廠架構中的設計函數通過鏈表來把這些類函數穿起來,使用的是頭插法:

struct Devices* addUpstairLightToDeviceLink(struct Devices* phead) {
   if (phead == NULL) { //如果該鏈表爲空,則該結構體當成鏈表的頭
   return &upstairLight;
}
else {
   upstairLight.next = phead;//頭插法會改變頭節點
   phead = &upstairLight;
}
通過建立語音線程來調用語音模塊的實現:
while(1){
printf("**************** 1.語音控制 ******** ");
printf("**************** 2.攝像頭人臉識別 **");
printf("yu ying\n");
pthread_create(&voiceThread, NULL, voice_thread, NULL);  //調用語音線程
pthread_join(voiceThread, NULL);
printf("do divece contrl*****:%s", voiceHandler->command);
}

 

2.2.2 語音控制

語音串口是數據讀取函數:

 

讀取數據之後,判斷是否有數據:

 

聲音初始化及串口初始化:

 

語音串口函數結構初始化:

 

語音控制代碼:

 

2.2.3 人臉識別

通過樹莓派實現人臉識別。首先通過python解釋性語言實現人臉識別的解釋性函數,通過利用(翔雲-人工智能-API-服務平臺)提供的優質API解決方案,在本次實驗中是直接調用其平臺的API,不研究其內部資料。

#coding=UTF-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import requests      #導包並設置字符編碼,因爲在py中,出現中文默認會報錯
url = r'https://netocr.com/api/facerecog.do'      #翔雲api的接口地址
key = r'用戶個人的key碼,可在個人中心查看'                
secret = r'用戶個人的secret碼,可在個人中心查看'    
typeId = 21                                      #服務類型
rFormat = r'xml'
簡單編寫一下改接口代碼,如下:
file1 = {'file1': open('file1.jpg', 'rb'),'file2':open('file2.jpg','rb')} 
data = {'key':key, 'secret':secret, 'typeId':typeId, 'format':rFormat} 
r = requests.post(url, files=file1,data = data)  
if str(r.text).find('是')!=-1:
    print(1)
else:
    print(0)

如果返回的信息中帶有“是”,則表示比對成功(向緩衝區輸出1,方便被popen函數調用時捕獲到運行結果),否則表示比對失敗(向緩衝區輸出0,方便被popen函數調用時捕獲到運行結果)

 

通過system函數驅動攝像頭拍照:

 

通過popen函數運行py文件訪問接口,獲取到人臉識別結果存入到文件流p中,並且存入字符數組ch:

 

對比結果爲1時,代表對比成功,即開鎖:

 

人臉識別模塊代碼:

 

3 創新點

   1. 實現對全宅燈光的智能管理,可以用語音等多種智能控制方式實現對全宅燈光的遙控開關,調光,全開全關及“會客、影院”等多種燈光場景效果的實現;從而達到智能照明的節能、環保、舒適、方便的功能。

    2.將語音軟件設置成自動應答模式,讓人通過相應的語音指令,使語音模塊自動的應答,使其更加人性化,功能化,說出的語音指令都能得到迴應,更加的讓人放心,與開心。

    3.語音喚醒攝像頭人臉識別,使其安全性能更高,更加顯示未來的智能家居的可觀性,人機對話的智能化。

    4. 攝像頭人臉識別開鎖,方便又快捷,即提高了未來智能家居的智能性,也提高了其安全性,隨着人們居住環境的升級,人們越來越重視自己的個人安全和財產安全,對人、家庭以及住宅的小區的安全方面提出了更高的要求;同時,經濟的飛速發展伴隨着城市流動人口的急劇增加,給城市的社會治安增加了新的難題,要保障小區的安全,防止偷搶事件的發生,而攝像頭識別便是未來的智能安防的趨勢

 

 

 

4 未來發展趨勢

通過Zigbee,用戶不僅可以實時地查看房屋內的情況,還可以進行遠程操控和語音控制。同樣,可以通過對家中各類智能插座、開關的數據進行統籌分析,實現對家庭的能源管控,指定一些節能環保的家電使用計劃。給人們帶來一個舒適高品質且高安全的生活,集安防監控和家電燈光控制爲一體,使原本傳統的家居發生質的改變,便利人們的生活。

使得家居中的一切實現“物物相連”的物聯網化。國務院也出臺了一些相關政策,確立了物聯網產業體系的指示。

雖然目前不可能涵蓋智能家電的所有特性,但是智能家居已經是非常明顯的主流發展方向,在未來,智能家居會逐漸成爲人們。

 

 

5 流程圖

       通過語音識別分爲兩種指令 1.是智能控制燈光 2. 開啓人臉識別開鎖 通過語音代碼的相關指令來控制智能家居里的各個燈光的啓動和關閉,通過人臉識別來進行智能開鎖等功能。

 

6 總結

       這個項目是我們的創新設計智能家居語音+人臉識別,因爲人臉識別是用python 方案來寫的,軟件與硬件相結合,處理之下花了不少時間,人臉識別之前從網上找了不少的方案,但都不能和硬件兼容起來,後面從csdn 該博客上偶然間知道了(翔雲-人工智能-API-服務平臺)這個平臺的方案,解決了我們攝像頭採用python深度處理的方法,也完美的和老師的創新課設相融合,智能家居系統這個項目還沒完成,只是僅僅是語音控制,和人臉識別而已,後面我會完善更多的功能,來實現手機控制,家居各方面的智能管控,在寫這個系統時我們剛開始也遇到了很多問題,無論是軟件或者是硬件,比如寫語音模塊時,因爲相應的串口配置參數沒處理好,導致整體的功能有很多的報錯或者接受不到 樹莓派的數據,從而啓動不了人臉識別,和燈光的管理,但遇到問題是好的,遇到問題就應有一種解決問題的決心,所以我們當時經過代碼的一次又一次的調,硬件也調了很多次,確保硬件上不會有問題,又把錯誤的信息通過百度去一個一個的試,後來經過一番的調節也終於知道了,是語音模塊的配置上出了問題,知道問題就好辦了,接下來就是解決了,當然問題也不止一個,無論是硬件還是軟件,都出現過大大小小的問題,但解決的方法是不變的,代碼只能一步一步的調,硬件只能一個一個的去排除。當然該系統還是有很多要完善的地方,還有如同老師說的,我們的接線很亂,外觀很不完美,這些都是我們接下來要去處理的。智能家居真正實現的話要用到很多的模塊,而且要對樹莓派與Linux系統也要更加的去理解,所以我們要學的東西還很多很多,我們也會話更多的時間去完善自己,豐富自己。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章