打开芝麻或英特尔实感和ResNet防护水果


在现代高科技世界中,要求我们不断确认我们的身份和访问权限已经不是什么秘密了,包括密码,非接触式标签,指纹等。 您可以在视觉上留下印记-用户的脸部。 只需看看我们的小工具,它如何了解前面有一个授权用户,然后解锁屏幕。


我们决定使用可用的材料和开源解决方案来实施类似的计划。 作为一个具有相应“发现选择性”的物理对象,选择了一个保险箱。


所有细节都削减了。


房屋



图1.案例组装过程


外壳由40 x 40厘米的层压MDF面板碎片制成,并通过家具螺钉连接。 随后,所有接缝均在木板上涂上丙烯酸腻子, 不太 彻底打磨,然后将整个身体覆盖一层厚厚的丙烯酸白色涂料。 油漆,等到当前层干燥,打磨,然后覆盖下一层。 经过三层后,我得到了均匀的白色哑光面漆,然后在上面走了一层薄薄的白色光泽搪瓷。



图2.电气安装过程中的最终外壳


从外壳的底部开始,我们固定了打印的腿-在3D编辑器中绘制的第一部分。



图3.腿。 塑胶PLA


电工


保险柜的锁是由中央门锁和内门的人造舌头的混合驱动器制成的-从后者中,我们扔掉旋转套筒并在牵引力作用下钩住钩子。
借助印刷零件,所有东西都以单一设计组装并安装在门上。 主板本身很薄(3mm),容易弯曲,但是安装后一切都会改变。 最终设计的强度足以进行进一步的实验。



图4.锁机构组装


当然,如果我们谈论的是完善的门禁系统,那么可以通过将其安装在普通金属保险箱中来购买全金属现成的电子锁。 但是没有


除了锁,我们还需要一个拖车来控制门的状态,一个三位开关来控制系统,以及一个双色LED来显示程序的当前状态。



图5.车身套件的示意图


不要忘记引脚上的电压为1.8V(扩展板已经为3.3V),所以我们通过晶体管级连接LED-从1.8V开始,它们根本不会点亮。


电子产品


该系统的主要组件-摄像机和单板计算机是彼此创建的(在我们的案例中,这不是言语之举,而是众所周知的事实):



图6. Intel Joule 570x开发套件 -单板微型计算机,板上带有4核64位Intel Atom,4GB内存和USB 3.0连接器



图7. 英特尔实感摄像头SR300-作为视觉器官的3D短距离摄像头。 深度识别的有效范围是0.2-1.2 m。


在项目开始仅几天后,英特尔·焦耳就成功获得了EOL(生命终结)的地位,但这并没有阻止我们。


作为计算模块,您几乎可以将任何带有基于Intel处理器的USB3.0的现代单板集成在一起。 例如, Up Squared Grove物联网开发套件MinnowBoard Turbot * 。 英特尔NUC也会做到这一点。


组装方式


我们将锁的详细信息安装在包装盒上,以使锁正常关闭。 为了使门在触发时反弹(如在基座中一样),我们打印并安装弹簧推杆。 它的任务是在缩回舌片后将门从闩锁中缩回几毫米,以使盒子在移开电压后不会再次关闭。



图8.舌片和弹簧推动器的闩锁


将相机安装在前面。 我们将LED胶粘到相机的盖子上,在i上方的位置-由于某种原因,他设法变成了一个绿色LED。 我们用一对螺丝将其固定。



图9.安装的摄像头


对于Intel Joule,您需要一个保护套,因此在3D编辑器中,您可以用连接器的窗口绘制一个所需大小的保护套。



图10. Intel Joule的案例图


对于40引脚GPIO连接器,没有窗口,因为已决定将所有电子设备放置在外壳内。 为此,要绘制一个厚厚的盖子,上面有用于继电器和4个触点的凹槽,以及用于开关的窗口。 不要忘记主板上的处理器不是最弱的,因此我们在盖子上开了几个通风孔。



图11.封面图


有两所学校。 首先,在开发车身套件时,没有考虑LED连接器,这导致以下事实:


  1. 外壳中的电缆/连接器没有孔,我不得不用烙铁烧掉孔;
  2. 组装好的外壳的尾部很长,末端带有LED。

其次,情况必须以某种方式连接起来,没有什么比用电线来做这个更好的了,因此没有被发明出来。 关于无声安装一般无声。 您看不到,但是在热喷嘴下方的某个地方,隐藏了3个晶体管和rezuki的后跟。


吸烟者原型

在这里,我想起了我自己的著作的照片:

给我带来合适设备的人的话说:“他们已经为我制造了原型,我只需要修复一下固件-不稳定,电池很快就用完了”。



图12.组装好的电子箱


盒子的内部有四个端子-两个用于电源,两个用于电动机,一个用于门的末端开关,一个来回控制程序的继电器,以及一个向锁提供电压的继电器。 在打印过程中,继电器靠近型腔的角度将其从工作台上撕下,因此继电器决定不适合其中的角度。 我不得不将开关粘在热敏电阻上。 以及单付款人。


