Команда исследователей из инженеров Корнелльского университета разработала дешёвое и простое приложение для раннего прогнозирования урожайности винограда. Приложение работает на основе методов машинного обучения и оптического отслеживания.
Традиционно урожайность винограда считают вручную. Рабочие подсчитывают количество виноградных гроздей на выделенной территории. После собранные данные делят на число просчитанных кустов и получают среднее количество гроздей на куст. Это число умножают на общее количество кустов и получают среднее число гроздей на участке.
Метод ручного подсчёта неточный. Частота ошибок составляет до 23,5 % от объёма урожая. Кроме того, рабочие считают количество гроздьев на кустах неточно. Например, в ходе эксперимента исследователи обнаружили, что на кустах из четырех виноградных лоз на 320 гроздьев рабочие насчитывают от 237 до 309 гроздьев.
Для решения проблем с оценкой и прогнозированием урожая винограда команда инженеров и ботаников создала приложение для смартфона, основанное на методах машинного обучения и оптического отслеживания.
Для разработанного метода потребуется смартфон с приложением и трактор или робот, чтобы ездить между кустами. Свёрточная нейронная сеть на основе алгоритма Faster R-CNN ищет грозди винограда. Далее обнаруженные объекты отслеживаются от кадра к кадру для предотвращения повторений.
Faster R-CNN обучали при помощи модели TensorFlow1, обученной до этого на наборе данных COCO. Предварительное обучение модели увеличило итоговую скорость обнаружения. Система изучила 611 изображений с 4580 гроздьями и 1158 изображений с 6746 побегами.
Чтобы программа могла различать сорта винограда, в течение двух лет её обучали на изображениях виноградных лоз с двух виноградников. Гроздья и побеги отмечали вручную в два этапа. Ограничивающие прямоугольники выбраны так, чтобы минимально охватить видимую часть грозди и самый большой белый лист вверху побега. Данные собирались в течение двух лет разными людьми, которые по-разному располагали камеру при проезде между кустами. Ярлыки изображений создавали через программу на Python с открытым исходным кодом LabelImg2. Обучение сети заняло 5,5 часов на рабочей станции с восьмиядерным Xeon с Nvidia GeForce GTX 1080.
Созданный автоматический метод подсчёта через приложение лучше справляется с нахождением побегов и гроздьев, чем ручной. Частота ошибок в среднем составляет 4,9 %, максимум ошибок — не выше 12,5 %. Чтобы добиться такой же точности, рабочим необходимо вручную посчитать 70 % всего виноградника. Исследователи связывают часть ошибок с качеством видеосъёмки и постановкой кадра.
Созданная программа стала самым дешёвым и доступным способом подсчёта и прогнозирования урожайности. Приложение фиксирует не только крупные чёрные и красные грозди, но и зелёные, которые только начали свой рост. Дальнейшее обучение позволит распознавать больше сортов и повышать точность подсчётов.
В настоящее время исследователи занимаются вопросами лицензирования и распространения технологии на мелких и крупных хозяйствах.
Результаты исследования опубликованы в статье «Low-Cost, Computer Vision-Based, Prebloom Cluster Count Prediction in Vineyards»в журнале Frontiers in Agronomy Doi.org/10.3389/fagro.2021.648080.