Обнаружение / распознавание логотипа на естественных изображениях
Учитывая изображение логотипа в качестве эталонного изображения, как обнаружить / распознать его в загроможденном естественном изображении?
Логотип может быть довольно маленьким на изображении, он может появляться на одежде, шапках, туфлях, на заднем фоне стены и т. Д. Я пробовал использовать функцию SIFT для сопоставления без какой-либо другой предварительной обработки, и результат хорош для случаев, когда размер логотипа в изображениях большой и логотип понятен. Тем не менее, это не удается в некоторых случаях, когда сцена довольно загромождена и пропорция размера логотипа довольно мала по сравнению со всем изображением. Кажется, что функция SIFT чувствительна к перспективным искажениям.
Кто-нибудь знает некоторые лучшие функции или идеи для обнаружения / распознавания логотипа в естественных изображениях? Например, сначала нужно подготовить классификатор для определения местоположения регионов-кандидатов, а затем непосредственно применить сопоставление SIFT для дальнейшего распознавания. Однако для обучения модели требуется много данных, особенно для того, чтобы вручную пометить области логотипа на изображениях, а также для повторного обучения (необходимо собрать и аннотировать новое изображение), если я хочу применить его к новым логотипам.
Итак, какие-либо предложения для этого? Подробный рабочий процесс / код / ссылка будут высоко оценены, спасибо!
1 ответ
Есть много алгоритмов от соответствия формы до классификаторов Хаара. Лучший алгоритм очень зависит от вида логотипа.
Если вы хотите продолжить регистрацию функций, я рекомендую:
Для обнаружения небольших логотипов используйте плитки. Разделите все изображение на меньшие (перекрывающиеся) плитки и выполните обычное обнаружение. Он будет использовать "локальность" искомых функций.
Попробуйте ASIFT для аффинно-инвариантного обнаружения.
Используйте много шаблонных изображений для извлечения опорных объектов, с разным освещением, различными фоновыми изображениями (черный, белый, серый)