Мне нужно извлечь функции просеивания из набора данных, содержащего 1500 изображений, которые позже будут использованы для Bag of Words. Результат на одном изображении имеет, например, 3168 функций, требующих МБ памяти. Сохранение всех функций только так? Поскольку каждое изображение имеет разные размеры [кадров, дескрипторов], как лучше всего сохранить результат?
Извлечение признаков SIFT для 1500 изображений
Ответы (2)
Вы упоминаете об использовании функций на потом. Как вы в настоящее время планируете сохранять функции, чтобы сделать их постоянными? Выполнение извлечения признаков каждый раз будет работать, но для 1500 изображений это будет медленный процесс.
Одним из вариантов, который вы можете использовать, является кластеризация k-средних для создания кодовой книги на основе всех функций/дескрипторов. Я сделал это для корпуса из 1100 изображений, и моя результирующая кодовая книга составляет ‹ 1 МБ с 200 кластерами. Моя кодовая книга сохраняется как сериализованный (замаринованный) объект в python, поэтому его можно легко открыть при необходимости.
Вот ускоренный курс по k-means (при условии, что вы используете Python): http://www.pyimagesearch.com/2014/05/26/opencv-python-k-means-color-clustering/
Используете ли вы набор визуальных слов из 1500 изображений для другого набора данных? Или вы собираетесь использовать BoVW для сопоставления 1500 изображений?
Думаю проблема с хранилищем. насколько я испытал. в python возникает ошибка «недостаточно памяти» при стекировании дескрипторов просеивания. ИЛИ память программы не может быть перезаписана памятью .. просто гипотеза