Новости и статьи об искусственном интеллекте и нейросетях. Мы собираем и обрабатываем самую актуальную информацию из мира AI. О проекте

Новости

Классификация пыльцы с помощью CNN и Vision Transformers

Проект по визуальной классификации пыльцы использует новые наборы данных и модели машинного обучения, включая CNN и Vision Transformers, для точного распознавания видов пыльцы. Существующие наборы данных анализируются, а новый набор из 200 изображений на класс без окраски позволяет обучать эффективные классификаторы. Трансформер для зрения достиг идеальной точности 1.00 на одном из наборов, превосходя традиционные модели.

13 октября 2025 г.
18 мин
5

1. Введение

Классификация пыльцы представляет собой увлекательную область в области распознавания визуальных изображений, обладающую широким спектром применений в экологии и биотехнологиях, включая исследования популяций растений, изменения климата и строения пыльцы. Несмотря на это, тема остается недостаточно изученной, поскольку наборы данных с изображениями такой пыльцы составлены в ограниченном количестве, а существующие часто бывают посредственными или неполноценными для обучения надежного визуального классификатора или детектора объектов, особенно когда речь идет об изображениях с смесью различных видов пыльцы. Помимо создания продвинутой модели визуальной идентификации, наш проект направлен на устранение этого пробела посредством специально подготовленного набора данных. Визуальная классификация пыльцы часто оказывается сложной задачей без использования машинного зрения, поскольку современные биологи нередко не в состоянии отличить пыльцу разных видов растений только по изображениям. Это делает процесс быстрого и эффективного распознавания собранной пыльцы чрезвычайно трудным, если источник пыльцевых частиц неизвестен заранее.

1.1 Существующие наборы данных изображений пыльцы

В этом разделе подчеркиваются характеристики нескольких свободно доступных наборов данных и проводится их сравнение с параметрами нашего собственного набора.

Набор данных 1

Ссылка: https://www.kaggle.com/datasets/emresebatiyolal/pollen-image-dataset
Количество классов: 193
Изображений на класс: 1-16
Качество изображений: Разделенные, четкие снимки, иногда с подписями
Цвет изображений: Разнообразный
Примечания: Набор данных, похоже, собран из несогласованных снимков, взятых из разных источников. Хотя он охватывает множество классов, в каждом из них лишь несколько фотографий, что недостаточно для обучения любой модели распознавания изображений.

Набор данных 2

Ссылка: https://www.kaggle.com/datasets/andrewmvd/pollen-grain-image-classification
Количество классов: 23
Изображений на класс: 35, один класс — 20
Качество изображений: Хорошо разделенные, слегка размытые, без текста на снимках
Цвет изображений: Неокрашенные, единообразные
Примечания: Локализованный, тщательно подготовленный набор для классификации пыльцы бразильской саванны. Единый источник изображений, однако количество снимков на класс может создавать проблемы при стремлении к высокой точности.

Набор данных 3

Ссылка: https://www.kaggle.com/datasets/nataliakhanzhina/pollen20ldet
Количество классов: 20
Изображений на класс: Огромное количество
Качество изображений: Самообъясняющиеся снимки с разделенными и соединенными изображениями пыльцы.
Цвет изображений: Окрашенные, единообразные
Примечания: Неисчислимое количество хорошо помеченных, последовательных и высококачественных изображений делает этот набор одним из лучших по качеству. Тем не менее, наличие окраски может создавать трудности в определенных применениях. Кроме того, увеличение и возможность пересечения пыльцы могут вызывать проблемы в сценариях со смешанной пыльцой.

2. Новый набор данных изображений пыльцы

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

Каждый класс включает 200 изображений с множеством пыльцевых зерен, каждое изображение без окраски. Данные были получены в сотрудничестве с Национальным институтом садоводческих исследований в Скерневице, Польша.

Количество классов: 5 (4 вида пыльцы + смешанный)
Изображений на класс: ~200
Качество изображений: Четкие снимки, изображения содержат несколько фрагментов пыльцы, присутствуют смешанные изображения
Цвет изображений: Неокрашенные, единообразные

Наш набор данных ориентирован на локально доступную пыльцу, баланс классов и обилие изображений для обучения без дополнительной окраски, что может сделать классификатор непригодным для некоторых задач. Кроме того, предлагаемое решение включает изображения со смесями разных типов пыльцы, что помогает в обучении моделей детекции для применений в полевых условиях. Примерные изображения из набора представлены на рисунках 1-4.

