【计算机视觉】OpenCV项目实战- Artificial-Eyeliner 人脸眼线检测

news2025/7/18 12:33:59

在这里插入图片描述

Artificial-Eyeliner 人脸眼线检测

      • 项目介绍
      • 运行方式
      • 运行步骤
      • 常见问题及解决方法
          • 1. dlib 安装失败
            • 其他注意事项
          • 2. 缺少 make / gcc
          • 3. **依赖库安装问题**:
          • 4. *人脸关键点检测失败:
          • 5. 眼线效果不理想:
          • 6. 实时处理延迟:
          • 7. 保存文件被覆盖:

Artificial-Eyeliner 是一个使用 Python 编程语言和相关库(如 OpenCV 和 dlib)实现的项目,旨在通过计算机视觉技术自动在图像或视频中的人物眼睛上添加眼线。以下是该项目的详细介绍,包括运行方式、运行步骤、常见问题及解决方法。

项目介绍

Artificial-Eyeliner 项目的核心是利用 dlib 库检测人脸的关键点(landmarks),特别是眼睛周围的点,然后通过这些点计算出眼线的位置,并使用 OpenCV 在图像或视频帧上绘制眼线。

运行方式

该项目可以通过命令行界面(CLI)运行,支持对图像和视频添加眼线,也可以实时处理网络摄像头的视频流。

运行步骤

  1. 安装依赖:确保安装了 Python 3.6 及以上版本,并安装以下库:
    • Numpy
    • Dlib
    • OpenCV(cv2)
    • Matplotlib
    • Scikit-image
    • SciPy
    • Imutils
    • PIL
  2. 获取项目代码:从 GitHub 上克隆项目到本地:
    git clone https://github.com/kaushil24/Artificial-Eyeliner/
    
  3. 准备数据文件:确保 shape_predictor_68_face_landmarks.dat 文件位于项目根目录或指定路径中。
  4. 运行脚本:使用以下命令运行脚本,根据需要添加参数:
    python eyeliner.py [-i image] [-v video] [-d dat] [-t thickness] [-c color] [-s save]
    
    • -i:指定要添加眼线的图像路径。
    • -v:指定要添加眼线的视频路径,或使用 webcam 实时处理网络摄像头视频。
    • -d:指定 shape_predictor_68_face_landmarks.dat 文件的路径(如果不在根目录)。
    • -t:设置眼线的厚度,默认为 2,推荐值为 0-5。
    • -c:设置眼线的颜色,格式为 -c R G B,默认为黑色(0 0 0)。
    • -s:指定保存输出文件的路径和文件名,程序会自动添加扩展名,如果文件已存在则会被覆盖。

常见问题及解决方法

1. dlib 安装失败
  1. 安装依赖库
    • Windows:确保安装了 CMake,并将其添加到系统的环境变量中。此外,还需要安装 Visual Studio 的 C++ 开发工具。
    • Linux:运行以下命令安装必要的依赖:
      sudo apt-get install build-essential cmake python3-dev python3-numpy libopenblas-dev libatlas-base-dev
      
  2. 安装 dlib
    • Windows:可以尝试安装预编译的 dlib 轮文件。例如,对于 Python 3.8 64 位版本,运行以下命令:
      pip install dlib-19.19.0-cp38-cp38-win_amd64.whl
      
    • Linux:直接使用 pip 安装 dlib:
      pip install dlib
      
  3. 检查 Python 和 pip 版本:确保使用的是最新版本的 pip。可以使用以下命令更新 pip:
    pip install --upgrade pip
    
  4. 虚拟环境:如果使用虚拟环境,请确保虚拟环境已激活。在激活的虚拟环境中运行以下命令:
    pip install dlib
    
其他注意事项
  1. 版本兼容性:确保 dlib 的版本与 Python 版本兼容。如果不确定,可以指定 dlib 的版本进行安装,例如:
    pip install dlib==19.22.0
    
  2. 测试安装:安装完成后,在 Python 环境中运行以下代码以验证 dlib 是否安装成功:
    import dlib
    print(dlib.__version__)
    
    如果没有报错并打印出版本号,则说明安装成功。
