智能门锁不安全?工程师自己造了一个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 )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
2019年人工智能重点发展方向一览,AI将带来哪些改变?

毫无疑问,2018年是人工智能(AI)发展的重要一年,因为进一步推动了人工智能的主流应用,并成功地实现了提供更多功能的自动化。越来越多的企业探索人工智能的应用程序,并且公众已经习惯于每天与人工智能技术进行交互。

人工智能是未来国家之间竞争的关键,AI如何才能驱动创新?

而在2019年,无论是机器学习还是深度学习,算法能力的增强都将进一步推动我国人工智能的不断突破。在许多生活消费场景中,人们对个性化体验的需求不断增加,个性化、场景化服务也将逐渐成为人工智能驱动创新的主要方向。

成都大力推动人工智能发展,最高支持2亿元?

近日,成都发布了《成都市加快人工智能产业发展专项政策》(以下简称《专项政策》)。该《专项政策》共12条,从加快夯实人工智能产业基础、不断提升人工智能产业能级、全面营造人工智能产业生态三个方面给予支持,以下是部分重点内容。

讯连携手凌群进日本,AI脸部识别了解一下?
讯连携手凌群进日本,AI脸部识别了解一下?

AI脸部识别技术开发商讯连科技宣布,旗下FaceMe AI脸部shibie1引擎获凌群电脑采用,导入新一代智能服务型机器人Ayuda中,作为其脸部识别解决方案。

AlterErgo帮你告别鼠标手,轻松操控电脑
AlterErgo帮你告别鼠标手,轻松操控电脑

AlterErgo是一款开源手持式蓝牙控制器。基于为吉他手设计一款价值5美元的手指加强装置, 通过添加电子设备以测量每个手指挤压的程度,并测量您握住设备的方向,并根据这些信号,通过蓝牙低功耗无线传输虚拟鼠标或键盘命令到计算机(Windows,Mac,Linux,Android或iOS设备)。 您可以使用它来控制沙发上的智能电视/ HTPC

更多资讯
PLC的面向对象编程实现方式

面向对象编程是计算机高级语言的一种先进的编程模式,在工业控制系统的PLC程序中也可以采用这种设计思想,虽然我们无法实现面向对象的很多优秀特点如“继承”,甚至于它根本就不具备面向对象编程语言的特点,但面向对象编程的基本概念就是类和类的实例(即对象),我们只需要使用这种概念就可以了。

ASIC项目瀑布式开发流程详解

最近收拾书架,翻出一张多年以前的ASIC项目开发流程图,一起回顾一下。

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

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

芯片厂商营收整体看衰赛灵思却逆势增长34%,凭什么
芯片厂商营收整体看衰赛灵思却逆势增长34%,凭什么

赛灵思可编程芯片产品市场的不断增长推动它的发展壮大,5G网络的推出也是它继续前行的助推器。

使用Vivado HLS在ZYNQ-7000上开发OPENCV的教程

OPENCV(Open Source Computer Vision)被广泛的使用在计算机视觉开发上。使用Vivado HLS视频库在zynq-7000全可编程soc上加速OPENCV 应用的开发,将大大提升我们的计算机视觉开发。

电路方案