「图像处理」使用Python+Openface实现人脸识别与关键点(landmarks)检测

article/2025/9/24 17:54:37

1、如何在Python上安装OpenFace

下载安装

1、首先需要下载OpenFace源码:

(Anaconda、Git等自行提前安装)

git clone https://github.com/cmusatyalab/openface.git

2、接着进入openface路径

cd openface

3、执行:

pip install -r requirements.txt

4、执行:

python setup.py install

需要说明的是,第3步,自动安装可能会很慢或出问题,可以(参考该文件内容)手动安装依赖项。

完成验证

安装完之后,可以在控制台中,进入python环境,然后导入openface的包看是否报错

可能会有确实其他包的报错,比如报缺少“opencv_python”,缺什么就装什么即可,知道不再报错。

模型下载

进入

cd models

运行

 

./get-models.sh

或者手动下载(参考该文件内容):

1、http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2

解压到:【*openface\models\dlib】目录下

2、https://storage.cmusatyalab.org/openface-models/nn4.small2.v1.t7

https://storage.cmusatyalab.org/openface-models/celeb-classifier.nn4.small2.v1.pkl

这两个放到【*openface\models\openface】目录下

2、用opencv实现一个实时摄像头获取画面的程序

import threading
import cv2class OpcvCapture(threading.Thread):def __init__(self, win_name, cam_name):super().__init__()self.cam_name = cam_nameself.win_name = win_namedef run(self):capture = cv2.VideoCapture(self.cam_name)while (True):# 获取一帧ret, frame = capture.read()cv2.imshow(self.win_name, frame)cv2.waitKey(1)if __name__ == "__main__":camera1 = OpcvCapture("camera1", 1)camera1.start()run_code = 0

3、添加人脸检测和关键点识别代码

加载必要的数据和模型:

路径根据实际进行配置,或将【models】文件夹复制到项目所在位置

import os
import openfacefileDir = os.path.dirname(os.path.realpath(__file__))
modelDir = os.path.join(fileDir, 'models')
dlibModelDir = os.path.join(modelDir, 'dlib')align = openface.AlignDlib(os.path.join(dlibModelDir, "shape_predictor_68_face_landmarks.dat"))

添加检测算法并绘制点

    def _detector(self, frame, mirror=False):show_img = cv2.flip(frame, flipCode=1) if mirror else framerects = align.getAllFaceBoundingBoxes(show_img)if len(rects) > 0:bb = align.findLandmarks(show_img, rects[0])for pt in bb:cv2.circle(show_img, pt, 3, [0, 0, 255], thickness=-1)return show_img

在获取到的帧上进行调用

在第二节的摄像头画面获取的程序中,每获取到一帧图像后调用检测算法,将返回的结果进行显示:

    #摄像头实时画面线程类的部分代码def run(self):capture = cv2.VideoCapture(self.cam_name)while (True):# 获取一帧ret, frame = capture.read()# 获取的帧送入检测,绘制检测结果后返回,自拍模式做镜像show_img = self._detector(frame, mirror=True)cv2.imshow(self.win_name, show_img)cv2.waitKey(1)

最终效果:

完整代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @FileName  :opfacevideo.py
# @Time      :2020/6/20 16:23
# @Author    :Rainkimport threading
import cv2
import os
import openfacefileDir = os.path.dirname(os.path.realpath(__file__))
modelDir = os.path.join(fileDir, 'models')
dlibModelDir = os.path.join(modelDir, 'dlib')align = openface.AlignDlib(os.path.join(dlibModelDir, "shape_predictor_68_face_landmarks.dat"))class OpcvCapture(threading.Thread):def __init__(self, win_name, cam_name):super().__init__()self.cam_name = cam_nameself.win_name = win_name# self.frame = np.zeros([400, 400, 3], np.uint8)def run(self):capture = cv2.VideoCapture(self.cam_name)while (True):# 获取一帧ret, frame = capture.read()# 获取的帧送入检测,绘制检测结果后返回,自拍模式做镜像show_img = self._detector(frame, mirror=True)cv2.imshow(self.win_name, show_img)cv2.waitKey(1)def _detector(self, frame, mirror=False):show_img = cv2.flip(frame, flipCode=1) if mirror else framerects = align.getAllFaceBoundingBoxes(show_img)if len(rects) > 0:bb = align.findLandmarks(show_img, rects[0])for pt in bb:cv2.circle(show_img, pt, 3, [0, 0, 255], thickness=-1)return show_imgif __name__ == "__main__":camera1 = OpcvCapture("camera1", 1)camera1.start()

 


http://chatgpt.dhexx.cn/article/fJHKtZNq.shtml

相关文章

openface的导出数据说明

openface的导出数据说明,因为自己使用的时候一个一个翻译起来比较麻烦,就自己弄了一个。 原文GitHub地址:https://github.com/TadasBaltrusaitis/OpenFace/wiki/Command-line-arguments ZD到最后的列:是面部动作编码系统 &#…

【TensorFlow】人脸识别OpenFace、Face-recognition、Insightface和FaceNet源码运行

比较人脸识别OpenFace、Face-recognition、Insightface: FaceNet源码运行 https://github.com/davidsandberg/facenet 1、使用Anaconda安装TensorFlow; 2、更新scipy库; 3、添加os.environ["KMP_DUPLICATE_LIB_OK"]"TRUE&…

windows下OpenFace安装及测试

