人脸聚类

人脸聚类属于无监督学习. 当你有许多未标记的待分类的照片时, 使用人脸聚类是非常有用的. 其 python 脚本位于 /python_examples/face_clustering.py.

待分类目录下有两张神仙的肖像和两张观海的肖像, 使用如下代码可以将神仙和观海分开.

import os

import sys

import dlib

import skimage.draw

import skimage.io

predictor_path = 'shape_predictor_68_face_landmarks.dat'

face_rec_model_path = 'dlib_face_recognition_resnet_model_v1.dat'

faces_folder_path = sys.argv[1]

detector = dlib.get_frontal_face_detector()

sp = dlib.shape_predictor(predictor_path)

facerec = dlib.face_recognition_model_v1(face_rec_model_path)

face_results = []

for entry in os.scandir(faces_folder_path):

print(f'Processing file: {entry.path}')

img = skimage.io.imread(entry.path)

dets = detector(img, 1)

print("Number of faces detected: {}".format(len(dets)))

for k, d in enumerate(dets):

shape = sp(img, d)

face_descriptor = facerec.compute_face_descriptor(img, shape)

face_results.append({

'path': entry.path,

'det': d,

'shape': shape,

'descriptor': face_descriptor

})

labels = dlib.chinese_whispers_clustering([e['descriptor'] for e in face_results], 0.5)

num_classes = len(set(labels))

print("Number of clusters: {}".format(num_classes))

for i, r in enumerate(face_results):

r['label'] = labels[i]

for e in face_results:

path = e['path']

d = e['det']

det = [d.top(), d.left(), d.bottom(), d.right()]

label = e['label']

print(label, path, det)

执行结果

$ python3 run.py face_tests/

Processing file: face_tests/crystal_01.jpg

Number of faces detected: 1

Processing file: face_tests/crystal_02.jpg

Number of faces detected: 1

Processing file: face_tests/obama_01.jpg

Number of faces detected: 1

Processing file: face_tests/obama_02.jpg

Number of faces detected: 1

Number of clusters: 2

0 face_tests/crystal_01.jpg [116, 201, 270, 356]

0 face_tests/crystal_02.jpg [64, 236, 219, 390]

1 face_tests/obama_01.jpg [38, 146, 113, 220]

1 face_tests/obama_02.jpg [63, 71, 138, 146]

python相册中的人脸聚类_Dlib-人脸聚类相关推荐

  1. python dlib学习(九):人脸聚类

    前言 前面的博客介绍过使用dlib进行人脸检测.比对.检测特征点等等操作. python dlib学习(一):人脸检测 python dlib学习(二):人脸特征点标定 python dlib学习(五 ...

  2. 在python中利用OpenCV包实现人脸识别

    一.实验环境 1.python3.6环境,numpy包,OpenCV包,pillow包 2.联想T470笔记本电脑,win10系统 3.在测试目录下新建两个文件夹,一个是Facedata用于存放采集的 ...

  3. OpenCV中LBPH人脸识别器识别人脸实战(附Python源码)

    需要源码和图片请点赞关注收藏后评论区留言私信~~~ Local Binary Pattern Histofram简称LBPH,即局部二进制模式直方图,这是一种基于局部二进制模式算法,这种算法善于捕获局 ...

  4. python人脸识别和人脸对比,face_recognition和OpenCV

    前言 先用OpenCV判断图片是否模糊,模糊的话需要重拍: 再用face_recognition检测图片中是否有人脸,有才接着进行下一步: 再用face_recognition计算图片中每张人脸的12 ...

  5. python h5游戏_从零开始制作H5人脸融合小游戏

    去年的建军节,一个展示军装照的H5人脸融合游戏火遍朋友圈,带来很好的传播效果.最近欧冠决赛要来了,公司决定做一个寻找和你最像的欧冠球星的H5游戏,那么该怎么做呢?认真分析了一下,这个游戏其实用到的技术 ...

  6. 基于Face++使用python+opencv来实现人脸验证及人脸解锁

    csdn不方便的话转到github 源码和图片资料都在github https://github.com/ChenJian-Jia/Based-on-face-Python-and-OpenCV-ar ...

  7. 使用Python,OpenCV和Haar级联进行人脸检测——轻量级的人脸检测器

    使用Python,OpenCV和Haar级联进行人脸检测--轻量级的人脸检测器 1. 效果图 2. 原理 2.1 项目结构 2.2 [haarcascade_frontalface_default.x ...

  8. 用Python几行代码实现简单的人脸识别,10分钟完成(附源码)

    前言 今天,我们用Python实现简单的人脸识别技术! Python里,简单的人脸识别有很多种方法可以实现,依赖于python胶水语言的特性,我们通过调用包可以快速准确的达成这一目的.这里介绍的是准确 ...

  9. 用AndroidSDK中的Face Detector实现人脸识别

    很多手机图片管理应用都开始集成人脸识别功能.一提到人脸识别,模式识别,滤波,BlahBlah 一堆复杂的技术名字戳入脑海中,立刻觉得这玩意儿没法碰,太玄乎了.其实Android SDK从1.0版本中( ...

最新文章

  1. 2017-4-26 winform 菜单和工具栏
  2. apache的两种工作模式
  3. extjs 页面打开时表格自动加载后台传来的json数据
  4. 计算机二级web题目(9.1)--综合选择题3
  5. 【转】C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件
  6. 还是觉得应该动手写点东西....
  7. java新手笔记18 类比较
  8. Android摄影App,这20款摄影APP,让你的照片飞上天!
  9. win10 64位下Oracle10g安装
  10. 数学建模算法之动态规划
  11. Python实现层次分析法
  12. 024 幂函数、指数函数、对数函数导数公式推导
  13. 赵小楼《天道》《遥远的救世主》深度解析(47)为什么要给韩楚风的司机小赵点赞?芮小丹是怎么做到“反客为主、打破阶层”的?
  14. 重庆电信助力新一代物联网商用平台
  15. Second-Order Cone Programming(SOCP) 二阶锥规划
  16. 快乐AK场2 E 删删删越小越好 单调栈
  17. python猫眼top数据解析画图
  18. Lane Detection in Low-light Conditions Using an Efficient DataEnhancement : Light Conditions Style
  19. C语言实现FFT和IFFT,并与MATLAB编写显示的结果相对比,进行验证(蝶形运算)
  20. 米思齐学习例程(五):中断延时

热门文章

  1. 清华大学C语言程序设计作业,C语言程序设计教程_李含光_郑关胜_清华大学出版社习题答案习题答案[完美打印版],精品资料...
  2. Android 7.1 设置默认启动桌面,并设置为主屏幕应用
  3. Android之玩转MPAndroidChart让(折线图、柱形图、饼状图、散... http://www.apkbus.com/thread-267832-1-1.html)...
  4. 中国全干光缆行业市场供需与战略研究报告
  5. 如何快速成为点灯大师?
  6. hive中UDF跟UDAF使用说明
  7. SQL语句中使用回车换行符
  8. 线性回归中最大似然法的理解
  9. 【TeeChart Pro ActiveX教程】(十一):缩放和滚动
  10. Python 'gbk' codec can't decode byte 0x80