Возможности современных когнитивных систем все еще ограничены, но с течением времени они развиваются и становятся все совершеннее. Используют их уже во многих сферах, включая сельское хозяйство. Ярким примером этому является система, созданная японским инженером. Примерно год назад японец по имени Макото Койке решил помочь своим родителям, которые занимаются выращиванием огурцов. В Японии крупные и прямые огурцы считаются товаром экстра-класса, поэтому все фермеры стремятся выращивать эти овощи именно такой формы.
Сделать это довольно тяжело, и Койке убедился в этом на своем опыте. «Каждый огурец отличается от других — все они бывают разной формы, качества и свежести», — говорит инженер. Для того, чтобы конечный продукт попал в магазины, овощи необходимо сортировать. В Японии насчитывается девять классов огурцов. Классификация производится согласно форме, размеру и ряду других свойств. Чем выше класс, тем дороже огурец.
Классы огурцов согласно японским стандартам
Сортировка — дело сложное. И хотя в Японии есть автоматические сортировочные машины, они не слишком популярны, поскольку довольно дороги, а работают не идеально. Инженер решил помочь родителям добиться идеальной автоматической сортировки овощей, создав собственный сортировщик. Для того, чтобы повысить качество и эффективность работы такой системы, он решил привлечь к сортировке нейронные сети. Сейчас они способны распознавать и классифицировать изображения с высокой степенью точности, превосходя возможности человека. Это касается как скорости, так и точности работы.
Заботливый сын принял решение взять за основу своего огуречно-сортировочного алгоритма open-source разработку Google, TensorFlow. Год назад компания как раз открыла исходный код этого продукта для всех. TensorFlow позволяет разработчику использовать готовый код и возможности нейронных сетей, а не создавать все с нуля. Для создания собственного проекта необходимо скачать код, прочитать инструкцию, и можно начинать работу.
Кроме кода, нужно еще и аппаратное обеспечение. Японец решил использовать Arduino Micro и Raspberry Pi 3. Электроника использовалась в качестве основного контроллера для работы с камерой и отсылки изображений в Google Cloud, где происходил анализ информации. Также платы управляют сервоприводами сортировщика.
На первом этапе инженер обучил систему распознавать изображения и определять, изображен на фотографии огурец или нечто иное. После проверки работоспособности системы был создан более сложный алгоритм, который уже классифицировал огурцы согласно стандартам, принятым в Японии.
После этого был разработан конвейер и сортировочная система. Камера фотографировала проходящие по конвейеру огурцы, нейронная сеть классифицировала их. Оставалось лишь распределять огурцы по ящикам, исходя из класса каждого овоща. Для этого Койке создал роботизированную руку, которая и занималась «физической работой».
Для того, чтобы получить фотографии огурцов разных классов, отсортированных его матерью, японец потратил около трех месяцев. Ему пришлось сделать и загрузить в систему более 7000 снимков огурцов. И этого оказалось недостаточно. Когда проводился тест лишь с изображениями, система работала с точностью в 95%. Но когда дело дошло до фотографирования реальных огурцов, точность упала до 70%. Как оказалось, проблема заключается в том, что базы из нескольких тысяч фотографий недостаточно для качественного обучения системы.
Вторая проблема заключается в том, что система потребляет много ресурсов, времени и энергии. Текущий сортировщик — это обычный десктопный ПК с Windows, который используется для тренировки нейронной сети. И хотя компьютер преобразует полученные фотокамерами снимки в изображения с разрешением 80*80 пикселей, обучение системы на их основе занимает 2-3 дня. Дело в том, что требуется несколько тысяч таких снимков. А поскольку фотографии имеют низкое разрешение, тот сортировщик оперирует такими свойствами, как форма, длина и уровень погрешности. Цвет, текстура, царапины — все это проходит незамеченным и на данном этапе не может быть использовано. Если увеличить разрешение фотографий, это увеличит точность работы системы. Но одновременно увеличится и время, которое требуется на обучение нейронной сети.
Свою проблему японец планирует решить при помощи еще одного сервиса Google. Cейчас корпорация предлагает по низкой цене облачную платформу Cloud Machine Learning (Cloud ML). Здесь задействованы тысячи мощных серверов. Они эффективно обрабатывают информацию и помогают обучать нейронную систему на основе TensorFlow.
Сейчас Макото Койке планирует использовать Google ML в своих целях. «Я могу использовать сервис для создания системы обучения на основе гораздо более качественных снимков. Также я могу использовать разные конфигурации, параметры и алгоритмы нейронной системы, что может помочь найти вариант, при котором система будет точнее всего».
Пока что результаты работы Койке с Google ML недоступны, он продолжает эксперименты. Но не исключено, что уже через несколько месяцев огуречная ферма родителей японца будет поставлять овощи, классифицированные исключительно точно. Японцы все-таки перфекционисты.