Как распознать дефекты на фруктах нейросетью
Кейс DATA4

Статья о том, как был реализован кейс по разработке алгоритма распознавания дефектах на плодах для ООО Нейрофреш.

Мы - Data4, команда, реализующая заказные разработки в области машинного обучения. К нам обратились коллеги с задачей разработать алгоритм распознавания дефектов на фруктах и овощах.

Задача распознавания дефектов является актуальной для логистических центров крупных продовольственных сетей. В зависимости от состояния плода партия отправляется в магазин на реализацию, или возвращается поставщику. На данный момент проверку качества плодов осуществляют люди. Качество человеческой оценки не стабильно, буквально через 30-60 минут работы сотрудник начинает уставать и может пропустить партию с браком нанеся убытки в миллионы рублей.

Для решения задачи распознавания дефектов на фруктах и овощах требовалось разработать алгоритм, который распознавал хорошие и плохие плоды с точностью 95% и классифицировал дефекты на плохих плодах.

Создание набора данных

Первые эксперименты показали, что для решения поставленной задачи ключевым фактором является наличие качественного набора данных.

В первой итерации было размечено более 1000 фото для каждого СКЮ (мандарины, апельсины и т.д.). Разметка проводилась полигонами с привлечением экспертов.

Эксперимент показал, что такого качества разметки недостаточно. При разметке несколькими экспертом выяснилось, что пересечение по дефектам между 2 экспертами составляет 94% при пересечении по полигонам 60%.
Фото плодов были переразмечены многоугольниками с привлечением 2 экспертов в количестве 2000 для каждого вида плода. Для обучения алгоритма использовались только изображения, где разметка экспертов совпадала.

Предобработка данных

Для обучения алгоритма были отобраны изображения, где разметка экспертов совпадала.

Набор данных был расширен за счет искажения и зашумления имеющихся изображений по масштабу и путем отражения по оси.

Дополнительно из обучающей выборки исключены изображения ведущие к возникновению ошибок в ходе обучения.

Алгоритм распознавания дефектов на плодах

В первую итерацию был разработан алгоритм сегментации дефектов на основе Mask R-CNN. Качество классификации на плодах в разрезе дефектов составило 82% по метрике accuracy (для 20 дефектов).

Так как цель была достигнуть 95% потребовалось найти другую архитектуру.

Простое применение алгоритмов классификации не обеспечивало желаемый эффект.
Вторая итерация

Общее количество размеченных апельсинов 3666 из них половина изображений оригинальные фотографии, а другая половина сгенерирована с помощью аугментации на основе исходных изображений путем изменения масштаба, сдвига, поворота, искажения, зашумления, сглаживания, изменения яркости, контрастности и тональности цвета изображения.

Все фотографии были предварительно обработаны: считаны в RGB цветное изображение, где значение каждого пикселя - целое число от 0 до 255. На исходном изображении обнаруживалась квадратная рамка, в которую полностью помещался апельсин.

Далее производилось кадрирование (обрезка) изображения по рамке, изменение размера до 512 на 512 пикселей.

Из выборки были исключены дефекты, чья площадь была менее 64 квадратных пикселей и дефекты, в которых разметчик был не уверен. Также были убраны дефекты, которые редко встречались (менее 10 изображений).

Для решения задачи был предложен 2 уровневый алгоритм.

Полученное изображение подавалось в искусственную нейронную сеть, которая выдавала векторное представление изображения размерностью 2048, после чего передавалось вместе с меткой класса в алгоритм градиентного бустинга деревьев (xgb, lgbm).

Алгоритм первого уровня на базе сверточной нейронной сети ResNet-50 выдавал промежуточные данные характеризующие дефекты.

Алгоритмы второго уровня детектировали плохие плоды и классифицировал тип дефекта плода. Для алгоритма второго уровня был использован XGBoost и Lgbm. Входом алгоритмом второго уровня являлись данные, полученные от алгоритма первого уровня. Обучение проводилось с использованием принципа кросс-валидации с разбиением на 10 фолдов. После обучения проводилось тестирование на отложенной выборке, к которой у разработчиков не было доступа.

Результат

Качество классификации хороший/плохой превысило 99% по метрике accuracy.

Качество классификации по 5 наиболее распространенным дефектам по метрике accuracy превысило 96%. Полученное качество сравнимо с качеством, получаемым экспертами разметчиками и превосходит качество классификации в логистическом центре.

Результат позволяет использовать разработанное data4 решение для решения задач бизнеса, и сократив потери от порчи фруктов и овощей, оставив для нас на полках только самые свежие плоды.

Оставьте ваши контакты в форме ниже, чтобы мы проконсультировали Вас по кейсу вашей компании.

Связаться с нами
Напишите контактные данные, чтобы наш менеджер связался с вами.
НАШИ КОНТАКТЫ
+7-495-178-07-01
kirill@data4.ru (CEO)
Мы в социальных сетях: