[基于tensorflow的人脸检测] 基于神经网络的人脸检测4——数据集的标签生成

1.为什么要有标签

2.标签生成

3.处理好的数据标签分享

正文:

1.为什么要有标签
获取了数据以后,虽然已经有了数据,但是对于监督型的训练学习任务而言,还需要有标签,标签就是正确答案(在人脸检测中即人脸/非人脸的标签)。利用正确答案可以做以下两件事。
  • 计算损失函数的损失值
  • 计算正确率、召回率等性能指标
2.标签生成
对于分类任务,通常用独热编码来表示标签。比如说,对于手写数字识别任务,用下面表示,即利用数组数字1的所在下标位来区分。
正确答案独热编码
0[1,0,0,0,0,0,0,0,0,0]
1[0,1,0,0,0,0,0,0,0,0]
9[0,0,0,0,0,0,0,0,0,1]

仿造上面的编码方式,在人脸检测的任务中,可以用 [1,0] 来表示非人脸,而用 [0,1] 来表示人脸。

在保存人脸以及非人脸的时候,需要生成一个图片名来保存所截取的图片。图片名可以根据数据集原有的图片名再加上一些特殊的标志组合而成,从而避免重复。标签的生成就是利用图片名来生成人脸和非人脸标签。下面是两张人脸和非人脸的图片名以及各自的解释,在生成人脸时,用 ‘face+序号’ 进行特殊表示;在生成非人脸时,用 ‘no_face+序号’ 进行特殊表示。

在这里插入图片描述
在这里插入图片描述

下图是一张生成标签的流程图,通过图片名这个唯一的标识就可以生成标签。

通过os库函数获取所有图片的图片名
图片名字符串是否含有'no_face'
把'1,0'写入文件
把'0,1'写入文件

为了在获取批量的图片以及标签上能够更加方便,这里将图片名也写入文件,同时将对应的标签写入文件,这样在使用时可以通过读取文件获取图片以及对应的标签。

需要注意的一点是在利用 [图片名] 的文件时,需要将图片所在的根目录和 图片名文件读取得到的 [图片名] 进行组合才能进行对图片进行读取(也就是绝对路径)。具体见下面程序样例。

import os
images = []
with open(图片名文件) as obj:
    for l in obj.readlines():
        images.append(l.strip('\n'))
root_path = 图片所在目录
for i in range(len(images)):
	all_path = os.path.join(root_path, images[i])
	读取...
3.处理好的数据标签分享
下面是我在前几篇文章中获取的人脸/非人脸所对应的图片名以及标签,有需要的可以自行下载。

人脸数据集标签
密码:fbfxg9

结语:
如果对你有帮助,就给我一个赞吧,如何有问题,可以在评论区进行讨论。

上一篇:[基于tensorflow的人脸检测] 基于神经网络的人脸检测3——WIDER FACE数据集处理
下一篇:[基于tensorflow的人脸检测] 基于神经网络的人脸检测5——神经网络的搭建

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值