def cal_vlad(self, descriptors, centers):
if self.flag is False:
self.load()
if self.stdSlr is not None:
descriptors = self.stdSlr.transform(descriptors)
dimensions = descriptors[0].shape[0]
vlad_vector = np.zeros((len(centers),dimensions), dtype=np.float32)
center_idx, distance = vq(descriptors, centers)
for i,idx in enumerate(center_idx):
vlad_vector[idx] += (descriptors[i] - centers[idx])
vlad_vector = cv2.normalize(vlad_vector)
vlad_vector = vlad_vector.flatten()
return vlad_vector
评论列表
文章目录