全面横扫:dlib Python API在Linux和Windows的配置方案

news2024/11/25 5:52:46

前言

在计算机视觉和人工智能领域,dlib是一个备受推崇的工具库。它为开发者提供了强大的图像处理、机器学习和深度学习功能。在计算机视觉项目中,配置dlib Python API是一个重要的初始步骤。本文将引导读者详细了解在Linux和Windows系统上安装和配置dlib Python API的过程。

文章目录

    • 前言
  • 在Linux和Windows系统上配置dlib Python API
    • dlib简介
    • 为什么选择dlib
    • dlib官网及下载源
    • 运行环境配置
      • Windows
      • Linux
    • 总结
    • 下一步计划

在Linux和Windows系统上配置dlib Python API

dlib简介

dlib是一个C++编写的跨平台机器学习工具库,它广泛用于图像处理、人脸识别、物体检测等任务。dlib的Python接口使得开发者可以在Python环境中轻松使用其强大功能。它不仅在性能上表现出色,而且还提供了许多预训练模型和实用工具,使其成为计算机视觉项目的首选之一。

为什么选择dlib

在选择计算机视觉和人工智能工具库时,开发者通常会考虑性能、稳定性和功能丰富程度。以下是选择dlib的一些理由:

  • 强大的功能:dlib提供了丰富的图像处理、特征检测和机器学习工具,可以应用于多种应用领域。

  • 跨平台支持:dlib可以在Linux和Windows等多个操作系统上运行,确保了项目的可移植性。

  • 开源社区支持:dlib拥有庞大的开源社区,意味着有大量的文档和示例代码可供参考。

  • 性能卓越:dlib经过优化,具有出色的性能,适用于高效的实时应用。

  • dlib的优势

    • 代码质量高,Documentation完善
    • 包含大量预训练模型,使模型直接可用
    • 支持C++和Python开发
    • 兼容Windows和Linux系统
  • dlib的Python API
    dlib为Python提供了API接口,可以在Python程序中调用dlib的功能和模型。dlib的Python API包含了人脸检测、面部 landmark 检测、人脸识别等功能。

dlib官网及下载源

官方GitHub连接
dlib
dlib-models
如果你能通过pip安装dlib,也许你不会点开这篇文章

pip install dilb

我们往往会遇到各种报错,你可以在以下两个网站下载你需要的版本进行下载

豆瓣pypi源
在这里插入图片描述

dlib官网源
在这里插入图片描述
常用dat
shape_predictor_68_face_landmarks.dat
来源于davisking/dlib-models
你也可以在上面的dlib官网源找到他

运行环境配置

运行环境配置及打包方式基于
半自动化使用.bat手动打包迁移python项目

  • Python 3.8
  • dlib

什么是Python虚拟环境
Python虚拟环境可以为一个应用创建一个独立的Python运行环境,包含独立的Python解释器、库和脚本。
为何需要虚拟环境

  • 隔离应用程序所需要的库,避免版本冲突
  • 可以安装不同版本的库到不同虚拟环境
  • 可以复用虚拟环境,提高开发效率

创建和管理虚拟环境的常用工具

  • virtualenv:Python标准库中的虚拟环境工具
  • conda:Anaconda发行版提供的虚拟环境管理工具
  • pipenv:依赖管理和虚拟环境管理工具

使用虚拟环境的基本步骤

  • 创建虚拟环境
  • 激活虚拟环境
  • 在虚拟环境中安装需要的库
  • 在虚拟环境中运行Python应用程序
  • 停用或删除不需要的虚拟环境

使用虚拟环境可以避免在配置dlib时遇到依赖库版本冲突等问题。

Windows

豆瓣pypi源只有py36以及之前版本的dlib,目前Windows上没有特别好的解决方法,我们必须下载到对应python版本的dlib.whl
你可以关注我然后回复我dlib获取

dlib

我搜集了python3.7-3.9各种版本的dlib安装包

dlib-19.17.99-cp37-cp37m-win_amd64.whl
dlib-19.24.2-cp37-cp37m-win_amd64.whl
dlib-19.19.0-cp38-cp38-win_amd64.whl
dlib-19.21.99-cp38-cp38-win_amd64.whl
dlib-19.22.99-cp39-cp39-win_amd64.whl

