在centos上安装python人脸库face_recognition

前段时间看了看python和face_recognition,用来识别人脸和对比人脸,发现在centos上安装face_recognition还是费了点小劲挖了点小坑的,曲曲折折东拼西凑到处查资料终于鼓捣好了,特记录一下;

在centos上安装face_recognition大概分5步吧:

  1. 升级gcc和g++
  2. 升级cmake
  3. 安装python
  4. 安装dlib
  5. 安装face_recognition

1.升级安装gcc和g++

先查看下gcc的版本:

gcc -v

如果没有显示版本则说明centos没安装gccg++,需要安装:

yum install gcc gcc-c++

升级到gcc9版本或者11版本:

yum install centos-release-scl

yum install devtoolset-9-gcc*

(使用yum install devtoolset-11-gcc*可以升级到11)

找到gcc的安装位置(为了创建软连接,可能需要访问权限):

find /usr -name g++

find /opt -name g++

通常安装目录在/usr/bin/g++和/opt/rh/devtoolset-9/root/usr/bin/g++,如果没搜到就find / -name g++全部搜索,会比较慢;

然后备份旧的gcc并创建新的链接(我的centos上面旧的gcc版本是4.8.5):

mv /usr/bin/gcc /usr/bin/gcc-4.8.5

mv /usr/bin/g++ /usr/bin/g++-4.8.5

ln -s /opt/rh/devtoolset-9/root/usr/bin/gcc /usr/bin/gcc

ln -s /opt/rh/devtoolset-9/root/usr/bin/g++ /usr/bin/g++

备份旧的cc和c++并创建新的链接:

mv /usr/bin/cc /usr/bin/cc-4.8.5

mv /usr/bin/c++ /usr/bin/c++-4.8.5

ln -s /usr/bin/gcc /usr/bin/cc

ln -s /usr/bin/g++ /usr/bin/c++

最后可以再用 gcc -v 验证下版本,一般会显示类似 gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC);

2.安装或者升级cmake(root权限)

卸载旧版本的cmake:(可以先用cmake --version查看下旧版本)

yum remove cmake

安装EPEL软件源:

yum install epel-release

安装cmake 3.x版本:

yum install cmake3

创建链接:

ln -s /usr/bin/cmake3 /usr/bin/cmake

查看cmake版本:

cmake --version

通常会显示版本:

cmake3 version 3.17.5

CMake suite maintained and supported by Kitware (kitware.com/cmake).

(如果安装了多个版本的cmake,依旧显示其他版本的cmake,有可能是环境变量先读取了其他版本的cmake,可以修改~/.bashrc配置文件,添加export PATH=/usr/bin:$PATH,调整环境变量的读取顺序,然后执行 source ~/.bashrc 使配置生效)

也可以手动下载编译安装cmake:

yum install wget

yum install openssl-devel

使用wget下载cmake源码:

wget https://cmake.org/files/v3.23/cmake-3.23.2.tar.gz

解压源码:

tar -zxf cmake-3.23.2.tar.gz

(可能需要赋予权限chmod 755 cmake-3.23.2.tar.gz)

编译安装cmake:

cd cmake-3.23.2

./bootstrap

make && make install

3.安装python

先安装“_ctypes”模块:(重要,一定要在安装python前安装,否则需要安装完_ctypes模块重新安装python)

yum install libffi-devel -y

可能还要安装:

yum install python3-devel

使用官网下载的python源码包解压安装:

tar -zxvf Python-3.10.13.tgz

cd Python-3.10.13

./configure --prefix=/usr/local/python3

make && make install

(--prefix指定安装目录)

处理pip和python链接:(如果已经存在就先删除链接或者备份重命名)

ln -s /usr/local/python3/bin/python3 /usr/bin/python

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip

处理centos中依赖python2.7的文件:

vi /usr/bin/yum

vi /usr/libexec/urlgrabber-ext-down

将这两个文件中第一行的 #!/usr/bin/python 修改为 #!/usr/bin/python2 ,然后保存退出;

配置阿里云的pip源,在用户根目录下创建.pip/pip.conf文件夹的配置文件,并填入:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host = mirrors.aliyun.com

4.安装dlib

可以直接用pip安装:(使用pip直接安装face_recognition的时候应该会自动安装依赖的dlib模块)

pip install dlib

也可以手动下载源码安装,先去官网下载dlib-19.24.2.tar.gz,然后解压安装:dlib C++ Library

tar -zxvf dlib-19.24.2.tar.gz

cd dlib-19.24.2

python setup.py install

5.安装face_recognition

直接用pip安装:

pip install face_recognition

或者去手动下载安装:ageitgey/face_recognition: The world's simplest facial recognition api for Python and the command line (github.com)

可能需要安装的库:

yum install libjpeg* zlib libtiff

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239487.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高效接口测试:Python自动化框架设计与实现

引言 在软件开发过程中,接口测试是非常重要的一环。它可以帮助我们确保系统的各个模块之间的交互是否正常,从而提高软件的质量和稳定性。本文将介绍如何使用Python编写一个自动化接口测试框架,包括框架搭建、工具选择、目录结构、配置等内容…

Linux中vim中进行替换/批量替换

Linux中vim中进行替换/批量替换 一:在 Vim 中进行文本替换的操作是通过使用 :s(substitute)命令来实现的。这里是一些基本的替换命令 替换当前行的第一个匹配项: :s/old/new/这将替换当前行中第一个出现的 “old” 为 “new”。 替换当前行的所有匹配项…

大模型重构云计算:AI原生或将改变格局