2. 缺少 make / gcc
  1. Windows
    • 安装 MinGW(Minimalist GNU for Windows),它提供了 gcc 和 make 等工具。
    • 下载并安装 MinGW,选择安装 mingw32-gcc-g++mingw32-make 组件。
    • 将 MinGW 的 bin 目录添加到系统的环境变量中。
  2. Linux
    • 使用以下命令安装 gcc 和 make:
      sudo apt-get install build-essential
      
3. 依赖库安装问题
  • 问题:某些库安装失败或版本不兼容。
  • 解决方法:确保 Python 版本符合项目要求(3.6 及以上),使用 pip 安装库时指定版本号,例如:
    pip install numpy==1.17.4
    
4. *人脸关键点检测失败:
  • 问题:无法正确检测到人脸或眼睛的关键点。
  • 解决方法:检查 shape_predictor_68_face_landmarks.dat 文件是否正确加载,确保图像或视频中的人脸清晰且角度合适。
5. 眼线效果不理想:
  • 问题:眼线颜色、厚度或位置不符合预期。
  • 解决方法:调整 -t 参数控制眼线厚度,使用 -c 参数调整颜色,检查关键点检测是否准确。
6. 实时处理延迟:
  • 问题:使用网络摄像头时,实时处理存在延迟。
  • 解决方法:优化代码,减少不必要的计算,降低视频帧率或分辨率。
7. 保存文件被覆盖:
  • 问题:输出文件名与已有文件冲突,导致文件被覆盖。
  • 解决方法:在保存文件前检查文件是否存在,可手动更改输出文件名。

以下是关于 dlib 安装失败缺少 makegcc 等问题的详细解决方案:

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

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

相关文章

工作总结(十二)——迁移svn单项目到gitlab上,保留历史提交记录

文章目录 前言一、目的二、操作步骤1.创建项目库2.复制历史提交者账号3.复制待迁移项目以及历史记录4.push到gitlab远程仓库 总结 前言 本系列文章主要记录工作中一些需要记录的内容 一、目的 因为一些原因,我需要将svn库上的某个项目迁移到公司的gitlab库管理平台…

Git Flow

Git Flow深度解析:企业级分支管理实战指南 前言 在持续交付时代,分支策略决定团队协作效率。Git Flow作为经典的分支管理模型,被Apache、Spring等知名项目采用。2023年JetBrains开发者调查报告显示,Git Flow仍是中大型项目最常用…

Flink介绍——实时计算核心论文之Kafka论文详解

引入 我们通过S4和Storm论文的以下文章,已经对S4和Storm有了不错的认识: S4论文详解S4论文总结Storm论文详解Storm论文总结 不过,在讲解这两篇论文的时候,我们其实没有去搞清楚对应的流式数据是从哪里来的。虽然S4里有Keyless …

AI Agents系列之构建多智能体系统

🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创…

OJ笔试强训_1至24天

OJ笔试强训 Day01 [NOIP2010]数字统计_牛客题霸_牛客网 点击消除_牛客题霸_牛客网 两个数组的交集_牛客题霸_牛客网 Day02 牛牛的快递_牛客题霸_牛客网 最小花费爬楼梯_牛客题霸_牛客网 数组中两个字符串的最小距离__牛客网 Day03 简写单词_牛客题霸_牛客网 dd爱框框_…

3款顶流云电脑与传统电脑性能PK战:START云游戏/无影云/ToDesk云电脑谁更流畅?

这里写目录标题 一、前言二、本地机器配置环境三、START云游戏/无影云/ToDesk云电脑配置对比3.1 START云游戏3.2 无影云个人版3.3 ToDesk云电脑 四、本地电脑与云电脑性能实战4.1 游戏场景体验4.1.1 本地电脑测试4.1.2 云电脑测试英雄联盟黑神话悟空其他游戏 4.2 主流设计场景体…

java IO/NIO/AIO

(✪▽✪)曼波~~~~!让曼波用最可爱的赛马娘方式给你讲解吧!(⁄ ⁄•⁄ω⁄•⁄ ⁄) 🎠曼波思维导图大冲刺(先看框架再看细节哦): 📚 解释 Java 中 IO、NIO、AIO 的区别和适用场景: …

java输出、输入语句

先创建一个用于测试的java 编写程序 #java.util使java标准库的一个包,这里拉取Scanner类 import java.util.Scanner;public class VariableTest {public static void main(String[] args) {#创建一个 Scanner 对象Scanner scanner new Scanner(System.in);System.…

