机器之心■模型仅有7M:轻量级高精度人脸检测方法DBFace
机器之心报道
参与:Racoon X
这个仅 7M 大小的人脸检测模型几乎检测出了世界最大自拍照中的所有人像!
本文插图
项目简介
之前机器之心报道过一个跨平台人脸检测项目 , 在 CPU 上就能轻松跑出 1000FPS 。 这次介绍的项目也是一个轻量级人脸检测项目 。 不同的是 , 该项目在保持较小参数量的前提下 , 检测精度要高很多 , 并且只需要 OpenCV 和 PyTorch 就能运行 。
DBFace 是一个轻量级的实时人脸检测方法 , 其有着更快的检测速度与更高的精度 。 下图展示了多种人脸检测方法在 WiderFace 数据集上的测试效果 。 可以看到不仅 DBFace 模型的大小最小 , 其在 Easy、medium、Hard 三个测试任务中均取得了最高的检测精度 。
本文插图
项目地址:https://github.com/dlunion/DBFace
WiderFace 是一个关于人脸检测的基准跑分数据集 , 其中包含 32,203 张图片以及在各方面剧烈的 393,703 张人脸 , 数据集具有从简单到困难等不同难度的任务 。 下图是改数据集中一些样本的展示 , 可以看到 , 要想准确地检测出图中所有人脸还是很有挑战的 。 DBFace 在该数据集的不同任务上分别取得 0.925、0.920、0.847 的准确率 , 实属不易 。
本文插图
有关 WiderFace 的详细介绍请读者移步其官网:
http://shuoyang1213.me/WIDERFACE/
效果展示
下图展示了不同人脸检测方法在 WiderFace 数据集上的 P-R 曲线 。 P-R 曲线可以较直观地展示二分类器的 Precision 和 Recall 。 当需要对不同算法进行比较时 , 若某个二分类器的 P-R 曲线被另一个二分类器的 P-R 曲线完全包住 , 即表明后者的性能优于前者 。 从图中可以看到 , DBFace 包围的面积在三个任务中均相对较大 。
本文插图
当阈值设置为 0.2 时 , DBFace 对这张世界最大的自拍照检测效果如下图所示:
本文插图
【机器之心■模型仅有7M:轻量级高精度人脸检测方法DBFace】可以看到 , DBFace 的检测准确率非常高 , 图中很多人脸甚至放大后单凭肉眼也很难分辨 , DBFace 却仍然能够检测出来 , 并且模型大小仅 7M , 完全能够在边缘设备上实时运行 。 于是 , 机器之心也上手测试了一番 。
项目实测
项目作者提供的代码示例中包含对静态图片的检测 , 同时也有一个调用电脑摄像头的 GUI 。 值得注意的是 , 该项目并不需要太多依赖项 , 只要有 PyTorch、Numpy 和 OpenCV 即可运行 。 由于以上依赖环境都是非常常用的扩展库 , 网上有大量相应安装教程 , 这里就略过其安装步骤 。
在 main.py 中 , image_demo() 与 camera_demo() 分别对应静态图片检测与调用摄像头进行检测 。 静态图片检测代码为:
def image_demo():
dbface = DBFace()
dbface.eval()
if HAS_CUDA:
dbface.cuda()
dbface.load("model/dbface.pth")
detect_image(dbface, "datas/selfie.jpg")
以上代码将会读取训练后的模型 , 对图片 datas/selfie.jpg 进行检测 , 并将结果保存到 detect_result/selfie.draw.jpg 。
让我们来看一下检测效果:
推荐阅读
- 初中数学@初中数学三角形倒角模型专题“8字模型”(含经典练习附答案)
- 带你吃瓜做个无情的尖叫机器啊啊——任嘉伦《琵琶行》造型大片抢先看,200505
- 军人驿站国际观察俄土科技差距显露无疑,美称此战可载入史册,叙利亚爆发机器人大战
- 松鼠军评俄土科技差距显露无疑,美称此战载入史册,叙利亚爆发机器人大战
- 埃尔法哥哥还可以做扫地机器人啊,自动驾驶不做了
- 界面新闻MIT:美国制造业每多1个机器人,平均取代3.3名工人
- 读懂新金融营销、城市、机器人、养牛养鱼……新型科技公司的十八般武艺
- 极客公园机器人大爆发的时代来了?风口上的优必选说要「保持冷静」
- 智东西OpenAI追踪AI模型效率:每16个月翻一番!超越摩尔定律
- 15个最流行的GitHub机器学习项目
