ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

dlib cnn_face_detector 人脸检测内部实现简单记录

2021-09-04 18:01:39  阅读:222  来源: 互联网

标签:face template cnn using detector dlib


最近稍微研究了一下dlib人脸检测算法,在这里简单记录一下。

使用方法见  http://dlib.net/cnn_face_detector.py.html 

 

  •   前处理

dlib给的官方链接里面是这么使用的,参数列表里面的第二项数值1,表示放大2倍再塞给网络,不想放大的话,直接设为0就可以了

dets = cnn_face_detector(img, 1)

  • 模型

dib的mmod的人脸检测模型是这样的。列的很清楚了,是通过卷积网络实现的。

 1 // ----------------------------------------------------------------------------------------
 2 
 3 template <long num_filters, typename SUBNET> using con5d = con<num_filters,5,5,2,2,SUBNET>;
 4 template <long num_filters, typename SUBNET> using con5  = con<num_filters,5,5,1,1,SUBNET>;
 5 
 6 template <typename SUBNET> using downsampler  = relu<affine<con5d<32, relu<affine<con5d<32, relu<affine<con5d<16,SUBNET>>>>>>>>>;
 7 template <typename SUBNET> using rcon5  = relu<affine<con5<45,SUBNET>>>;
 8 
 9 using net_type = loss_mmod<con<1,9,9,1,1,rcon5<rcon5<rcon5<downsampler<input_rgb_image_pyramid<pyramid_down<6>>>>>>>>;
10 
11 // ----------------------------------------------------------------------------------------

几个点需要注意,

1.一上来就有一个pyramid_down 6就是把原图按照5/6的scaling ratio去缩小,形成图像金字塔,直到最小的图像的高度小于5

下图是一个Input为375x500的图,可以看到,一共有23层的图像金字塔,最小的一层是5x6. 这也就是dlib非常慢的原因。

 

 

 

 2.其中的affine其实是caffe里面的scale,类似于BN,每个值放大a倍再加一个b。

  • 后处理

在dlib内部会做nms,还会丢弃confidence threshould过低的结果,所以算出来的PR曲线后半截会没有掉

 

 

 

标签:face,template,cnn,using,detector,dlib
来源: https://www.cnblogs.com/sunny-li/p/15227320.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有