您现在的位置是:亿华云 > 数据库
使用Python和dlib进行人脸检测
亿华云2025-10-03 20:36:41【数据库】0人已围观
简介“Dlib是一个现代化的C ++工具包,包含用于创建复杂软件的机器学习算法和工具”。它使您能够直接在Python中运行许多任务,其中一个例子就是人脸检测。安装dlib并不像只做一个“pip insta
“Dlib是使用一个现代化的C ++工具包,包含用于创建复杂软件的行人机器学习算法和工具”。它使您能够直接在Python中运行许多任务,脸检其中一个例子就是使用人脸检测。
安装dlib并不像只做一个“pip install dlib”那么简单,行人因为要正确配置和编译dlib,脸检您首先需要安装其他系统依赖项。使用如果你按照这里描述的行人步骤,它应该很容易让dlib启动并运行。脸检(在本文中,使用我将介绍如何在Mac上安装dlib,行人但如果您使用的脸检是Ubuntu,请务必查看相关资源部分的使用链接。)
你需要确定的行人***件事是你已经安装和更新了Hombrew。如果您需要安装它,脸检请将其粘贴到终端中:
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"或者,如果您需要更新Hombrew,源码下载请输入以下内容:
$ brew update您现在可以使用Homebrew来安装CMake,Boost.Python,以及在您的系统中正确配置和编译dlib所需的两个依赖关系:
$ brew install cmake $ brew install boost-python***,您需要手动下载并安装XQuartz。
您现在已准备好安装dlib。我们将通过首先为这个项目创建一个孤立的虚拟环境来做到这一点。我将使用virtualenv,但您可以使用任何您熟悉的虚拟环境工具,包括Python的venv模块。需要scikit-image库才能读取我们稍后将传递给dlib的图像文件,因此我们还需要pip安装它:
$ virtualenv venv_dlib $ source venv_dlib / bin / activate $ pip install scikit-image $ pip install dlib就是这样。有了这个,你应该有可用的dlib。
Dlib
Dlib提供了不同的脸部检测算法。我将在这里使用的是基于CNN的亿华云计算人脸检测器。您可以下载预训练模型:https://github.com/davisking/dlib-models。由于使用此模型的计算成本很高,因此***在GPU上执行以下代码。使用CPU也可以,但速度会更慢。
要在下面的要点中运行人脸检测代码,我建议首先在虚拟环境中再安装两个库。这些库将使与代码交互和可视化结果更容易:
$ pip install matplotlib $ pip install jupyterlab安装完库后,您需要确保:
下载预训练模型(http://dlib.net/files/mmod_human_face_detector.dat.bz2)并将其存储在项目的根目录中 创建一个名为faces的新目录,在该目录中存储带有希望检测的脸部的.jpg。有了这个,你终于准备好开始在图片中检测脸部了!您可以通过在Jupyter Notebook中运行以下代码来完成此操作
import dlib import matplotlib.patches as patches import matplotlib.pyplot as plt from pathlib import Path from skimage import io %matplotlib inline # Load trained model cnn_face_detector = dlib.cnn_face_detection_model_v1( mmod_human_face_detector.dat) # Function to detect and show faces in images def detect_face_dlib(img_path, ax): # Read image and run algorithm img = io.imread(img_path) dets = cnn_face_detector(img, 1) # If there were faces detected, show them if len(dets) > 0: for d in dets: rect = patches.Rectangle( (d.rect.left(), d.rect.top()), d.rect.width(), d.rect.height(), fill=False, color=b, lw=2) ax.add_patch(rect) ax.imshow(img) ax.set_title(str(img_path).split(/)[-1]) # Path to images images = list(Path(faces).glob(*.jpg)) # Show results fig = plt.figure(figsize=(15, 5)) for i, img in enumerate(images): ax = fig.add_subplot(1, len(images), i+1) detect_face_dlib(img, ax)结果
在运行代码之后,您应该看到图像中的脸部周围出现蓝色方块,如果您问我,考虑到我们只写了几行代码,这非常棒!
服务器托管很赞哦!(89174)
相关文章
- 为什么大家都选优质域名?到底存在着什么好处?
- 如何对大数据进行高效存储、管理与应用?
- Jenkins 业务发版平滑上线实战
- 二月编程语言排行出炉!没意外
- 用户邮箱的静态密码可能已被钓鱼和同一密码泄露。在没有收到安全警报的情况下,用户在适当的时间内不能更改密码。在此期间,攻击者可以随意输入帐户。启用辅助身份验证后,如果攻击者无法获取移动电话动态密码,他将无法进行身份验证。这样,除非用户的电子邮件密码和手机同时被盗,否则攻击者很难破解用户的邮箱。
- 什么?MySQL 8.0 会同时修改两个ib_logfilesN 文件?
- 《前端实战总结》之使用CSS3实现酷炫的3D旋转透视
- 我在源码控制中维护点文件的技巧
- 4、待所有域名查询结束后可在右侧点击导出结果,即可以excel的文件方式将查询到的结果导出。
- PostgreSQL痛点的解决方案
站长推荐
只要我们做的是从目前的市场情况选择域名,从简单易记,从个性特征上,我们就可以找到一个好域名进行注册。域名注册进行域名记录和解析以及绑定网站后,客户可以通过URL登录您的网站。
RPC框架:从原理到选型,一文带你搞懂RPC
MySQL源码解析之执行计划
手把手教你抖音系列视频批量下载器开发
2、根据用户基础选择访问提供程序。由于互联问题的存在,接入商的选择也非常重要,如果用户群主要在联通,尽量选择联通接入较好的接入商,如果用户群主要在电信,那么选择电信接入较好的接入商。如果用户组位于国家/地区,则选择更好的访问提供程序进行交互。
Web Components 系列之 自定义组件的样式设置
手把手教你开展 Mofish 库(摸鱼库)的打包发布
轻量级 Java 权限认证框架Sa-Token初体验