Dataset之CASIA-WebFace:CASIA-WebFace 数据集的简介、安装、使用方法之详细攻略

简介: Dataset之CASIA-WebFace:CASIA-WebFace 数据集的简介、安装、使用方法之详细攻略

CASIA-WebFace 数据集的简介


       CASIA-WebFace数据集包含了10575 个人的494414 张图像。CASIA-webface数据库,压缩包有4个多g,里面包含了10000个人,一共50万张人脸图片,无论是做SVM,DNN还是别的训练,都是非常好的数据库。


1、英文原文介绍


    Pushing by big data and deep convolutional neural network (CNN), the performance of face recognition is becoming comparable to human. Using private large scale training datasets, several groups achieve very high performance on LFW, i.e., 97% to 99%. While there are many open source implementations of CNN, none of large scale face dataset is publicly available. The current situation in the field of face recognition is that data is more important than algorithm. To solve this problem, we propose a semi-automatical way to collect face images from Internet and build a large scale dataset containing 10,575 subjects and 494,414 images, called CASIA-WebFace. To the best of our knowledge, the size of this dataset rank second in the literature, only smaller than the private dataset of Facebook (SCF). We encourage those data-consuming methods training on this dataset and reporting performance on LFW.

       在大数据和深度卷积神经网络(美国有线电视新闻网)的推动下,人脸识别的性能已与人类相比。使用私有的大规模训练数据集,若干组在LFW上实现非常高的性能,即97%到99%。虽然有许多开源的美国有线电视新闻网的实现,没有大规模的面部数据集是公开可用的。人脸识别领域的研究现状是数据比算法更重要。为了解决这个问题,我们提出了一种半自动的方式来收集来自互联网的人脸图像,并建立一个大型数据集包含10575个主题和494414个图像,称为CASIA WebFACTS。据我们所知,该数据集的大小在文献中排名第二,仅比脸谱网(SCF)的私有数据集小。我们鼓励在这个数据集上的数据消耗方法训练和LFW上的报告性能。


image.png





CASIA-WebFace 数据集的安装


因为数据集太大,4个多G,无法直接给各位网友,获取方法:

T1、官网下载

T2、留言向博主索取!






CASIA-WebFace 数据集的使用方法


更新……



1、基础用法


通过人脸识别方法提取人脸特征;

使用每个名人的mainphoto作为它的种子(因为mainphoto一般都是正脸,而且不会出现其他人);

使用那些只有1个人脸的图片去增加每个名人的种子的数量;

在photo gallery剩下的图片中,通过与种子的相似度来找到属于每个名人的其余照片。

裁剪人脸,将同一个名人的脸单独存入一个路径内,之后再进行人工纠错,进一步提高数据集纯度。



2、Tensorflow以CASIA-Webface为例子读取tfrecords数据数据


import mxnet as mx

import argparse

import PIL.Image

import io

import numpy as np

import cv2

import tensorflow as tf

import os

def parse_function(example_proto):

   features = {'image_raw': tf.FixedLenFeature([], tf.string),

               'label': tf.FixedLenFeature([], tf.int64)}

   features = tf.parse_single_example(example_proto, features)

   # You can do more image distortion here for training data

   img = tf.image.decode_jpeg(features['image_raw'])

   img = tf.reshape(img, shape=(112, 112, 3))

   r, g, b = tf.split(img, num_or_size_splits=3, axis=-1)

   img = tf.concat([b, g, r], axis=-1)

   img = tf.cast(img, dtype=tf.float32)

   #归一化

   img = tf.subtract(img, 127.5)

   img = tf.multiply(img,  0.0078125)

   #一些图像增强操作

   img = tf.image.random_flip_left_right(img)

   label = tf.cast(features['label'], tf.int64)

   return img, label

