例程完整代码参看http://tiny.cc/doorcam

上手jetsonnano不久,这里将跑过的一个例程贴出来,用于记录和填坑。该例程应用人脸识别跟踪每一个走到家门口的人。

CSI摄像头的使用:https://github.com/JetsonHacksNano/CSI-Camera

face_recognition:https://github.com/ageitgey/face_recognition

一、前期准备阶段

安装需要的python库

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

下面还要安装编译numpy和dlib,但是nano的内存只有4GB,编译dlib的时候可能不够用(但是你的东西要是不多的话,我实测是够的),这里需要设置swapfile,将磁盘空间作为额外的RAM。大神提供了简单方法如下:

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

这里需要reboot一下,确保swapfile在运行。

安装编译numpy,这里需要一些时间

pip3 install numpy

下面是安装编译dlib,Davis King创建的一个深度学习库。这里说是因为nano的CUDA库中有一个bug(然而我并不知道是啥),所以首先下载dlib,修改一行代码。

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

修改一下代码行,搜索854行进行注释

gedit dlib/cuda/cudnn_dlibapi.cpp
forward_algo = forward_best_algo;//把这一行注释

然后保存、关闭编辑器。编译安装dlib,需要很长的时间。

sudo python3 setup.py install

最后安装face_recognition Python库

sudo pip3 install face_recognition

二、应用阶段

下载代码:

wget -O doorcam.py tiny.cc/doorcam

这代码需要科学上网才能下载到,这里贴出另一个链接,可全选复制。https://gist.githubusercontent.com/ageitgey/84943a12dd0d9f54e90f824b94e4c2a9/raw/906b921481a0f18ddf1fcbb1e8a45d58fbde3b5e/doorbell_camera.py

最后,运行代码,按q退出。

python3 doorcam.py

三、该例程通过CUDA GPU进行实时的人脸识别,可以记录和比较人脸。摄像头的方向可能会有问题,可以修改参数。在处理的时候将视频帧调整为原尺寸的1/4进行人脸识别,实测处理过程还是比较慢的。已经保存的人脸数据在known_faces.dat中。我的nano接显示器没有反应,但是我并没有禁用图形界面,所以我一直用的是MobaXterm,不知道是板子的问题,还是有什么我没有注意到,望大佬解救。

 

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