在MATLAB for Caffe中创建LMDB数据库文件时出错

时间:2015-09-19 10:24:07

标签: image matlab shell caffe lmdb

我正在尝试将图像数据集转换为LMDB格式以供Caffe使用,我需要调用convert_imageset函数来从Matlab内部应用此转换。

我正在使用Linux,并且我已经创建了一个shell(.sh)脚本,其中包含运行转换所需的参数。以下是我的shell文件的示例:

GLOG_logtostderr=1 /usr/local/caffe-master2/build/tools/convert_imageset -resize_height=256 -resize_width=256 images_folder data_split/train.txt data_split/dataCNN_train_lmdb

当我只是从终端运行我的脚本时:

./example_shell.sh

它没有任何问题。 但是当我尝试使用system()函数从Matlab执行此操作时:

system('./example_shell.sh')

似乎无法打开/查找我的文件,在train.txt中为每个图像上升了以下错误:

I0917 18:15:13.637830 8605 convert_imageset.cpp:82] A total of 68175 images.
I0917 18:15:13.638947 8605 db.cpp:34] Opened lmdb data_split/dataCNN_train_lmdb
E0917 18:15:13.639143 8605 io.cpp:77] Could not open or find file ...
E0917 18:15:13.639143 8605 io.cpp:77] Could not open or find file ...
E0917 18:15:13.639143 8605 io.cpp:77] Could not open or find file ...

以下是来自train.txt文件的一些示例行(不介意0,它们只是虚拟标签):

/media/user/HDD_2TB/Food_101_Dataset/images/beef_carpaccio/970563.jpg 0
/media/user/HDD_2TB/Food_101_Dataset/images/chocolate_mousse/1908117.jpg 0
/media/user/HDD_2TB/Food_101_Dataset/images/cup_cakes/632892.jpg 0
/media/user/HDD_2TB/Food_101_Dataset/images/garlic_bread/1498092.jpg 0
/media/user/HDD_2TB/Food_101_Dataset/images/ceviche/3115634.jpg 0

它们是绝对路径,因此应该没有问题。

任何关于可能发生的事情的想法对我都非常有帮助!

谢谢,

马克

1 个答案:

答案 0 :(得分:0)

我无法使用Matlab解决具体问题,但我已设法通过使用.txt文件进行通信来执行以下(奇怪的)解决方法:

  1. 从Python调用主要的Matlab程序。
  2. 检查Matlab何时需要调用./example_shell.sh脚本。
  3. Python执行转换调用./example_shell.sh
  4. 继续执行Matlab。