Opencv Repeatability Результат не имеет смысла?

Я пытаюсь оценить SIFT и SURF детекторы по критериям повторяемости.

я узнаю, что ниже метод может найти повторяемость, соответствие SIFT и SURF

 cv::evaluateFeatureDetector(img_1c, img_2c, h12, &key_points_1, &key_points_2, repeatability, corrCounter);

некоторые из результатов перечислены ниже:

Number  Repeatibility   Correspond  Keypoint 1st    Keypoint 2th    
1to2    0.7777778            140        224              180    
1to3    0.7125               114        224              161    
1to4    0.704918              86        224              123    
1to5    0.6853933             61        224               89    
1to6    0.6521739             45        224               69

для повторяемости первой строки можно вычислить как -> (correnspond)/min(keypoint1st,keypoint2th) = (140/180) = 0.7777778, но для других строк это значение отличается от того, что я вычисляю с помощью приведенной выше формулы.

может кто-нибудь сказать, почему это происходит?

С уважением.

2 ответа

Решение

Я думаю, что, возможно, нашел проблему здесь.

Коэффициент повторяемости - это количество повторяющихся точек между двумя изображениями с учетом общего количества выделенных ключевых точек. Для измерения количества повторяющихся точек необходимо принять во внимание, что наблюдаемые сцены отличаются друг от друга из-за их измененных условий визуализации (точка обзора, вращение + масштаб, размытие и т. Д. В случае набора данных Миколайчик).

Ключевые точки, которые не обнаружены на обоих изображениях, могут повредить показатель повторяемости, поэтому только повторяемость влияет только на точки, которые лежат в общих частях сцены.

Происходит то, что вы учитываете все ключевые точки, обнаруженные на втором изображении, для расчета повторяемости, и на самом деле должны использоваться только ключевые точки в пределах гомографии.

Надеюсь это поможет.

Фактически, OpenCV 2.49 использует эту строку кода в evaluation.cpp:

repeatability = minCount ? (float)correspondencesCount / minCount : -1;

что количество соответствий, деленное на меньшее количество Keypoint 1st или же Keypoint 2th так что я думаю, что ваша ошибка может быть где-то еще. Можете ли вы опубликовать свой полный код, где вы установили img_1c и т. Д., И вызвать функцию и отобразить результаты?

Другие вопросы по тегам