教你用1000元预算打造家门口的人脸识别监控系统:
我们只需Jetson Nano配上一个简单的摄像头就能实现识别和记录来访你家门口的人员。

通过人脸识别模块face_recognition,能够实时监控到来访人员是否曾经来过,并且记录具体什么时候和多少次来访。即使他们每次来访是穿不同的衣服,系统也是能够识别出来的。

英伟达的Jetson Nano板子十分强大,使你能够以非常小的预算就能实现GPU加速的深度学习模型。Jetson Nano与树莓派相似,但前者计算速度快很多。

(通过人脸识别模块face_recognition和Python,你可以轻松地打造自己的家门监控系统,识别和记录来访人员)

需要准备什么?

  1. 英伟达Jetson Nano开发板(¥800)
  2. MicroUSB电源线(¥10)
  3. 树莓派摄像头v2.x版本(¥150)
  4. TF储存卡(至少32G)(¥40)
  5. 其他你可能已经有的设备:TF卡读取器,USB连接的键盘和鼠标,HDMI接口的显示器,网线

安装Jetson Nano镜像

如何烧Jetson Nano系统的镜像,我就不在这重复了,刚入手的同学们自行搜索一下其他教程。

正确连接摄像头


要确保摄像头正确连接到Jetson Nano的板子上喔!
有些同学很容易将此反向接入了,或者镜头的位置。

首次账户登陆的设置

第一次登陆Jetson Nano系统,你需要走一遍标准的Ubuntu Linux系统初始用户的设置,设置好账户和密码(我们随后口令行当中是需要用到的)。

在此初始步骤,系统已经预先安装好了Python3.6和OpenCV,是可以立即通过终端Terminal来运行Python程序的。但为了正常运行家门视频监控模块,我们依然是需要给系统安装一些库的。

安装所需的Python库

为了让人脸识别模块运行,我们需要先安装一些Python库。虽然Jetson Nano本身就预装好不少有用的库,但还是会遇到一些奇奇怪怪的疏漏。比如,OpenCV本来就安装好了,但是为了正常使用之前,需要安装pipnumpy这些库。那就让我们来先解决一下这问题。

首先在Jetson Nano桌面以下快捷键打开终端:
Ctrl + Alt + T
在终端窗口输入以下命令:(如果需输入密码,就是初始创建账号的用户密码)

sudo apt-get update
sudo apt-get install python3-pip cmake libopenblas-dev liblapack-dev libjpeg-dev

首先,我们先更新apt,这是Linux的安装工具。
然后,通过apt安装一些基本库,这都是为了之后支持numpydlib的运行。

我们进行下一步之前,我们需要创建一个swapfile。Jetson Nano开发板的RAM只有4GB,这在运行dlib当中是不够用的,所以我们需要通过swapfile让TF卡空间都能成为更多的RAM来协助运行。幸运的是,我们只需要两行代码就可以实现!

git clone https://github.com/JetsonHacksNano/installSwapfile
./installSwapfile/installSwapfile.sh

备注:这高效的方法得感谢前辈JetsonHacks,实在太好用了!

到这一步,我们需要重新启动系统,确保swapfile能够正常运作。如果你跳过这一步的话,很可能下一步骤会遇到错误。你可以自行在桌面的主菜单来重启,或输入口令

sudo reboot

重启登陆好之后,在终端Terminal窗口继续下一步:安装numpy,这是用于矩阵计算的Python库

pip3 install numpy

这安装过程大概会花费15分钟时间。如果安装过程定住了,不用担心,耐心等待一下。

好了,现在装备好安装dlib了,这是大师Davis King创建的深度学习库,这使得人脸识别face_recognition库的运行效率大大提高。

但是……目前Jetson Nano有个小小的bug无法很好地使得dlib运行。英伟达社区的大神们已经确定了这个bug只需要编辑修改一行代码就可以了,所以不用担心,不是什么大问题。

在终端,我们先运行下载dlib,然后解压代码。

wget http://dlib.net/files/dlib-19.17.tar.bz2
tar jxvf dlib-19.17.tar.bz2
cd dlib-19.17

在我们运行之前,我们先编辑修改其中一条代码:

gedit dlib/cuda/cudnn_dlibapi.cpp

这时会跳出一个文本编辑器来修改程序。上面的gedit也可以修改为vi,vim或nano口令来执行,不了解这三个文本编辑口令的同学,自行搜索学习。

搜索程序文本的第854行:

forward_algo = forward_best_algo;

在其前面加//使得,将此代码注释化(忽略运行):

//forward_algo = forward_best_algo;

然后保存此文本,回到终端命令行,安装dlib

sudo python3 setup.py install

这过程大概需要30~60分钟,这过程Jetson Nano可能会发热,但没问题的,让它发热吧,别发光就好,哈哈。

以上完成之后,我们就开始安装人脸识别python库face_recognition啦:

sudo pip3 install face_recognition

现在你的Jetson Nano已经准备好通过Cuda的GPU加速器来执行人脸识别了,下一步就是新建家们视频监控(Doorcam)的python代码了。

创建家门视频监控代码 DoorCam

首先,我们创建一个专门的程序文件夹吧,然后通过vi来新建python程序(或者口令gedit,vim,nano):

