Здравствуйте.
Речь
НЕ пойдет о лицах, книгах, номерах. Задача, как мне кажется, несколько проще:
Есть
автопогрузчик с вилочным захватом. Работает с
поддонами подхвата.
На вилку "смотрит" камера Андроид телефона. (сзади, немножко сверху)
Задача: Определить, загружен ли автопогрузчик, то есть лежит ли на вилке поддон (заполеный какими то объектами) или нет. Разбить процесс вычисления на блоки. Максимальное количество блоков обработать на телефоне, а то что не "поместилось" (например, из-за времени) передать через вайфай на терминал водителя, дообработать там и вывести результат.
Софт: OpenCV, OpenCV4Android
Был испробован
Подход 1: (базировался на предыдущей работе коллеги) Камера устанавливается в фиксированой точке. На изображении указываются два PointsOfInterest - точки которые лежат на зубцах вилки.
- Вокруг POI делается распознавание по градиенту и находятся приблизительные контуры зубцов вилки.
- Вокруг зубцов "рисуются" прямоугольники.
- Подсчитывается сума площадей прамоугольников для незагруженой вилки
- Если на вилке поддон, то получается лишь один большой прямоугольник.
- Площадь большого прямоугольника значительно превышает площадь для незагруженой вилки.
- Профит
К сожалению подход себя плохо зарекомендовал. Очень медленный и хорошо настроить коеффициенты не удалось.
Поэтому решено применить новый подход. Идея проста:
Подход 2: - Нарезать видео с камеры на отдельные картинки.
- Разбить на учебный и тестовый наборы (загружен/пустой).
- На десктопе прогнать несколько алгоритмов машинного обучения.
- Алгоритм наиболее подходящий для задачи закодить на телефоне
- Профит
Насколько я понимаю лучше всего для картинок просчитывать HOG и гонять обучение по нему.
Но дальше образуется
загвоздка:
То есть, общие знания про машинное обучение с Википедии, Хабра и документации OpenCV дают понимание, что надо как минимум запустить нейронную сеть в нескольких
вариантах, но...
Вопрос:
- Жизнеспособна ли идея второго подхода?
- Какие алгоритмы лучше всего использовать?
- На что обратить внимание, что я упустил?
Буду благодарен за любые наводки.
Извините, если сильно протупил с вопросом.
Читал про
каскад Хаара на Хабре, но кажется это немного перебор.