Рис. 1 — Пример изображения из набора данных — класс смородины.
Рис. 2 — Пример изображения из набора данных — класс ягоды хаскап.
Рис. 3 — Пример изображения из набора данных — черная смородина.
Рис. 4 — Пример изображения из набора данных — класс ирги.

Полный набор данных доступен у соответствующего автора по разумному запросу. Этапы сбора данных включали подготовку образцов и получение микроскопических изображений, которые были подготовлены профессором Агнешкой Марашек-Чоласковской и госпожой Алешандрой Махланской из Департамента прикладной биологии Национального института садоводческих исследований, за что мы выражаем глубокую благодарность. Их вклад оказался бесценным для успеха нашего проекта.

Сначала мы извлекли изображения отдельных пыльцевых зерен из фотографий в наших наборах данных для обучения различных моделей распознавания пыльцы. Каждое из этих фото содержало множество пыльцы и другие формы жизни, а также загрязнения, что значительно усложняло идентификацию видов пыльцы. Для этого мы применили модель YOLOv12, передовую модель детекции объектов в реальном времени, ориентированную на внимание, разработанную компанией Ultralytics.

3.1 Тонкая настройка YOLOv12

Благодаря инновационному характеру YOLOv12, она может обучаться даже на очень маленьких наборах данных. Мы сами убедились в этом на практике. Для подготовки собственного набора мы вручную пометили местоположения пыльцы на десяти изображениях в каждом из четырех классов нашего набора с использованием CVAT, после чего экспортировали метки в файлы .txt, соответствующие отдельным изображениям. Затем мы структурировали данные в формате, подходящем для YOLOv12: разделили их на обучающую выборку (7 пар изображение-метка на класс, всего 28) и валидационную выборку (3 пары на класс, всего 12). Мы добавили файл .yaml, указывающий на наш набор данных. Можно заметить, что набор был действительно очень малым. Полученное изображение в режиме предсказания с обнаруженными отдельными пыльцами и наложением уверенности представлено на рис. 5. Мы также скачали модель (YOLO12s) с сайта YOLOv12. Затем мы запустили обучение.

Рис. 5 — Вывод модели для примера изображения из набора данных.

Модель продемонстрировала очень высокую точность в детекции пыльцы, но оставался еще один аспект: уверенность модели. Для каждой обнаруженной пыльцы модель также выдавала значение, указывающее на степень уверенности в предсказании. Нам пришлось выбрать, использовать ли более низкий порог уверенности (больше изображений, но выше риск деформированных или не пыльцевых фото) или более высокий (меньше изображений, но ниже шанс попадания не пыльцы). В итоге мы решили протестировать два порога, 0.8 и 0.9, чтобы определить, какой из них лучше подойдет для обучения моделей классификации.

3.2 Экспорт наборов данных отдельных пыльцевых зерен

Для этого мы запустили предсказание модели на всех изображениях, специфичных для классов в нашем наборе. Это сработало отлично, но после экспорта возникла еще одна проблема — некоторые фото были обрезаны, даже при высоких порогах. По этой причине мы добавили дополнительный шаг перед экспортом отдельных пыльцевых зерен: мы отфильтровали изображения с несоразмерным соотношением сторон (см. пример на рис. 6). Конкретно, порог 0.8, где меньшее измерение делится на большее.

Рис. 6 — Пример плохо обрезанного изображения. Такие снимки в наборе данных негативно повлияли бы на производительность моделей классификации.

Затем мы изменили размер всех изображений до 224×224, стандартного разрешения для входных изображений в моделях глубокого обучения.

3.3 Наборы данных отдельных пыльцевых зерен — краткий анализ

В результате мы получили два набора данных, один с порогом уверенности 0.8 и другой с 0.9:

  • Порог 0.8:
    • смородина — 7788 изображений
    • ягоды хаскап — 3582 изображения
    • черная смородина — 4637 изображений
    • ирга — 4140 изображений

Всего — 20147 изображений

  • Порог 0.9:
    • смородина — 2301 изображение
    • ягоды хаскап — 2912 изображений
    • черная смородина — 2438 изображений
    • ирга — 1432 изображения

Всего — 9083 изображения

Краткий обзор цифр показывает, что набор с порогом 0.9 более чем в два раза меньше, чем с 0.8. Оба набора не сбалансированы — в 0.8 из-за смородины, а в 0.9 из-за ирги.

