Comments 13
Очень интересная задача. Ведь, грубо говоря, от такой первичной обработки зависит производительность всей системы. Сделаете ее быстрее, сможете увеличить скорость конвейера и пропускать больше деталей в секунду. Примерно то же самое происходит в системах распознавания знаков в автомобилях.
И для этого идеально приспособлены платформы на базе ПЛИС, так как позволяют параллельную потоковую обработку в реальном времени гораздо лучше процессоров. На вашем месте я бы сразу начал уходить от RPi, а попробовал бы что-то на базе Zynq-7000 или аналогичных платформ. Вы получите раз в 20 большую производительность на том же OpenCV при том же потреблении и с возможностью скалирования производительности. Благодаря High Level Synthesis вы сегодня можете не бояться VHDL/Verilog — это страшилки из прошлого. В инете полно референсных дизайнов под ваш проект.
Попробуйте. Будете удивлены, насколько это круче работает на ПЛИСах.
ПС. Тьфу ты, не заметил, что перевод.
Зарабатываете на перепродаже Лего?
А вы не могли бы статью написать? Интересно почитать — судя по вашим комментариям, у вас в этом есть некоторый опыт.
На счет съемки, принцип взят из промышленности: из Китая заказана дешевая usb камера на CMOS OV2710 и 8мм фокусное расстояние снимает 640x480 120 кадров. Смотрит строго под 90 к поверхности. Сделана очень яркая (~ 50 ватт светодиодных ламп) конвейер из бумаги снизу подсветка ~12 ватт, то есть все для того что бы не было теней и получить четкие контуры, так же позволяет увеличить скорость затвора, и уменьшить ролингшаттер. Бумага живет где-то месяц и в целом пылит, возможно перейду на полотно и сделаю контурную подсветку.
Вся механика пока что на шаговых двигателях + arduino + ramps 1.4 (Надстройка для 3d принтеров) Конвейера 3d печатные из звеньев. Конструкции из серой ленты, деревяшек, картона и известной матери.
Набить датасет самая простоя задача, почти все детали и так отсортированы, есть простой скрипт на Python и openCV с детектором движения в кадре, сохраняет изображения. Засыпаешь детали в приемный лоток, вводишь название детали и ждешь. На проде планирую режим сортировки с отладкой, т.е. все фото распознанных деталей будут раскладываться по папкам. Взял выходной лоток, увидел косяк, залез в папку и нашел фото с которого ошибка, дальше разные варианты.
По программной части пока что почти ничего, кодер из меня никакой, так что я на возмездной основе привлекаю знакомого. Целевая задача в первом приближении что бы сетка работала на домашней видеокарте, обучение в арендованном облаке. Скорее всего сетки будет две, потому что я на входе физически отделяю большие детали от маленьких(а в маленьких есть очень похожие детали, которые составляют до 30-50% по кол-ву от всех деталей в коллекции) Вначале будем пробовать предобученные сети, и физические и логические методы помощи. Например можно поставить зеркало под 45 к камере и получать на одном фото две проекции детали и ещё несколько вариантов. подобного.
Как видите на статью это не тянет. Если есть вопросы спрашивайте.
К сожалению, я выполняю код распознавания объектов на Raspberry pi.
Это как купить запорожец и жалеть, что двигатель не V8 и слон не помещается.
Высокоскоростное машинное зрение в универсальном устройстве для сортировки деталей LEGO