1.Easily Create High Quality Object Detectors with Deep Learning

2016/10/11

dlib中的MMOD实现使用HOG特征提取,然后使用单个线性过滤器。这意味着它无法学习检测出具有复杂姿势变化的物体。HOG:方向梯度直方图(Histogram of oriented gradient)是在计算机视觉和图像处理领域用于目标检测的特征描述器。

人脸检测基准FDDB有两种模式:10倍交叉验证和不受限制。两者都在同一数据集上进行测试,但在10倍交叉验证模式下,您只能对FDDB数据集中的数据进行训练。在无限制模式下,您可以训练您喜欢的任何数据,只要它不包含来自FDDB的图像。FDDB站点:http://vis-www.cs.umass.edu/fddb/index.html

人脸数据集:FDDB、ImageNet、AFLW、Pascal VOC、VGG、WIDER 、Ibug(https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/)、facescrub(http://www.robots.ox.ac.uk/~vgg/data/vgg_face/)等。

2.dlib-models

(1)mmod_human_face_detector

是在这个数据集上训练的:http://dlib.net/files/data/dlib_face_detection_dataset-2016-09-30.tar.gz。作者通过在许多公开可用的图像数据集(不包括FDDB数据集)中查找人脸图像来创建数据集。特别是,有来自ImageNet,AFLW,Pascal VOC,VGG数据集,WIDER和facescrub的图像。数据集中的所有注释都是由作者使用dlib的imglab工具创建的。mmod_human_face_detector 包含两种模式。不能人脸识别。

(2)shape_predictor_68_face_landmarks.dat.bz2

这是在ibug 300-W数据集上训练的(https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/)。dlib_face_recognition_resnet_model_v1  shape detect联合使用,可以人脸识别。

(3)性能效果

DLIB,HOG+SVM:正脸,CPU百毫秒级

DLIB,CNN:非正脸,秒级,GPU百毫秒级

3.Face Detection – OpenCV, Dlib and Deep Learning ( C++ / Python )

2018/10/22

本文对比了OpenCV和dlib的4中人脸检测方法:OpenCV中的Haar Cascade人脸检测器、基于深度学习的OpenCV人脸检测器、Dlib中的HoG Face Detector、基于深度学习的Dlib人脸检测器。

(1)OpenCV中的Haar Cascade人脸检测器

优点:

1)几乎可以在CPU上实时工作。

2)简单的架构。

3)检测不同比例的脸部。

缺点:

1)这种方法的主要缺点是它提供了大量的假预测。

2)不适用于非正面图像。

3)在遮挡下不起作用。

(2)基于深度学习的OpenCV人脸检测器

它基于Single-Shot-Multibox检测器,并使用ResNet-10架构作为主干。使用来自网络的图像训练该模型,但未公开该来源。 OpenCV为这款人脸探测器提供了2种型号:浮点16版原始caffe实现(5.4 MB)和使用Tensorflow的8位量化版本(2.7 MB)。

优点:

1)四种方法中最准确的

2)在CPU上实时运行。

3)适用于不同的面部方向 - 上,下,左,右,侧面等。

4)甚至在严重遮挡下工作。

5)检测各种尺度的面部(检测大面和小面)。

缺点:基于DNN的探测器克服了基于Haar级联探测器的所有缺点,同时不会损害Haar提供的任何优势。除了它比下面讨论的基于Dlib HoG的面部检测器慢之外,我们看不出这种方法的任何主要缺点。

(3)Dlib中的HoG Face Detector

这是一种广泛使用的人脸检测模型,基于HoG特征和SVM。该模型由5个HOG过滤器构成 - 前视,左视,右视,前视但向左旋转,前视但向右旋转。用于训练的数据集包括2825个图像,这些图像从LFW数据集中获得,并由Dlib的作者Davis King手动注释。它可以从这里下载。http://dlib.net/files/data/dlib_face_detector_training_data.tar.gz

优点:

1)CPU上最快的方法。

2)适用于正面和略微非正面的面部。

3)轻量级模型与其他三个相比,在小的遮挡下工作,基本上,这种方法在大多数情况下都有效,除了下面讨论的少数情况。

