2015-02-25 2 views
0

Мой проект состоит в анализе набора данных, содержащих изображения птиц. После этого программа должна распознать, является ли входное изображение птицей или нет.Распознавание изображений OpenCV

Я планирую использовать OpenCV с C++. Может ли кто-нибудь предложить мне требуемые модули и процедуру, в которой эта программа должна быть сделана для распознавания, является ли вход птицей или нет после прочтения набора данных изображения. (Я новичок в OpenCV)

+2

Речь идет не о OpenCV или C++, а вообще о программировании. Речь идет о конвейере решений. Вы приближаетесь к проблеме с ног на голову. –

ответ

0

Есть много способов, чтобы идти о решении этой проблемы, однако решение, я думаю, что, вероятно, имеют наилучшие шансы на успех будет тренировать свой собственный Хаара каскад.

Вам потребуется ALOT изображений, содержащих птиц и шибко в изображений без птиц. Если у вас уже есть доступ к этому набору данных, вам нужно проанализировать, то у вас уже есть много изображений (некоторые из которых вы можете тренироваться с)

Хаара каскада в основном выполняет поиск изображения для моделей она была обучена распознавать (например, лица, глаз, носа и т.д., который поставляется с OpenCV)

Here является ссылка учебник/инструменты для обучения Ур собственный каскад как можно более безболезненным.

Следуйте инструкциям, и в конце вы должны иметь файл XML, который будет вашим каскадом для птиц.

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

Другим вариантом, который вы могли бы преследовать, было бы просто использовать OpenCV для предварительной обработки, а затем отправить изображение в нейронную сеть для классификации.

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

Удачи, и я надеюсь, что это поможет.

0

Для выполнения этой задачи вам нужно будет обучить свой собственный каскадный классификатор, который не является легкой задачей для новичков.

Для получения дополнительной информации о том, как это может быть достигнуто, пожалуйста, сделайте свое собственное исследование, поскольку это множество примеров онлайн. Я привел ссылку ниже, чтобы вы начали.

http://docs.opencv.org/doc/user_guide/ug_traincascade.html

+1

не будет работать. существует слишком много разных видов/форм. Кроме того, каскадные классификаторы не представляют собой инвариантные позы.последнее, но не менее важное: ваши ссылки устарели и ссылаются на методы, которые больше не применимы к текущему opencv (инструменты/файловые форматы значительно изменились) – berak

+1

Спасибо за отзыв об этом. Что касается видов птиц, я думаю, это зависит от того, сколько образцов было использовано и явно реалистичное ожидание. Я не знал, что этот метод больше не применим, поскольку он все еще используется для обнаружения лиц. – Eni

Смежные вопросы