Автоматическое распознавание листьев растений представляет собой выдающееся достижение в области компьютерного зрения и машинного обучения, позволяющее определять виды растений по снимку их листьев. В этом процессе глубокое обучение используется для выделения значимых характеристик из изображения листьев и преобразования их в компактные числовые представления, называемые эмбеддингами. Эти эмбеддинги фиксируют основные свойства, такие как форма, текстура, узоры жилок и края, что упрощает их сопоставление и кластеризацию. Основная концепция заключается в разработке системы, которая может создавать уникальный профиль изображения листьев и сравнивать его с базой данных известных видов.
Система распознавания листьев растений функционирует следующим образом: сначала она обнаруживает и выделяет лист на изображении, затем формирует вектор эмбеддинга и сравнивает его с эталонными векторами с помощью метрики расстояния. В частности, евклидово расстояние служит простым способом оценки сходства в пространствах высокой размерности. Для нормализованных эмбеддингов это расстояние обратно пропорционально степени сходства между двумя листьями, что позволяет применять методы классификации на основе ближайшего соседа.
Цели исследования включают три аспекта:
- Продемонстрировать, как глубокие сверточные нейронные сети (CNN) формируют компактные, раз discriminative эмбеддинги для изображений листьев.
- Показать надежность евклидова сходства в классификации видов на основе поиска ближайшего соседа.
- Разработать полностью воспроизводимый конвейер на датасете UCI One-Hundred Plant Species Leaves, включая код, оценку и визуализацию результатов.
Почему важно автоматическое определение видов растений?
Возможность автоматического идентификации видов растений по изображениям листьев имеет обширные последствия для науки, экологии, сельского хозяйства и образования. Такие системы полезны в сохранении биоразнообразия, предоставляя доступ к обширным коллекциям изображений из фотоловушек или платформ гражданской науки, что позволяет быстро каталогизировать и отслеживать угрожаемые или инвазивные виды растений. Эта функция особенно актуальна в экосистемах с высокой видовой разнообразностью, таких как тропические леса, для оперативного принятия экологических решений и эффективного распределения ресурсов специалистами по охране природы.
Основные сферы применения:
• Сельское хозяйство: Обеспечивает точное земледелие для выявления и лечения болезней культур, сорняков, а также оптимизации применения пестицидов. Мобильные приложения позволяют фермерам сканировать листья для получения мгновенной обратной связи, повышая урожайность и снижая вред окружающей среде.
• Образование: Способствует интерактивному обучению, где пользователи фотографируют листья, чтобы узнать об экологическом, медицинском или культурном значении видов. Это помогает музеям и ботаническим садам привлекать больше посетителей.
• Фармакология: Облегчает точную идентификацию лекарственных растений, ускоряя открытие новых биологически активных веществ для разработки лекарств.
• Цифровые библиотеки и IoT: Автоматизирует маркировку, индексацию и поиск изображений растений в больших базах данных. Интеграция с умными камерами на базе IoT позволяет непрерывно мониторить теплицы и исследовательские участки.
Анализ датасета UCI One-Hundred Plant Species Leaves
Система распознавания основана на датасете One-Hundred Plant Species Leaves, размещенном в репозитории UCI Machine Learning (лицензия CC BY 4.0). Этот набор включает 1600 снимков высокого разрешения, по 16 образцов на каждый из 100 видов. В коллекцию входят обычные деревья, такие как дубы, и более экзотические растения, обеспечивая разнообразие морфологии листьев.
Каждое изображение фокусируется на одном листе с нейтральным фоном, минимизируя отвлекающие элементы и подчеркивая ключевые признаки. Однако в реальных условиях часто встречаются сложные сцены, требующие сегментации. Датасет содержит виды вроде Acer palmatum (японский клен) и Quercus robur (английский дуб), которые обладают уникальными, но вариабельными характеристиками.
Подготовка данных включает масштабирование изображений до стандартного размера (например, 224×224 пикселей) и нормализацию. Для повышения устойчивости модели применяются техники аугментации, такие как повороты и отражения.
Метки датасета предоставляют истинные виды для обучения с учителем. Для объективной оценки данные разделяются на обучающую (80%), валидационную (10%) и тестовую (10%) выборки.
Преимущества датасета — его балансированность и реалистичность, включая вызовы вроде незначительных перекрытий или вариаций цвета сканирования. По сравнению с более масштабными наборами, такими как PlantNet, он удобен для прототипирования, но сохраняет достаточное разнообразие.
Примеры изображений листьев из датасета