缺点:

1)主要缺点是它不能检测小脸,因为它训练的最小面部尺寸为80×80。因此,您需要确保面部大小应该大于应用程序中的面部大小。但是,您可以为较小尺寸的面部训练自己的面部检测器。

2)边界框通常有时排除前额的一部分甚至下巴的一部分。

3)在严重遮挡下不能很好地工作。

4)不适用于侧面和极端非正面,如俯视或俯视。

(4)Dlib中的CNN面部检测器。

此方法使用具有基于CNN的功能的最大边距对象检测器(MMOD)。此方法的培训过程非常简单,您不需要大量数据来训练自定义对象检测器。它使用由其作者戴维斯·金手动标记的数据集,包括来自各种数据集的图像,如ImageNet,PASCAL VOC,VGG,WIDER,Face Scrub。它包含7220张图片。数据集:http://dlib.net/files/data/dlib_face_detection_dataset-2016-09-30.tar.gz

优点:

1)适用于不同的面部方向。

2)偶然场景下健壮。

3)在GPU上工作得非常快。

4)非常简单的培训过程。

缺点:

1)CPU速度很慢

2)不会检测小脸,因为它训练的最小脸部尺寸为80×80。因此,您需要确保面部大小应该大于应用程序中的面部大小。但是,您可以为较小尺寸的面部训练自己的面部检测器。

3)边界框甚至小于HoG探测器。

基于dlib的方法能够检测大小达(70×70)的人脸,之后它们无法检测到。正如我们之前讨论的那样,我认为这是基于Dlib的方法的主要缺点。因为在大多数情况下不可能事先知道面部的大小。我们可以通过scaling图像来摆脱这个问题,但是与OpenCV-DNN相比,dlib的速度优势消失了。OpenCV方法仍不支持NVIDIA GPU。各场景下的选择建议:

(1)一般情况

在大多数应用程序中,我们不会在前面的图像中知道面部的大小。因此,最好使用OpenCV- DNN方法,因为它非常快速且非常准确,即使对于小尺寸的面部也是如此。它还可以检测各种角度的面部。我们建议大多数人使用OpenCV-DNN。

(2)中到大图像尺寸

Dlib HoG是CPU上最快的方法。但它没有检测到小脸(<70x70)。因此,如果您知道您的应用程序不会处理非常小的面部(例如自拍应用程序),那么基于HoG的面部检测器是更好的选择。此外,如果你可以使用GPU,那么MMOD人脸检测器是最好的选择,因为它在GPU上非常快,并且还提供各种角度的检测。

(3)高分辨率图像

由于这些算法不能提供高分辨率图像(计算速度),因此当缩小图像时,HoG / MMOD检测器可能会失败。另一方面,OpenCV-DNN方法可以用于这些,因为它检测小脸。

(4)非正脸

非正面可以向右,向左,向上,向下看,基于Haar的探测器完全失效。基于HoG的探测器确实检测左侧或右侧面部的面(因为它是在它们上训练的),但不如基于DNN的OpenCV和Dlib探测器那样精确。

(5)遮挡

DNN方法优于其他两种方法,OpenCV-DNN略好于Dlib-MMOD。

