智能门锁不安全?工程师自己造了一个AI人脸识别门锁

2019-01-30 09:39:35 来源:EEFOCUS
标签:

iPhone X Face ID反复打开了一扇窗,人们开始意识到通过AI深入学习他们的脸比他们的指纹更加独特和准确。


我们构建了一个平台,展示了AI如何在Ultra96和Intel Movidius NCS以及Tensorflow Inception Facenet上运行。 该项目可以扩展到使用面部识别来解锁,记录进出情况,打开不同的灯光场景。


TensorFlow Facenet
我们使用基于 https://github.com/davidsandberg/facenet的 Facenet 以及Movidius的SDK。 Xilinx Ultra96 FPGA非常适合处理OpenCV,我们将通过NCS推断面部识别。


Facenet不是一种经过训练的分类器,可以将面部归类为属于受过训练的特定个体。 相反,它被训练为一般地在面部上找到并量化地标。 通过比较两个图像上的面部界标量化值(网络推断输出),可以确定两个面部是同一个人的可能性。 这使我们能够创建一种简单易用的方法来对单个图像进行面部识别。Movidius将用于在边缘设备上实时推断AI。

 


Facenet image from Cole Murray's tutorial


第1步:收集材料
我们需要以下物品:

 


Materials needed

 

第2步:设置Netduino 3 WiFi
Netduino是一个基于C#和.NET的物联网板,具有很多功能,这样我们就可以基于C#创建整个项目。


从 https://visualstudio.microsoft.com/vs/mac/ 安装Visual Studio ,在 这种情况下我使用的是Mac。 然后转到Visual Studio社区菜单 - >扩展 - >图库,并搜索“MicroFramework”以安装Micro Framework。

 


Micro Framework

 

按照此页面的说明更新最新固件
http://developer.wildernesslabs.co/Netduino/About/Updating_Firmware/#mac
安装最新固件后,我们需要通过Netduino Deploy设置WiFi网络,以便设备连接到互联网,我们将在这里使用静态IP。

 


Netduino Deploy


第3步:连接硬件
因为因为锁需要12v并且Netduino的常规输出只能提供5v,我们需要通过顶部的焊接2线接入Netduino的电源,如下图所示,这将允许我们在没有额外电源的情况下打开和关闭锁舌。


Modified Netduino with 12v Output


然后我们可以从设备中点击12v的输出直接连接到继电器,一个连接到门锁,因此继电器将从电路板本身接收+12v电压,对继电器接收负电压。连接方式如下图


Wiring Frame


第4步:设置Netduino Webserver
我们现在可以使用以下代码连接到计算机。 当它工作时我们可以进入下一步,我们已经创建了一个Netduino Web服务器,供其他设备通过WiFi网络连接。 以下代码设置了插座,当接收到“ON”时,它将打开LED和继电器,这使我们可以打开锁。

上传后,你会看到下面的图像,连接互联网。 一旦部署在Netduino上,我们就可以在终端上使用以下命令


Netduino Webserver解锁Deadbolt,如下所示


Netduino Unlocking Bolt


第5步:安装PYNQ linux
Ultra96很新,但可以非常友好地运行基础Ubuntu,这是一个很大的优势,因为这允许我们在ultra96上构建不同的平台。 编译后的debian版本可以从http://fileserver.linaro.org/owncloud/index.php/s/jTt3MYSuwtLuf9d下载。之后我们可以使用像ether这样的工具将它加载到mini-SD卡上。

 

 

在启动时,我们首先必须通过删除损坏的repos来修复一些错误。


