用树莓派做一个刷脸开锁的保险箱
标签:树莓派
飞鱼BH1JSS 发布于 2015-03-16 16:19
![1195877_orig.jpg](http://7nimage.chenmeixuan.com/c722c6503db8b2c3cac2b16c4a59e9.jpg_m.jpg)
![3403528_orig.jpg](http://7nimage.chenmeixuan.com/79bbe8207a51b000cf700ea334f426.jpg_m.jpg)
还在用密码与钥匙就能保护你的贵重物品,你的脸就是开启保险箱的钥匙!这个教程就是教你如何运用Raspberry Pi和Pi Camera打造一个“刷脸开锁的保险箱。
这个教程的软件是开源的OpenCV函式库算法。Raspberry Pi是完美的平台,因为它能够执行OpenCV,而且体积够小,可以放进几乎任何地方。
原文作者: Tony DiCola , David Scheltema
原文链接:http://makezine.com/projects/make-40/face-recognition-treasure-safe/
所需材料
Raspberry Pi B型Ver2.0
Raspberry Pi摄像头模块
玩具保险箱:我们选择Schylling所售的钢质警报保险箱,亚马逊网站有售,尺寸约9英寸×8英寸×6英寸。
标准舵机:注意需要180度舵机
电池盒,4×AAA
按钮开关
电阻,10kΩ,1/4W
万用板(也叫洞洞板)
排针(大约需要11个)
母对母跳线
铁片边角料:大小约2英寸×8英寸。
螺丝和螺母,#6-32英寸×3/4英寸(2)
尼龙柱,内径1/8英寸×1/2英寸:你可以拿不要的钢珠笔来切成适用长度。
扎带
所需工具:
电钻和钻头
烙铁与焊锡
铁片剪
老虎钳
锤子
凿子或高速旋转切割工具,手电钻什么的
中心冲
锉刀
螺丝起子
铆钉枪和铝铆钉,1/8英寸×3/16英寸
Step 1: 把Raspberry Pi固定在门上
![1256191_orig.jpg](http://7nimage.chenmeixuan.com/49eaed7f2505250c45c8055decdf75.jpg_m.jpg)
![1888342_orig.jpg](http://7nimage.chenmeixuan.com/1a6af99d4d8cde6ef25f5d8662062b.jpg_m.jpg)
![8987526_orig.jpg](http://7nimage.chenmeixuan.com/d91db50a68448acbcad0bf3de12b65.jpg_m.jpg)
在保险箱门内找出适合安装Raspberry Pi的位置,不要离锁太近。
用记号笔在Raspberry Pi的2个孔洞位置作记号,然后小心钻出1/8英寸大小的孔洞。
用螺丝、尼龙柱和螺帽将Raspberry Pi固定在门上。
Step 2: 接上舵机臂
![3595554.jpg](http://7nimage.chenmeixuan.com/c86a2c8a9c43a3d0d76cfbfc61a41d.jpg_m.jpg)
![9236475.jpg](http://7nimage.chenmeixuan.com/abd752d52dfc3fc6cfa1188be69529.jpg_m.jpg)
![4184012.jpg](http://7nimage.chenmeixuan.com/cf3e4e580e105fdb62653da533139b.jpg_m.jpg)
选择适合的舵机臂,并依照图片上的方法切割。
折弯或切掉锁头上突出的部分,使其可以自由转动。
切掉舵机的旋臂,并用热熔胶黏在锁头的中心。
Step 3: 制作舵机支架
![6539567.jpg](http://7nimage.chenmeixuan.com/617828c57fa933628ea976a5654436.jpg_m.jpg)
![754543.jpg](http://7nimage.chenmeixuan.com/c95e7fcaebe4cc1fda791f5978c916.jpg_m.jpg)
![8402490.jpg](http://7nimage.chenmeixuan.com/3eae3ee13ee15a1f4701324fb953c9.jpg_m.jpg)
这个步骤制作出来的支架应该适用於任何保险箱。
切一片1英寸×8英寸的铁片,在中间量出一个可以装上舵机的长方形大小。
把铁片放在工作台上,用凿具挖出长方形的孔洞,再用锉刀打磨边缘。
测试支架可不可以套上舵机和悬臂。如图所示照着锁的上下缘折弯铁片,让它覆盖保险箱的锁头。用老虎钳固定铁片再开始弯折,如果铁片不容易弯折,可以用小铁锤辅助。
铁片两端钻出1/8英寸的孔洞。
Step 4: 固定舵机
![8167550_orig.jpg](http://7nimage.chenmeixuan.com/c34d9fe9cb95a8ae2556e258ab51f4.jpg_m.jpg)
![9513640_orig.jpg](http://7nimage.chenmeixuan.com/f7961d58db66f1d336e2545fffeafc.jpg_m.jpg)
![7772997_orig.jpg](http://7nimage.chenmeixuan.com/b0058227bd9ea3c8f92e7174a87483.jpg_m.jpg)
![8273290_orig.jpg](http://7nimage.chenmeixuan.com/e367a37b2b97622b8223581eb46a20.jpg_m.jpg)
![4921965_orig.jpg](http://7nimage.chenmeixuan.com/d58375c6468ae289cfba0b3f3afb7b.jpg_m.jpg)
![3054943_orig.jpg](http://7nimage.chenmeixuan.com/08225a605cef2f4e8c2cb2414fbf7d.jpg_m.jpg)
将支架放在保险箱门的内侧,用记号笔在2个孔洞的位置作记号,在门上钻出2个1/8英寸的孔洞。
接着在支架上钻4个1/8英寸的孔洞。
用扎带将舵机固定在支架上。
用铆钉把支架固定在保险箱的门上。
Step 5: 安装摄像头
![9008469_orig.jpg](http://7nimage.chenmeixuan.com/d2aef2c7ca07323e73e3694b879ba1.jpg_m.jpg)
![7768422_orig.jpg](http://7nimage.chenmeixuan.com/5be754d547d74497a2f737d56a658b.jpg_m.jpg)
![659988_orig.jpg](http://7nimage.chenmeixuan.com/0e9e8b700dfdd4e9e1ee12eb9d79fc.jpg_m.jpg)
要凿孔安装摄像头之前,先确认孔洞位置和连接线的距离适中。
在门上钻一个1/4英寸的孔,用方形锉刀打磨孔洞好让摄像头镜头可以放进去。
用双面胶固定摄像头电路板。
Step 6: 安装按钮
![497921_orig.jpg](http://7nimage.chenmeixuan.com/87ae5e3ccac8ea8d68c0ca992615b4.jpg_m.jpg)
![8781572_orig.jpg](http://7nimage.chenmeixuan.com/43f46e5dc9687a697413fac7fea94d.jpg_m.jpg)
钻一个1/2英寸的孔来安装按钮。这个按钮是用来按下快门拍摄照片的。
Step 7: 连接电子元件
![9853590_orig.jpg](http://7nimage.chenmeixuan.com/7a42ea92520807e001da5c3cfab4a9.jpg_m.jpg)
![384699_orig.jpg](http://7nimage.chenmeixuan.com/51eda79a728f83bd9d5ffaf3270cba.jpg_m.jpg)
参考上面的图片,把排针和10KΩ电阻焊到万用电路板上。
把舵机的信号线连接到Raspberry Pi的GPIO脚位18上,把舵机的电源线和接地线接到电池盒的正负极。
把按钮的一条导线接到GPIO脚位25上,并在连接Raspberry Pi的3.3V电源接脚的路径上串联一个10K电阻。
把另一端连接上Raspberry Pi的接地端
把电池负极接到Raspberry Pi的接地端。
Step 8: 布置USB传输线
![3110141_orig.jpg](http://7nimage.chenmeixuan.com/dc59c87f74842e140613e845356143.jpg_m.jpg)
![3866442_orig.jpg](http://7nimage.chenmeixuan.com/9390d3a8f865b78a7740b34e05c239.jpg_m.jpg)
![311692_orig.jpg](http://7nimage.chenmeixuan.com/2b385e756e6884759b40234c98ab4d.jpg_m.jpg)
保险箱内部有一个电池座给舵机供电,现在还需要另外一个电池座给Raspberry Pi供电。
在保险箱后侧下方角落钻一个孔,大小刚好可让Raspberry Pi的USB传输线穿出。
注意:按钮的红色和黑色电线不用连接,它们是拍照时才需要的。
Step 9: 下载软件
![9036799_orig.png](http://7nimage.chenmeixuan.com/d5a52efb73e9283636e02058af62fe.png_m.jpg)
在Github中输入wget指令来下载软件:
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)版本,并询问是否要升级。安装时间约1小时。
Step 10: 安装Raspberry Pi摄像头模块
![4313995_orig.jpg](http://7nimage.chenmeixuan.com/c7a4b73a65a092c3a2bdf17304b1e5.jpg_m.jpg)
![4940077_orig.jpg](http://7nimage.chenmeixuan.com/5fe894db340280d61091a7e33b3dbf.jpg_m.jpg)
![941185_orig.jpg](http://7nimage.chenmeixuan.com/36e8f7ece8592391abea4ff98c2efe.jpg_m.jpg)
输入raspi-config程序码,选择camera module,再按下enable,就能开启摄影模块的功能:
sudo raspi-config
重新启动后,就可以支持摄像头模块了。除非之后想要更改设定,不然之后都不用再设定就可以使用摄像头模块。
Step 11: 调校面部识别功能
![4227272_orig.jpg](http://7nimage.chenmeixuan.com/37766f3dc07a4c072040840e831ba8.jpg_m.jpg)
在Raspberry Pi的终端机指令列中,进入安装软件目录中,并执行指令来启动调校程序码脚本:
sudo python capture-positives.py
按下保险箱上的钮,让摄像头拍一张照片,指令脚本会试着检测拍摄影像中的一张脸,并以“正确”影像储存于./training/ positive子目录中。
这个过程会花费10分钟左右,让认证系统记住你的脸。
每当影像输入后,会被储存在capture.pgm.资料夹中。你可以用图片编辑软件开启,检查摄像头的拍摄图档,确保你的脸真的可以被成功检测。
接着再按下按钮,拍摄5张不同角度、不同光线的脸部照片。上面的图就是我拍摄的照片。
小窍门:用图片查看软件看CAPTURE.PGM档案,可以看到Raspberry Pi摄像头拍下的照片,再到./TRAINING/NEGATIVE目录中查看无法解锁的照片范例(来自AT&T的面部识别资料库)。
最后,执行指令处理正确和错误的训练影像,训练面部识别演算法,而这部分大概会花费10分钟左右:
python train.py
Step 12: 舵机设定
启动程序码获取舵机上锁和开锁的脉宽数值:
sudo python servo.py
根据屏幕上的指示输入不同的脉宽数值(范围1000到2000)来测试锁头上锁和开锁的位置。
检测到适当的数值之后,编辑config.py并把LOCK_SERVO_UNLOCKED和LOCK_SERVO_LOCKED的数值修改成刚刚测试好的数值。
Step 13: 开始刷脸吧!
执行指令,保险箱将会自动上锁:
sudo python box.py
保险箱会自动上锁,等到有人按下钮,就会开始拍照并进行使用者面部识别。如果辨识结果正确就会解锁,再按一次钮就可以上锁。
Step 14: 故障排除
如果面部识别结果不是很理想,你可以再多训练几次,拍更多正确的照片,或是把config.py档案里的POSITIVE_THRESHOLD值改高,扩大其辨识的误差范围。
如果你需要强迫解锁,只要执行servo.py输入解锁舵机旋臂的位置即可。
登录以发表评论
楼主能加你微信吗?13723776917想跟你合作一下
我就是奇怪为什么两条新评论的提示一直存在?
点进去看看具体内容,再看看提示还在吗?很抱歉让您体验不好,我们这边也让技术人员复查一下:)
不错
很不错呀。有机会去试试!
作者的最新作品
-
怎样在创酷网发布一篇漂亮的DIY攻略 Ver1.0
2017-01-23 01:32发布
-
把激光切割机用起来——制作一个盒子
2017-01-22 17:35发布
-
用氦气球释放并回收一个飞上“太空”的摄像机
2015-04-14 13:21发布
-
每周一作(zuō) 开车也能发微信的手机神器
2015-04-02 14:24发布
-
用开源飞控套件做一架Mini四轴飞行器
2015-03-31 15:09发布
阅读数: 15515