centos7内网离线安装face_recognition、python、pip、CMake、dlib,离线升级gcc/切换gcc,文末有face_recognition的docker版本

简介: 公司项目需要人脸识别,本来app自带人脸识别,结果api支持的设备试了一圈就一个同事的华为Mate40Pro可以,所以使用无望。接着找了一下免费的java离线人脸识别sdk,发现虹软的确实简单好用,一会就在linux上弄好并测试通过了,然而在准备集成进去开写代码时,不小心看到了一眼首次激活需联网,后续方可离线使用,好吧,我们内网机器首次都不可能的,接着看了下离线激活方法,首先需要企业认证,这一步我们肯定没法做的,毕竟不是之前的小公司了,营业执照啥的随便给我肯定不行,直接放弃了。后来在同事推荐下看了下face_recognition这个项目,之前基本没用过python,于是有了漫长的踩坑之旅。

0 背景

公司项目需要人脸识别,本来app自带人脸识别,结果api支持的设备试了一圈就一个同事的华为Mate40Pro可以,所以使用无望。接着找了一下免费的java离线人脸识别sdk,发现虹软的确实简单好用,一会就在linux上弄好并测试通过了,然而在准备集成进去开写代码时,不小心看到了一眼首次激活需联网,后续方可离线使用,好吧,我们内网机器首次都不可能的,接着看了下离线激活方法,首先需要企业认证,这一步我们肯定没法做的,毕竟不是之前的小公司了,营业执照啥的随便给我肯定不行,直接放弃了。后来在同事推荐下看了下face_recognition这个项目,之前基本没用过python,于是有了漫长的踩坑之旅。


为了避免各位安装过程还有问题,做了一个docker镜像供大家使用。

文末有face_recognition的docker版本,可直接导入docker运行!!!

文末有face_recognition的docker版本,可直接导入docker运行!!!

文末有face_recognition的docker版本,可直接导入docker运行!!!


1 离线安装python3和pip3

1,在有外网的环境下,下载好安装包和依赖

下载Python3的安装包访问https://www.python.org/ftp/python/,下载合适的安装包

下载依赖:

yumdownloader --destdir=/home/packages zlib zlib-devel bzip2-devel epel-release ncurses-devel mpfr libmpc kernel-headers glibc glibc-common glibc-headers glibc-devel cpp gcc libffi-devel libgcc libgomp libstdc++ libstdc++-devel gcc-c++

注:使用 yumdownloader 命令 需先安装yum-utils


2,上传rpm到内网机器安装

rpm -ivh --force --nodeps *rpm


3,上传python安装包到内网机器安装

tar -xzvf Python-3.8.12.tgz


4,进入解压路径

cd Python-3.8.12


5,设置安装路径并开始安装

./configure --prefix=/usr/local/python3.8 --enable-shared


make && make install


ln -s /usr/local/python3.8/bin/python3 /usr/bin/python3


echo "/usr/local/python3.8/lib" > /etc/ld.so.conf.d/python3.8.conf


ldconfig


6,检查Python3.8.12是否安装成功

python3 -V


7,python 3.8.12中自带了pip,所以只需要建立链接就行

ln -s /usr/local/python3.8/bin/pip3.8 /usr/bin/pip3


8,检查pip是否安装成功

pip3 -V

参考链接:https://www.cnblogs.com/LittleMaster/p/16469534.html


9,内外网机器均要升级pip版本(必做!非常重要!!!)

https://pypi.org/project/pip/#files 去下载whl文件,然后pip3 install xxx.whl即可升级成功。


2 离线升级gcc/切换gcc(安装dlib需要4.9+)

方法简介:找一台可以联网的机器,使用yum安装好gcc版本控制工具包,压缩后,直接复制到不能联网的机器,修改环境变量即可!具体操作如下


2.1 虚拟机【能联网的】

1、安装centos-release-scl源

yum -y install centos-release-scl

2、安装devtoolset,注意,如果想安装9版本的,就改成devtoolset-9-gcc*,以此类推

yum -y install devtoolset-9-gcc*

