8192-мерный вектор VLAD занимает 32 КБ памяти на изображение. Как?
У меня есть простой вопрос относительно представления вектора VLAD. Как получается, что 8192-мерный (k=64, 128-D SIFT) вектор VLAD занимает "32 КБ памяти" на изображение? Я не мог соотнести эти два числа.
1 ответ
Как описано в документации VLFeat, каждый элемент вектора VLAD задается
где x_i
является вектором дескриптора (здесь: 128-мерный вектор SIFT), и u_k
является центром k
th кластер - то есть также 128-мерный вектор SIFT. q_ik
обозначает силу ассоциации между x_i
а также u_i
, который равен 0 или 1, если используется K-означает кластеризацию. Таким образом, каждый v_k
128-мерный.
VLAD вектор изображения I
затем дается сложение всех v_k
:
Этот вектор имеет k
элементы, и каждый элемент является 128-мерным. Таким образом, для k=64
мы заканчиваем с 64 * 128 = 8192
числа, описывающие изображение I
,
Наконец, если мы используем числа с плавающей запятой для каждого элемента, каждому числу требуется 4 байта памяти. Таким образом, мы получаем общее использование памяти 64 * 128 * 4 = 32768
Байт или 32 КБ для вектора VLAD каждого изображения.