Как я могу узнать конкретный физический объект по изображению? - PullRequest
1 голос
/ 30 января 2011

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

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

Мои ограниченные знания в этой конкретной области заставили меня задуматься об использовании нейронных сетей и обучении программе распознавать определенные места. Если это так, пожалуйста, также дайте мне ресурсы для этого варианта, так как я знаю NN так, что их можно использовать для распознавания вещей, если они обучены. :)

Я знаю о библиотеке OpenCV, но, поскольку я не являюсь разработчиком C, я хотел бы знать, нужно ли мне идти по этому пути, прежде чем я начну. Я в основном работаю на Java, но я не против того, чтобы мои руки пачкались.

Спасибо!

Ответы [ 3 ]

3 голосов
/ 30 января 2011

Это ответ на ваш оригинальный вопрос. Лучшим ресурсом была бы книга О'Рейли Learning OpenCV

Вы можете читать эту вещь в книгах Google бесплатно, и она использует C вместе с OpenCV. Вы можете использовать Python или Java, чтобы удовлетворить вашу работу.

Библиотека OpenCV включает в себя тренировку haar и примеры программ по обучению распознаванию лиц / текста. После этого вам в основном придется разобраться. Другой полезный ресурс, на который я только что наткнулся, - справочное руководство Intel для OpenCV. Итак, удачи!

2 голосов
/ 15 марта 2013

Выполнение этого как задачи компьютерного зрения будет очень трудным для человека с небольшим опытом компьютерного зрения - 10 лет назад это была полностью нерешенная проблема.Но для начала:

Нейронные сети (или, собственно, NN с обучением в стиле обратного распространения) - скорее старая шляпа и больше не метод выбора.Случайные леса популярны, в основном потому, что они довольно гибки, достаточно просты в реализации и в среднем не хуже производительности, чем другие методы классификации.Криминиси и др. 2011 является стандартным документом.http://research.microsoft.com/pubs/155552/decisionForests_MSR_TR_2011_114.pdf

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

Взгляните на Criminisi et al 2008 (http://research.microsoft.com/pubs/72423/Criminisi_bmvc2008.pdf) для системы распознавания объектов на основе случайных лесов и вейвлетов Хаара.

Альтернативный подход от Фергусаи др., 2007, (http://cs.nyu.edu/~fergus/papers/fergus_ijcv.pdf) использует простую модель патча для изображения, связанную вместе с помощью байесовской сети.

OpenCV, вероятно, так же хорош, как и любой другой, для поиска существующего кода. Matlab также утверждает, чтоиметь хорошую поддержку для этих задач.

2 голосов
/ 30 января 2011

хорошо, если использовать второй метод гораздо проще, поскольку вы знаете, откуда по координатам GPS, и знаете, в какую сторону вы находитесь (поскольку большинство мобильных устройств имеют встроенный компас и акселерометр). Это уже используется несколькими браузерами дополненной реальности - если вы используете Android, возможно, вы захотите взглянуть на «Layar» ...

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

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

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

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

Надеюсь, это поможет ...

...