yolov5+arcface实现人脸检测和人脸识别

简介

最近也是刚入门深度学习,看了一些书,但是看完好像有和没看差不多,懂了但没完全懂。所以打算自己手把手做个实践项目巩固下书上学到的东西,也是好久没打代码,多动动手还是挺好的。一开始做这个也没什么头绪,只是知道yolo可以检测物体(书上说的),后面我就直接clone下yolo的源码直接去跑。拿到手才发现自己没有数据集,也不知道用哪个。那就百度查,后面看到这篇博客https://blog.csdn.net/weixin_41809530/article/details/107313752
就感觉有思路了。起码知道要用什么数据集,要通过什么技术去实现功能。

人脸检测

人脸检测用的就是yolov5,通过上面的博客我知道可以用CelebA数据集去训练(博客最后有百度云链接)。不过要对CelebA数据集进行一些处理变成符合yolo规则的格式,然后在配置一些yolo的参数就可以开始训练了。
处理数据集和配置文件我连同yolo的源码的放到了这个仓库里
https://gitee.com/zbzbzzz/yolov5
数据集用了其中的10000张图片,训练过程用了300个epoch(默认的),batch size用的是64,显卡用的是rtx titan 24g显存,模型用的是yolov5s,但是训练还是花了4个多小时。后面想下还是epoch和batch size太大了。

人脸识别

人脸识别参考了
https://github.com/ronghuaiyang/arcface-pytorch
这个库。用的是lfw数据集(博客最后有百度云链接),里面图片都是128X128的,比较好用来训练。
上面的代码我也做了部分修改放在了
https://gitee.com/zbzbzzz/arcface-pytorch
这次我学聪明了用了30个epoch+32的batch size,果然没训练多久可能就几分钟我忘了。

结果

上面两部分都是训练的过程,训练完我就把权重文件存起来了,检测的时候用。检测的代码我放在了https://gitee.com/zbzbzzz/FaceRecognition。
里面也有生成特征文件的代码,就是录进一个新的人物进行识别,但是缺点就是一个人只能录一张图片,后面我改改,其实不是很难改,有人要用的话自己改改也行。我训练好的权重文件全都在项目里面有了,安装好依赖就可以直接运行了。里面没有放requirement,因为我在ubuntu里面生成requirement,然后到windows下面安装出了问题。

数据集

其中包含了lfw和CelebA数据集,都是项目中用到的。
https://pan.baidu.com/s/167x6lQXYCtPKove-7fcwUA 提取码:unq1

你可能感兴趣的:(深度学习,人脸识别,深度学习,人工智能)