Как грамотно подойти к распознаванию объектов со снимков?
Получил задачку по распознаванию объектов со спутниковых гугл карт. Любыми средствами, добиться хотя бы того, чтоб здание находилось на картинке.
Сложность для меня в том, что я не знаю, с чего начать. Начал пока изучать Opencv на Java (пишу на этом языке уже 2 года). Сразу появились вопросы по способу поиска того же здания на снимке - искать какие-то готовые инструменты библиотеки или пилить свою нейронную сеть. Отсюда сразу новые вопросы:
- какая должна быть нейронная сеть (я до этого писал простенький перцептрон на распознавание цифры), сколько слоев, сколько входов (тут вытекает вопрос ниже)
- нужно ли и как разбивать снимок на отдельные участки пикселей по 100х100 или 50х50 и т.д.? ведь от этого зависит количество входов сети
- какие морфологические преобразования снимка нужно выполнять при помощи инструментов opencv?
- а нужна ли здесь вообще нейронная сеть?
Я буду рад, если найдется человек, который хотя бы покажет в каком направлении копать, и даст пару советов.
Копать в сторону "распознавание визуальных образов". Пожалуй, одна из немногих областей, где нейронная сеть - самое подходящее средство решения задачи. Краткий алгоритм : берешь тысячИ снимков на которых есть и примерно столько-же - не которых нет объектов нужного класса (здания), обучаешь нейронную сеть, получаешь сеть, способную с некоторой вероятностью (зависит от многих факторов - качества обучающей выборки, подобранного класса сети включая количество слоев и типв связей между ними, правильности проведения процесса обучения и т.д.) распознать здание по снимку. Начинать надо - с теории. В большинстве книг по нейронным сетям есть описание -или по крайней мере подробный roadmap - решения данного класса задач. Инструмент (как софт, так и платформа) выбирается исходя из возможностей заказчика.
Удачи.