Глубокие эмбеддинги признаков с использованием ResNet-50
В качестве основной модели для извлечения признаков применяется сверточная нейронная сеть ResNet-50, предварительно обученная на ImageNet. Эта архитектура с 50 слоями, построенная на остаточных блоках, решает проблему затухания градиента благодаря пропускам связей. Предобученные веса, полученные на миллионах естественных изображений, позволяют эффективно адаптировать модель к задаче распознавания листьев растений с минимальными данными и вычислениями.
ResNet-50 генерирует для каждого изображения листа 2048-мерный вектор эмбеддинга — компактное числовое описание, охватывающее ключевые особенности. Этот вектор формируется на выходе слоя глобального среднего пулинга, суммирующего карты признаков последующего слоя. Он захватывает как тонкие, так и явные аспекты листа: цвет, текстуру, геометрию жилок, кривизну краев и другие. Каждый эмбеддинг представляет собой последовательность из 2048 чисел, где каждое отражает выученный паттерн, создавая математический отпечаток листа в многомерном пространстве. Листья похожих видов располагаются ближе друг к другу, а разные — дальше.
Эти векторы сравниваются по евклидову расстоянию для оценки сходства. Меньшие расстояния указывают на близкие виды или идентичные формы, большие — на значительные различия. Такое сравнение в пространстве эмбеддингов лежит в основе конвейера распознавания, обеспечивая быстрый и прозрачный анализ новых образцов по отношению к базе данных видов.
Конвейер предобработки
Изображения листьев проходят через стандартизированный конвейер предобработки перед подачей в модель, чтобы обеспечить совместимость с требованиями ResNet-50. На основе трансформаций Torchvision создается последовательность операций: изменение размера, обрезка, преобразование в тензор и нормализация.
from torchvision import transforms transform = transforms.Compose([ transforms.Resize(256), # Короткая сторона → 256 px transforms.CenterCrop(224), # Центральная обрезка 224×224 (вход ResNet-50) transforms.ToTensor(), # Изображение PIL → тензор PyTorch [0,1] transforms.Normalize( # Нормализация ImageNet mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225] ) ]) Соблюдение параметров нормализации ImageNet гарантирует соответствие распределения данных предобученной модели, приводя к нулевому среднему и единичной дисперсии, что повышает стабильность эмбеддингов. Каждое изображение преобразуется в тензор, готовый для обработки моделью глубокого обучения.
Извлечение эмбеддингов
На этапе извлечения глубоких признаков исходная ResNet-50 модифицируется: удаляется полносвязный классификационный слой, поскольку цель — получить высокоуровневые представления, а не прямую классификацию.
model = models.resnet50(pretrained=True) model = torch.nn.Sequential(*list(model.children())[:-1]) # Удаление FC-слоя model.eval() # Перевод в режим оценки Усеченная сеть, обрывающаяся на глобальном среднем пулинге, выступает как экстрактор признаков, выдающий 2048-мерный вывод для одного изображения. Эти векторы содержат значимую информацию, различающую виды листьев.
Для автоматизации процесса на всем датасете вводится функция эмбеддинга:
def get_embedding(img_path): img = Image.open(img_path).convert('RGB') # Открытие и обеспечение формата RGB img_t = transform(img).unsqueeze(0) # Применение предобработки и добавление размерности пакета with torch.no_grad(): # Отключение отслеживания градиентов для эффективности emb = model(img_t).squeeze().numpy() # Извлечение 2048-мерного эмбеддинга return emb / np.linalg.norm(emb) # Нормализация вектора по L2 L2-нормализация размещает эмбеддинги на единичной гиперсфере, обеспечивая равноправные сравнения евклидова расстояния. Этот шаг устраняет вариации масштаба, фокусируясь на направлении признаков, что идеально для оценки сходства эмбеддингов листьев.
Функция применяется ко всем 1600 изображениям 100 видов, а полученные нормализованные векторы сохраняются в организованной базе по видам — основе системы распознавания.
species_db = { species: [get_embedding(path) for path in paths] for species, paths in species_images.items() } Для каждого вида значение — список нормализованных эмбеддингов. Система выполняет точное распознавание видов, сравнивая запросные эмбеддинги с хранимыми по расстояниям.
Евклидово расстояние для сопоставления сходства
Для L2-нормализованных 2048-мерных эмбеддингов сходство между изображениями листьев измеряется евклидовым расстоянием. Для двух векторов x, y ∈ ℝ²⁰⁴⁸

Поскольку эмбеддинги имеют единичную длину, расстояние пропорционально угловому расхождению:

Где cos θ = x · y. Меньшее евклидово расстояние свидетельствует о большем сходстве в пространстве признаков, повышая вероятность принадлежности листьев к одному виду.

Эта метрика позволяет ранжировать изображения базы относительно запроса, обеспечивая точную и интерпретируемую классификацию по сходству.
Конвейер распознавания
Конвейер распознавания сопоставляет запросное изображение листа с базой видов или ее эмбеддингами. Ниже приведена функция, описывающая этот процесс поэтапно.
def recognize_leaf(query_path, threshold=0.68): query_emb = get_embedding(query_path) # Извлечение эмбеддинга запросного листа min_dist = float('inf') best_species = None for species, embeddings in species_db.items(): # Перебор всех видов for ref_emb in embeddings: dist = np.linalg.norm(query_emb - ref_emb) # Вычисление евклидова расстояния if dist < min_dist: min_dist = dist best_species = species if min_dist < threshold: # Решение по порогу сходства return best_species, min_dist else: return "Unknown", min_dist В этом поиске с перебором вычисляется евклидово расстояние между запросом и всеми хранимыми эмбеддингами, выбирая ближайший. Если расстояние ниже порога (0.68), лист классифицируется как соответствующий вид; иначе — как неизвестный. Для масштабируемых или реального времени приложений рекомендуется заменить на индекс FAISS для ускорения поиска без потери точности.
Визуализация и анализ
Проекция t-SNE эмбеддингов
Для понимания пространства признаков применяется t-распределенное стохастическое встраивание соседей (t-SNE) для проекции 2048-мерных эмбеддингов в 2D. Этот нелинейный метод снижения размерности сохраняет локальные связи, позволяя визуализировать кластеризацию по видам. Компактные и разделенные кластеры демонстрируют высокую внутривидовую схожесть и межвидовую дискриминацию, подтверждая способность модели выделять уникальные признаки каждого вида.
Каждая точка — эмбеддинг листа, окрашенный по виду; плотные группы указывают на сходные виды, а разделенные — на эффективное обучение дискриминации.

Анализ распределения расстояний
Для проверки дискриминационной способности эмбеддингов изучается распределение евклидовых расстояний между парами изображений. Внутривидовые (интра-классовые) расстояния должны быть существенно меньше межвидовых (интер-классовых). Картирование этого распределения выявляет четкую границу, определяющую порог максимального сходства (например, 0.68) для решений. Это подтверждает, что модель успешно группирует похожие листья и разделяет разные виды в пространстве признаков.

Кривая ROC для настройки порога
Для систематического определения оптимальной границы между истинными и ложными срабатываниями строится кривая характеристик рабочей кривой (ROC), показывающая компромисс между долей истинно положительных (TPR) и ложноположительных (FPR) результатов при разных порогах. Восходящая кривая отражает улучшенную дискриминацию пар одного и разных видов. Площадь под кривой (AUC) равна 0.987, указывая на высокую надежность системы в распознавании по сходству. Статистика Юдена максимизирует чувствительность и специфичность при оптимальном пороге 0.68.

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

Оценка производительности
Для проверки общей эффективности системы оценивается ее работа на независимом разделении данных: обучение на 1280 изображениях листьев, валидация и тестирование по 160 на 100 видов в сбалансированном виде.
Результаты демонстрируют высокую точность и обобщение. Используются Top-1 Accuracy (доля правильных предсказаний на первом месте) и Top-5 Accuracy (доля правильных среди пяти ближайших), учитывая возможные визуальные пересечения видов.
| Раздел | Изображения | Top-1 Accuracy | Top-5 Accuracy |
| Обучение | 1280 | – | – |
| Валидация | 160 | 96.2% | 99.4% |
| Тестирование | 150 | 96.9% | 99.4% |
Дополнительные метрики подтверждают надежность: ложноположительный уровень 0.8%, ложноотрицательный 2.3%, среднее время инференса 12 миллисекунд на изображение (CPU). Эти показатели подчеркивают эффективность и точность системы, подходящей для реального времени распознавания с низкими вычислительными затратами.
Заключение и итоговые замечания
В этой статье продемонстрировано, что глубокие эмбеддинги признаков в сочетании с евклидовым сходством образуют мощный и интерпретируемый механизм для автоматического распознавания листьев растений. Модель на базе ResNet-50, примененная к датасету UCI One-Hundred Plant Species Leaves, достигла точности свыше 96% и показала высокую вычислительную эффективность. Этот подход служит основой для мониторинга биоразнообразия, диагностики в сельском хозяйстве и масштабируемых систем экологического и визуального распознавания в будущем.