本文主要分享笔者仿照Cifar-10二进制数据库的格式,自己制作机器学习使用的二进制数据库。经过封装后,非常方便使用。代码可用Github下载:BinaryDataset
关于Cifar-10
CIFAR-10数据集由10个类的60000个32x32彩色图像组成,每个类有6000个图像。 有50000个训练图像和10000个测试图像:
其数据在文件中的存贮格式如下:
<1 x label><3072 x pixel>
...
<1 x label><3072 x pixel>
正是根据这种格式,实现了BinaryDataset对二进制文件的读写。
首先是1个字节来存储label,然后存放image的数据。image大小没有限制,代码中会根据图像的大小自动调整(但是要求所有的图像尺寸一致,比如说,所有的图像的尺寸都为100*100,或者1000*1000或者其他)。如果图像为多个通道,则格式为label R G B。
BinaryDataset详解
BinaryDataset源文件列表如下:
main.cpp 提供了一个制作人脸检测二进制数据库的例子。
BinaryDatasetWriter.h和BinaryDatasetWriter.cpp 用于生成二进制文件。