YOLOv12 оказалась эффективным инструментом для сегментации наших изображений в два набора отдельных пыльцевых изображений, несмотря на некоторые трудности. Новосозданные наборы могут быть несбалансированными, но их объем должен компенсировать этот недостаток, особенно учитывая широкое представление каждого класса. В них много потенциала для будущего обучения моделей классификации, но нам предстоит это проверить на практике.

4. Классификация отдельных изображений пыльцы

4.1 Обзор метрик оценки моделей

Чтобы правильно подойти к обучению моделей, будь то классические, работающие на статистических признаках, или более сложные, такие как сверточные нейронные сети или трансформеры для зрения, необходимо разработать метрики для измерения производительности. За годы было предложено множество методов для этих задач — от статистических показателей, таких как F1, точность или полнота, до визуальных метрик, вроде GradCAM, которые позволяют глубже заглянуть во внутренние механизмы модели. В этой статье рассматриваются методы оценки, примененные в наших моделях, без излишних деталей.

Полнота

Полнота определяется как соотношение правильных предсказаний для одного класса к общему числу предсказаний этого класса (см. уравнение 1). Она измеряет, какой процент изображений, помеченных как класс, действительно ему принадлежит. Работа с отдельными классами делает ее полезной как для сбалансированных, так и для несбалансированных наборов данных.

Уравн. 1 — Формула для полноты.

Точность

В отличие от полноты, точность — это процент правильно помеченных элементов среди всех элементов, принадлежащих классу (см. уравнение 2). Она измеряет долю элементов в классе, которые были предсказаны верно. Эта метрика работает аналогично полноте.

Уравн. 2 — Формула для точности.

Показатель F1

Показатель F1 — это просто гармоническое среднее точности и полноты (см. уравнение 3). Он позволяет объединить точность и полноту в один краткий показатель. Поэтому он остается эффективным даже на несбалансированных наборах данных.

Уравн. 3 — Формула для F1.

Матрица ошибок

Матрица ошибок — это визуальный показатель, сравнивающий количество предсказаний для одного класса с реальным числом изображений в этом классе. Она помогает иллюстрировать ошибки модели, которая может испытывать трудности только с определенными классами (см. рис. 7).

Рис. 7 — Пример матрицы ошибок.

GradCAM

GradCAM — это метод оценки производительности CNN, который визуализирует области изображения, повлиявшие на предсказание. Для этого метод вычисляет градиенты из одного сверточного слоя и создает карту активации, которая накладывается на изображение визуально. Это сильно помогает в понимании и объяснении «причин» модели для присвоения конкретному изображению определенного класса (см. пример на рис. 8).

Рис. 8 — Пример GradCAM с изображением собаки.

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

4.2 Классификация отдельных пыльцевых зерен с использованием стандартных моделей

С предобработанными изображениями мы перешли к следующему этапу: классификации отдельных пыльцевых зерен по видам. Мы опробовали три подхода — стандартные простые классификаторы на основе извлеченных из изображений признаков, сверточные нейронные сети и трансформеры для зрения. В этой статье описана наша работа со стандартными моделями, включая классификатор kNN, SVM, многослойные персептроны и случайные леса.

Извлечение признаков

Чтобы заставить работать наши классификаторы, сначала пришлось получить признаки, на которых они могли бы основывать предсказания. Мы выбрали два основных типа признаков. Один — статистические меры, основанные на наличии пикселей с определенным цветом (из модели RGB) для конкретного изображения, такие как среднее, стандартное отклонение, медиана, квартили, асимметрия и эксцесс — мы извлекли их для каждого слоя цвета. Другой — признаки GLCM (матрица совместного распределения уровней серого): контраст, диссимилярность, однородность, энергия и корреляция. Их получали из изображений, преобразованных в градации серого, и извлекали каждый под разными углами. Каждое изображение имело 21 статистический признак и 20 на основе GLCM, что в сумме дает 41 признак на изображение.

k-ближайших соседей (kNN)

Классификатор kNN использует пространственное представление данных для классификации путем поиска k ближайших соседей признака и предсказания его метки. Этот классификатор быстрый, но другие методы превосходят его.

Метрики kNN:

Набор 0.8:

F1: 0.6454

Точность: 0.6734

Полнота: 0.6441

Набор 0.9:

F1: 0.6961

Точность: 0.7197

Полнота: 0.7151

Машина опорных векторов (SVM)

Как и kNN, SVM представляет данные как точки в многомерном пространстве. Однако вместо поиска ближайших соседей она алгоритмически разделяет данные гиперплоскостью. Это дает лучшие результаты, чем kNN, но вводит случайность и все равно уступает другим решениям.

