细小人脸检测的实践(Finding Tiny Faces论文代码复现)
2017-09-10 17:55
393 查看
https://www.cs.cmu.edu/~peiyunh/tiny/这个主页上介绍了CVPR中的一篇文章,关于细小人脸检测的。小物体检测一直还是CV界比较有挑战的一个问题。从作者的摘要可以看出,主要完成了以下三个工作:
We explore three aspects of the problem in the context of finding small faces:
(1)the role of scale invariance,
(2)image resolution,
(3)and contextual reasoning.
具体而言,论文关键点包括以下三个方面:
Multi-task modeling of scales
目前常用的方法是使用尺度归一化分类器或者在 ROI 池化特征图上运行区域分类器。将区域尺寸归一化到一个标准尺寸,会面临一个简单的问题,因此直观的想法是:分别训练不同尺度的检测器。然而这种问题肯定会带来复杂性的增加。通过发现对卷积网络后端小尺寸特征图进行放大,这对检测小目标很重要。因此作者最后采用了尺度不变方式,来处理图像金字塔以捕获大规模变化,并采用特定尺度混合检测器
整个论文实现检测的流程如下:从输入图像开始,首先创建一个粗图像金字塔(包括2X插值)。然后,我们将缩放的输入图像输入到CNN中(论文中采用了resnet-101),以便在每个分辨率下预测模板响应(用于检测和回归)。最后,我们在原始分辨率图像上应用非最大抑制(NMS)来获得最终检测结果。
觉得工作挺有意义的,于是进行了代码的复现。
具体过程:
(1)安装matlab
(2)安装matconvnet,这个必须采用作者的fork版本,否则会出现split函数没有找到的问题。
(3)直接运行
具体的执行过程可以看到如下的字眼,即可以看到实际过程中采用了多种分辨率。
find the pretrained model file
./trained_models/hr_res101.matLoading pretrained detector model...
load modelProcessing data/3.jpg at scale 0.062500.
Processing data/3.jpg at scale 0.125000.
Processing data/3.jpg at scale 0.250000.
Processing data/3.jpg at scale 0.500000.
Processing data/3.jpg at scale 1.000000.
Processing data/3.jpg at scale 1.414214.
Processing data/3.jpg at scale 2.000000.
下面为一些测试结果:
这种不是正面拍摄的照片,检测结果居然还是相当好的。
挑了张阅兵的照片,由于原始的照片是:650*350的,检测结果就相对一般了,主要可能是作者采用的20*15的框,已经超过了后面那排的人脸的像素。
We explore three aspects of the problem in the context of finding small faces:
(1)the role of scale invariance,
(2)image resolution,
(3)and contextual reasoning.
具体而言,论文关键点包括以下三个方面:
Multi-task modeling of scales
目前常用的方法是使用尺度归一化分类器或者在 ROI 池化特征图上运行区域分类器。将区域尺寸归一化到一个标准尺寸,会面临一个简单的问题,因此直观的想法是:分别训练不同尺度的检测器。然而这种问题肯定会带来复杂性的增加。通过发现对卷积网络后端小尺寸特征图进行放大,这对检测小目标很重要。因此作者最后采用了尺度不变方式,来处理图像金字塔以捕获大规模变化,并采用特定尺度混合检测器
整个论文实现检测的流程如下:从输入图像开始,首先创建一个粗图像金字塔(包括2X插值)。然后,我们将缩放的输入图像输入到CNN中(论文中采用了resnet-101),以便在每个分辨率下预测模板响应(用于检测和回归)。最后,我们在原始分辨率图像上应用非最大抑制(NMS)来获得最终检测结果。
觉得工作挺有意义的,于是进行了代码的复现。
具体过程:
(1)安装matlab
(2)安装matconvnet,这个必须采用作者的fork版本,否则会出现split函数没有找到的问题。
(3)直接运行
tiny_face_detector.m这个文件进行测试。(利用这种运行的方式可以避免反复加载预训练模型,提高测试效率)
具体的执行过程可以看到如下的字眼,即可以看到实际过程中采用了多种分辨率。
find the pretrained model file
./trained_models/hr_res101.matLoading pretrained detector model...
load modelProcessing data/3.jpg at scale 0.062500.
Processing data/3.jpg at scale 0.125000.
Processing data/3.jpg at scale 0.250000.
Processing data/3.jpg at scale 0.500000.
Processing data/3.jpg at scale 1.000000.
Processing data/3.jpg at scale 1.414214.
Processing data/3.jpg at scale 2.000000.
下面为一些测试结果:
这种不是正面拍摄的照片,检测结果居然还是相当好的。
挑了张阅兵的照片,由于原始的照片是:650*350的,检测结果就相对一般了,主要可能是作者采用的20*15的框,已经超过了后面那排的人脸的像素。
相关文章推荐
- 小人脸检测 - Finding Tiny Faces
- 论文学习:Finding Tiny Faces
- Finding Tiny Faces demo代码运行记录
- 40行代码的人脸识别实践
- Dlib库中实现正脸人脸关键点(landmark)检测的测试代码
- Python-OpenCV人脸检测(代码)
- 中国团队夺得MegaFace百万人脸识别冠军,精度98%再创记录,论文代码+数据全开源
- OpenFace库(Tadas Baltrusaitis)中基于HOG进行正脸人脸检测的测试代码
- OpenCV 人脸检测自学笔记(8)_读trainCascade的训练结果的代码笔记
- OpenCV中人脸检测代码实现
- OpenCV实践之路——人脸检测(C++/Python)
- Dlib库中实现正脸人脸关键点(landmark)检测的测试代码
- openCV实现多人脸检测,多眼部检测,完整代码和详细注释
- 基于AdaBoost算法的人脸检测经典论文研究之一
- OpenCV人脸检测(C++代码)—— By wepon
- UMDFaces数据集与人脸特征点检测
- 基于OpenCV的人脸检测代码
- openCV 人脸检测 VC2008代码
- Python-OpenCV人脸检测(代码)
- OpenCV实践之路——用dlib库进行人脸检测与人脸标记(Python)