DIY AI для сортировки 2 метрических тонн Lego


Это интересная история, потому что она предполагает, что машинное обучение и, в частности, нейронные сети стали полезными почти случайно. Использование нейронной сети больше не является исследовательским проектом. За неимением лучшего термина, это проект производителя.

Жак Маттей признается, что рано пристрастился к LEGO, и его спасла только встреча с компьютерами. Однако он не мог не заметить, что покупка его оптом и переупаковка в наборы идентичных деталей может принести удовольствие и прибыль. Небольшая ошибка с назначением ставок на eBay, мы все там были, привела к тому, что в названии были упомянуты 2 метрические тонны LEGO.
«Итак, приключение началось. Когда мы собирали партию лего, мой фургон был украден, поэтому нам пришлось довольствоваться старым космическим пространством, одна партия была настолько большой, что потребовалось 3 поездки, чтобы забрать все это. когда это было сделано, обычный гараж был завален ящиками и коробками с лего. »
Мы хотели провести несколько приятных вечеров, разбирая LEGO вручную, но из-за ошибки Ebay это превратилось в жизненный вызов.
Предлагаемое решение заключалось в использовании техники.
Проблема, кажется, разделяется на две части: создание механизма, который мог бы обрабатывать и записывать части LEGO на видео, а затем создание ИИ для сортировки. Писать о проблемах машинного обращения с деталями LEGO весело, но вам нужно знать следующее:
Кормить LEGO из бункера на удивление сложно.
Излишне говорить, что получить хорошие фотографии деталей LEGO также сложно, но давайте перейдем к части истории, связанной с ИИ.

По-видимому, существует более 38000 форм и более 100 цветов LEGO. Я знал, что их много, но, конечно, не так много! Выбор метода классификации был трудным, но в конечном итоге была выбрана нейронная сеть, потому что созданные вручную функции и классификаторы намного сложнее, чем кто-либо мог представить. То, что видит человеческий глаз и, следовательно, то, что думает человек, может стать хорошим дискриминатором, как правило, не то, что присутствует в данных. Мы далеки от успеха в распознавании образов и в конечном итоге думаем, что это просто или очевидно.
Была выбрана стандартная нейронная сеть, VGC16 в TensorFlow, и были изменены некоторые особенности Lego. Еще до того, как изображения можно было отправить в нейронную сеть, нужно было выполнить обработку изображений (с использованием OpenCV), чтобы получить полные изображения частей из сшитых и обрезанных изображений. Нейронная сеть была запущена на скромном графическом процессоре NVIDA GX1080 за 700 долларов.
Самой большой проблемой при обучении нейронной сети было создание обучающей выборки. Требовался очень большой набор правильно помеченных фотографий деталей LEGO, и это была задача, которая вполне могла сорвать проект. Приблизительная оценка показала, что для создания маркированного набора данных потребуется около шести месяцев кропотливой работы. Затем Жаку пришла в голову мысль:
Я понял, что мне не нужно делать тренировочный набор в одиночку. Машина снимает и маркирует изображения. Все, что мне нужно сделать, это определить те, в которых компьютер ошибся, и правильно пометить изображение. По мере обучения нейронной сети ошибок становится меньше, и нагрузка на маркировку уменьшается.
Этот подход начальной загрузки заслуживает того, чтобы его лучше знали, и с его помощью можно значительно упростить невыполнимую задачу построения обучающей выборки. В первый день 500 деталей были вручную промаркированы, отсканированы и использованы в тренировочной выборке. На следующий день в машину было отправлено 2000 деталей, и она примерно наполовину вышла из строя и была исправлена вручную, в результате чего был получен набор из 2500 маркированных деталей. В следующем раунде начальной загрузки были классифицированы еще 4000 деталей, а уровень ошибок составил всего 10%, и исправление 400 частей дало обучающий набор из 20 000, который начинает выглядеть так, как будто он может сработать. Вы можете увидеть это в действии, немного замедленно, на этом видео:

Очевидно, что предстоит еще многое сделать, и одна из самых больших проблем заключается в том, что тренировка занимает несколько дней. Эту проблему можно решить с помощью большего количества графических процессоров, но терпение — тоже достоинство.
Что важно в этом проекте, так это то, что он не только привел к чему-то интересному и увлекательному, но и доказал, что ИИ достаточно хорош и достаточно прост для реализации для задач, которые до недавнего времени были исследовательскими проектами или требовали команды людей. Вы можете создавать почти готовые нейронные сети. Это не так просто, потому что вам нужно освоить TensorFlow или любой другой фреймворк, который вы решите использовать. Вам также по-прежнему нужна лучшая установка на базе графического процессора, на которую у вас есть деньги, поскольку обучение по-прежнему является одной из самых дорогостоящих задач, которые вы можете взять на себя.
Остается только один вопрос.
Что будет делать машина после сортировки 2 метрических тонн LEGO?


Добавить комментарий