天天看点

[基于tensorflow的人脸检测] 基于神经网络的人脸检测2——FDDB数据集处理

目录:

1.官网的数据解释

2.处理数据

3.处理好的数据分享

正文:

1.官网数据解释

FDDB数据集官网提供了数据以及数据的标注,下面是其中一张图片的标注。

2002/08/26/big/img_265

3

67.363819 44.511485 -1.476417 105.249970 87.209036 1

41.936870 27.064477 1.471906 184.070915 129.345601 1

70.993052 43.355200 1.370217 340.894300 117.498951 1

以上标注,官网的解释是,第一行表示图片的名称。第二行表示这张图片拥有的人脸数。因为这张图片有三张人脸,所以下面的三行都是对人脸位置的标注;每一行的数据都代表长半轴、短半轴、旋转角度、中心点x坐标、中心点y坐标、1。

2.处理数据 对于官网提供的数据,首先需要进行人脸以及非人脸的获取。人脸的标注是椭圆的,但是获取的时候需要用矩形的方法进行获取,所以获取人脸的方式如下,这里用 major_axis_radius、minor_axis_radius、angle、center_x 、center_y 、1代表官网给出的标注信息。

centerx = int(float(center_x))
centery = int(center_y))
a = int(float(minor_axis_radius)
b = int(float(major_axis_radius)
x1 = centerx - a
y1 = centery - b
x2 = centerx + a
y2 = centery + b
face_image = image[y1:y2,x1:x2] #注意x y的顺序
           

只需要遍历所有的标注人脸的txt文件,就可以获取所有的FDDB数据集人脸图片。

对于非人脸图片,可以通过裁剪一张图片中的非人脸部分。通过设置交并比(与人脸的重叠率,重叠率低于所设阈值则认为非人脸)获取非人脸,交并比的定义一般为重叠面积除以总面积。可以随机在一张图片上生成矩形框,然后计算交并比,达到要求则获得非人脸。对于一张图片生成几张非人脸以及随机产生的矩形框大小,完全可以由自己决定,为了方便矩形框通常设置为与人脸矩形框大小一致。下面展示获取非人脸程序思想流程图以方便理解。

[基于tensorflow的人脸检测] 基于神经网络的人脸检测2——FDDB数据集处理

3.处理好的数据分享 下面是我处理得到的人脸以及非人脸数据,另外把人脸分成了训练集、验证集以及测试集。有需要的可以下载。

FDDB数据集人脸/非人脸数据

密码:xm93mk

结语:

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

上一篇:[基于tensorflow的人脸检测] 基于神经网络的人脸检测1——项目介绍

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