这里我们使用dlib-19.19.0-cp38-cp38-win_amd64.whl测试

rem 创建虚拟环境 
python -m venv venv
call venv\Scripts\activate.bat
python -m pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pip setuptools
pip install dlib-19.19.0-cp38-cp38-win_amd64.whl

在这里插入图片描述

我还要用到opencv,torch等库

pip install -i https://mirrors.aliyun.com/pypi/simple/ opencv-python==4.5.3.56
pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

Linux

Linux配置较简单,这里我们同样通过创建虚拟环境实现一个干净的新环境进行测试

python -m venv venv 
source venv/bin/activate
python -m pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pip setuptools
pip download dlib==19.19.0
pip install dlib-19.19.0.tar.gz

你可以选择在
dlib官网源
直接下载得到例如dlib-19.19.0.tar.gz或其他版本的dlib然后

pip install dlib-19.19.0.tar.gz

你也可以

pip download dlib==19.19.0
pip install dlib-19.19.0.tar.gz

即可安装成功

在这里插入图片描述

总结

通过本文的指导,读者将能够轻松地在Linux和Windows系统上配置dlib Python API,为他们的计算机视觉和人工智能项目提供强大的支持。在配置过程中,注意选择适合自己Python版本的dlib安装包,并遵循所提供的步骤,即可顺利完成配置。希望本文能够帮助读者节省时间和精力,让你更专注于项目的开发和研究工作。

下一步计划

在下一篇文章中,我们将探究如何结合dlib、OpenCV和Torch实现活体检测,并解决在使用虚拟机摄像头时可能遇到的问题。敬请期待

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

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

相关文章

【算法分析与设计】动态规划(下)

目录 一、最长公共子序列1.1 最长公共子序列的结构1.2 子问题的递归结构1.3 计算最优值1.4 举例说明1.5 算法的改进 二、最大子段和2.1 代码2.2 最大子段和问题的分治算法2.3 代码2.4 分治算法的时间复杂度2.5 最大子段和问题的动态规划算法 三、凸多边形最优三角剖分3.1 三角剖…

Flutter笔记:关于应用程序中提交图片作为头像

Flutter笔记 关于应用程序中提交图片作为头像 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/133418554…

raw智能照片处理工具DxO PureRAW mac介绍

DxO PureRAW Mac版是一款raw智能照片处理工具,该软件采用了智能技术,以解决影响所有RAW文件的七个问题:去马赛克,降噪,波纹,变形,色差,不想要的渐晕,以及缺乏清晰度。 Dx…

软件测试之单元测试自动化入门基础

单元测试自动化 所谓的单元测试(Unit Test)是根据特定的输入数据,针对程序代码中的最小实体单元的输入输出的正确性进行验证测试的过程。所谓的最小实体单元就是组织项目代码的最基本代码结构:函数,类,模块等。在Python中比较知名…

picoctf_2018_got_shell

