Я работаю над проектом OpenCV, использующим серфинг для обнаружения функций по изображениям.
Детектор инициализируется таким образом
int minHessian = 100;
SurfFeatureDetector detector( minHessian );
Может кто-нибудь объяснить мне значение гессенского порога (по математике и на практике)?
Это объясняется в SURF бумага, которую вы действительно должны прочитать перед использованием. Алгоритм SURF действительно состоит из двух частей: определение точки интереса и дескриптор. Гессенский детектор углов используется для обнаружения точки интереса в этом случае. Порог определяет, насколько большим должен быть выходной сигнал фильтра Гессиана, чтобы точка использовалась в качестве точки интереса. Большее значение приведет к меньшему, но (теоретически) большему значению процентных пунктов, тогда как меньшее значение приведет к более многочисленным, но менее значимым точкам.
Математически матрица Гессе описывает вторые производные функции, которые обозначают кривизну. Представьте, что у вас есть трехмерная поверхность f (x, y), как вы можете найти свои локальные экстремумы? Просто найдите свою нулевую точку в первой производной. Чтобы обосновать, является ли эта точка локальным максимумом или минимумом, нам нужно знать первые два самых больших abs (вторые производные в пространстве). Если произведение их отрицательно, эта точка не может быть локальной крайностью. Если продукт положительный, эта точка будет локальным экстремумом, более того, чем больше продукт, тем острее локальный экстремум.
Вернемся к матрице Гессе, которая обозначает вторые производные. Самым важным для гессиана являются его собственные значения. Собственные значения описывают наибольшую вторую производную в трехмерном пространстве (не ограничиваясь направлением x и y). Как упоминалось ранее, их продукт полезен. Хитрость здесь в том, что произведение собственных значений является детерминантом гессиана. minHessian здесь можно рассматривать как тот детерминант, который показывает, насколько «острые» экстремумы вам нужны. Если Det (гессиан) в одной точке больше, чем это значение, это может быть точкой интереса.
Вместо использования LoG и Hessian, таких как SIFT, SURF использует Det (Hessian) для выбора как шкалы, так и точек интереса. Таким образом, SURF может «ускорить».
Тем не менее, есть более подробная информация об этом детерминанте, включая вейвлет-фильтр Хаара, веса в разных направлениях … Если вас интересуют эти детали, пожалуйста, обратитесь к статье SURF.