caffe 中的训练数据增强及其多标签

training data augmentation in caffe along with its multilabel

如何随机裁剪训练图像及其位置标签。

我正在为 caffe 输入预处理图像数据及其标签。我想在线随机裁剪我的训练图像(当 caffe 运行 时)并且我知道 caffe 在层 random crop 中提供随机裁剪参数。问题是当图像转换时,我的每个对应图像的标签都是不同的。因此,通过这种方式,我必须将标签与转换后的图像一起更改。我尝试长时间搜索我的问题,但没有用。然后我意识到也许有两种方法可以解决问题:

  1. 获取原始图像上随机裁剪图像的偏移量。但我用谷歌搜索了它,没有任何答案。
  2. 我会在线指定随机偏移量,然后按特定偏移量裁剪图像。但是caffe训练时如何生成随机数呢
  3. 我知道离线预处理随机裁剪图像及其标签可能是一种可行的方法。但是,它会占用相当大的磁盘space,因为我的训练数据集太大了。

我的位置对应标签: 我将每个训练图像拆分为 10x10=100 个网格。标签是图像中特定关键点的网格索引。例如,当我的头部关键点位于 <2th row, 1th col> 图像网格的位置时,标签将为 11。

您可以使用 for this task, as you already (我想这是最简单的方法)。
如果您担心这一层的 运行ning 时间,您可以将其设置为多线程:让该层调用多个线程来裁剪图像并重新计算它们的标签。这些线程将 运行 在后台运行,应该能够及时为网络提供下一个小批量的足够数据。

参见pythonthreading module for the Thread class. You might also find it convenient to use Queueclass以同步线程和主输入层。