摘要:随着AI技术的快速发展,大模型正逐渐改变云计算的格局。本文将深入探讨大模型如何重构云计算,并分析其对云计算的影响。 一、开篇引言 近年来,人工智能技术的飞速发展,特别是大模型的崛起,正在对云计算…

Linux ContOS7 日志管理(rsyslog)

目录 01. rsyslog 记录日志程序 02.日志文件 03.日志等级 Linux 日志文件是记录 Linux 系统运行信息的文件。它们类似于人类的日记,记录了系统的各种活动,如用户登录、进程启动、错误消息等。 Linux 日志文件通常存储在 /var/log/ 目录中。该目录包含…

Linux应用程序管理(rpm yum 源码安装)

一.Linux应用程序基础 当我们主机安装Linux操作系统时候,也会同时安装一些软件或网络服务等等,但是随着系统一起安装的软件包毕竟他是少数的,能够实现的功能也是有限的,如果需要实现更丰富的功能,那就需要安装应用程序…

构建数字化金融生态系统:云原生的创新方法

内容来自演讲:曾祥龙 | DaoCloud | 解决方案架构师 摘要 本文探讨了金融企业在实施云原生体系时面临的挑战,包括复杂性、安全、数据持久化、服务网格使用和高可用容灾架构等。针对网络管理复杂性,文章提出了Spiderpool开源项目,…

The Cherno C++笔记 03

目录 Part 07 How the C Linker Works 1.链接 2.编译链接过程中出现的错误 2.1 缺少入口函数 注意:如何区分编译错误还是链接错误 注意:入口点可以自己设置 2.2 找不到自定义函数 2.2.1缺少声明 2.2.2自定义函数与引用函数不一致 2.3 在头文件中放入定义 …

JDK1.8新特性Lambda表达式简化if-else里都有for循环的优化方式

在日常开发过程当中,能把代码写出来,不一定就意味着能把代码写好,说不准,所写的代码在他人看来,其实就是一坨乱七八糟的翔,因此,代码简化尤其重要,我曾经遇到过这样一个类型的代码&a…

git入门以及如何推送代码到云端

Gitee(码云)是开源中国于2013年推出的基于Git的代码托管平台、企业级研发效能平台,提供中国本土化的代码托管服务。 地址: Gitee - 基于 Git 的代码托管和研发协作平台 步骤1:创建远程仓库 在Gitee上创建一个新的远…

c# OpenCV 检测(斑点检测、边缘检测、轮廓检测)(五)

在C#中使用OpenCV进行图像处理时,可以使用不同的算法和函数来实现斑点检测、边缘检测和轮廓检测。 斑点检测边缘检测轮廓检测 一、斑点检测(Blob) 斑点检测是指在图像中找到明亮或暗的小区域(通常表示为斑点)&#…

java类和对象的思想概述

0.面向对象Object OOP——名人名言:类是写出来的,对象是new出来的 **> 学习面向对象的三条路线 java类以及类成员:(重点)类成员——属性、方法、构造器、(熟悉)代码块、内部类面向对象特征&…

【论文解读】CNN-Based Fast HEVC Quantization Parameter Mode Decision

时间:2019 年 级别:SCI 机构:南京信息工程大学 摘要 随着多媒体呈现技术、图像采集技术和互联网行业的发展,远程通信的方式已经从以前的书信、音频转变为现在的音频/视频。和 视频在工作、学习和娱乐中的比例不断提高&#xff0…

bugku-misc-这是一张单纯的图片

附件:图片 1、查看属性 2、010 whex打开看看 可以看到html编码,将文件后缀,改成html,打开 即可

JavaScript--明明白白Promise (Park One)

明明白白Promise (Park One) Promise是一种用于处理异步操作的特殊对象。它代表了一个尚未完成但最终会完成的操作,并可以在操作完成后返回结果或错误。 Promise有三种状态:pending(进行中)、fulfilled(已完成&#…

华为设备命令行操作基础

熟悉VRP命令行并且熟练掌握VRP配置是高效管理华为网络设备的必备基础。 设备初始化启动 管理员和工程师如果要访问在通用路由平台VRP上运行的华为产品,首先要进入启动程序。开机界面信息提供了系统启动的运行程序和正在运行的VRP版本及其加载路径。启动完成以后&am…

鸿蒙-ArkUI 常用布局容器对齐方式

概念 主轴:在布局容器中,默认存在两根轴,分别是主轴和交叉轴,不同的容器中主轴的方向不一样的。 在Column容器中主轴的方向是垂直方向。在Row容器中主轴的方向是水平方向。在Flex容器中可以通过direction参数设置主轴的方向&…

MySQL数据库 触发器

目录 触发器概述 语法 案例 触发器概述 触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的soL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录&am…

Copilot助力Python代码编程的案例分享与总结

Copilot是GitHub推出的一款AI编程助手,它能够根据你编写的代码和注释自动生成代码片段或完整的函数。以下是我使用Copilot进行Python编程的一些经验分享以及多个代码示例: 1.快速生成基础代码结构: 当你需要创建一个新的Python文件并初始化一…

分布式搜索elasticsearch概念

什么是elasticsearch? elasticsearch是一款非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容 目录 elasticsearch的场景 elasticsearch的发展 Lucene篇 Elasticsearch篇 elasticsearch的安装 elasticsearch的场景 elasticsear…

【SpringMVC】REST(Representation State Transfer)ful开发

REST全称Representation State Transfer,表现形式状态转换 文章目录 1. 为什么提出了REST?2. RESTful入门案例案例代码修改请求方式修改成RESTful风格,并以POST方式提交 RESTful格式下传参RESTful入门案例总结RequestBody,Reques…