1. 目的
本教程的目的在于展示如何在Raspberry Pi项目中添加面部识别功能。
注意:该面部识别门锁设计并不应该被应用于保护或锁定任何有价值的物品或房屋上。一个简单的破解方法就是将“列入白名单”的用户的照片举到摄像头前就可以将门打开。
2. 概述
在本教程中,我将说明如何使用Microsoft的Face API(应用程序编程接口)为您的Raspberry Pi项目和应用程序添加面部识别功能。该项目基于一个Microsoft面部识别门锁项目。这是一个中级教程。在此我假设您已经在Raspberry Pi上设置了操作系统(OS)。如果没有的话,我建议您对Raspberry Pi进行设置,然后在完成一些入门级项目后再尝试本项目。
3. 设备
注意:请确认您获取的是Microsoft认证的硬件,否则在您的Raspberry Pi上启动并运行Windows 10 IOT时会遇到问题。
表1:设备
设备 | 链接 |
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按键链接 |
4. 目录
- 1. Windows 10 IoT核心版安装
- 1. 安装步骤
- 2. 安装技巧
- 1. 安装步骤
- 2. 设计电路
- 1. 我的电路
- 2. 项目应用—门锁
- 1. 我的电路
- 3. 设置软件
- 4. 部署及运行应用程序
- 1. 部署应用程序
- 2. 运行应用程序
- 1. 部署应用程序
5. 步骤
1. Windows 10 IoT 核心版安装
1.2 安装步骤
Windows 10 IoT核心版是您需要在Raspberry Pi上运行的用于此项目的操作系统。它是Windows 10针对Raspberry Pi之类的小型设备和单板计算机进行优化之后的版本。该项目还需要您在PC上安装Microsoft Visual Studio。
- 1. 格式化SD卡
- 2. 将NOOBS拷贝到您的SD卡
- 3. 在连接到以太网时启动您的Raspberry Pi
- 4. 选择Windows 10 IoT核心版进行安装(图1:Windows IoT安装)
- 5. 安装完成后,完成必要的设置过程,直到进入主页(图3:Windows IoT主页屏幕)。
图1:Windows IoT安装
图2:Windows IoT核心版欢迎页面
1.2 安装技巧
本教程的重点在于向Raspberry Pi中添加面部识别功能,而不是安装Windows 10 IoT核心版,但是还是在这里补充一些安装技巧。
- 1. 确保您使用的是Microsoft认证过的硬件。当我使用的不是经过认证的鼠标和键盘时,这些硬件都无法正常工作。
- 2. 如果您有了一个Windows PC,请下载Windows IoT 10 仪表板来对设备进行设置。如果您使用的是Mac或者Linux计算机,则该选项不适用。
- 3. 确保您的Raspberry Pi是通过以太网而不是Wi-Fi连接到网络的。
- 4. 确保将SD卡格式化为FAT32或exFAT。
- 5. 确保您使用的电源可以为Raspberry Pi提供高达2安培的电流。
如果有任何问题,请参阅包含了调试与安装过程的本篇文章。
2. 设计电路
2.1 我的电路
我通常使用一个开源的包含原理图绘制及PCB布线功能的软件Fritzing来绘制接线图。您可以用过以下链接下载Fritzing(可选):http://fritzing.org/home/
第一个原理图是我所构建的以LED作为驱动器的电路图(图4:w/ LED电路图)。我将一个引脚直接接地来作为一个传感器,以使应用程序通过相机拍照。该项目可以被修改为通过使用任何其他类型的驱动器和传感器来实现面部识别功能。
2.2 项目应用—门锁
第二个电路是用一个继电器作为驱动器,用一个按键作为传感器(图5:w/继电器以及门锁的电路图)。如果您希望将您的设计作为一个门锁使用,则应该构建该电路。门铃向摄像头发出信号使其拍照。继电器控制电子门的动作(关闭),如果所拍摄的照片与“白名单”上的用户匹配,那么继电器将会把门打开,否则保持锁定状态。
注意:该面部识别门锁设计并不应该被应用于保护或锁定任何有价值的物品或房屋上。一个简单的破解方法就是将“列入白名单”的用户的照片举到摄像头前就可以将门打开。
图4:w/ LED电路原理图
图5:w/继电器与门锁电路原理图
图6:我的电路设置
3. 设置软件
创建一个您打算存放本项目文件的文件夹。使用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:调试配置)。
图7:Oxford API密钥
图8:调试配置
4. 部署及运行应用程序
4.1 部署应用程序
有多种方法可以将应用程序部署到您的Windows IoT设备上。我将在下面列出几个不同的选项。其中一个可能比其他方法更容易一些,具体情况要取决于您所使用的硬件。我使用的是第一个方法。
- 1. 通过Windows设备门户使用远程控制台进行部署/调试
- 2. 使用Visual Studio进行部署/调试
- 3. 使用Windows 10 IoT 核心版仪表板进行部署/调试
4.2 运行应用程序
当应用程序开始运行时,您将在屏幕上看到以下图像(图9:面部识别启动页面)。您需要做的第一件事就是将自己添加到允许通过的“白名单”中。为此,请选择屏幕右下角的加号(+)按钮。然后页面会显示要求您拍摄一张ID照片。您可以对准镜头然后点击“拍摄ID照片(Capture ID Photo)”,然后相机会拍摄一张您的照片并将其显示在屏幕上。最后输入您的姓名,单击“确认(Confirm)”对用户个人资料进行确认。
图9:面部识别主页屏幕
现在,您将返回到欢迎页面。您应该会在屏幕左侧的“列入白名单的访问者”列表下看到您的用户个人资料。现在,当您站在摄像头前时,可以按下按键或者门铃。如果应用程序将您识别为“白名单”用户,将会解锁10秒钟。
恭喜您完成此项目。现在您可以对该应用程序进行修改来将面部识别API使用到其他Raspberry Pi项目中了。
来源:techclass.rohm