picoctf_2018_got_shell Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000)32位,只开了NX int __cdecl __noreturn main(int argc, const char **argv, const char **envp) {_DWOR…

DeepFace【部署 02】轻量级人脸识别和面部属性分析框架(实时分析+API+Docker部署+命令行接口)

轻量级人脸识别和面部属性分析框架 2.10 Real Time Analysis2.11 API2.12 Dockerized Service2.13 Command Line Interface 2.10 Real Time Analysis 你也可以运行deepface实时视频。流功能将访问您的网络摄像头,并应用面部识别和面部属性分析。如果能连续聚焦5帧&…

2023-9-29 LCR 083 全排列

题目链接&#xff1a;全排列 class Solution {int [] nums;List<List<Integer>> res new ArrayList<>();List<Integer> path;boolean[] st;public List<List<Integer>> permute(int[] nums) {this.nums nums;path Arrays.asList(new In…

DAMA-DMBOK2重点知识整理CDGA/CDGP——第14章 大数据与数据科学

目录 一、分值分布 二、重点知识梳理 1、引言 1.1 业务驱动因素 1.2 原则 1.3 基本理念 2、活动 2.1 定义大数据战略和业务需求 2.2 选择数据源 2.3 获得和接收数据源 2.4 制定数据假设和方法 2.5 集成和调整数据进行分析 2.6 使用模型探索数据 2.7 部署和监控 …

09链表-单链表移除元素

目录 链表&#xff08;Linked List&#xff09; 链表的数据结构 单链表 双链表 循环链表 链表的存储方式 删除节点 添加节点 LeetCode之路——203. 移除链表元素 分析&#xff1a; 链表&#xff08;Linked List&#xff09; 链表是一种线性数据结构&#xff0c;用于…

C运算符和控制语句

几乎每一个程序都需要进行运算&#xff0c;对数据进行加工处理&#xff0c;否则程序就没有意义了。要进行运算&#xff0c;就需规定可以使用的运算符。 C语言的运算符范围很宽&#xff0c;把除了控制语句和输人输出以外的几乎所有的基本操作都作为运算符处理。 运算符分类1 除…

Scala第六章节

Scala第六章节 scala总目录 章节目标 掌握类和对象的定义掌握访问修饰符和构造器的用法掌握main方法的实现形式掌握伴生对象的使用掌握定义工具类的案例 1. 类和对象 Scala是一种函数式的面向对象语言, 它也是支持面向对象编程思想的&#xff0c;也有类和对象的概念。我们依…

【Linux指令集】---git命令的基本使用

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Linux专栏】&#x1f388; 本专栏旨在分享学习Linux的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 演示环境&#xff1…

Spring修炼之路(1)基础入门

一、简介 1.1Spring概述 Spring框架是一个轻量级的Java开发框架&#xff0c;它提供了一系列底层容器和基础设施&#xff0c;并可以和大量常用的开源框架无缝集成&#xff0c;可以说是开发Java EE应用程序的必备。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器&…

51单片机音乐闹钟秒表倒计时整点报时多功能电子钟万年历数码管显示( proteus仿真+程序+原理图+报告+讲解视频)

51单片机音乐闹钟秒表倒计时整点报时多功能电子钟万年历数码管显示( proteus仿真程序原理图报告讲解视频&#xff09; 讲解视频1.主要功能&#xff1a;2.仿真3. 程序代码4.原理图5. 设计报告6. 设计资料内容清单 51单片机音乐闹钟秒表倒计时整点报时多功能电子钟万年历数码管显…

Scala第一章节

Scala第一章节 scala总目录 章节目标 理解Scala的相关概述掌握Scala的环境搭建掌握Scala小案例: 做最好的自己 1. Scala简介 1.1 概述 ​ Scala(斯嘎拉)这个名字来源于"Scalable Language(可伸缩的语言)", 它是一门基于JVM的多范式编程语言, 通俗的说: Scala是一…

面向对象【递归方法】

文章目录 递归编写递归函数递归的工作原理常见的递归应用场景递归注意点 递归 递归是一种解决问题的方法&#xff0c;其中一个函数调用自身以解决较小的实例&#xff0c;直到达到基本情况&#xff08;停止条件&#xff09;&#xff0c;然后开始返回结果。递归可以让我们更容易地…

CSS详细基础(五)选择器的优先级

本节介绍选择器优先级&#xff0c;优先级决定了元素最终展示的样式~ 浏览器是通过判断CSS优先级&#xff0c;来决定到底哪些属性值是与元素最为相关的&#xff0c;从而作用到该元素上。CSS选择器的合理组成规则决定了优先级&#xff0c;我们也常常用选择器优先级来合理控制元素…

038:vue页面头部提示低版本浏览器升级问题

第038个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

一例疑似MMCore下载器分析

概述 这是一例文件夹病毒&#xff0c;手法相对比较高级&#xff0c;通过域名关联到MMCore样本&#xff0c;可能与印度方向APT组织有关联。 这个病毒使用了分离免杀技术&#xff0c;有2个样本&#xff0c;一个加载器&#xff0c;一个payload。 加载器(文件名为dwm22.exe)的主要…

并发——中断机制

1.中断概述 中断只是一种协商机制&#xff0c;如果要中断一个线程&#xff0c;需要手动调用该线程的interrupt方法&#xff0c;将此线程对象的中断标识设为true(默认中断标志位为false)&#xff0c;接着我们需要手动写代码去不断的检测要中断线程的标识位&#xff0c;如果为tr…