在搭载M1芯片的mac上使用face_recognition库实现实时人脸识别小demo
前言
在搭载M1芯片的mac上顺利进行开发是一件不仅随缘而且需要人品的事情,不仅仅因为M1芯片的ARM架构所带来的编译方式的不同,bugsur新的文件路径系统以及时不时的抽风也使得顺利开发的路上艰难险阻。今天就来看看GitHub上大名鼎鼎的开源人脸库face_recognition如何比较顺利地在M1上跑起来且实现简单的实时人脸识别的功能。
由于不可描述的原因,网络环境所造成的安装失败不在本文讨论范围中。
第一部分 关于环境的那点事
网络环境搭建
建议进行设置省去不必要的麻烦
大部分的环境搭建与库安装需要使用终端进行,由于终端默认并不走代理的网络,
为了此后下载的顺利,先需要设置终端也可以使用代理。
首先,在当前用户根目录新建一个文件名为 .bash_profile的空白文本「. 开头文件为隐藏文件」,然后输入以下代码:
function proxy_off(){ |
在export no_proxy与export http_proxy填入对应的本地代理服务器地址以及端口
可以在你的代理软件中查看
将文件配置好并放在用户根目录后
当让终端走代理的时候,输入:
source ~/.bash_profile |
想关闭代理的时候,输入:
proxy_off |
此为一次性设置,关闭终端后失效
基本环境搭建
安装python最新版本
从python官网下载最新版本python 记得选中 macOS 64-bit universal2 installer
安装完成后在终端输入
open ~/.bash_profile |
在文件中加上一行环境变量配置后保存退出
export PATH=/usr/local/bin:$PATH |
重新打开终端输入
source ~/.bash_profile |
顺利的话你会在终端中看到python的版本号信息,python安装到此结束
各种依赖包安装
yellow, 头铁的可以试试直接安装 设置好终端网络代理后 在终端中输入 pip3 install face_recognition
在安装face_recognition之前我们需要安装
安装homebrew
唯一的重点是配置环境变量
下载安装过程略
安装完成后根据提示在终端中输入
open ~/ .zprofile |
在文件中加入
eval "$(/opt/homebrew/bin/brew shellenv)" |
保存后重启homebrew,在终端中输入
brew |
如果出现各种指令提示,证明安装成功
安装miniforge
鉴于M1版本的开发工具适配进程目前并不同步,所以这里使用miniforge来进行库管理
在网站中选择Apple Silicon版本下载,下载后直接运行即可
接下来我们需要在终端中激活
conda create -n myenv python=3.9 //创建名为myenv,python版本为3.9的环境 |
安装numpy
激活conda且配置好网络代理后可以直接在终端中输入
pip3 install numpy=1.9.14 |
等待下载安装,安装完成后检测是否安装成功,在终端中输入
python3 |
没报错的话就安装成功了
安装openblas
激活conda且配置好网络代理后可以直接在终端中输入
pip3 install openblas |
等待下载安装,安装完成后检测是否安装成功,在终端中输入
python3 |
没报错安装成功
需要编译的库
这三个包如果安装失败,可以多试几次,cmake有概率编译失败
安装opencv
点击链接下载opencv库,仅适用于M1芯片
opencv_contrib_python-4.5.0+bbaa777-cp39-cp39-macosx_11_0_arm64.whl
在终端中激活环境
conda activate myenv //激活环境 |
定位到下载目录并安装
cd 目录 |
等待安装即可
安装cmake
终端配置好网络代理后输入
brew install cmake //安装cmake |
安装Dlib
激活conda且配置好网络代理后直接在终端中输入
pip3 install dlib |
安装后在终端输入
python3 |
如果未报错恭喜你安装成功,我们就差最后一步了
对着检查一下吧
安装face_recognition
激活conda且配置好网络代理后直接在终端中输入
pip3 install face_recognition |
如果出现了任何错误,欢迎在评论区告诉我
此过程需要网络以及人品双buff叠加,请坐和放宽……
安装完成后在终端中输入
python3 |
如果没有报错证明万里长征我们已经走了一半了。
也可以使用 pip3 list 命令来查看所有已经安装的库 如图
到此安装告一段落
第二部分 开始造轮子吧
由于安装这些依赖和库可能已经损耗你的大部分精力了,
所以接下来我们就快速地来看看怎么把这个简单的实时人脸识别跑起来吧。
摄像头是必须的,所以请不要关上盖子运行接下来的步骤
下载py文件
从GitHub上下载
使用编辑器编辑
用你喜欢的编辑器打开,这里使用vscode示范,下面代码都是从源文件中截出,对应修改即可。
|
例子
如图,图片1为Obama,图片2为biden
运行一下吧!
打开终端,输入
python3 <将文件拖到这里或者粘贴文件的路径> |
就像这样
按下回车等待奇迹的发生
不出意外的话,掏出你的小手机拿出一张照片或者把你的脸对准摄像头,就可以看到
大功告成啦!
尾巴
总体来说跑起这个小项目还是基本没有难度的,最主要的是有稳定的网络以及足够的耐心
face_recognition这个库具有很多方向的应用,今天只是简单地入门一下,还有很多玩法可以发掘哦!
谢谢阅读,欢迎你的留言!