Мне интересно, какой параметр для детектора функции орбиты. Я использую его как средство выделения ключей и дескриптор. В качестве помощника я использую BFMatcher.OpenCV: Параметры Orb
В настоящее время я использую это так:
ORB orb(25, 1.0f, 2, 10, 0, 2, 0, 10);
Потому что я смотрю на маленьких изображений и высокую скорость работы, я уменьшил количество функций до 25. Что, кажется, до сих пор отлично работает с моим приложением. И проблема начинается со второго параметра. Его значение по умолчанию равно 1.2. Я установил его на некоторое время назад, но обнаружил, что он намного быстрее с более высоким значением. Дело в том, я начинаю эту проблему:
OpenCV Error: Assertion failed ((type == CV8U && dtype == CV_32S) ||dtype == CV_32F) in cv_batchDistance, file..........stat.cpp, line 2480
Тогда до следующего является параметром для уровней пирамиды. По умолчанию 8. Я установил его на 2, что дало мне еще одно отличное улучшение производительности. Но если я установил его равным 1, он будет вызывать ту же ошибку, что и выше.
Поскольку я работаю с маленькими фотографиями, я попытался установить его на меньшее значение. Но это ничего не меняет. То же самое относится к последнему параметру (patchSize). Он утверждает, что эти параметры должны примерно совпадать.
Меня не интересуют остальные параметры.
Как я уже объяснил в других вопросах, я пытаюсь отслеживать объект в видео. Для этого я извлекаю для каждой ограничивающей рамки свои функции и стараюсь сопоставить ее с ограничивающей рамкой из следующей функции. Делая это, я пытаюсь построить отношения между кадрами. И пока это хорошо работает. Но мне нужно быть быстрее. Если есть более чем несколько ограничивающих прямоугольников, это занимает слишком много времени, так как я хочу иметь его в реальном времени @ 30FPS.
Если бы кто-нибудь мог помочь мне с этими параметрами, я был бы признателен.
Документация говорит, scaleFactor> 1. 'слишком близко к 1 масштабному коэффициенту будет означать, что для охвата определенного диапазона шкалы вам потребуется больше уровней пирамиды, и поэтому скорость будет страдать. 'Поэтому ставьте его больше 1 и снова проверяйте. –
Ну, значения, превышающие один, могут иногда давать мне ошибку выше. Может быть, вы знаете, что это за ошибка? – user2175762
Я не сталкивался. Он говорит, что определенные изображения, используемые в строке, вызывающей ошибку, должны иметь тип uint8, int32 или float32. Может быть, вы можете добавить здесь минимальный фрагмент кода для воспроизведения ошибки. –