Перейти к содержимому
Compvision.ru

Paft

Пользователи
  • Количество публикаций

    9
  • Зарегистрирован

  • Посещение

Репутация

0 Новичек

О Paft

  • Звание
    Новичок
  1. Объект один и тот же везде (но может быть под разным углом/сжат/растянут). Но как выделить именно хорошие точки из найденного массива? Если бы это получилось более-менее адекватно сделать, то можно было бы и выразить в виде процента отношение числа "хороших" точен к общему числу.
  2. Идею понял, но проблема как раз в том, что для сравнения понадобятся оба изображения, а этого необходимо избежать из соображений производительности.
  3. Простите за непонятливость, но не могли бы вы простенький примерчик дать? Я примерно представляю как рассчитать гомографию, но что такое корелляция ума не приложу :-) И нужны ли будут данные картинок для сравнения? Необходимо, чтобы картинки в сравнении не участвовали, только описательные данные (по аналогии сравнения по хэшу - т.е. я полагал, что можно будет заранее рассчитать дескрипторы BRIEF и хранить их в базе для последующего сравнения).
  4. Что вы подразумеваете под критерием схожести? В том то и проблема, что пары точек я нашел, а определить принадлежат ли они одному и тому же объекту (например кружке), изображенному на разных рисунках (может быть с небольшим поворотом и масшабом) не знаю как.
  5. Здравствуйте! Пользуюсь FeatureDetector, DescriptorExtractor для определения особенностей изображений. Сопоставляю особенности при помощи BruteForceMatcher, но не могу определить адекватность полученных результатов - требуется выражение схожести в форме процента. Пример программы: Mat image1 = imread("C:\\1.png", 1); Mat image2 = imread("C:\\2.png", 1); vector<KeyPoint> keypoints1; vector<KeyPoint> keypoints2; FastFeatureDetector detector(10); detector.detect(image1, keypoints1); detector.detect(image2, keypoints2); cv::Mat descriptors1; cv::Mat descriptors2; BriefDescriptorExtractor descriptorExtractor; descriptorExtractor.compute(image1, keypoints1, descriptors1); descriptorExtractor.compute(image2, keypoints2, descriptors2); BruteForceMatcher<HammingLUT> matcher; std::vector<cv::DMatch> matches; matcher.match(descriptors1, descriptors2, matches);
  6. Спасибо большое Сейчас буду вкуривать :-)
  7. Сложно определиться какие именно признаки будут извлекаться. Почитал статьи - составилось следующее мнение: * SIFT, SURF - очень медленно, не подходит для данной задачи, т.к. требуется больше скорость, чем точность определения * BagOfWords - насколько я понял, это обучаемый в процессе работы алгоритм с использованием словаря. Т.к. сложно предсказать сколько объектов будет детектировано и соответственно проанализировано, то можно предположить рост словаря на объектах со множеством камер или с динамично меняющейся обстановкой - а следовательно и замедление работы - чем дольше работает обработка - тем больше будет тормозить. Сложилось мнение что больше все-таки данный метод подходит для построения каталога (поправьте, если я ошибаюсь). * единственное что приходит в голову для очень простого сравнения - это примитивно сравнивать гистограммы изображений. Но здесь многое зависит от освещения и контрастности. Что если будет осуществляться поиск человека по изображению (например в яркой желтой футболке), полученного с внешней камеры (с улицы) по архиву, содержащему данные по кабинетной камере. Может ничего не найтись из-за разности яркости изображений. В общем просто и не очень надежно (может быть можно дополнить дополнительной проверкой, т.е использовать в комплексе). Примера сравнения изображений при помощи вейвлетов так и не нашел. Может подтолкнете еще в какую-нибудь сторону? :-)
  8. Спасибо. Будем читать. Эх, примерчик бы... :-)
  9. Добрый вечер. Занимаюсь разработкой приложения для осуществления базового видеонаблюдения и возникла идея поиска объектов в видеоархиве по загруженному образцу: * система обрабатывает видео с камеры, выделяет регионы с движением - эти регионы и будут объектами, среди которых должен осуществляться поиск. видео и информация о регионах соответственно сохраняется в архив. * пользователь выбирает объект для поиска (загружает картинку из файла и выделяет на ней интересующий объект) и нажимает "Найти". * происходит обработка и сравнение - выявляются особенности выбранного объекта и особенности сохраненных объектов и осуществляется сравнение - похож/не похож Скорее всего особенности объектов будут анализироваться при записи в архив для того, чтобы ускорить поиск в будущем. Главные требования - скорость обработки, т.е. если на каждые 10 найденных совпадений будет одно правильное - этого вполне хватит. Подскажите, в какую сторону копать? Долго ковырялся с примерами opencv и лазил по инету - так и не смог найти подходящее решение.
×