УДК 004.032.26; 631.574
АУГМЕНТАЦИЯ БАЗЫ ИЗОБРАЖЕНИЙ ЛИСТЬЕВ ЯБЛОНИ ДЛЯ ДОСТИЖЕНИЯ МАКСИМАЛЬНОЙ ТОЧНОСТИ ОПРЕДЕЛЕНИЯ КЛАССА ЗАБОЛЕВАНИЯ ПРИ ОБУЧЕНИИ НЕЙРОННОЙ СЕТИ (НС)
Анатолий Иванович Бутенко
доктор сельскохозяйственных наук, профессор
ЬИ_1:оПк@ша11. ги Максим Геннадиевич Тимофеев
студент [email protected]
Мичуринский государственный аграрный университет
г. Мичуринск, Россия
Аннотация. В данной статье представлена аугментация, как методика наращивания базы данных.
Ключевые слова: аугментация, tensorf1ow, генератор изображений, keras
В современном мире для организации систем автоматизированного производства под определенные задачи в сельском хозяйстве активно используются информационные технологии на базе машинного обучения [1-3].
Целью обучения машины является достижением максимальной точности выполнения сложного, трудоемкого (рутинного) процесса без участия человека, а сам процесс обучения можно разложить на несколько этапов:
1. Определение цели автоматизации процесса.
2. Сбор базы данных.
3. Создание и обучение прототипа НС.
Точность работы НС зависит не только от ее архитектуры, но и от качества и размера собранной базы данных и если данных недостаточно, то применяют методику аугментации для их увеличения [4, 5].
Аугментация (англ. data augmentation) - это метод наращивания дополнительных данных в процессе изменения имеющихся (базовых) данных.
Инструментом для машинного обучения применяется библиотека с открытым исходным кодом - TensorFlow, созданная для высокоуровневого, объектно-ориентированного языка программирования - Python.
Библиотека TensorFlow компилирует множество различных алгоритмов и моделей, что позволяет реализовывать глубокие НС для задач по распознаванию и классификации изображений.
Для реализации метода аугментации применяется генератор изображений ImageDataGenerator() в модуле TensorFlow.keras.preprocessing.image (рисунок 1).
1 tf.keras. preprocessing. image . ImageDataGeneratar(feat jrei,.,ise_c:enter=Fals;, samplewise_center= False , featurewi5e_std_rormalization = FaLsej 5amplevjise_5td_normalization =1 alse, zca_wtiitening=False, :ca_epsilan=le-06j rotaticn_range=0j '.■.'idth_shift_range=0.0J height_shif-:_range=,3.0J brightness_range=NoneJ shear_range=,3.0J zoom_range=0,0_l channeL_shift_range=0.0j fill_mode= nearest' cval=3.0j horizortal_flip=Falsej verTical_flip=ralseJ rescaLe=None, preprDcessing_furctior=NDreJ data_forina":=r-.one, validation_spli":=,i. Sj dtype=Mone )
Рисунок 1 - Генератор изображений
На вход функции генератора подаются параметры, по которым будет производиться изменение базового изображения и создаваться похожее изображение [6].
Алгоритм генерации десяти изображений для одного файла можно разложить на 4 этапа (рисунок 2):
1. Загрузка (англ. import) библиотек и модулей.
2. Создание генератора с активацией необходимых параметров.
3. Обработка изображения для подачи в генератор.
4. Генерация изображений.
# 1. import библиотек и модулей:
import numpy as гр # NumPy - библиотека для работы с многомерными массивами массивами
import keras # keras - библиотека для разработки искусственных нейронных сетей
# I ma geDataGene rater - генератор изображений
# load_img - функция загрузки изображения с google-диска
# img_to_array - функция для преобразования загруженного изображения в формате PIL в массив HumPy
# array_to_img - функция для преобразования NumPy-маесива в изображение форчата PIL
from keras . preprocessing, image impor. InageDataGenerator, array tLi ieg, iirg_to_array, lcad_irig
# 2. Создаем генератор для генерации изображений
datagen = IiriageData6enerator(rotatiDn_range=45, # Поворачиваем изображения при генерации выборки
width_shift_range=0.2, # Двигаем изображения го ширине при генерации выборки height_shift_range=3.2j # Двигаем изображения го высоте при генерации выборки rescale=l./255j # Значения цвета меняем на дробные показания
5hear_range=,3,# Диапазон сдвига пикселей изображения ZDOfli_range=0.2, # Зумируем изображения при генерации выборки
horizontal_flip = True., # Отзеркаливание изображений по горизонтали vertical_flip=True, # Отзеркаливание иображений по вертикали fill_mode = 'nearest# Заполнение пикселей вне границ ввода brightne£s_range=[S.5j 1.5]) # Диапазон выбора сдвига по яркости
# 3. Оработка изображения:
# С помощью функуции load_iirig капируем очередное jpg-файл и сохраняем в перченную img img - lQad_img(r'7conteit/d"ive/MyDrive/Ea3a/sneet/sheet (lJ.DPG")
# С помощью функции img_to_array преобразуем jpg-файл в NumPy-массив и запишем в переменную X х = img_to_array(ing)
# С помощью функции restiape() изменим размерность NumPy-массива в гере.ченной X х = х.reshape((lj) + к.shape)
# 4. Генерация изображений:
i = 0 # Счетчик количества batch
# Б цикле перебора каждой параметр генератора изображений применим к NumPy-массиву., преобразуем в
# jpg-файл и сохраним в каталог с изображениями на google-диске
for batch in datagen.flovj (x., batch_siie = lj save_to_dir =r-/content/drive/MyDrive/База/sheet'
save_prefix = 'sheetsave_-ormat='jpg'): i+=l # Считаем изображения
if i>4: # Если i более 4 break # стоп цикл
Рисунок 2 - Программа для генерации изображений
Результат сгенерированных изображений с различными значениями параметров генератора (рисунок 3).
Рисунок 3 - Сгенерированные изображения (1-е слева - исходное изображение).
1 2
3
4
5
6
7
8 9
10 11 12
13
14
15
16
17
18
19
20 21 22
23
24
25
26 27 2S
29
30
31
32
33
34
35
Список литературы:
1. Коротков А.А., Астапов А.Ю., Криволапов И.П. Элементы технологий точного земледелия // Наука и Образование. 2020. Т. 3. № 3. С. 132.
2. Астапов А.Ю., Криволапов И.П., Акишин Д.В. Оптический метод определения степени зрелости плодов яблони // Наука в центральной России. 2019. № 6 (42). С. 17-22.
3. Bonitet assessment of graft-rootstock combinations of apple tree varieties in the conditions of the central Chernozem region / Z.N. Tarova, L.V. Bobrovich, I.P. Krivolapov, A.A. Korotkov, O.A. Borisova // В сборнике: IOP Conference Series: Earth and Environmental Science. Сер. "International Conference on Agricultural Science and Engineering" 2021. С. 012012.
4. Русскоязычная документация Keras [Электронный ресурс] Режим доступа: https://ru-keras.com/, свободный. - (дата обращения: 22.03.2022).
5. TensorFlow Core v2.8.0. ImageDataGenerator - техническая информация [Электронный ресурс]. - Режим доступа: https://www.tensorflow.org/api docs/python/tf/keras/preprocessing/image/ImageDat aGenerator, свободный. - (дата обращения: 22.03.2022).
6. Элбон Крис Машинное обучение с использованием Python. Сборник рецептов: Пер. с англ. СПб.: БХВ-Петербург, 2019. 384 с.
UDC 004.032.26; 631.574
AUGMENTATION OF THE IMAGE BASE OF APPLE LEAVES TO ACHIEVE MAXIMUM ACCURACY IN DETERMINING THE CLASS OF THE DISEASE WHEN TRAINING A NEURAL NETWORK (NN)
Anatoly I. Butenko
Doctor of Agricultural Sciences, Professor
but_tolik@mail. ru Maxim G. Timofeev
student [email protected] Michurinsk State Agrarian University Michurinsk, Russia
Annotation. This article presents augmentation as a technique for increasing the database.
Key words: augmentation, tensorflow, image generator, keras
Статья поступила в редакцию 07.05.2022; одобрена после рецензирования 09.06.2022; принята к публикации 30.06.2022.
The article was submitted 07.05.2022; approved after reviewing 09.06.2022; accepted for publication 30.06.2022.