Обнаружение логотипа с использованием OpenCV - PullRequest
8 голосов
/ 17 марта 2012

Я пытаюсь внедрить пасхальное яйцо в мобильное приложение, над которым я работаю.Эти пасхальные яйца будут срабатывать при обнаружении логотипа в поле зрения камеры.Логотип, который я пытаюсь обнаружить, это: Halifax logo.

Я не совсем уверен, что лучший способ подойти к этому, так как я довольно плохо знаком с компьютерным зрением.В настоящее время я нахожу горизонтальные края, используя алгоритм Канни.Затем я нахожу отрезки, используя вероятностное преобразование Хафа.Результат этого выглядит следующим образом (синие линии представляют сегменты линий, обнаруженные вероятностным преобразованием Хафа):

halifax logo post detection

Следующий шаг, который я собирался предпринять, - это поискгруппа из примерно 24 линий (вписывающаяся в почти квадратный прямоугольник), каждая линия должна быть примерно одинаковой длины.Я бы использовал эти два сигнала, чтобы указать на потенциальное присутствие логотипа.Я понимаю, что это, вероятно, очень наивный подход и приветствовал бы предложения о том, как лучше определить этот логотип более надежным способом?

Спасибо

Ответы [ 3 ]

4 голосов
/ 17 марта 2012

Вы можете использовать SIFT , используя библиотеку Роба Гесса * SIFT . Он использует OpenCV, а также довольно быстро. Я полагаю, это проще, чем ваш нынешний подход к обнаружению логотипа:)

Попробуйте также поискать SURF , который утверждает, что он быстрее и надежнее, чем SIFT. Это руководство по обнаружению функций поможет вам.

2 голосов
/ 04 апреля 2014

Возможно, вы просто захотите использовать технологию LogoGrab. Он лучший и предлагает всевозможные API-интерфейсы (как мобильные, так и HTTP). http://www.logograb.com/technologyteam/

0 голосов
/ 24 августа 2013

Я не совсем уверен, найдете ли вы такие функции в логотипе для подхода SIFT / SURF. В качестве альтернативы вы можете попробовать обучить классификатору объектов типа Haar и использовать его для определения логотипа, как это делает opencv для определения лица.

...