if __name__ == '__main__':

   args = parse_args()

   config = tf.ConfigProto(allow_soft_placement=True)

   sess = tf.Session(config=config)

   # training datasets api config

   tfrecords_f = os.path.join(args.tfrecords_file_path, 'tran.tfrecords')

   dataset = tf.data.TFRecordDataset(tfrecords_f)

   dataset = dataset.map(parse_function)

   #队列缓冲区长度30000,并且打乱顺序

   dataset = dataset.shuffle(buffer_size=30000)

   #这样每次迭代就是32张图片

   dataset = dataset.batch(32)

   iterator = dataset.make_initializable_iterator()

   next_element = iterator.get_next()

   # begin iteration

   for i in range(1000):

       sess.run(iterator.initializer)

       while True:

           try:

               images, labels = sess.run(next_element)

               plt.imshow(images[0])

               fig = plt.gcf()

               plt.show()

               fig.savefig('test.jpg')

           except tf.errors.OutOfRangeError:

               print("End of dataset")







相关文章
|
机器学习/深度学习 算法 数据库
Dataset之LFW:LFW人脸数据库的简介、安装、使用方法之详细攻略
Dataset之LFW:LFW人脸数据库的简介、安装、使用方法之详细攻略
Dataset之LFW:LFW人脸数据库的简介、安装、使用方法之详细攻略
|
数据挖掘 PyTorch 算法框架/工具
人脸识别中的损失函数ArcFace及其实现过程代码(pytorch)--理解softmax损失函数及Arcface
人脸识别中的损失函数ArcFace及其实现过程代码(pytorch)--理解softmax损失函数及Arcface
1896 0
|
Web App开发 域名解析 缓存
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
本文我们主要为大家介绍在 Ubuntu 20.04 上安装 Node.js 和 npm 的三种不同的方式。
169139 7
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
|
3月前
|
文字识别 数据可视化 算法
基于 YOLOv8 的智能车牌定位检测系统设计与实现—从模型训练到 PyQt 可视化落地的完整实战方案
本项目基于YOLOv8实现智能车牌定位检测,涵盖数据处理、模型训练、评估优化及PyQt5可视化界面开发,支持图片、视频、摄像头实时检测。系统精度高、响应快,提供完整代码与预训练模型,适合毕设、课程设计及二次开发,助力智慧交通应用落地。(238字)
383 7
基于 YOLOv8 的智能车牌定位检测系统设计与实现—从模型训练到 PyQt 可视化落地的完整实战方案
|
数据采集 Python
Python实用记录(七):通过retinaface对CASIA-WebFace人脸数据集进行清洗,并把错误图路径放入txt文档
使用RetinaFace模型对CASIA-WebFace人脸数据集进行清洗,并将无法检测到人脸的图片路径记录到txt文档中。
387 1
|
PyTorch 算法框架/工具
Pytorch学习笔记(三):nn.BatchNorm2d()函数详解
本文介绍了PyTorch中的BatchNorm2d模块,它用于卷积层后的数据归一化处理,以稳定网络性能,并讨论了其参数如num_features、eps和momentum,以及affine参数对权重和偏置的影响。
2466 0
Pytorch学习笔记(三):nn.BatchNorm2d()函数详解
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
25023 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
机器学习/深度学习 人工智能 编解码
【AI系统】MobileNet 系列
本文详细介绍 MobileNet 系列模型,重点探讨其轻量化设计原则。从 MobileNetV1 开始,通过深度可分离卷积和宽度乘数减少参数量,实现低延迟、低功耗。后续版本 V2、V3、V4 逐步引入线性瓶颈、逆残差、Squeeze-and-Excitation 模块、新型激活函数 h-swish、NAS 搜索等技术,持续优化性能。特别是 MobileNetV4,通过通用倒瓶颈(UIB)和 Mobile MQA 技术,大幅提升模型效率,达到硬件无关的 Pareto 最优。文章结合最新深度学习技术,全面解析各版本的改进与设计思路。
4157 8
|
安全 Linux 网络安全
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
139027 0
|
机器学习/深度学习 数据可视化 PyTorch
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图

热门文章

最新文章