Обнаружение изображений при слабом освещении с использованием SURF

Я использую код из сайт OpenCV для обнаружения объектов. Я новичок в OpenCV и в обработке изображений и пытаюсь понять работу SURF. У меня есть несколько сомнений.

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

2. В коде, какое значение имеет фильтрация, если только совпадения имеют расстояние менее 3 * mindist?

for( int i = 0; i < descriptors_object.rows; i++ )
{ if( matches[i].distance < 3*min_dist )
{ good_matches.push_back( matches[i]); }
}

3. Несмотря на то, что обнаружение является устойчивым на изображениях с высокой освещенностью (я использовал 900 в качестве значения гессиана), одно и то же изображение в условиях низкой освещенности не обнаруживается с одинаковым значением гессиана, есть ли способ сделать оба с одним и тем же значением гессиана и одно и то же эталонное изображение для обоих условий? Будет ли полезна функция cv :: equalizeHist ()? Если это так, может кто-нибудь предложить мне способ интеграции с кодом обнаружения SURF?

Структура 4.DMatch, которая возвращает совпадения, имеет параметр под названием расстояние, которое возвращает расстояние между дескрипторами. Что это значит? Есть ли единица для возвращенного расстояния?

5. Я также хотел бы знать, существуют ли лучшие дескрипторы, чем SURF, с точки зрения сложности времени, масштаба и инвариантности вращения для обнаружения объекта.

Заранее спасибо за ваше время и ответы.

0

Решение

  1. SURF работает с изображениями в оттенках серого.

  2. Существует много ложных случайных совпадений (так как если у вас есть 100 объектов в img1, у вас всегда будет 100 совпадений), и фильтровать их — хорошая идея. Но лучше проверить относительное расстояние — как это делается в Использовать евклидово расстояние в SURF)

  3. Да, это можно использовать. Вы просто используете измененные изображения вместо оригинальных.
    Вы обнаруживаете небольшое количество объектов из-за низкой интенсивности пикселей и низкого контраста в темных областях, что снижает отклик детектора. При применении к темному изображению выравнивание гистограммы увеличивает контраст, что увеличивает количество локальных максимумов ниже порогового значения.

    cv :: Mat img1, img1histEq;
    резюме :: equalizeHist (img1, img1histEq);

  4. SURF можно рассматривать как 128-мерный вектор. Расстояние — это расстояние между двумя такими векторами в некотором пространстве, обычно евклидово — сумма квадратов разностей между соответствующими векторными элементами. Другие показатели, например L1 также может быть использован, но евклидово больше всего используется для SURF.

  5. SIFT работает лучше с точки зрения инвариантности, но в 3 раза медленнее. Вы можете найти сравнение различных дескрипторов Вот а также Вот.
    Непонятно, что вы подразумеваете под «обнаружением объекта». Что именно вам нужно сделать?
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]