绿色胶带粘在Wi-Fi天线板上。 通常,它们是自粘的,但是我们在实验中将它们粘合了很多次,以使其脱落,以至于它们失去了粘附在表面的能力。



图13.组装好的电子设备盒,处于闭合状态


我们将肠子放在体内,关闭并进行软件部分的开发。


抒情3D打印。


这座城堡的详细资料-很多人钟爱并讨厌我的解放军。 该材料非常适合打印高精度模型,但是完全不可能加工。 而且这种感染在加热时会上浮,这对于结构元件来说是非常糟糕的性质。


HIPS的所有其他详细信息-恕我直言,它不如ABS易变,并且在打印时几乎没有气味。 唯一的警告-直到他将桌子的温度提高到95度时,桌子上的细节才变形。 根据说明,桌子的温度应该在100度左右,但是到目前为止,谁能读得很好呢?


软件部分


系统准备


首先,您需要更新主板上的BIOS才能安装所需的操作系统映像。 我们使用了这些信息以及来自英特尔网站官方文档的这些说明。


接下来,将显示器和键盘连接到板上,我们以通常的图形或文本模式为Intel Joule安装特殊的Ubuntu * Desktop 16.04 LTS发行版。 如果计算机使用Intel NUC或另一台计算机,则系统的库存映像也将消失。


使用常规方式安装操作系统后,我们通过内置的Wi-Fi连接到Internet。 由于板上只有一个USB连接器,我们需要用它来连接相机,因此我们通过ssh连接到板上。 现在,我们可以从键盘上释放端口并连接英特尔实感。


安装软件包和依赖项。


首先,安装Python 3.5.4,将其写入我们的项目。 从源代码下载并构建OpenCV Python模块 ,因为Intel Joule上的非官方Python OpenCV模块无法正常工作。


安装或更新其他依赖项:


apt install -y --fix-missing build-essential cmake gfortran git wget curl graphicsmagick libgraphicsmagick1-dev libatlas-dev libavcodec-dev libavformat-dev libboost-all-dev libgtk2.0-dev libjpeg-dev liblapack-dev libswscale-dev pkg-config python3-dev python3-numpy software-properties-common zip git clone https://github.com/davisking/dlib.git /root/dlib; cd /root/dlib; mkdir build; cd build; cmake .. -DUSE_AVX_INSTRUCTIONS=1; cmake --build . ; cd .. ; python3 setup.py install --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA pip3 install face_recognition 

我们放了libmraa-这个库对我们与盒子交流很有用。 详细的组装说明在这里


或者,您可以从PPA安装现成的二进制文件:


 sudo add-apt-repository ppa:mraa/mraa sudo apt-get update sudo apt-get install libmraa1 libmraa-dev libmraa-java python-mraa python3-mraa node-mraa mraa-tools 

安装所有依赖项后,我们可以验证所有功能是否正常运行。 为此,请提高VNC-vnc4server就是一切, 运行一个示例以使用相机,并确保相机可以正常工作。


最后的检查点是face_recognition模块的正确导入。 实际上,这是我们的ResNet神经网络,旨在识别照片中的人物。 因此,它出现在作者的演示中:



 import face_recognition 

一切准备就绪后,我们将从存储库中卸载应用程序源代码并开始工作。


为了方便起见,我们将所有库作为子模块添加到我们的项目中。 要下载它们,请从项目目录执行git submodule update --init --recursive


工作时间


 ./launcher.py 

首次打开数据库时,没有人,因此该框将关闭。 我们手动打开它(为此我们有一个内置后门-舌头对面有一个小孔)并进行了培训。


为此,请站在包装箱的前面-前面板上的LED点亮,表明某个人在相机的视野内。


我们在记住脸部的方向上单击开关,相应的条目出现在控制台中。



现在,如果您合上抽屉并站在它前面,系统将识别出它的脸并快乐地打开门。



Access Console条目将出现在控制台中。



如果一个陌生人站起来,系统将无法识别他,因此门将保持关闭状态。 该系统可能会饿死是另一回事-在我们的案例中,误报的百分比非常高,如果您长时间手拿一堆其他物体走路,直到仍然会打开。


这可以通过使用深度通道来解决-在当前版本中未使用,因为无法使其稳定运行,并且发送与Intel Joule的兼容性问题为时已晚。 face_recognition的作者在基准的《野外之家》中的“有标签的面孔”中测得99.38%的准确性


结论


当然,该概念验证可以得到显着改进,并且其功能可以扩展很多倍。 例如,您可以添加成功和失败访问的日志记录,以及通过Web界面进行方便的管理。


构造此设备的基本原理是:“我看不见它是什么。” 我们只是想表明,可以用即兴制作的材料制成一些有趣的东西。


感谢Dmitry( dmitryvodop )和Sergey从事项目的软件部分。


* .stl格式的所有模型和程序的源代码均已根据MIT许可上载到GitHub

Source: https://habr.com/ru/post/zh-CN410193/


All Articles