PS:如果不清楚有哪些本版可以使用 yum list |grep devtoolset查询,注意:需要先安装centos-release-scl才可以查询到 !!!


3、激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本

scl enable devtoolset-9 bash

查看一下gcc版本

gcc -v


4、查询已安装的devtoolset所在目录

# 查询已安装的gcc包
[root@localhost rh]# rpm -qa |grep gcc
gcc-4.8.5-16.el7.x86_64
gcc-c++-4.8.5-16.el7.x86_64
libgcc-4.8.5-16.el7.x86_64
gcc-gfortran-4.8.5-16.el7.x86_64
devtoolset-9-gcc-9.3.1-2.el7.x86_64
devtoolset-9-gcc-c++-9.3.1-2.el7.x86_64
# 查询gcc包安装的具体位置,查询结果:安装目录为/opt/rh/devtoolset-9
[root@localhost rh]# rpm -ql devtoolset-9-gcc-9.3.1-2.el7.x86_64
[root@localhost rh]# rpm -ql devtoolset-9-gcc-c++-9.3.1-2.el7.x86_64


5、压缩 /opt/rh/devtoolset-9/

cd /opt/rh/ tar -czvf devtoolset-9.tar.gz devtoolset-9/


2.2 虚拟机【离线】

1、将压缩包复制到离线服务器,解压到/opt/rh/目录,解压后的目录为/opt/rh/devtoolset-9


tar -xzvf devtoolset-9.tar.gz -C /opt/rh/

2、临时切换版本

source /opt/rh/devtoolset-9/enable


3、永久切换,需要修改/etc/profile文件

# gcc环境变量,建议添加至最后一行 
vim /etc/profile 
############## 需要添加的文本 - 开始 ##############
source /opt/rh/devtoolset-9/enable 
############## 需要添加的文本 - 结束 ##############
# 刷新环境变量
source /etc/profile


查看一下gcc版本

gcc -v


参考链接:https://blog.csdn.net/u013539566/article/details/126750260


3 离线安装CMake(安装dlib需要)

https://cmake.org/download/ 下载sh版本和tar都行,然后上传到服务器,解压后链接一下camke

ln -s /home/cmake-3.24.2-linux-x86_64/bin/cmake /usr/bin/cmake

0e38c4fe884e45e492c593df7908daaf.png


4 离线安装dlib

http://dlib.net/ 去下载dlib,上传至服务器,解压后进入目录,执行:

python3 setup.py install

注意:老版需要boost库,具体多少版本之前忘了,安新点的版本总之没毛病。


5 离线安装face_recognition


5.1 在外网机器下载所需的其他依赖

1、安装pip install pipdeptree,


也可下载文件离线安装,无依赖


2、执行 pipdeptree


查看所有包及其依赖


3、执行 pipdeptree -p xxxx包名


查看指定包,其需要的依赖


4、执行 pipdeptree -p xxxx包名 -r


查看哪些其它包,依赖于此指定包


5.1.2 下载所需依赖

创建个requirement.txt写入:

face-recognition==1.4.0

然后执行pip3 download -r requirement.txt 就会下载该项目的所需依赖。

967a44b33ec44ac69b311e7741ff41ae.png

ps:如果要下载当前机器的所有已安装的包,执行pip3 freeze > requirement.txt再执行下载命令即可。


5.2 在内网机器安装所需的其他依赖

将下载后得到的那些whl文件和tar文件传到内网机器,whl直接pip3 install xxx.whl安装即可,tar文件先解压tar -zxf xxx.tar.gz,然后在cd到解压目录执行python3 setup.py install即可安装完成。


注意:dlib之前已经安装过了,所以这里不需要再安装了。如果安装whl时报错,使用pip3 debug --verbose查看当前支持哪些平台,看看下载的那些whl文件名是否支持,不支持先升级pip版本,还不行就去pypi.org挨着找到支持的为止,比如我就用的下边这个。

38273aa80cc94ae0ab0b48158a54e9c6.png


5.3 安装face_recognition并测试