想使用openface来实现以下视线估计的内容,但是搜了好多都没有具体的使用方案,于是经历了半周,仔细阅读官方文档和参考了一些大佬的经验,终于运行成功了,在此记录一下,嘻嘻 安装 openceface安装官方文档&…

Ubuntu 14.04下openface的环境搭建

如需转载请标明出处:http://blog.csdn.net/itas109 QQ技术交流群:129518033 一、什么是openface? openface是一个基于深度神经网络的开源人脸识别系统。该系统基于谷歌的文章FaceNet: A Unified Embedding for Face Recognition and Clust…

Windows 11 下 OpenFace 2.2.0 的安装

写在前面 最近需要做关于面部的东西,所以需要使用到OpenFace这个工具,本文仅用来记录本人安装过程以供后续复现,如果可以帮助到读者也是非常荣幸。 安装过程 不编译直接使用 这种方法可以直接从官方下载下来编译好的exe以及gui进行使用&a…

Openface人脸识别的原理与过程

Openface人脸识别的原理与过程: https://zhuanlan.zhihu.com/p/24567586 原理可参考如下论文: 《OpenFace: A general-purpose face recognition library with mobile applications》 第一步:找出所有的面孔 我们流水线的第一步是人脸检测。…

openface在pycharm上的安装

1、下载openface相关文件 链接:下载openface:GitHub - cmusatyalab/openface: Face recognition with deep neural networks. 下载后得到一个openface-master的文件夹 2、输入cmd,进入命令提示符,找到自己保存的openface-master文件夹路径。 …

OpenFace使用OpenFace进行人脸识别

1.OpenFace简介 http://cmusatyalab.github.io/openface/ 安装就按照官方教程来就好了 装完各种依赖之后运行一下命令 https://github.com/cmusatyalab/openface.git --recursive cd openface sudo python setup.py install sh modles/get-models.sh 2.素材准备 准备两…

【OpenFace】

OpenFace: http://cmusatyalab.github.io/openface/ 一、什么是Openface? Openface是一个基于深度神经网络的开源人脸识别系统。该系统基于谷歌的文章FaceNet: A Unified Embedding for Face Recognition and Clustering。Openface是卡内基梅隆大学的 B…

OpenFace

OpenFace是一个包含了landmark,head pose,Actionunions,eye gaze等功能,并包含训练和检测所有源码的开源人脸框架,论文为,OpenFace: an open source facial behavior analysis toolkit OpenFace所用到的库包…

win10下openface快速安装与使用

win10下openface快速安装与使用 情况说明环境下载openface下载模型openface的简单使用 情况说明 我发现openface的安装方法五花八门,大多都比较复杂,而openface分很多版本,很多安装教程混在一起,导致我自己安装时下载下混了。 本…

Windows系统下的Openface安装及使用--亲测有效

一、配置openface所需环境 openface主要依赖于opencv和dlib等工具包,工具包安装可winr进入用户终端下载安装(需要先下载python),或者下载ananconda,创建anaconda虚拟环境安装: pip install opencv-python…

OpenFace简介

推荐 如下博文 https://blog.csdn.net/qq_14845119/article/details/53994607 OpenFace是一个包含了landmark,head pose,Actionunions,eye gaze等功能,并包含训练和检测所有源码的开源人脸框架,论文为,Ope…

Openface的安装和使用

openface的安装与使用 环境:我的电脑是笔记本电脑,win10系统,用的是pycharm和annaconda。 一、首先下载openface安装包,并且安装 1.下载地址:https://codeload.github.com/cmusatyalab/openface/zip/master 2.下载后…

OpenFace学习(1):安装配置及人脸比对

前言 前几天在网上看到了openface(链接),觉得挺有趣就下载配置了一下,稍微修改了一下跑了个demo,效果还是很不错的。这里分享下安装配置的过程以及demo。 简介 openface是一个基于深度神经网络的开源人脸识别系统&a…

“H5移动端App—数据统计分析”项目展示

1、具有切换商城展示功能 2、通过不同的统计图样式分别展示不同的数据

Vant简单H5 web app【小试牛刀】

index.html <!DOCTYPE html> <html><head><meta charset"utf-8"><!--谷歌浏览器&#xff08;手机端&#xff09;顶部颜色--><meta name"msapplication-TileColor" content"#4183fd"><meta name"the…

推荐几个H5、app制作开发工具

我们已经进入移动互联网时代&#xff0c;而app是移动互联网的载体。传统app开发面临成本高、周期长等问题&#xff0c;因此各类快速生成app的工具层出不穷。企业拥有了app才能实现互联网营销和互联网推广。中国有近7000万传统中小型企业&#xff0c;app会帮助这些企业实现互联网…

直接复制php代码制作app,一套免费无代码在线制作APP工具,将APP打包带走

线上营销的火爆离不开人们对APP的依赖&#xff0c;许多小商户已经从很早的时候就开始萌芽出制作APP来为实体店增加生意的想法&#xff0c;然后开发APP对中型企业都是一件成本极高的事情&#xff0c;即便小商户请外包团队需求降到最低&#xff0c;也会产生十几万的费用&#xff…

如何快速成为APP制作、H5制作高手?

App、H5无疑是移动互联网时代的宠儿&#xff0c;无数社交、商业、宣传都在App、H5上实现。掌握App、H5制作技能&#xff0c;无论工作、学习&#xff0c;更胜人一筹。 那么&#xff0c;什么是App呢&#xff1f; App(application的缩写)&#xff0c;即安装在手机上的软件。早期的…