宏基因组产品升级——抗菌肽数据库APD

抗菌肽(Antimicrobial Peptides,简称AMPs)是一类存在于多种生物体中的天然分子。它们在抵御微生物感染中扮演着重要角色,发挥着先天免疫反应的作用。抗菌肽功能分类广泛,包括:抗菌,抗生物膜&…

线程池七个参数的含义

Java中的线程池里七个参数的以及其各自的含义 面试题:说一下线程池七个参数的含义? 所谓的线程池的 7 大参数是指,在使用 ThreadPoolExecutor 创建线程池时所设置的 7 个参数,如以下源码所示: public ThreadPoolExe…

Windows suwellofd 阅读器-v5.0.25.0320

Windows suwellofd 阅读器 链接:https://pan.xunlei.com/s/VOO7tUkTHHTTjSe39CeVkUHbA1?pwd3ibx# OFD(Open Fixed-layout Document) , 数科OFD阅读器支持国标版式、可信阅读、是电子发票、电子证照,电子病历等电子文件理想阅读工具。 多格…

三大等待和三大切换

三大等待 1、三大等待:等待的方式有三种:强制等待,隐性等待,显性等待。 1、强制等待:time.sleep(2),秒 优点:使用简单缺点:等待时间把握不准,容易造成时间浪费或者等待时…

告别定时任务!用Dagster监听器实现秒级数据响应自动化

在数据管道开发中,我们经常面临需要根据外部事件触发计算任务的场景。传统基于时间的调度方式存在资源浪费和时效性不足的问题。本文将通过Dagster的**传感器(Sensor)**功能,演示如何构建事件驱动的数据处理流程。 场景模拟&…

【Unity】打包TextMeshPro的字体

前言 在Unity中,TextMeshPro与常规 Text 组件相比提供了更高级的文本呈现功能,TextMesh Pro 可以处理各种语言,包括中文。我们可以轻松地在 Unity 项目中使用中文,而不必担心字体和布局问题。TextMeshPro需要的字体资源就需要我们…

51单片机实验五:A/D和D/A转换

一、实验环境与实验器材 环境:Keli,STC-ISP烧写软件,Proteus. 器材:TX-1C单片机(STC89C52RC)、电脑。 二、 实验内容及实验步骤 1.A/D转换 概念:模数转换是将连续的模拟信号转换为离散的数字信…

使用VHD虚拟磁盘安装双系统,避免磁盘分区

前言 很多时候,我们对现在的操作系统不满意,就想要自己安装一个双系统 但是安装双系统又涉及到硬盘分区,非常复杂,容易造成数据问题 虚拟机的话有经常用的不爽,这里其实有一个介于虚拟机和双系统之间的解决方法,就是使用虚拟硬盘文件安装系统. 相当于系统在机上…

Kafka消费者端重平衡流程

重平衡的完整流程需要消费者 端和协调者组件共同参与才能完成。我们先从消费者的视角来审视一下重平衡的流程。在消费者端,重平衡分为两个步骤:分别是加入组和等待领导者消费者(Leader Consumer)分配方案。这两个步骤分别对应两类…

Django之modelform使用

Django新增修改数据功能优化 目录 1.新增数据功能优化 2.修改数据功能优化 在我们做数据优化处理之前, 我们先回顾下传统的写法, 是如何实现增加修改的。 我们需要在templates里面新建前端的页面, 需要有新增还要删除, 比如说员工数据的新增, 那需要有很多个输入框, 那html…

云轴科技ZStack入选中国人工智能产业发展联盟《大模型应用交付供应商名录》

2025年4月8日至9日,中国人工智能产业发展联盟(以下简称AIIA)第十四次全体会议暨人工智能赋能新型工业化深度行(南京站)在南京召开。工业和信息化部科技司副司长杜广达,中国信息通信研究院院长、中国人工智能…

写论文时降AIGC和降重的一些注意事项

‘ 写一些研究成果,英文不是很好,用有道翻译过来句子很简单,句型很单一。那么你会考虑用ai吗? 如果语句太正式,高级,会被误判成aigc ,慎重选择ai润色。 有的话就算没有用ai生成,但…