人脸检测的若干思考!!!

1.目前主要有人脸检测方法分类?

主要包含两类:传统人脸检测算法和基于深度学习的人脸检测算法。

传统人脸检测算法主要可以分为4类: 基于知识、模型、特征和外观的人脸检测方法;

基于深度学习的方法:基于级联CNN的人脸检测(cascade cnn)、 基于多任务CNN的人脸检测(MTCNN)、Facebox等,很大程度上提高了人脸检测的鲁棒性。当然通用目标检测算法像Faster-rcnn、yolo、ssd等也有用在人脸检测领域,也可以实现比较不错的结果,但是和专门人脸检测算法比还是有差别。

2.如何检测图片中不同大小的人脸?

传统人脸检测算法的策略:

(1)缩放图片的大小(2)缩放滑动窗的大小

基于深度学习的人脸检测算法的策略:

(1)缩放图片大小。(也可以通过缩放滑动窗的方式,基于深度学习的滑动窗人脸检测方式效率会很慢存在多次重复卷积,所以要采用全卷积神经网络(FCN),用FCN将不能用滑动窗的方法。)

(2)通过anchor box的方法(通过特征图预测原图的anchor box区域)。

3.如何设定算法检测最小人脸尺寸?

主要是看滑动窗的最小窗口和anchorbox的最小窗口。

(1)滑动窗的方法

假设通过12×12的滑动窗,不对原图做缩放的话,就可以检测原图中12×12的最小人脸。但是往往通常给定最小人脸a=40、或者a=80,以这么大的输入训练CNN进行人脸检测不太现实,速度会很慢,并且下一次需求最小人脸a=30*30又要去重新训练,通常还会是12×12的输入,为满足最小人脸框a,只需要在检测的时候对原图进行缩放即可:w=w×12/a。

(2)anchorbox的方法

原理类似,这里主要看anchorbox的最小box,可以通过缩放输入图片实现最小人脸的设定。

4 如何定位人脸的位置?

1)滑动窗的方式:基于分类器识别为人脸的框的位置确定最终的人脸;

2)FCN的方式

通过特征图映射到原图的方式确定最终识别为人脸的位置,特征图映射到原图人脸框是要看特征图相比较于原图有多少次缩放(缩放主要查看卷积的步长和池化层)

3)通过anchor box的方式:

通过特征图映射到图的窗口,通过特征图映射到原图到多个框的方式确定最终识别为人脸的位置。

滑动窗的方式

5 如何通过一个人脸的多个框确定最终人脸框位置?

通过NMS得到最终的人脸位置:

NMS改进版本有很多,最原始的NMS就是判断两个框的交集,如果交集大于设定的阈值,将删除其中一个框,那么两个框应该怎么选择删除哪一个呢? 因为模型输出有概率值,一般会优选选择概率小的框删除。

相关推荐
搞科研的小刘选手6 小时前
【河南省科学院、河南工业大学主办 | 郑州举办】2026年计算机视觉与具身智能国际学术会议(CVEI 2026)
人工智能·计算机视觉·具身智能·学术会议·会议推荐
雨晨源码(同名B站)10 小时前
【2027届人工智能专业选题】基于yolov8的农业病虫害图像识别与分类系统 |深度学习 计算机视觉
人工智能·深度学习·yolo·计算机视觉·分类
格林威10 小时前
多相机并行采图最佳实践:Task.WhenAll + 异常处理 + 资源释放
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·机器视觉
动物园猫10 小时前
狗行为目标检测数据集:6类别、近3,000张图像 | 目标检测
人工智能·目标检测·计算机视觉
一个王同学10 小时前
从零到一 | CV转多模态大模型 | week22 | 实战项目-DocuMind-VL:基于 OCR 与 Qwen-VL 的文档多模态问答系统(二)
人工智能·深度学习·机器学习·计算机视觉·ocr
大明者省20 小时前
WSL2 Ubuntu22.04 GPU训练环境配置指南
人工智能·算法·计算机视觉
AI视觉网奇1 天前
小目标跟踪
人工智能·计算机视觉·目标跟踪
别动我齐刘海1 天前
机器学习基础3——C++、OpenCV、点云、Open3D
c++·人工智能·opencv·目标检测·机器学习·机器人·ros2
工业设备方案笔记1 天前
RK3588工业视觉检测方案详解:AI如何赋能智能制造?
arm开发·人工智能·计算机视觉·目标跟踪·视觉检测·边缘计算·制造
欧特克_Glodon1 天前
OpenCV计算机视觉开发入门与实践<七>:OpenCV 界面编程之窗口
c++·人工智能·opencv·计算机视觉