百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

有保险柜怕不安全,用树莓派制作一款只有刷脸才能开的保险柜吧

itomcoil 2025-07-14 17:30 18 浏览

眨眨眼睛就能保住身家,好过记住密码或拿着钥匙,你的脸就是保险柜的钥匙!这个作品将展示给大家如何用树莓派和摄像头制作一个人脸识别的保险柜,当然,如果不慎毁容或整容,不好意思。。。直接拿锤子砸了吧

软件部分由开放源代码计算机视觉类库(OpenCV)提供的算法实现。用树莓派做这个作品再好不过,它能够运行OpenCV,体积小到能在任何地方安装。

零件/工具

  • 树莓派B型

  • 树莓派专用摄像头模组

  • 玩具保险箱,我们选了一个钢制外壳,并有警报功能。尺寸为9x8x6英寸。

  • 伺服电机

  • 4节AAA电池盒

  • 瞬时按钮开关

  • 10千欧电阻,功率0.25瓦

  • 接线盘

  • 跳线,母座对母座接口

  • 金属片,尺寸约为2×8英寸

  • 机器螺丝,32英寸x0.75英寸,配有螺母

  • 压铆螺母柱,1/8英寸x1/2英寸。从废旧圆珠笔上面能获得类似零件。(就是圆珠笔头)

  • 束线扎带

  • 电钻与钻头

  • 电烙铁与焊锡

  • 夹铁钳

  • 台钳

  • 锤子

  • 凿子或电动高速打磨机

  • 中心冲头

  • 锉刀

  • 螺丝刀

  • 铆钉枪,配有铝制铆钉,1/8英寸x3/16英寸

第一步:安装树莓派

  • 将树莓派放在保险柜门内,确定放在门锁结构外的最佳位置。

  • 用一支深色记号笔标注两处固定树莓派的位置,然后小心钻出1/8英寸洞眼。

  • 装上压铆螺母柱,用螺丝螺母将树莓派固定在上面。

第二步:折出个伺服电机支架

  • 用记号笔在金属片中央画一个长方形。

  • 钳住金属片,用凿子去掉标记好的区域,然后用锉子打磨平整。

  • 再将另一边的金属片也如此弯曲,以贴合保险柜的锁头。它将用作伺服电机架,对应不同的保险柜有不同的尺寸。

  • 用台钳钳住和支撑工件。如果金属片不易弯折,用锤子来帮忙。

第三步:安装保险柜门

  • 在伺服电机架两端各钻一个1/8英寸洞眼。

  • 将它放在门上,以记号笔标记门上相应的洞眼。

  • 在记号上钻上1/8英寸洞眼。

第四步:安装舵机盘

  • 选一个舵机盘,将它裁成图中所示。

  • 拆开锁芯,使得当其中一个部件转动时,不会联动另一个。

  • 在锁上滴一滴热熔胶,安上舵机盘。

第五步:安装伺服电机

  • 在伺服电机架的长方形开口周边钻上四个1/8英寸洞眼,如图所示。

  • 用束线扎带将伺服电机固定在架子上。

  • 用铆钉枪将整个架子铆在保险柜门上。

第六步:安装摄象头

  • 为摄像头钻一个1/4英寸洞眼。在开钻之前,确定摄像头电线能伸到洞的位置。

  • 用个方形锉子将切割边缘磨平。

  • 将摄像头电路板用双面胶固定,调整位置使摄像镜头能从门上的方形洞眼伸出来。

Step #7: Push button installation

安装按钮

用1/2英寸钻头为按钮钻个洞。这个按钮用于激活照相机,进行识别操作。

第八步:连接电子元件

  • 将一个10千欧电阻和引脚头焊在接线板上,如图所示。

  • 将伺服电机信号线连在树莓派的GPIO 18上面。伺服电机电源和地线皆在电池座的电源和接地端上。

  • 将按钮其中一端接到树莓派GPIO 25,经过10千欧电阻连到3.3伏电源。

  • 将按钮另一端和接到树莓派接地端上。

  • 将电池和树莓派共地。

