Формирование индекса для поиска похожих изображений транспортных средств - page 10

А.Л. Федотов, К.Л. Тассов
10
Сгенерируем случайные веса по нормальному распределению
 
2
μ, σ ,
1,
k
a N
k L
. Каждый вес
k
— это 128-мерный вектор,
совпадающий с размерностью дескриптора, полученного алгоритмом
SIFT. Сгенерируем случайные веса по равномерному распределению
 
0.5,1 ,
1,
k
W w U k L
 
. Данные веса необходимы для различия
точек, располагающихся на разных расстояниях от центральной, но
лежащие в одном секторе
ܾ
на одном и том же луче.
Вычислим каждый компонент хеш-вектора следующим способом:
α ,
i
i
V
i
k
V
k
k p
p C
L
p b
C
h
w
d
 
,
(8)
где
i
V
p C
— норма вектора, образованного разностью координат
особой и центральной точек;
V
C
— норма вектора, образованного
разностью центральной точки и центра координат.
Случайный выбор весов
W
может негативно повлиять на конеч-
ное значение хеш-вектора. Поэтому сгенерированные веса предвари-
тельно сортируются в соответствии со значением (
k
,
d
pi
). В резуль-
тате элементы, имеющие большие значения, перемножаются с
бо́
льшими по значению весами.
Полученный хеш-вектор
H
состоит из
L
чисел с плавающей запя-
той (типа
double
, занимающий 8 Байт). Для сокращения размера каж-
дый компонент хеша приводится к целому числу, занимающему 1
Байт:
'
256 , '
0,..., 255
max
k
k
h
h k
h
 
,
где max — максимальное значение, возможное для компонента вектора.
Выбор длины
L
хеш-вектора зависит от того, насколько точным
должен быть поиск изображений. Чем больше длина вектора, тем
точнее производится поиск, и наоборот. В данной работе длина хеш-
вектора принята равной 20, основываясь на исследованиях в работах
[14–16], а также по результатам проведенных экспериментов.
Осуществление поиска в базе данных.
По полученному хеш-
вектору возможно производить поиск, последовательно перебрав по
всей базе данных и сравнив со всеми полученными хеш-векторами,
что делает подобную операцию невыполнимой с точки зрения време-
ни отклика системы в масштабах большой выборки из миллионов
изображений. Поэтому необходимо сформировать атрибут из хеш-
вектора, по которому возможно проводить индексирование. Для это-
го необходимо преобразовать хеш-вектор в индекс, используя
1,2,3,4,5,6,7,8,9 11,12,13,14
Powered by FlippingBook