首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenCV vs Dlib 人脸检测比较分析

缺点 作者认为没有什么大的缺点^_^ (52CV君不敢妄提缺点,但认为不能使用NVIDIA GPU绝对是个遗憾) 3. Dlib HoG人脸检测 代码示例: ?...缺点 1)CPU速度很慢; 2)不能检测小脸,因为它训练数据的最小人脸尺寸为80×80,但是用户可以用较小尺寸的人脸数据自己训练检测器; 3)人脸包围框甚至小于DLib HoG人脸检测器。 5....可以看到Dlib的两种方法效果都不怎么好,作者发现原来Dlib训练使用的数据集的人脸包围框较小,导致按照FDDB的评价标准不公平。 ? ? ? 另外,Dlib无法检测小脸也拉低了分数。 6....8 总结推荐 如何在应用中选择人脸检测算法呢?作者认为应该首先尝试OpenCV DNN方法与Dlib HOG方法,然后再做决定。 一般情况 在大多数应用程序中,我们无法知道图像中人脸尺寸的大小。...”微信公众号对话界面回复“人脸检测比较”,即可收到该文代码、模型与使用数据百度云下载地址。

4.6K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    40行代码的人脸识别实践

    这些人里包括曾经的我自己。其实如果如果你不是非要深究其中的原理,只是要实现这一工作的话,人脸识别也没那么难。今天我们就来看看如何在40行代码以内简单地实现人脸识别。...Dlib是基于现代C++的一个跨平台通用的框架,作者非常勤奋,一直在保持更新。Dlib内容涵盖机器学习、图像处理、数值算法、数据压缩等等,涉猎甚广。更重要的是,Dlib的文档非常完善,例子非常丰富。...人脸识别 之所以用Dlib来实现人脸识别,是因为它已经替我们做好了绝大部分的工作,我们只需要去调用就行了。Dlib里面有人脸检测器,有训练好的人脸关键点检测器,也有训练好的人脸识别模型。...detector = dlib.get_frontal_face_detector() # 2.加载人脸关键点检测器 sp = dlib.shape_predictor(predictor_path)...加载人脸识别模型 facerec = dlib.face_recognition_model_v1(face_rec_model_path) # win = dlib.image_window() #

    951100

    40行代码的人脸识别实践

    其实如果如果你不是非要深究其中的原理,只是要实现这一工作的话,人脸识别也没那么难。今天我们就来看看如何在40行代码以内简单地实现人脸识别。...Dlib是基于现代C++的一个跨平台通用的框架,作者非常勤奋,一直在保持更新。Dlib内容涵盖机器学习、图像处理、数值算法、数据压缩等等,涉猎甚广。更重要的是,Dlib的文档非常完善,例子非常丰富。...人脸识别 之所以用 Dlib 来实现人脸识别,是因为它已经替我们做好了绝大部分的工作,我们只需要去调用就行了。Dlib里面有人脸检测器,有训练好的人脸关键点检测器,也有训练好的人脸识别模型。...2.识别流程 数据准备完毕,接下来就是代码了。识别的大致流程是这样的: 先对候选人进行人脸检测、关键点提取、描述子生成后,把候选人描述子保存起来。...detector = dlib.get_frontal_face_detector() # 2.加载人脸关键点检测器 sp = dlib.shape_predictor(predictor_path)

    6.7K40

    用40行Python代码 实践高大上的人脸识别

    其实如果如果你不是非要深究其中的原理,只是要实现这一工作的话,人脸识别也没那么难。今天我们就来看看如何在40行代码以内简单地实现人脸识别。...Dlib是基于现代C++的一个跨平台通用的框架,作者非常勤奋,一直在保持更新。Dlib内容涵盖机器学习、图像处理、数值算法、数据压缩等等,涉猎甚广。更重要的是,Dlib的文档非常完善,例子非常丰富。...人脸识别 之所以用 Dlib 来实现人脸识别,是因为它已经替我们做好了绝大部分的工作,我们只需要去调用就行了。Dlib里面有人脸检测器,有训练好的人脸关键点检测器,也有训练好的人脸识别模型。...detector = dlib.get_frontal_face_detector() # 2.加载人脸关键点检测器 sp = dlib.shape_predictor(predictor_path)...加载人脸识别模型 facerec = dlib.face_recognition_model_v1(face_rec_model_path) # win = dlib.image_window()

    56000

    使用OpenCV,Python和深度学习进行人脸识别

    安装不支持GPU的dlib 如果没有GPU,则可以使用pip 安装 dlib: $ workon# optional $ pip install dlib 或者你可以从源代码编译: $ workon <...如果你是: 在CPU上运行人脸识别代码 或者你使用树莓派 ……你要把–detection-method设置为hog,因为CNN人脸检测器没有GPU很慢,并且树莓派没有足够的内存来运行任意的CNN。...稍后在实际的人脸识别步骤中我们需要这些数据。 然后,在第6行和第7行,我们加载并将输入图像转换为rgb颜色通道排序。 然后我们继续检测输入图像中的所有人脸并计算其128维编码 在 第14-16行。...name变量将保留penson的字符串-现在,在没有“votes”(可以理解为票数)的情况下,我们把它保存为 “Unknown” (7行)。...未来,我会讨论如何在树莓派上运行人脸识别,敬请期待!

    10.1K71

    使用Python+OpenCV+dlib为人脸生成口罩

    目前,可用于训练和评估人脸识别系统的图像数据集是有限的。据报道,美国国家标准与技术研究所(NIST)的研究通过将口罩(各种颜色、大小和位置)叠加在没有带口罩人脸的图像上来解决这个问题。...在这篇文章中,我们使用的是dlib的人脸检测器。 dlib中的正面人脸检测器是基于方向梯度直方图(HOG)和线性SVM的。 ?...我们使用dlib的正面人脸检测来首先检测人脸,然后使用面部标志点预测器dlib.shape_predictor检测人脸关键点。...下颚线:点[0,16] 请注意,标志点从0开始 dlib人脸关键点检测器就是在这个数据集上训练的:https://ibug.doc.ic.ac.uk/resources/facial-point-annotations...当与另一个产生不同对齐框的人脸检测器(如基于CNN的mmod_human_face_detector.dat )一起使用时,结果不会很好。

    1.9K11

    40行代码的人脸识别实践

    本文来自CSDN博客专家 ID:xingchenbingbuyu 今天我们就来看看如何在40行代码以内简单地实现人脸识别。...Dlib是基于现代C++的一个跨平台通用的框架,作者非常勤奋,一直在保持更新。Dlib内容涵盖机器学习、图像处理、数值算法、数据压缩等等,涉猎甚广。更重要的是,Dlib的文档非常完善,例子非常丰富。...人脸识别 之所以用Dlib来实现人脸识别,是因为它已经替我们做好了绝大部分的工作,我们只需要去调用就行了。Dlib里面有人脸检测器,有训练好的人脸关键点检测器,也有训练好的人脸识别模型。...= sys.argv[4] 15# 1.加载正脸检测器 16detector = dlib.get_frontal_face_detector() 17# 2.加载人脸关键点检测器 18sp = dlib.shape_predictor...加载人脸识别模型 20facerec = dlib.face_recognition_model_v1(face_rec_model_path) 21# win = dlib.image_window(

    67440

    这一次,我拒绝了Python,选择了Go

    我没有在 Go 语言中找到人脸识别的有关库,因此用 Go 语言实现这样一个应用,对于整个社区而言,都是一件有趣又有帮助的事。 ▌选择合适的框架 如前所述,神经网络以及相应的实现框架如今正被广泛地使用。...因此,在这里我使用 libjpeg 来编写自己的图像加载器。由于大多数照片都以该格式存储的,因此这种格式的加载器足以胜任大部分的需要,以后有需要我还会添加其他格式的图像加载器。...在最简单的情况下,你可以通过比较未知描述符与所有已知描述符之间的欧几里德距离。但这并不完美,即使是当前最先进的人脸识别技术也会得到错误的答案。.../bin/go-face-example 由于在 dlib 的代码中大量使用了 C++ 模板,因此需要一些时间来编译 go-face (在我的 i7 上大约需要运行 1 分钟)。...从人脸提取特征向量是一个强大的概念,因为你不需要收集自己的训练数据,这也是一项非常艰巨的任务 (Davis 曾提到创建 dlib 中 ResNet 模型所用到的 300 万张人脸数据集),但为了获得更高的识别性能这可能也是无法避免的

    99740

    40行代码的人脸识别实践

    这些人里包括曾经的我自己。其实如果如果你不是非要深究其中的原理,只是要实现这一工作的话,人脸识别也没那么难。今天我们就来看看如何在40行代码以内简单地实现人脸识别。...Dlib是基于现代C++的一个跨平台通用的框架,作者非常勤奋,一直在保持更新。Dlib内容涵盖机器学习、图像处理、数值算法、数据压缩等等,涉猎甚广。更重要的是,Dlib的文档非常完善,例子非常丰富。...人脸识别 之所以用 Dlib 来实现人脸识别,是因为它已经替我们做好了绝大部分的工作,我们只需要去调用就行了。Dlib里面有人脸检测器,有训练好的人脸关键点检测器,也有训练好的人脸识别模型。...detector = dlib.get_frontal_face_detector() # 2.加载人脸关键点检测器 sp = dlib.shape_predictor(predictor_path)...加载人脸识别模型 facerec = dlib.face_recognition_model_v1(face_rec_model_path) # win = dlib.image_window()

    1.1K80

    OpenCV实现人脸检测和68点定位

    要实现人脸对比,首先要实现的是人脸检测,在摄像头拍摄到的一张图片中,正确的检测到人脸的位置,并且将人脸提取出来。...4 步骤详解 4.1 OpenCV实现人脸检测 首先将图片转换成灰色:使用 OpenCV 的 cvtColor() 转换图片颜色。...:在使用 OpenCV 的人脸检测之前,需要一个人脸训练模型,格式是 xml 的,本实验中使用的是 OpenCV 提供好的人脸分类模型 xml:haarcascade_frontalface_alt_tree.xml...4.2 人脸68点定位 除了使用 OpenCV 实现人脸检测之外,也可以借助比 OpenCV 更加精准的图片人脸检测 Dlib 库实现人脸 68 点定位。 首先导入需要调用的库。...可以发现,dlib检测到人脸包括双眼、鼻子、嘴巴在内并用68点标注过的图片如下所示,并可以精准的定位检测人脸。 ? ---- 欢迎留言,一起学习交流~ 感谢阅读 END

    4.6K20

    你们都用 Python 做人脸识别,我就偏要用 Go!

    我没有在 Go 语言中找到人脸识别的有关库,因此用 Go 语言实现这样一个应用,对于整个社区而言,都是一件有趣又有帮助的事。 ▌选择合适的框架 如前所述,神经网络以及相应的实现框架如今正被广泛地使用。...因此,在这里我使用 libjpeg 来编写自己的图像加载器。由于大多数照片都以该格式存储的,因此这种格式的加载器足以胜任大部分的需要,以后有需要我还会添加其他格式的图像加载器。...在最简单的情况下,你可以通过比较未知描述符与所有已知描述符之间的欧几里德距离。但这并不完美,即使是当前最先进的人脸识别技术也会得到错误的答案。.../bin/go-face-example 由于在 dlib 的代码中大量使用了 C++ 模板,因此需要一些时间来编译 go-face (在我的 i7 上大约需要运行 1 分钟)。...从人脸提取特征向量是一个强大的概念,因为你不需要收集自己的训练数据,这也是一项非常艰巨的任务 (Davis 曾提到创建 dlib 中 ResNet 模型所用到的 300 万张人脸数据集),但为了获得更高的识别性能这可能也是无法避免的

    2.2K20

    如何用OpenCV在Python中实现人脸检测

    我们将通过以下方法实现人脸检测: 使用 OpenCV 的 Haar 级联分类器 使用 Dlib 的方向梯度直方图 使用 Dlib 的卷积神经网络 本文代码的 Github 库(以及作者其他博客的代码)链接...这样我们仅使用 4 个数组值就计算出了矩形 D 的值。 ? 人们应该知道矩形在实际中是非常简单的特征,但对于人脸检测已经足够了。当涉及复杂问题时,可调滤波器往往更灵活多变。 ?...对图像的每个区域给予等同的注意力是没有意义的,因为我们应该主要关注最有可能包含人脸的区域。Viola 和 Jone 使用级联分类器在减少了计算时间的同时,实现了更高的检测率。...YouTube 视频演示: Dlib 的方向梯度直方图(HOG) 第二种常用的人脸检测工具由 Dlib 提供,它使用了方向梯度直方图(HOG)的概念。...考虑到实时人脸检测的速度,我在个人项目中使用了 HOG。 希望这个关于 OpenCV 和 Dlib 的人脸检测的快速教程能对你有所帮助。

    1.5K30

    精通 Python OpenCV4:第三、四部分

    使用 Dlib 的人脸检测 您可以使用dlib.get_frontal_face_detector()创建正面检测器,该检测器基于定向梯度直方图(HOG)特征和滑动窗口检测方法中的线性分类器。...您可以使用dlib.cnn_face_detection_model_v1()创建 CNN 人脸检测器。 构造器从文件中加载人脸检测模型。 您可以从这里下载预训练的模型(712 KB)。...API Python 使用 Dlib 检测人脸标志 另一种选择是使用dlib库来检测人脸标志。...在landmarks_detection_dlib.py脚本中,我们使用dlib检测了人脸标志。 更具体地说,我们使用从网络摄像头拍摄的图像使用dlib正面人脸检测进行人脸检测。...使用基于 Dlib DCF 的跟踪器的人脸跟踪 在face_tracking_correlation_filters.py脚本中,我们使用 Dlib 正面人脸检测器进行初始化,并使用基于dlib DCF

    1.3K10

    用Python实现一个简单的——人脸相似度对比

    总体来说,AI的门槛还是比较高,不仅要学会使用框架实现,更重要的是,需要有一定的数学基础,如线性代数,矩阵,微积分等。 幸庆的是,国内外许多大神都已经给我们造好“轮子”,我们可以直接来使用某些模型。...使用到的第三方模块和模型: 1、模块:os,dlib,glob,numpy; 2、模型:人脸关键点检测器,人脸识别模型。 第一步:导入需要的模型。...在这里,这两个参数文件就对应了不同的功能(它们对应的神经网络结构也不同): shape_predictor.dat这个是为了检测人脸的关键点,比如眼睛,嘴巴等等;dlib_face_recognition.dat...是在前面检测关键点的基础上,生成人脸的特征值。...当你做完这一步之后,输出列表descriptors看一下,可以看到类似这样的数组,每一个数组代表的就是每一张图片的特征量(128维)。然后我们可以使用L2范式(欧式距离),来计算两者间的距离。

    3.4K30

    【人工智能】使用Python的dlib库实现人脸识别技术

    本文将介绍人脸识别技术的发展历程,并展示如何使用Python和dlib库实现简单的人脸识别。 二、传统人脸识别技术 1....卷积神经网络(CNN) CNN通过层层卷积操作,从图像中提取出高层次的特征,使得人脸识别更加准确和鲁棒。 经典模型如LeNet、AlexNet、VGG、ResNet等在图像识别任务中表现优异。 2....四、使用Python和dlib库实现人脸识别 接下来,我们将展示如何使用Python和dlib库实现简单的人脸识别。 1....人脸检测与识别代码 import cv2 import dlib # 加载dlib人脸检测器 detector = dlib.get_frontal_face_detector() # 加载dlib人脸特征提取器...实现效果 五、总结 人脸识别技术从传统的几何特征和模板匹配方法,发展到如今基于深度学习的高精度识别,经历了巨大的演变。通过使用Python和dlib库,我们可以轻松实现高效的人脸识别系统。

    37610

    如何用OpenCV在Python中实现人脸检测

    我们将通过以下方法实现人脸检测: 使用 OpenCV 的 Haar 级联分类器 使用 Dlib 的方向梯度直方图 使用 Dlib 的卷积神经网络 本文代码的 Github 库(以及作者其他博客的代码)链接...这样我们仅使用 4 个数组值就计算出了矩形 D 的值。 ? 人们应该知道矩形在实际中是非常简单的特征,但对于人脸检测已经足够了。当涉及复杂问题时,可调滤波器往往更灵活多变。 ?...对图像的每个区域给予等同的注意力是没有意义的,因为我们应该主要关注最有可能包含人脸的区域。Viola 和 Jone 使用级联分类器在减少了计算时间的同时,实现了更高的检测率。...YouTube 视频演示: Dlib 的方向梯度直方图(HOG) 第二种常用的人脸检测工具由 Dlib 提供,它使用了方向梯度直方图(HOG)的概念。...CNN 还是用来处理带有网格状拓扑的数据的特殊神经网络。它的架构灵感来自动物视觉皮层。 以前的方法中,很大一部分工作是选择滤波器来创建特征,以便尽从图像中可能多地提取信息。

    1.5K20

    使用Python进行人脸聚类的详细教程

    在这里,我将帮助你编写两个Python脚本: 一个用于提取和量化数据集中的人脸 另一个是对面部进行聚类,其中每个结果聚类(理想情况下)代表一个独特的个体 然后,我们将在样本数据集上运行我们的人脸聚类管道并检查结果...我还要提到的是,如果你认为这个脚本运行缓慢,或者你希望在没有GPU的情况下实时运行人脸聚类,可以将–detection-method设置为hog ,替代cnn。...虽然CNN脸检测更准确,但在没有GPU运行实时检测速度太慢。...将data处理为NumPy数组(第6行)。 从data中提取128维编码 ,将它们放在一个列表中(第7行)。...在循环的第一部分内,我们: 从磁盘加载image并使用在我们的面部嵌入步骤中找到的边界框坐标提取face ROI(第4-6行)。

    6.1K30

    使用人脸识别的打卡程序

    但目前已经过去5个月了,疫情还没有结束的迹象。继续使用第三方的打卡程序:一是数据不安全人脸&位置数据全被第三方收集走了,另一方面第三方没有提供接口无法和公司现有的考勤程序进行数据对接。...如果两个基础数据和本次测试数据的向量差小于一个阈值我们可以认为这是同一张人脸。...dlib在做人脸特征点检测时首先需要一个训练好的68个特征点的学习文件[shape_predictor_68_face_landmarks.dat](http://dlib.net/files/shape_predictor...(face_img, shape) # 转化为numpy数组方便下一步的比较 base_num_array = numpy.array(face_descriptor) # 以上已经完成基础照片的加载,...对于基础照片可以把numpy后的向量数组进行存盘,这时每次再做比较时只对一张照片进行向量化即可。 另外下dlib在使用英伟达家显卡时可以使用GPU进行计算,可以大幅降低CPU的负载。

    1.9K10
    领券