cd
mkdir doorcam
vi doorcam.py

这时我们会进入vi文本界面了,打开此链接DoorCam By ageitgey或者到本文结尾代码行,将所有python代码复制粘贴过去vi界面,并且保存。
(提示一下不熟悉vi操作的同学:复制粘贴代码之后,按esc,输入:wq!并且回车)

这时候我们就完全准备好运行家门视频监控啦!

是不是很激动?!?!

Jetson Nano - 人脸识别:家门视频监控相关推荐

  1. jetson nano 人脸识别

    代码在git 通过融合两种人脸识别算法 insightface 与facenet 来提高人脸识别的准确率,在jetson nano 中最复杂的不仅仅是算法,而是环境的安装与配置,我已经有安装好人脸识别 ...

  2. jetson nano 人脸

    jetson nano 人脸 https://github.com/SteveMacenski/jetson_nano_detection_and_tracking/blob/6420430868aa ...

  3. Java + opencv 实现人脸识别,图片人脸识别、视频人脸识别、摄像头实时人脸识别

    搭建环境 opencv官网下载windows安装包 https://opencv.org/releases/ 选择最新版4.1.1 下载完成后是一个opencv-4.1.1-vc14_vc15.exe ...

  4. 基于人脸识别的火车站监控解决方案(图)

    1.1概述 一般而言,生物识别技术包括采集.预处理.特征提取.特征比对等模块,处理流程如图1所示. 图1 生物识别技术处理流程图 点击此处查看全部新闻图片 在实现形式上,采集单元往往是作为一个独立的设 ...

  5. python新闻联播分类_如何利用人脸识别自动切分视频

    前些天被问到这样一个问题,能不能做视频分镜头,更确切的是自动切分视频片段.拿央视的新闻联播来说,30分钟的新闻联播,可能包含十多个新闻话题,希望能够自动把这10多个话题进行切分. 这个问题蛮有意思的, ...

  6. Python人脸识别图片视频

    人脸识别技术发展现状及未来趋势 当前,随着人工智能.物联网等前沿技术的迅速发展,智能时代已悄然到来,"刷脸"逐渐成为了新的风潮.在人脸识别技术商业化应用领域不断扩张的趋势下,&qu ...

  7. 人脸识别-在视频中识别人脸

    感谢优秀的你打开了小白的文章 "希望在看文章的你今天又进步了一点点,离美好生活更近一步!" 目录 往期回顾 代码 结果展示 VideoCapture类的构造函数: 往期回顾 灰度转 ...

  8. OpenCvSharp人脸识别系统(视频中的人脸)

    前段时间因项目中有用到人脸识别,折腾了好久才解决了问题.现将简单的人脸识别功能分享出来,供大家研究. 是基于OpenCVSharp写的人脸识别功能,启用电脑自带的摄像头,识别到人脸图片,并以视频的形式 ...

  9. opencv-图像人脸识别和视频人脸识别

    首先可以取opencv官方github下载识别模型xml文件:https://github.com/lonngxiang/opencv/tree/master/data/haarcascades 1, ...

最新文章

  1. flash写保护原理_一种基于flash写保护的防止flash被意外篡改的方法与流程
  2. Kafka精华问答 | kafka的使用场景是什么?
  3. j2ee与mysql乱码过滤_J2EE中文乱码处理
  4. 2021-2025年中国一次性马桶马桶座套行业市场供需与战略研究报告
  5. Debug模式启动tomcat超时
  6. 三菱PLC排故障的方法
  7. java中cleanup的使用_【Lombok注解】@Cleanup 自动资源管理:安全无困扰地调用close方法...
  8. 号外:PPG商标被查封 轻工厂泡沫破灭
  9. 紫荆花开之say love to the girl you love
  10. DYMO/Mimio推出最新互动教育软件linux操作系统培训
  11. 抽象数据类型三元组Triplet基本操作与实现 严蔚敏版
  12. Edit conflicts
  13. Redis安装(Ubuntu)
  14. Machine Learning Approach to RF Transmitter Identification
  15. 华附计算机学神,【学习】时隔13年,华附两牛娃杀进奥数国家队,父母亲述学霸成长史!...
  16. php mcrypt generic,php – mcrypt_generic vs mcrypt_encrypt
  17. 因为老板的暴脾气,我裸辞了
  18. 计算机在油气储运专业的应用,计算机多媒体专业学论文参考文献 计算机多媒体专业论文参考文献数量是多少...
  19. [从头读历史] 第279节 诗经 豳风
  20. 给程序猿宅男宅女相亲恋爱窍门

热门文章

  1. 语法最简单的微博通用爬虫weibo_crawler
  2. 《论语》原文及其全文翻译 学而篇12
  3. 艾司博讯:拼多多访客怎么进来在哪里看到
  4. 电气工程系毕业设计大全
  5. Go语言读取文件的常用方式
  6. linux做界面切换,linux两个界面之间的切换
  7. 入门UI设计要学习什么内容?
  8. CPU密集和IO密集
  9. 腾讯云服务器安装什么系统,腾讯云服务器操作系统TencentOS安装与体验
  10. Mac家谱制作软件MacFamilyTree 9好用吗?如何在MacFamilyTree 9中创建数据库的备份?