Метрики SVM:

Набор 0.8:

F1: 0.6952

Точность: 0.7601

Полнота: 0.7025

Набор 0.9:

F1: 0.8556

Точность: 0.8687

Полнота: 0.8597

Многослойный персептрон (MLP)

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

Метрики MLP:

Набор 0.8:

F1: 0.8131

Точность: 0.8171

Полнота: 0.8173

Набор 0.9:

F1: 0.7841

Точность: 0.8095

Полнота: 0.7940

Случайный лес

Случайный лес известен своей объяснимостью — он основан на деревьях решений, которые классифицируют данные на основе порогов, которые люди могут анализировать гораздо легче, чем, например, веса в нейронных сетях. Случайный лес показал себя довольно хорошо и последовательно — мы выяснили, что 200 деревьев оптимально. Тем не менее, он уступал более сложным классификаторам.

Метрики RF:

Набор 0.8:

F1: 0.8211

Точность: 0.8210

Полнота: 0.8233

Набор 0.9:

F1: 0.8150

Точность: 0.8202

Полнота: 0.8216

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

4.3 Классификация отдельных пыльцевых зерен с использованием сверточных нейронных сетей

Классические модели, такие как многослойные персептроны, случайные леса или SVM в классификации отдельных пыльцевых зерен дали результаты от посредственных до довольно хороших. Однако следующий подход, который мы решили опробовать, — сверточные нейронные сети (CNN). Это модели, которые генерируют признаки путем обработки изображений и известны своей эффективностью.

Вместо обучения CNN с нуля мы применили технику трансферного обучения — взяли предобученные модели, конкретно ResNet50 и ResNet152, и донастроили их под наш набор данных. Этот метод ускоряет обучение и снижает требования к ресурсам. Он также обеспечивает гораздо более эффективную классификацию благодаря тому, что модели уже профессионально обучены на больших наборах данных. Перед обучением мы также нормализовали изображения.

В плане метрик мы использовали Grad-CAM, метод, который пытается выделить области изображения, наиболее повлиявшие на предсказание модели, в дополнение к стандартным метрикам, таким как показатель F1, точность и полнота. Мы также включили матрицы ошибок, чтобы увидеть, испытывают ли наши CNN трудности с какими-либо конкретными классами.

ResNet50

ResNet50 — это архитектура CNN, разработанная Microsoft Research Asia в 2015 году, которая стала важным шагом к созданию гораздо более глубоких и эффективных нейронных сетей. Это остаточная сеть (отсюда название ResNet), использующая пропуски соединений для прямого потока данных. Это, в свою очередь, смягчает проблему исчезающего градиента.

Мы ожидали, что эта модель покажет себя хуже ResNet152. Наши ожидания быстро развеялись, поскольку модель выдала предсказания на том же уровне, что и ResNet152 на обоих наборах данных, как показано в приведенных ниже метриках и матрицах ошибок (см. рис. 9 и рис. 10), а также в визуализации Grad-CAM (см. рис. 11).

Метрики ResNet50:

Набор 0.8:

F1: 0.98

Точность: 0.98

Полнота: 0.98

Набор 0.9:

F1: 0.99

Точность: 0.99

Полнота: 0.99

Рис. 9 — Матрица ошибок ResNet50 для набора 0.8.
Рис. 10 — Матрица ошибок ResNet50 для набора 0.9. Как видно, были незначительные проблемы с классификацией смородины как черной смородины в обоих наборах.
Рис. 11 — Результаты Grad-CAM на случайном изображении из наборов 0.8 и 0.9 соответственно.

Что касается Grad-CAM, он не дал ценных insights о внутренних механизмах модели — выделенные зоны включали фон и, казалось бы, случайные места. Поскольку сеть достигает очень высокой точности, она, видимо, замечает паттерны, невидимые для человеческого глаза.

ResNet152

Также разработка исследователей Microsoft, ResNet152 — остаточная сеть и архитектура CNN с значительной глубиной и возможностями глубокого обучения, значительно превосходящими ResNet50.

Поэтому наши ожидания от этой модели были выше, чем от ResNet50. Мы были разочарованы, увидев, что она показала себя на равных с ней. Она выступила отлично (см. рис. 12 и рис. 13 с матрицами ошибок и рис. 14 с визуализациями Grad-CAM).

Метрики ResNet152:

Набор 0.8:

F1: 0.98

Точность: 0.98

Полнота: 0.98

Набор 0.9:

F1: 0.99

Точность: 0.99

Полнота: 0.99

