如何为图像检索应用(CBIR)中的大型数据集存储大特征向量?

2022-01-19 00:20:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个CBIR应用程序。我使用的是从一个深层的convnet中提取的特征。特征向量相当大(大约10万个)。数据集有超过10k幅图像。 我已经看过了 this problem的答案,我不想使用其中提到的库。在

我尝试了cPickle和hdf5来存储特征向量。我在一台拥有4GB内存和2Ghz英特尔酷睿i3处理器的PC上运行它。在

以下代码构建索引:

h = h5py.File(index_file, 'w')
for imagePath in glob.glob(args["dataset"] + "/*.*"):
    # extract our unique image ID (i.e. the filename)
    k = imagePath[imagePath.rfind('/') + 1:]
    features = get_features(imagePath, args["layer"])
    h.create_dataset(k, data=features)

每当我运行程序为我的图像数据集建立索引时,都会出现错误“Python.exe在创建了大约16MB的索引文件后,“已停止工作。 我是hdf5新手,答案也许微不足道,但任何帮助都将不胜感激。在