如何创建caffe中的对象检测数据集?

如何创建caffe中的对象检测数据集?

问题描述:

为图像创建数据库(LMDB/LEVELDB)在caffe中是微不足道的。但是我们如何创建这样的数据集来进行对象检测呢?
这个序列是否正确?如何创建caffe中的对象检测数据集?

  1. 把所有图像的文件夹
  2. 在每个图像,创建一个文本文件与相应的图像*同名
  3. 把边界框在一个单独的坐标每个对象的图像中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