Как обнаружить похожие объекты на этой картинке? - PullRequest
0 голосов
/ 27 июня 2018

Я хочу найти шаблоны в изображении. Говоря «найти шаблоны», я имею в виду «обнаруживать похожие объекты», таким образом, эти шаблоны не должны быть некоторой высокочастотной информацией, такой как шум. Например, на этом изображении я хотел бы получить шаблон «окно» с ROI / эллипсом каждого объекта: enter image description here

Я прочитал советы по использованию автокорреляции, FFT, DCT для этой проблемы. Насколько я понял, автокорреляция и БПФ являются альтернативными, а не дополнительными.

Во-первых, я не знаю, возможно ли получить такую ​​информацию высокого уровня в частотной области?

Поскольку я внедрил FFT, я попытался его использовать. Это спектрограмма: enter image description here

  1. Не могли бы вы предложить, как дополнительно проанализировать эту спектрограмму, чтобы обнаружить "окно" объектов с их пространственным расположением?
  2. Нужно ли находить самые яркие точки / линии на спектрограмме?
  3. Должно ли быть выполнено БПФ для кусков изображения вместо целого изображения?
  4. Если вы не можете найти такие объекты при таком подходе, что бы вы посоветовали?

Спасибо заранее. Постскриптум Извините за большой размер изображения.

1 Ответ

0 голосов
/ 28 июня 2018

Осторожно, это не моя чашка чая, поэтому читайте с предубеждением. IIRC для таких задач обычно используются SIFT / SURF + RANSAC методы.

  1. Определение ключевых точек интереса изображения SIFT / SURF

    Это даст вам список двумерных местоположений в вашем изображении с конкретными функциями (которые вы можете обрабатывать как целочисленный хэш-код). Я думаю, SIFT (преобразование инвариантных масштабных объектов) идеально подходит для этого. Они работают аналогично тому, как работает наше человеческое зрение (выявляют конкретные изменения в некоторых функциях и «игнорируют» остальную часть изображения). Таким образом, вместо сопоставления всех пикселей изображения мы пересекаем соответствие только немногим из них.

  2. сортировка по вхождению

    каждая из найденных SIFT точек имеет некоторый список возможностей. если мы создадим гистограмму этих объектов (посчитаем, сколько сходных или идентичных точек есть), то мы можем сгруппировать точки с одинаковым вхождением. Идея состоит в том, что если мы получили n размещений объектов на изображении, то каждая из его ключевых точек должна быть n раз дублирована в конечном изображении.

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

  3. поиск объектов

    каждый объект может иметь разный масштаб, положение и ориентацию. Предположим, они получили одинаковое соотношение сторон. Таким образом, соответствующие ключевые точки в каждом объекте должны иметь одинаковые относительные свойства между объектами (например, относительный угол между ключевыми точками, нормализованное расстояние и т. Д.).

    Таким образом, задача состоит в том, чтобы перегруппировать наши ключевые точки в каждый объект, чтобы все объекты имели одинаковые ключевые точки и одинаковые относительные свойства.

    Это может быть сделано методом грубой силы (тестирование всей комбинации и проверка свойств) или RANSAC или любым другим способом.

    Обычно мы выбираем одну первую ключевую точку (независимо от того, какая) и находим 2 другие, которые образуют одинаковый угол и относительное расстояние (во всех объектах)

    img

    , поэтому угол такой же, а |p1-p0| / |p2-p0| такой же или близкий. При группировке понимают, что ключевые точки внутри объектов с большей вероятностью ближе друг к другу ... поэтому мы можем расширить наш поиск по расстоянию от первой выбранной ключевой точки ...., чтобы решить, к какому объекту ключевая точка вероятно, принадлежит (если попробовать те, которые у нас есть, мы получили высокую вероятность, что быстро нашли нашу комбинацию). Все остальные пункты pi мы можем добавить аналогично по одному (используя p0,p1,pi)

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

    После такой перегруппировки просто проверьте, имеют ли все найденные объекты одинаковые свойства (соотношение сторон) ... для их визуализации вы можете найти OBB (Oriented Bounding Box) ключевых точек (которые могут использоваться также для проверки)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...