先把项目拉下来,然后打成压缩包放到内网机器解压

git clonehttps://github.com/ageitgey/face_recognition.git

然后执行python3 setup.py install即可安装完成。


只要前面依赖环境装好了,这个应该没啥问题的。

安装后链接下命令方便在全局使用:ln -s /usr/local/bin/face_recognition /usr/bin/face_recognition


最后开始测试,创建个knowImg,放了张大四照片在里面,然后在上级目录放些待识别图片,结果如下:

16736c2eee144ab99f4665618935f0d4.png可以看出除了别人的照片,本人的照片都识别出来了,识别率也很真实,值越低越匹配。


至此,踩坑结束,花费了整整一天半的时间。


6 docker版本安装使用

资源地址:https://download.csdn.net/download/baikunlong/86838814

1、解压得到face_recognition_centos.tar文件

tar -zxf face_recognition_centos.tar.gz


2、导入镜像文件

docker import face_recognition_centos.tar face_recognition_centos:v1


3、运行该镜像

docker run -itd -v /opt/faceImg:/opt/faceImg --name frc face_recognition_centos:v1 bash

参数:/opt/faceImg是我存放所有人脸图片的目录


4、在外部调用(如java调用)人脸识别即可拿到返回值

调用:

docker exec frc face_recognition --show-distance true /opt/faceImg/zhangsan21/ /opt/faceImg/zhangsan21-temp.jpg

结果:

/opt/faceImg/zhangsan21-temp.jpg,zhangsan21,0.33687193198815224

目录
相关文章
|
8月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
1382 69
|
7月前
|
存储 分布式计算 Linux
安装篇--CentOS 7 虚拟机安装
VMware 装 CentOS 7 不知道从哪下手?这篇超详细图文教程手把手教你在 VMware Workstation 中完成 CentOS 7 桌面系统的完整安装流程。从 ISO 镜像下载、虚拟机配置,到安装图形界面、设置用户密码,每一步都有截图讲解,适合零基础新手快速上手。装好之后无论你是要搭 Hadoop 集群,还是练 Linux ,这个环境都够你折腾一整天!
2936 3
|
9月前
|
人工智能 数据安全/隐私保护 Python
小红书图文生成器,小红书AI图文生成工具,python版本软件
Pillow库自动生成符合平台尺寸要求的配图7;3)利用Playwright实现自动化发布流程6。
|
8月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
660 78
|
9月前
|
Linux 网络安全 Apache
针对在Centos/Linux安装Apache过程中出现的常见问题集锦
以上每个问题的解决方案应深入分析错误日志、系统消息和各种配置文件,以找到根本原因并加以解决。务必保持系统和Apache软件包更新到最新版本,以修复已知的bugs和安全漏洞。安装和管理Web服务器是一项需要细致关注和不断学习的任务。随着技术的发展,推荐定期查看官方文档和社区论坛,以保持知识的更新。
338 80
|
7月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
1569 16
|
10月前
|
Ubuntu 安全 API
Python3.14正式支持Free Threaded版本!
Python 社区迎来历史性时刻!Python 3.14 正式将无 GIL 构建列为受支持选项,标志着 Free‑Threaded Phase II 启动。本文将深入解析 PEP 779 规定的支持标准、3.14.0b3 版本的新变化,以及这对Python开发者意味着什么。文末还有小彩蛋哦!
1509 87
|
8月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
584 10
|
10月前
|
机器人 Linux
CentOS 7系统中安装特定版本CMake 3.21.2的方法。
到这里,过程已经全部完成。如果你跟随上面的步骤来,那么你现在已经拥有了一个全新的CMake版本在你的CentOS 7系统上了。这个过程就像是你通过一系列仪式,唤醒了一个沉睡已久的古老机器人,它现在完全按照你的意愿来帮你构建和编译软件了。
692 18
|
9月前
|
API 数据安全/隐私保护 开发者
企业微信自动加好友软件,导入手机号批量添加微信好友,python版本源码分享
代码展示了企业微信官方API的合规使用方式,包括获取access_token、查询部门列表和创建用户等功能