Обнаружение объекта на изображении на основе геометрической формы

У меня есть основное понимание в обработке изображений и теперь углубленно изучаю книгу "Цифровая обработка изображений" Гонсалеса.

При известном изображении и объекте интереса известна (например, круг, треугольник) какой лучший алгоритм/метод найти этот объект на изображении?

Объект может быть слегка деформирован, поэтому подход грубой силы не поможет.

Ответ 1

Вы можете попробовать использовать гистограммы ориентированных градиентов (также называемые гидромеханическими ориентирами). Мы использовали их для обнаружения дорожных знаков. http://en.wikipedia.org/wiki/Histogram_of_oriented_gradients, и документы Билла Триггса должны вас начать.

Ответ 2

Я рекомендую использовать преобразование Hough, которое позволяет вам найти любой шаблон, описываемый уравнением. Более того, преобразование Хафа также отлично подходит для деформированных объектов.

Алгоритм и сама реализация довольно проста. Более подробную информацию можно найти здесь: http://en.wikipedia.org/wiki/Hough_transform, даже исходный код для этого алгоритма включен на ссылочную страницу (http://www.rob.cs.tu-bs.de/content/04-teaching/06-interactive/HNF.html).

Я надеюсь, что это поможет вам.

Ответ 3

Я бы посмотрел на вашу проблему в два этапа:

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

  • затем анализ граничной формы, чтобы вывести форму (круг, многоугольник,...): Вы можете вычислить кривизну в каждой точке граничной цепи и, таким образом, определить, сколько острых углов (т.е. Значение высокой кривизны) есть в вашей форме. Несколько острых углов означают, что у вас многоугольник, ни один из них не имеет окружности (постоянная кривизна).

Вы можете найти описание того, как получить границу вашего объекта из двоичного изображения и способы его анализа в Обработка цифровых изображений Gonzalez, глава 11.

Я также нашел эту проницательную презентацию по анализу бинарных изображений (PPT) и matlab script, который реализует некоторые из тех методов, о которых говорит Гонсалес в DIP.

Ответ 4

Я настоятельно рекомендую вам использовать OpenCV, это отличная библиотека компьютерного зрения, которая очень помогает во всем, что связано с компьютерным видением. Их веб-сайт не очень привлекателен и не полезен, но API действительно эффективен.

Книга, которая мне очень помогла, поскольку в Интернете нет загрузки документации, Обучение OpenCV. Документация, которая поставляется с API, хороша, но не очень хороша для изучения того, как ее использовать.

В связи с вашей проблемой вы можете использовать детектор Canny Edge, чтобы найти границу вашего элемента, а затем проанализировать его, или вы можете продолжить и преобразовать Hough для поиска линий и кругов.

Ответ 5

вы можете специально попробовать "распознавание лиц". Потому что, вы знаете, это конкретная тема. С другой стороны, "обнаружение лица" и т.д. EmguCV может быть вам полезен. Это оболочка .Net для библиотеки обработки изображений Intel OpenCV.

Ответ 6

Похоже, профессор Jean Rouat из Университета Шеркбе нашел способ найти объекты в изображениях, обработав нейтральную нейронную сеть. Его технологическое имя RN-SPIKES, похоже, доступно для лицензирования.