《计算机视觉》—— 基于dlib库的人检检测
文章目录
- 一、dlib库的安装
- 1. 通过PyCharm的Settings安装
- 2. 通过Anaconda安装(适用于Windows等操作系统)
- 3. 通过命令行安装
- 4.懒人安装
- 二、基于dlib库的人检测
- 1.对图像进行人脸检测
- 2.打开电脑摄像头,检测人脸
一、dlib库的安装
在PyCharm中,dlib库是一个强大的工具,尤其适用于机器学习和计算机视觉任务,如人脸识别等。以下是在PyCharm中安装和使用dlib库的详细指南:
1. 通过PyCharm的Settings安装
- 打开PyCharm,并创建一个新的项目或打开现有项目。
- 在菜单栏中选择“File”->“Settings”。
- 在弹出的窗口中,选择“Project Interpreter”选项卡。
- 点击右上角的加号按钮,搜索并安装dlib库。
2. 通过Anaconda安装(适用于Windows等操作系统)
- 下载并安装Anaconda(https://www.anaconda.com/products/individual)。
- 创建一个虚拟环境:
conda create -n virenv(其中virenv是虚拟环境名)。 - 激活虚拟环境:
conda activate virenv。 - 在虚拟环境中安装dlib:
conda install -c conda-forge dlib。 - 安装完成后,在PyCharm中配置该虚拟环境的Python解释器。
3. 通过命令行安装
- 打开PyCharm的终端窗口,或使用系统的命令行工具。
- 输入命令
pip install dlib进行安装。 - 注意:在安装dlib之前,可能需要先安装CMake和Boost库。这些依赖库的安装方法因操作系统而异,可以参考dlib官方文档中的安装指南(http://dlib.net/compile.html)。
4.懒人安装
- 以下链接中提供了几种适应python版本的dlib库的.whl文件
- 链接: https://pan.baidu.com/s/1s9spngkaTdl1IN4xFcYOEQ?
- 提取码: 18qa
- 下载与你python版本一致的.whl文件,并保存在一个文件夹下,进入这个文件夹下,在文件路径框内输入cmd,回车进入当前文件夹的终端
- 输入
pip install + dlib库的.whl文件,回车即可安装- 如下图:


- 如下图:
二、基于dlib库的人检测
1.对图像进行人脸检测
-
以下代码中,我们将使用dlib库的人脸检测器来检测图像中的人脸,并在检测到的人脸周围绘制矩形框。
-
完整代码:
import cv2 # 导入opencv库 import dlib # 导入dlib库# get frontal face_detector()生成人脸检测器 # 使用HOG算法、线性分类器、金字塔图像结构和滑动窗口检测等技术。 # 比opencv提供的harr级联分类器效果更好detector = dlib.get_frontal_face_detector() # 构造脸部位置检测器H0G image = cv2.imread('face.png') # 读取图片# faces = detector(image,n)使用人脸检测器返回检测到的人脸框 # 参数: # image:待检测的可能含有人脸的图像。 # n:表示采用上采样的次数。上采样会让图像变大,能够检测到更多人脸对象,提高小人脸的检测效果 # 通常建议将此参数设置为 0 或1。较大的值会增加检测的准确性,但会降低处理速度。 # 返回值: # faces:返回检测图像中的所有人脸框。faces = detector(image, 1) for face in faces: # 对每个人脸框进行逐个处理(提取坐标)# 获取人脸框的坐标x1 = face.left() # (x1,y1)人脸框的左上角坐标y1 = face.top()x2 = face.right() # (x2,y2)人脸框的右下角坐标y2 = face.bottom()# 绘制人脸框cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2)# 显示捕获到的各个人脸框 cv2.imshow('result', image) cv2.waitKey(0) cv2.destroyAllWindows()- 结果如下:

- 结果如下:
-
可以将自己含有人脸的图片传入代码中,进行人脸检测,这种基于dlib库的人脸检测方法简单有效,可以准确的将人脸检测出来
2.打开电脑摄像头,检测人脸
-
下面是通过打开电脑的摄像头,进行检测是否有人脸,有人脸则用矩形框框出
-
完整代码:
import cv2 import dlibdetector = dlib.get_frontal_face_detector() # 构造脸部位置检测器H0Gcap = cv2.VideoCapture(0) # 0-->打开电脑摄像头, 1-->打开电脑外接的摄像头if not cap.isOpened(): # 判断摄像头是否正常打开print("Cannot open camera")exit()while True: # 若正常打开摄像头则对摄像头拍摄的每一帧画面进行循环处理ret, image = cap.read() # 如果正确读取一帧图像,ret为True, image-->读取的画面image = cv2.flip(image, 1) # 图片翻转,水平翻转(镜像)# 如果没有正确读取到图像,则退出循环if not ret:print("不能读取摄像头")break# 人脸检测faces = detector(image, 0)for face in faces: # 对每个人脸框进行逐个处理(提取坐标)# 获取人脸框的坐标x1 = face.left()y1 = face.top()x2 = face.right()y2 = face.bottom()# 绘制人脸框cv2.rectangle(image, (x1, y1), (x2, y2), (0., 255, 0), 2)# 显示捕获到的各个人脸框cv2.imshow('result', image)# 检查是否按下ESC键(ASCII码27),如果按下则退出循环if cv2.waitKey(10) == 27:break # 释放摄像头资源 cap.release() # 关闭所有OpenCV创建的窗口 cv2.destroyAllWindows()
相关文章:
《计算机视觉》—— 基于dlib库的人检检测
文章目录 一、dlib库的安装1. 通过PyCharm的Settings安装2. 通过Anaconda安装(适用于Windows等操作系统)3. 通过命令行安装4.懒人安装 二、基于dlib库的人检测1.对图像进行人脸检测2.打开电脑摄像头,检测人脸 一、dlib库的安装 在PyCharm中&…...
分布式数据库安全可靠测评名录之平凯数据库(TiDB企业版)
作者: 数据源的TiDB学习之路 原文来源: https://tidb.net/blog/d052ee0b 2024 年 9 月 30 日,中国信息安全测评中心公布安全可靠测评结果公告(2024年第2号),其中包含 6 款集中式数据库和 11 款分布式数据…...
动态规划之打家劫舍
大纲 题目思路第一步:确定下标含义第二步:确定递推公式第二步:dp数组如何初始化第三步:确定遍历顺序第四步:举例推导dp数组 总结 最近有人询问我 LeetCode 「打家劫舍」系列问题(英文版叫 House Robber&…...
嵌入式入门学习——8基于Protues仿真Arduino+SSD1306液晶显示数字时钟
0 系列文章入口 嵌入式入门学习——0快速入门,Let‘s Do It! SSD1306 1 Protues查找SSD1306器件并放置在画布,画好电气连接(这里VCC和GND画反了,后面仿真出错我才看见,要是现实硬件估计就烧毁了…...
盘点现代浏览器的各种神奇能力,功能令人惊讶
盘点现代浏览器的各种神奇能力,功能令人惊讶😮 浏览器的进化 一个运行在浏览器里面的操作系统。一个炫酷的量子纠缠网页。内嵌在浏览器里面的AI大模型。 随着web技术的迅猛发展,现代浏览器已经不仅仅是一个浏览网页的工具了。它的功能早已进…...
人工智能停滞:人工智能投资与人工智能采用之间的差距
关注公众号网络研究观获取更多内容。 人工智能继续影响着云战略,但人工智能的实施速度比大多数人预测的要慢。这让在人工智能上押下重注的技术提供商感到沮丧。到底发生了什么? Censuswide 代表 Red Hat 近期开展了一项调查,调查对象为英国…...
高效容器化技术(3)---docker镜像仓库
1.镜像仓库 Docker镜像仓库是存储和管理Docker镜像的地方。它允许用户上传、下载和共享Docker镜像,从而方便在不同的主机上部署和运行应用程序。 常见的Docker镜像仓库包括: Docker Hub:官方的Docker镜像仓库,包含了大量的公共镜…...
使用docker搭建lnmp运行WordPress
一,部署目的 使用 Docker 技术在单机上部署 LNMP 服务(Linux Nginx MySQL PHP)。部署并运行 WordPress 网站平台。掌握 Docker 容器间的互联及数据卷共享。 二,部署环境 操作系统:CentOS 7Docker 版本࿱…...
【设计模式】深入理解Python中的桥接模式(Bridge Pattern)
深入理解Python中的桥接模式(Bridge Pattern) 在软件开发中,我们常常会遇到一个类随着功能的扩展,继承层次越来越复杂,导致系统僵化,难以维护。桥接模式(Bridge Pattern)提供了一种…...
YOLOv11改进策略【卷积层】| SAConv 可切换的空洞卷积 二次创新C3k2
一、本文介绍 本文记录的是利用SAConv优化YOLOv11的目标检测网络模型。空洞卷积是一种在不增加参数量和计算量的情况下,通过在卷积核元素之间插入空洞来扩大滤波器视野的技术。并且为了使模型能够适应不同尺度的目标,本文利用SAConv将不同空洞率卷积结果进行结合,来获取更全…...
Javaweb基础-axios
Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中。 GET方法 get请求第一种写法 //后端 Slf4j RestController RequestMapping("/demo") public class DemoController {RequestMapping("/getTest")// 被RequestParam标记的参数…...
智能EDA小白从0开始 —— DAY20 OrCAD
以下是对OrCAD和MATLAB两种EDA工具的深入解析,内容扩展至约2220字: OrCAD:电子设计自动化的强大工具 OrCAD,作为电子设计自动化(EDA)领域的佼佼者,为电子工程师们提供了一套全面的设计解决方案…...
C# WebApi 接口测试工具:WebApiTestClient应用技术详解
目录 一、引言 二、WebApiTestClient介绍 1、特性 2、应用场景 三、WebApiTestClient具体使用 1、WebApi项目引入组件 2、如何使用组件 1、修改Api.cshtml文件 2、配置读取注释的xml路径 3、测试接口 四、总结 一、引言 由于最近项目需要开发WebApi接口&…...
Qt_ymode自己实现
文章内容: 通过Qt实现Ymode协议的封装。通过传入的数据从里面一包一包拿数据。可以用作平时串口和网口的通信。也可以用来程序升级。 #include "ymodem.h"Ymodem::Ymodem() {m_data = nullptr; }Ymodem...
5.3章节python中字典:字典创建、元素访问、相关操作
1.字典的创建和删除 2.字典的访问和遍历 3.字典的相关操作 4.字典的生成式 一、字典的创建和删除 字典(dictionary)是一种用于存储键值对(key-value pairs)的数据结构。每个键(key)都映射到一个值…...
ECCV2024 Tracking 汇总
一、OneTrack: Demystifying the Conflict Between Detection and Tracking in End-to-End 3D Trackers paper: https://www.ecva.net/papers/eccv_2024/papers_ECCV/papers/01174.pdf 二、VETRA: A Dataset for Vehicle Tracking in Aerial Imagery paper&#…...
C语言知识点
命名规则: 字符组成:标识符只能由字母(A~Z,a~z)、数字(0~9)和下划线(_)组成。首字符要求:标识符的第一个字符必须是字母或下划线,不能是数字。长…...
ICMP协议以及ARP欺骗攻击
ping 命令使用的是 ICMP(Internet Control Message Protocol)协议,而不是 TCP 或 UDP 协议。因此,ping 命令并不使用特定的端口号。 ICMP 协议 ICMP 是一种网络层协议,主要用于在 IP 网络中传递控制消息。ping 命令利…...
qt5.12.12插件机制无法加载插件问题
环境:win11 vs2015 qt5.12.12 问题描述:确保插件代码正确的情况下,无法解析插件接口(即QPluginLoader类的instance(); 返回为空)。 问题现象:1、qt5.12.12的debug下无法解析;2、release下禁…...
机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
机器学习面试笔试知识点-线性回归、逻辑回归Logistics Regression和支持向量机SVM 一、线性回归1.线性回归的假设函数2.线性回归的损失函数(Loss Function)两者区别3.简述岭回归与Lasso回归以及使用场景4.什么场景下用L1、L2正则化5.什么是ElasticNet回归6.ElasticNet回归的使…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...
WEB3全栈开发——面试专业技能点P4数据库
一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库,基于 mysql 库改进而来,具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点: 支持 Promise / async-await…...