Рис. 12 — Матрица ошибок ResNet152 для набора 0.8.
Рис. 13 — Матрица ошибок ResNet152 для набора 0.9. ResNet152 имела мелкие проблемы с несколькими классами в наборе 0.8, но в 0.9 только ту же, что и ResNet50.
Рис. 14 — Результаты Grad-CAM на случайном изображении из наборов 0.8 и 0.9 соответственно.

Grad-CAM также не помог с ResNet152 — мы столкнулись с загадочной природой моделей глубокого обучения, которые достигают высокой точности, но трудно объяснимы.

Мы были удивлены, что более сложная ResNet152 не превзошла ResNet50 на наборе 0.9. Обе достигли высших метрик среди всех протестированных моделей — они значительно обошли классические, с разницей более 10 процентных пунктов между лучшей классической и CNN. Пришло время тестировать самую инновационную модель — трансформер для зрения.

4.4 Классификация отдельных пыльцевых зерен с использованием трансформеров для зрения

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

Трансформеры в целом происходят из знаменитой статьи 2017 года «Attention Is All You Need» от исследователей Google, но изначально использовались преимущественно для обработки естественного языка. В 2020 году архитектура трансформера была адаптирована для компьютерного зрения, что привело к ViT — трансформеру для зрения. Его отличная производительность ознаменовала начало конца доминирования сверточных нейронных сетей в этой области.

Наш подход здесь был похож на тот, что мы использовали при обучении CNN. Мы импортировали предобученную модель: vit-base-patch16–224-in21k, обученную на ImageNet-21k. Затем нормализовали изображения набора данных, донастроили модель и зафиксировали результаты метрик и матриц ошибок (см. рис. 15 и рис. 16).

Результаты vit-base-patch16–224-in21k:

Набор 0.8:

F1: 0.98

Точность: 0.98

Полнота: 0.98

Набор 0.9:

F1: 1.00
Точность: 1.00
Полнота: 1.00

Рис. 15 — Матрица ошибок ViT для набора 0.8.
Рис. 16 — Матрица ошибок ViT для набора 0.9.

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

4.5 Сравнение метрик для различных моделей

Для задач классификации пыльцы мы использовали множество моделей: традиционные, включая kNN, SVM, MLP и случайный лес; сверточные нейронные сети (ResNet50 и ResNet152) и трансформер для зрения (vit-base-patch16–224-in21k). Эта статья служит обзором и рейтингом производительности (см. табл. 1).

Табл. 1 — Метрики для всех протестированных моделей.

Рейтинг

6. kNN (k-ближайших соседей)

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

5. MLP (многослойный персептрон)

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

4. RF (случайный лес)

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

3. SVM (машина опорных векторов)

Неожиданный лидер среди типичных классификаторов. Его производительность была случайной, но дала хорошие результаты для стандартного классификатора на наборе 0.9.

2. ResNet50 и ResNet152 (остаточные сети)

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

1. ViT (трансформер для зрения)

Самое инновационное решение, которое мы опробовали, обошло классические модели и догнало остаточные сети на наборе 0.8. Настоящий вызов был на наборе 0.9, где CNN достигли непреодолимой точности 0.99. К нашему удивлению, результаты трансформера для зрения были настолько высоки, что округлились до 1.00 — идеальный балл. Его результаты — настоящее свидетельство силы инноваций.

Примечание: отчет о классификации округлил метрики модели — они не точно равны 1, поскольку это означало бы правильную классификацию всех изображений без исключения. Мы приняли это значение, потому что только незначительные пять изображений (0.27%) были классифицированы неверно.

Сравнивая разные классификаторы в области визуального распознавания пыльцы, мы смогли лично пережить историю и эволюцию машинного обучения. Мы протестировали модели с разной степенью инноваций, начиная с самых простых классификаторов и заканчивая основанным на внимании трансформером для зрения, и заметили, как их результаты росли вместе с новизной. На основе этого сравнения мы единогласно выбрали ViT как нашу основную модель для работы с пыльцой.

5. Заключение

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

Чтобы лучше понять, почему это достижение так впечатляет, мы иллюстрируем его на рис. 17.

Рис. 17 — Примерные изображения пыльцы разных классов, демонстрирующие сложность задачи, с которой мы столкнулись в статье.

Вероятно, большинство читателей не смогут правильно классифицировать эти изображения в четыре упомянутых ранее класса. С другой стороны, наши модели доказали, что распознают их с почти идеальной точностью, достигнув максимального показателя F1 более 99%.

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

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