python dlib caffe人脸相似度_人脸检测学习笔记(数据集-DLIB人脸检测原理-DLIBOpenCV人脸检测方法及对比)...相关推荐

  1. python dlib caffe人脸相似度_基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【一】如何配置caffe属性表...

    前言 基于深度学习的人脸识别系统,一共用到了5个开源库:OpenCV(计算机视觉库).Caffe(深度学习库).Dlib(机器学习库).libfacedetection(人脸检测库).cudnn(gp ...

  2. 9月6日关键点检测学习笔记——人脸和手部特征点检测

    文章目录 前言 一.干扰因素 1.主动因素 2.固有因素 二.特征点检测 1.PFLD 2.LLCV 三.人脸比对 1.人脸 1:1 2.人脸 1:n 3.人脸 1:N 4.人脸 M:N 四.高清分辨 ...

  3. Python语言入门这一篇就够了-学习笔记(十二万字)

    Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...

  4. 《Python核心编程(第3版)》学习笔记及书评

    <Python核心编程(第3版)>学习笔记 文章目录 <Python核心编程(第3版)>学习笔记 写在前面 1. 正则表达式 1.1 常用语法 1.2 re模块 2. 网络编程 ...

  5. Dlib学习笔记:dlib array2d与 OpenCV Mat互转

    Dlib学习笔记:dlib array2d与 OpenCV Mat互转 [尊重原创,转载请注明出处] http://blog.csdn.net/guyuealian/article/details/7 ...

  6. 《Python地理空间分析指南 第2版》学习笔记-5.1 距离测量

    第5章 Python与地理信息系统 本章主要学习Python处理矢量数据,包含以下内容: 距离测量 坐标转换 矢量数据重投影 Shapefile 文件编辑 海量数据过滤 专题地图创建 非GIS数据类型 ...

  7. python培训的课时是多久_如何快速学习python,学习python的最短时间是多久?

    在我们即将迈入python培训课堂之前,你肯定很关注学习python的最短时间是多久,怎样才能快速学习python等问题,今天就为大家详细地回答一下这个问题,希望对你有所帮助! 这篇文章将为你的自学之 ...

  8. python搞笑语句_云计算开发学习笔记:Python3 import语句

    原标题:云计算开发学习笔记:Python3 import语句 想使用 Python 源文件,只需在另一个源文件里执行 import 语句,语法如下: 当解释器遇到 import 语句,如果模块在当前的 ...

  9. Python 计算两个连通子图距离_【CV学习笔记】图像的计算

    关注"深度学习冲鸭",一起学习一起冲鸭! 设为星标,第一时间获取更多干货 作者:云时之间 来源:知乎 链接:https://zhuanlan.zhihu.com/p/1038790 ...

  10. y空间兑换代码_【CV学习笔记】色彩空间

    关注"深度学习冲鸭",一起学习一起冲鸭! 设为星标,第一时间获取更多干货 作者:云时之间来源:知乎链接:https://zhuanlan.zhihu.com/p/103387082 ...

最新文章

  1. tensorflow对应的python版本_详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
  2. smarty能创建 php页面,php+smarty生成静态页面详解
  3. 《系统集成项目管理工程师》必背100个知识点-45质量管理
  4. boost::hana::make_pair用法的测试程序
  5. JavaScript设计模式与开发实践 | 02 - this、call和apply
  6. 关于mysql的change和modify
  7. SQLAlchemy 教程 —— ORM 方式使用示例
  8. 全面的Spring Boot配置文件详解
  9. 微软设计套装 Expression Studio 4 (Ultimate+Web Pro+Encoder Pro) 最新版下载
  10. 【小白的刷题之路】字符统计
  11. CSDN—编写博客(快捷键)
  12. matlab 兼容,matlab版本兼容问题
  13. java做一个客房管理系统定制_基于Java的酒店客房网上管理系统设计与实现
  14. linux洪水攻击路由器,(20)Linux下ICMP洪水攻击实例
  15. wet-英语困难户的好选择-控制台翻译
  16. 做微信小程序需要ICP证书吗
  17. 一直都以为阿里的程序员待遇是最好的,结果真正的土豪竟然是……
  18. ubuntu teamviewer被检测为商业用途
  19. 产品经理数据分析入门指南
  20. 单应性矩阵的理解及求解4

热门文章

  1. Android最新flash播放器----支持安卓5.0+系统。
  2. 高德地图开放平台——行政区划分DistrictSearch 准确定位区域,指定某一城市的行政区
  3. 【批处理DOS-CMD命令-汇总和小结】-添加注释命令(rem或::)
  4. 关于Python 向pdf添加印章效果的思考及实现
  5. 神经网络学习 之 BP神经网络
  6. 【2022西电A测】温度检测控制仿真系统
  7. 【矩阵乘法】矩阵求和
  8. 如何更新google chrome浏览器
  9. hikaricp mysql_HikariCP数据库连接池
  10. Asp.net 使用weboffice实现Word在线编辑