第九步:USB电源线

  • 除了给伺服电机用的电源外,树莓派也需要一个独立电源。

  • 在柜子侧面底部边角处做记号,钻洞,足够让USB电源线通过其大小。

  • 注意:按钮的红线和黑线不连接,只用作拍摄用途。

第十步:配置安装软件

  • 运行wget指令,从Github下载软件。指令如下:wget
    https://github.com/tdicola/pi-facerec-box/archive/master.zip

  • 解压缩master.zip:unzip master.zip

  • 切换到对应工作目录下:cd pi-facerec-box-master

  • 运行安装指令,建立软件连接:sudo ./install_dependencies.sh

  • 注意:这条指令能检查Raspbian系统是否需要升级到testing/”jessie”版本,在升级前会有确认信息。这一步大约需时一小时。

第十一步:安装树莓派摄像头模组

  • 运行raspi-config,选择摄像头模组进行连线。sudo raspi-config

  • 当设置好后,重启系统,摄像头就已连线了。只需做一次这样操作,系统就会配置好GPU。

第十二步:调试脸部识别

  • 在树莓派终端部分,切换到软件目录下,运行以下指令开始输入识别信息:sudo python capture-positives.py

  • 当调试代码正在运行时,你按一下在盒子外面的按钮,用树莓派摄像头照张相。程序代码会尝试在照片里识别出一张脸,将其储存在子目录./training/positive下。

  • 这步骤需要约10分钟,以使图像筛选器能识别你的脸。每次照相时,信息都将写入capture.pgm中。你能用图像编辑器打开这个档案,查看树莓派摄像头抓取了什么图像,以帮助确定你的脸部信息。

  • 用按钮大概抓取5次或以上的脸部正像调试图像。可以用不同角度和不同光线环境下获取图片。在图中可以看到我自己截取的正像调试图像。

  • 注意:如果你有兴趣的话,可以在./training/negative文件夹内查看AT&T脸部识别数据库的调试数据,那里面有不允许开保险柜的人的脸部信息。(嗯,谁动过我的保险柜?)

  • 最后当你弄好正像调试图像后,运行以下指令处理正像和反像调试图像,并调试脸部识别算法。这步骤需要约10分钟。指令为:python train.py

第十三步:配置伺服电机

  • 找出驱动伺服电机上锁和开锁的脉宽值。运行以下指令:sudo python servo.py

  • 遵照屏幕显示的指示,输入不同的脉宽值(从1000到2000),找出哪个值能使电机把门闩切换为上锁或开锁位置。

  • 当你确定对应的值时,编辑config.py,将LOCK_SERVO_UNLOCKED和LOCK_SERVO_LOCKED这两个值对应于你在servo.py里找到的值。

第十四步:用吧!

  • 现在所有配置已经完成,保险柜准备好运行。执行以下指令运行整个机构:sudo python box.py

  • 柜子会自行反锁,直到按钮被按下,然后抓取摄影图片,和用户脸部信息进行比对,如果比对吻合则开锁。按钮能用于上锁,只要重复以上过程即可。

第十五步:故障调试

  • 如果脸部识别不能很好工作,你需要为此照更多的正像图像进行识别调试,或者在config.py里面将POSITIVE_THRESHOLD值调高些,即调低它的灵敏度。

  • 还是开不了锁的话,你只能暴力对待了。暴力开锁后,再次运行servo.py,输入解锁时电机脉宽电流值。(这下子该体会到有锁也会捉鸡的滋味了吧?)

《开源杂志》微信请搜:开源杂志 ,官网oszine.com 关注开源硬件与创新,通过推广开源文化将创意实现的门槛降低

相关推荐

Postgres是个六边形战士,其他很多工具是没必要的

