Я пытаюсь реализовать фильтр частиц для обнаружения на основе отслеживания, в настоящее время пытаюсь обновить вес на основе модели внешнего вида. До отслеживания у меня есть детектор на основе HOG + SVM, что означает, что в настоящее время у меня есть вектор HOG для каждого обнаруженного человека. Для новой сгенерированной частицы я хочу установить вес, основываясь на сходстве вектора HOG по сравнению с вектором HOG детектора. Итак, какие-либо предложения для алгоритма, который мог бы измерить сходство векторов HOG? Спасибо
Попробуйте метрику L2 (порядковое расстояние между векторами признаков) или косинусное расстояние.
double CosineDistance(float* v1, float* v2, size_t count)
{
double dot = 0.0, denom_a = 0.0, denom_b = 0.0;
for (unsigned int i = 0u; i < count; ++i)
{
dot += v1[i] * v2[i];
denom_a += v1[i] * v1[i];
denom_b += v2[i] * v2[i];
}
return dot / (sqrt(denom_a) * sqrt(denom_b));
}
Других решений пока нет …