如何创建caffe中的对象检测数据集?
问题描述:
为图像创建数据库(LMDB/LEVELDB
)在caffe中是微不足道的。但是我们如何创建这样的数据集来进行对象检测呢?
这个序列是否正确?如何创建caffe中的对象检测数据集?
- 把所有图像的文件夹
- 在每个图像,创建一个文本文件与相应的图像*同名
- 把边界框在一个单独的坐标每个对象的图像中row
现在我该如何将这样的结构转换为lmdb?
我应该将所有txt文件转换为字节并将整个字节流保存为每个图像的一个标签吗?
Caffe能否自动从这种转换后的数据库中读取数据,还是应该创建一个特定的图层来读取和馈送网络所需的信息?
答
您需要创建一个自定义层来处理需要包含在lmdb文件中的附加数据,您可以看一下Caffe中已经实现的Fast-RCNN,它可以对此进行端到端检测页面:https://github.com/rbgirshick/py-faster-rcnn/tree/master/models/coco/VGG_CNN_M_1024/faster_rcnn_end2end。
通过观察上prototxt文件的输入层,你可以看到他们正在使用的输入自定义类型:
layer {
name: 'input-data'
type: 'Python'
top: 'data'
top: 'im_info'
top: 'gt_boxes'
python_param {
module: 'roi_data_layer.layer'
layer: 'RoIDataLayer'
param_str: "'num_classes': 81"
}
}
此外,你可以看到这个定制层的细节这里: https://github.com/rbgirshick/fast-rcnn/tree/master/lib/roi_data_layer