人脸聚类_facenet代码实现
网上我能查到的大多是实现图片预处理——运行人脸对齐程序align_dataset_mtcnn.py,还有测试模型精度的validate_on_lfw.py,但是这次领导让我和同事玩玩人脸聚类,因为新到了一批人脸数据(就是上个shell脚本每天传回来的),领导当时让我们试试无监督分类。任务要求是首先清洗数据,将识别不到人脸的图片删除(模糊、黑夜、遮挡这类),然后对剩下图片进行无监督分类。不过我这里用的不是公司数据啦。
然后我上周因为一直在测shell脚本,所以数据清洗是由我同事完成的。她写了一个判断图片黑像素占比的脚本,将黑色图片先挑出作为初步数据清洗。这个效果其实还可以,只是会将穿黑色衣服的人也挑出来。然后第二部数据清洗她找到了mtcnn算法,检测人脸区域检测与人脸关键点,检测不到人像的图片删除。
后来我们找聚类算法的时候找到了facenet里面的contributed里的cluster,实现了人脸聚类的功能,并且它第一步也是创立mtcnn网络,检测人脸和关键点,所以我们就把数据清洗只留下了删除黑色图片的预处理,剩下的都是用cluster完成。
代码下载地址:https://github.com/davidsandberg/facenet
当然还需要下载模型,网上其实也有,如果有人需要也可以跟我要,不过也没人看我的文章,算了算了。
这个代码我新建了虚拟环境,安装了tensorflow-gpu=1.7 和python=3.6,我的电脑本身有cuda9.0,所以可以运行gpu版本的tensorflow,如果不是的话,也可以用cpu跑啦,就是慢一点。
我看了网上有很多对facenet源码进行解读的文章,有几篇我觉得很好
https://www