sudo rm -r /var/lib/apt/lists/*


这允许我们根据需要安装所有软件包以使用该平台。


第6步:安装Movidius NCSDK
为了让AI和Computer Vision工作,我们可以使用Movidius NCS,它具有一套工具来运行我们的项目。 Ultra96没有演练,所以我们基本上通过https://movidius.github.io/blog/ncs-apps-on-rpi/引用了这个。


首先我们必须安装依赖项,这部分没有PYNQ,所以我们将安装它们以确保一切正常。


接下来我们可以安装NCSDK SDK,它包含可以将应用程序连接到NCS的API。 由于NCSDK不是为Ultra96构建的,我们可以使用 markjay4k的 版本 对变通方法进行以下修改。


这项工作应该让我们使用与Ultra96和PYNQ一起使用的NCSDK API

 


NCSDK on PYNQ


接下来我们将尝试让NcAppZoo和Hello World运行神经计算棒,我们需要在pynq上重复旧的python 3.6


步骤7:使用Ultra96和NCS在边缘AI
在本指南中,我们将使用经过预先培训并与Caffe合作的SSD神经网络,我们还将学习如何利用其他神经网络进行一些工作。

 


Ultra96 with Movidius NCS


在这一步中,我们之前已经训练了通过caffe模型,我们必须在另一台机器上编译图形,因为我们只安装了API而不是工具包,因为它们不是为aarch64构建的。 但是,由于API可以工作,我们可以简单地在另一台机器上构建它并将图形文件传输到Ultra96。 FPGA可以处理所有CV2和Movidius NCS。


使用Facenet安装Movidius NCS


压缩整个文件夹并将其复制到ultra96上

 

第8步:构建面部识别验证
Movidius App Zoo应该能够获得NCS和OpenCV的整个软件堆栈,接下来我们可以创建自己的文件夹并基于video_face_matcher示例运行。 我们只需要在validated_images下更改验证图像,因为facenet可以根据此进行训练。 你可以在github repo上看到完整的代码。

 


validation image


使用以下代码,我们应该能够访问WiFi点与使用手机的WiFi Arduino锁相同。我们如何做到这一点,特别是确保我们已经验证了超过10帧的图像,以避免误报。


当我们识别出错误的脸部时,我们可以显示周围的红色边框,以指示检测到错误的人物。

 


Wrong person detected


当检测到合适的人时,我们可以在周围显示绿色边框,一旦通过10帧,我们就可以使用它来解锁锁舌

 


Validated


效果演示(点击查看动图)

 

你想不想自己做个AI门锁?感兴趣的话请访问:
https://www.hackster.io/Nyceane/ai-facial-recognition-wifi-lock-7f9705
 

与非网编译内容,未经许可,不得转载!

 

有人说硬件技术将很快达到极限,而在我们看来,硬件创新,尤其是中国硬件工程师的创新,还远未走到尽头,而只是刚刚开始。作为致力于为全球硬件开发者提供技术共享服务的平台,与非网母公司SupplyFrame旗下最大的全球硬件开发者社区Hackaday.com已连续五年举办全球硬件开发者大赛Hackadayprize,有超过3000多个硬件团队在这个赛事中互动交流、切磋技艺。

 
这个《硬件改变世界》系列,我们挑选在前几届Hackadayprize大赛中获奖的优秀作品加以展示,硬件技术可以多有意思,硬件开发者可以多有创意,从这些作品中你可以看到。
 
2019年3月,Hackadayprize中国区赛事将隆重开启,我们很期待看到国内的硬件开发者大开脑洞、大展技艺。你准备好了没,与来自全球的硬件开发者同台PK?
 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
e 成科技成为 HR 赛道首家入选中国人工智能产业发展联盟会员

2019年6月,义橙网络科技(上海)有限公司正式成为中国人工智能产业发展联盟(简称AIIA)会员单位,也是HR赛道首家并唯一入选AIIA的成员。

MWC 2019 上海展会进行时,三星发布 8K 智能机顶盒抢占 5G 市场?

中兴通讯在正在举行的MWC 2019上海展会上,发布了一款8K智能机顶盒。这台机顶盒可以在5G网络的协作下在线观看8K视频,并提供超高清视频体验、智能语音交互等。

基于神经网络的深度解析

本来想把题目取为“从炼丹到化学”,但是这样的题目太言过其实,远不是近期可以做到的,学术研究需要严谨。但是,寻找适当的数学工具去建模深度神经网络表达能力和训练能力,将基于经验主义的调参式深度学习,逐渐过渡为基于一些评测指标定量指导的深度学习, 是新一代人工智能需要面对的课题,也是在当前深度学习浑浑噩噩的大背景中的一些新的希望。

企业 AutoML会有何应用?可解释性真的成为了人与 AI 交互的必经之路?

AI Time第一期的主题是“论道AI安全与伦理”,当时我们向在场的三位老师提出了一个困扰大众已久的问题,即“我们有一天真的会达到电影里的那种智能吗?拥有情感,拥有爱?”

从 6G 到海水淡化,利用声波“看见”墙后物体是什么体验?
从 6G 到海水淡化,利用声波“看见”墙后物体是什么体验?

大家好,一周技术前沿洞察又来啦!不少小伙伴说很喜欢这个栏目,小探们在找的时候也觉得,不仅有趣,而且实实在在地促进科技进步。

更多资讯
Google 开源的一个深度学习框架你了解多少?

想必大家都或多或少听过 TensorFlow 的大名,这是 Google 开源的一个深度学习框架,里面的模型和 API 可以说基本是一应俱全.

FPGA 的上电过程如何?在配置电路中又存在着怎样的配置方式?

目前,大多数FPGA芯片是基于 SRAM 的结构的, 而 SRAM 单元中的数据掉电就会丢失,因此系统上电后,必须要由配置电路将正确的配置数据加载到 SRAM 中,此后 FPGA 才能够正常的运行。

MATLAB 到底有多厉害?为何工程师跟科学家都喜欢使用?

MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

上海安路成功完成 D 轮融资,有望为全球半导体提供更优质的 FPGA?

近日,上海安路信息科技有限公司(简称“上海安路”)完成了D轮增资。本轮增资中,老股东华大半导体、中信资本和公司创始团队行使了优先认购权,引入的新股东为“国家集成电路产业投资基金股份有限公司”(以下简称“大基金”)、“深圳市创新投资集团有限公司”、“苏州厚载成长投资管理合伙企业(有限合伙)”。

国产FPGA再获助力 上海安路D轮融资获得大基金领投
国产FPGA再获助力 上海安路D轮融资获得大基金领投

上海安路信息科技有限公司(简称“上海安路”)完成了D轮增资。本轮增资中,老股东华大半导体、中信资本和公司创始团队行使了优先认购权,引入的新股东为“国家集成电路产业投资基金股份有限公司”(以下简称“大基金”)、“深圳市创新投资集团有限公司”、“苏州厚载成长投资管理合伙企业(有限合伙)”。