你只是想部署一个简单应用,一个仪表盘、一个聊天工具,或者个人项目。突然之间,你得启动Redis做缓存,上Elasticsearch做搜索,用Firebase实现实时同步,配置无服务器函数的...

PostgreSQL开发与实战(5)备份管理pg_probackup

作者:太阳一、pg_probackup概述pg_probackup是一款免费的postgres数据库集群备份工具,与其他备份工具相比,它主要有如下一些优势:提供增量备份,增量备份一定程度上可以节省磁...

了解 PostgreSQL 的 MVCC 可见性基本检查规则

1.引言根据VadimMikheev的说法,PostgreSQL的多版本并发控制(MVCC)是一种“在多用户环境中提高数据库性能的高级技术”。该技术要求系统中存在同一数据元组的多个“版本”,...

PostgreSQL初学者需要知道一些技巧

PostgreSQL作为一个优雅而且稳健的数据库越来越被大家所采纳,除了Mysql以外很多人都开始接触并学习PostgreSQL。但是PostgreSQL和传统的一些数据库系统还有有点点小小的鸿沟,有...

Python - 操作 PostgreSQL 数据库的基本方法与代码

本文记录在Python编程中操作PostgreSQL数据库的基本方法与实现代码,包括连接数据库、创建数据表、插入/更新/删除数据表中的记录、函数调用、存储过程调用及事务处理等。获取数据库首先把连接数据...

详解PostgreSQL 12.2时间点恢复 (PITR)

概述PostgreSQL提供了不同的方法来备份和恢复数据库,可以是某一时刻数据库快照的完整备份或增量备份,可以使用SQL转储或文件系统级别的备份,在增量备份的基础上还可以实现基于时间点恢复。这...

PostgreSQL 17即将发布,新功能Top 3

按照计划,PostgreSQL17即将在2024年9月份发布,目前已经发布了第三个Beta版本,新版本的功能增强可以参考ReleaseNotes。本文给大家分享其中3个重大的新...

PostgreSQL从入门到精通教程 - 第39讲:数据库完全恢复

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注...

PostgreSQL建库说明_postgresql能创建多少表

1.数据库逻辑结构介绍在一个PostgreSQL数据库系统中,数据库:一个PostgreSQL数据库服务下可以管理多个数据库,当应用连接到一个数据库时,一般只能访问这个数据库中的数据,而不能访问其他...

为什么delete后磁盘空间没有释放而truncate会释放?

背景因项目需求,需要清理一批旧数据,腾出空间给新数据,让同事负责这件事。料想会很顺利,但很快找到我,并告知在postgresql中把一张大的数据表删除掉了,查询表的size并没有改变。我震惊了,问他怎...

PostgreSQL技术内幕6:PostgreSQL索引技术

0.简介本文主要介绍PG的索引技术,包含PG支持的索引类型,语法,查看方式,以及其中B-Tree索引的原理解析和源码解读。1.PG索引类型介绍PG支持多种索引类型:B-tree、Hash、GiST、...

PostGreSQL历史_postgresql序列查询

1973UniversityINGRES(起源于IBMSystemR的一系列文档,MichaelStonebrakerandEugeneWong)1982INGRES1985...

Retool 如何升级主应用 4TB 的 PostgreSQL 数据库

本文最初发布于Retool官方博客。Retool的云托管产品基于一个在微软Azure云中运行的4TB的Postgres数据库。去年秋天,我们把这个数据库从Postgres9.6...

ArcGIS Desktop直连PostgreSQL安装及配置图解(windows)

目录1PostgreSQL11.0安装及配置2psqlODBC安装及配置3PostGIS安装及配置4pgAdmin4使用入门5空间数据导入5.1将PostgreSQL的bin文件路径添加...

基于patroni+etcd打造可自动故障转移的PostgreSQL集群

作者:杭州美创科技有限公司得益于PostgreSQL的开源特性,越来越多的第三方集群管理软件填补了PostgreSQL在集群方面的易用性和可靠性,patroni+etcd提供了一系列的集群管理方案。e...