前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Jetson NANO做个智能门铃应用

用Jetson NANO做个智能门铃应用

作者头像
GPUS Lady
发布2019-07-30 19:37:23
3.2K3
发布2019-07-30 19:37:23
举报
文章被收录于专栏:GPUS开发者GPUS开发者

使用Nvidia Jetson Nano,您可以用很少的预算构建运行gpu加速的深度学习模型的独立硬件系统。它有点像树莓派,但速度比树莓派快得多。

为了激发您的灵感,今天这个博主要教你用Jetson Nano构建一个真正的硬件项目——智能门铃,它可以跟踪每一个走到你家前门的人。通过人脸识别,它会立即知道你门前的人是否曾经来过你——即使他们穿着不同。如果他们来过,它可以告诉你确切的时间和频率。

所需要准备的材料:

1.一台已经按照NVIDIA官网步骤刷好镜像文档的NVIDIA Jetson NANO,

2. 安装上树莓派V2摄像头

3. 网线

4. 连接上显示器

5. 电源

此时,已经安装了Python 3.6和OpenCV。您可以打开一个终端窗口并立即开始运行Python程序,就像在任何其他计算机上一样。但在运行智能门铃程序之前,我们还需要安装更多的库。

安装所需的Python库

为了构建我们的人脸识别系统,我们需要安装几个Python库。虽然Jetson Nano预装了很多很棒的东西,但也有一些奇怪的遗漏。例如,OpenCV是用Python绑定安装的,但是没有安装pip和numpy,这些绑定是用OpenCV做任何事情所必需的。让我们解决这个问题。

在Jetson Nano桌面中,打开一个终端窗口并运行以下命令。当它要求输入您的密码时,请输入您创建用户帐户时输入的相同密码:

首先,我们正在更新apt,这是一个标准的Linux软件安装工具,我们将使用它来安装其他所有东西。接下来,我们将使用apt安装一些基本库,稍后我们将需要这些库来编译numpy和dlib。

在继续之前,我们需要创建一个swapfile。Jetson Nano只有4GB内存,不足以编译dlib。为了解决这个问题,我们将设置一个swapfile,它允许我们将磁盘空间用作额外的RAM。幸运的是,有一个简单的方法可以在Jetson Nano上设置一个swapfile。只需运行这两个命令:

此时,您需要重新启动系统以确保swapfile正在运行。

当您重新登录时,打开一个新的终端窗口,我们可以继续。首先,让我们安装一个Python库numpy:

这个命令将花费15分钟,因为它必须从头编译numpy。

现在,我们准备安装dlib,这是Davis King创建的一个深度学习库,它为face_recognition库做了大量工作。

然而,目前在Jetson NANO CUDA库中存在一个bug (https://devtalk.nvidia.com/default/topic/1049660/jetson-nano/issues-with-dlib-library/2?source=post_page),使其无法正常工作。为了解决这个bug,我们必须下载dlib,编辑一行代码,然后重新编译它。不过别担心,没什么大不了的。

在终端运行以下命令:

这将下载并解压dlib的源代码。在编译它之前,我们需要注释掉一行。运行这个命令:

这需要打开文本编辑器中编辑的文件。在文件中搜索以下代码行(应该是第854行):

然后在它前面添加两个斜杠来注释它,所以它看起来是这样的:

现在保存文件,关闭编辑器,回到终端窗口。接下来,运行以下命令编译和安装dlib:

这将花费大约30-60分钟完成,你的Jetson Nano可能会变热,但不用理会。

最后,我们需要安装face_recognition Python库。使用此命令执行此操作:

现在,您的Jetson Nano已准备好通过完整的CUDA GPU加速进行人脸识别。

运行人脸识别智能门铃演示App

face_recognition库是我编写的一个Python库,它使人脸识别变得超级简单。它允许您检测人脸,将每个检测到的人脸转换成一个表示人脸的独特的人脸编码,然后比较人脸编码,看看它们是否可能是同一个人——所有这些都只需要几行代码。

利用这个库,我编写了一个门铃摄像应用程序,它可以识别那些走到你家前门的人,并在每次有人回来时跟踪他们。当你运行它时,它看起来是这样的:

首先,让我们下载代码。我在这里发布了完整的代码和注释,但这里有一个更简单的方法从命令行下载到你的Jetson Nano:

然后你可以运行代码:

您将看到一个视频窗口在您的桌面上弹出。每当一个陌生人走到摄像机前,它就会记录下他们的脸,并开始追踪他们在你家附近待了多久。如果同一个人离开并在5分钟后回来,它将注册一个新的访问并再次跟踪他们。你可以在任何时候按下键盘上的q键退出。

该应用程序将自动将它看到的每个人的信息保存到名为known_faces.dat的文件中。当您再次运行程序时,它将使用这些数据来记住以前的访问者。如果您想清除已知面孔列表,只需退出程序并删除该文件。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档