本課程的目的在於展示如何在Raspberry Pi項目中添加面部識別功能。
注意:該面部識別門鎖設計並不應該被應用於保護或鎖定任何有價值的物品或房屋上。一個簡單的破解方法就是將“列入白名單”的用戶的照片舉到相機前就可以將門打開。
在本課程中,我將說明如何使用Microsoft的Face API(應用程式設計發展介面)為您的Raspberry Pi專案和應用程式添加面部識別功能。該項目基於一個Microsoft面部識別門鎖項目。這是一個中級課程。在此我假設您已經在Raspberry Pi上設定了作業系統(OS)。如果沒有的話,我建議您對Raspberry Pi進行設定,然後在完成一些入門級專案後再嘗試本項目。
注意:請確認您獲取的是Microsoft認證的硬體,否則在您的Raspberry Pi上啟動並運行Windows 10 IOT時會遇到問題。點擊此處可以找到經過認證的硬體。
裝置 | 連結 |
---|---|
Raspberry Pi 3 | Raspberry Pi 連結 |
Microsoft LifeCam HD-3000 | WebCam的Amazon連結 |
HDMI 電纜 | HDMI 電纜連結 |
LED | Adafruit LED連結 |
滑鼠 + 鍵盤 | 任何有線USB滑鼠 +鍵盤 |
顯示器/TV | 任何具有HDMI的TV或顯示器 |
跳線 | 跳線Amazon連結 |
微型USB電纜 | 微型USB電纜Amazon連結 |
麵包板 | 麵包板Amazon連結 |
微型SD卡 | Samsung SD卡連結 |
按鍵 | w/ Caps按鍵連結 |
1. Windows 10 IoT核心版安裝
1.2 安裝步驟
Windows 10 IoT核心版是您需要在Raspberry Pi上運行的用於此專案的作業系統。它是Windows 10針對Raspberry Pi之類的小型裝置和單板電腦進行最佳化之後的版本。該專案還需要您在PC上安裝Microsoft Visual Studio。
本課程的重點在於向Raspberry Pi中添加面部識別功能,而不是安裝Windows 10 IoT核心版,但是還是在這裡補充一些安裝技巧。
如果有任何問題,請參閱包含了調試與安裝過程的本篇文章。
2. 設計電路
2.1 我的電路
我通常使用一個開源的包含原理圖繪製及PCB佈線功能的軟體Fritzing來繪製接線圖。您可以用過以下連結下載Fritzing(可選):http://fritzing.org/home/
第一個原理圖是我所構建的以LED作為驅動器的電路圖(圖4:w/ LED電路圖)。我將一個引腳直接接地來作為一個感測器,以使應用程式透過相機拍照。該項目可以被修改為透過使用任何其他類型的驅動器和感測器來實現面部識別功能。
2.2 專案應用—門鎖
第二個電路是用一個繼電器作為驅動器,用一個按鍵作為感測器(圖5:w/繼電器以及門鎖的電路圖)。如果您希望將您的設計作為一個門鎖使用,則應該構建該電路。門鈴向相機髮出訊號使其拍照。繼電器控制電子門的動作(斷路),如果所拍攝的照片與“白名單”上的用戶匹配,那麼繼電器將會把門打開,否則保持鎖定狀態。
注意:該面部識別門鎖設計並不應該被應用於保護或鎖定任何有價值的物品或房屋上。一個簡單的破解方法就是將“列入白名單”的用戶的照片舉到相機前就可以將門打開。
創建一個您打算存放本專案檔案的資料夾。使用git clone指令下載專案。
git clone https://github.com/ms-iot/Facial-Recognition-Door.git
在Visual Studio中,打開名為FacialRecognitionDoor.sln的文件。要接收API金鑰,請使用此連結,然後點擊“免費試用識別功能(Try Cognitive Services for free)”,然後選擇Face API,按照登錄說明接收您的唯一金鑰。在“Constants.cs”中輸入金鑰,替換OXFORD_KEY_HERE(圖7:Oxford API金鑰)。在此檔中,您還可以更改用於門鈴的引腳和用於控制門鎖的繼電器。您也可以更改“列入白名單”的用戶以及被拒絕使用者的資訊。
在螢幕的左上方,將下拉式功能表改為“Debug”,“ARM”以及“Remote Machine”(圖8:調試配置)。
4.1 部署應用程式
有多種方法可以將應用程式部署到您的Windows IoT裝置上。我將在下面列出幾個不同的選項。其中一個可能比其他方法更容易一些,具體情況要取決於您所使用的硬體。我使用的是第一個方法。
4.2 運行應用程式
當應用程式開始運行時,您將在螢幕上看到以下圖像(圖9:面部識別啟動頁面)。您需要做的第一件事就是將自己添加到允許透過的“白名單”中。為此,請選擇螢幕右下角的加號(+)按鈕。然後頁面會顯示要求您拍攝一張ID照片。您可以對準鏡頭然後點擊“拍攝ID照片(Capture ID Photo)”,然後相機會拍攝一張您的照片並將其顯示在螢幕上。最後輸入您的姓名,按一下“確認(Confirm)”對用戶個人資料進行確認。
現在,當您站在相機前時,可以按下按鍵或者門鈴。如果應用程式將您識別為“白名單”用戶,將會解鎖10秒鐘。
恭喜您完成此項目。現在您可以對該應用程式進行修改來將面部識別API使用到其他Raspberry Pi項目中了。