Обнаружение объекта на изображении на основе геометрической формы
У меня есть основное понимание в обработке изображений и теперь углубленно изучаю книгу "Цифровая обработка изображений" Гонсалеса.
При известном изображении и объекте интереса известна (например, круг, треугольник)
какой лучший алгоритм/метод найти этот объект на изображении?
Объект может быть слегка деформирован, поэтому подход грубой силы не поможет.
Ответы
Ответ 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, похоже, доступно для лицензирования.