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")







相关文章
|
数据挖掘 PyTorch 算法框架/工具
人脸识别中的损失函数ArcFace及其实现过程代码(pytorch)--理解softmax损失函数及Arcface
人脸识别中的损失函数ArcFace及其实现过程代码(pytorch)--理解softmax损失函数及Arcface
2271 0
|
机器学习/深度学习 编解码 BI
RegNet架构复现--CVPR2020
在这项工作中,我们**提出了一种新的网络设计范式**。我们的目标是帮助促进对网络设计的理解,并发现跨环境通用的设计原则。我们不是专注于设计单个网络实例,而是设计参数化网络群体的网络设计空间。整个过程类似于经典的网络手动设计,但提升到了设计空间级别。使用我们的方法,我们探索了网络设计的结构方面,并**得出了一个由简单、规则的网络组成的低维设计空间,我们称之为** ==RegNet==。
2741 0
RegNet架构复现--CVPR2020
|
Web App开发 域名解析 缓存
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
本文我们主要为大家介绍在 Ubuntu 20.04 上安装 Node.js 和 npm 的三种不同的方式。
171017 7
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
|
8月前
|
人工智能 监控 算法
人群计数、行人检测数据集(9000张图片已划分、已标注) | AI训练适用于目标检测任务
本数据集包含9000张已标注、已划分的行人图像,适用于人群计数与目标检测任务。支持YOLO等主流框架,涵盖街道、商场等多种场景,标注精准,结构清晰,助力AI开发者快速训练高精度模型,应用于智慧安防、人流统计等场景。
人群计数、行人检测数据集(9000张图片已划分、已标注) | AI训练适用于目标检测任务
|
机器学习/深度学习 编解码 人工智能
人脸表情[七种表情]数据集(15500张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含15,500张已划分、已标注的人脸表情图像,覆盖惊讶、恐惧、厌恶、高兴、悲伤、愤怒和中性七类表情,适用于YOLO系列等深度学习模型的分类与检测任务。数据集结构清晰,分为训练集与测试集,支持多种标注格式转换,适用于人机交互、心理健康、驾驶监测等多个领域。
|
机器学习/深度学习 人工智能 算法
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
本文介绍了如何使用 Python 和 YOLO v8 开发专属的 AI 视觉目标检测模型。首先讲解了 YOLO 的基本概念及其高效精准的特点,接着详细说明了环境搭建步骤,包括安装 Python、PyCharm 和 Ultralytics 库。随后引导读者加载预训练模型进行图片验证,并准备数据集以训练自定义模型。最后,展示了如何验证训练好的模型并提供示例代码。通过本文,你将学会从零开始打造自己的目标检测系统,满足实际场景需求。
14001 1
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
|
人工智能 编解码 自动驾驶
RF-DETR:YOLO霸主地位不保?开源 SOTA 实时目标检测模型,比眨眼还快3倍!
RF-DETR是首个在COCO数据集上突破60 mAP的实时检测模型,结合Transformer架构与DINOv2主干网络,支持多分辨率灵活切换,为安防、自动驾驶等场景提供高精度实时检测方案。
3467 6
RF-DETR:YOLO霸主地位不保?开源 SOTA 实时目标检测模型,比眨眼还快3倍!
|
搜索推荐 物联网 PyTorch
Qwen2.5-7B-Instruct Lora 微调
本教程介绍如何基于Transformers和PEFT框架对Qwen2.5-7B-Instruct模型进行LoRA微调。
14377 34
Qwen2.5-7B-Instruct Lora 微调
|
监控 Java API
Java获取实时摄像头进行拍照(附源码)
Java是一种通用编程语言,可以用来开发各种类型的应用程序,包括涉及图像处理和相机操作的应用程序。要在Java中获取实时摄像头进行拍照,通常会借助一些,例如或等。这些库和API提供了访问摄像头和图像处理的功能。通过使用这些库和API,你可以编写Java代码来调用摄像头并实时获取视频流。然后,你可以选择从视频流中捕获图像并保存为图片文件。这样,你就能够实现在Java中获取实时摄像头进行拍照的功能。