OpenVINO 人脸检测模型

技术讨论 hello_uncle ⋅ 于 2周前 ⋅ 85 阅读

作者丨gloomyfish
来源丨OpenCV学堂
编辑丨极市平台

OpenVINO的模型库中有多个人脸检测模型,这些模型分别支持不同场景与不同分辨率的人脸检测,同时检测精度与速度也不同。下面以OpenVINO2020 R04版本为例来逐一解释模型库中的人脸检测,列表如下:006C3FgEgy1goxebj7mjhj31240ak444从列表中可以看出骨干特征网络主要是MobileNetv2与SqueezeNet两种支持实时特征网络,ResNet152是高精度的特征网络,检测头分别支持SSD、FCOS、ATSS。

01 MobileNetv2版本的模型结构

006C3FgEgy1goxec1inewj30ks0vsjwb006C3FgEgy1goxecb69kzj30n20gqjut上面三张图就是MobileNetv2的全部!看懂就好!

02 ResNet网络

残差网络模型在2015年提出,OpenCV从3.3版本开始支持,相关的论文如下:

https://arxiv.org/pdf/1512.03385.pdf

与VGG模型对比,模型结构:006C3FgEgy1goxecj4dejj30ku09kta9

03 SqueezeNet网络

该模型与MobileNet网络都是支持移动端/端侧可部署的模型,2016提出,相关论文如下:

https://arxiv.org/pdf/1602.07360.pdf

模型结构006C3FgEgy1goxectnaqrj30qk0hg419

检测模型

根据不同的检测头,组合生成不同的对象检测模型,这里三种常见的检测模型:

01 SSD检测

006C3FgEgy1goxed3niujj30vc094my9SSD论文中给出的是基于VGG-16作为backbone网络的,替换VGG为MobileNetV2,然后从第12个权重层开始提取特征到第14或者15个权重层,针对anchor预测与类别预测完成回归与分类损失计算,实现对象检测模型训练。

02 FCOS检测

006C3FgEgy1goxedbp6e7j30vk0dggoo跟YOLOv1相似是一个anchor-free的网络模型,多了一个中心输出来压制低质量的bounding box输出。

03 ATSS

ATSS的全称是自适应训练样本选择,006C3FgEgy1goxedn2u29j30nc0vgak2作者首先对比了RetinaNet与FCOS两种对象检测方法,发现对象检测在回归阶段的本质问题是如何选择正负样本,解决样本不平衡性问题,从而提出了一种新的正负样本选择定义方法-自适应训练样本选择(ATSS)。流程如下006C3FgEgy1goxedz7tlrj30qo10eqcd该方法可以获得更好的对象检测精度与mAP,适用RetinaNet与FCOS等对象检测网络。实际实验数据对比:006C3FgEgy1goxee6jq73j30pe0780uw

代码演示与对比

上面的OpenVINO的人脸检测模型列表中,MobileNetv2 + SSD/FCOS适用于速度优先,不同分辨率的场景,ResNet152 + ATSS是OpenVINO模型库中的精度最高的人脸检测预训练模型。下面我们就通过代码分别测试FCOS与ATSS两种检测模型的检测效果比较,针对同一张测试人脸图像,图示如下:(此张非原图!原图太大,无法上传

006C3FgEgy1goxeejdqguj31260lokaw

统一调整阈值为0.25,推理时间与检测人脸总数的对比图如下:006C3FgEgy1goxeez22phj30mq0deaaa

最终分别得到测试图像如下:

FCOS006C3FgEgy1goxef7ubixj312k0lukbn

ATSS006C3FgEgy1goxefh0bcsj31260ls7ok

大叔

成为第一个点赞的人吧 :bowtie:
回复数量: 0
暂无回复~
您需要登陆以后才能留下评论!