Samsung IT Campus · Innovation 2026

Болезнь растения —
по одному фото

Наведи камеру на лист — получишь диагноз за секунды и понятный план ухода. ИИ-фитопатолог в кармане.

PlantVision 2.5.0 · DINOv2 ViT-S/14 + LoRA · 9 классов
90.4%
общая точность
9
классов диагноза
~8 мс
инференс gamma
EN·RU
двуязычный уход
Экран результата диагностики
Экран сканера PlantDiseases
📷 Сканер листа · 📴 Офлайн-режим Aqua · 🌍 Планы ухода EN / RU · 🪴 Личный сад · 🤖 ИИ-фитопатолог · 🔎 Определение вида · 👥 Сканы рядом · 📊 Честная неопределённость · 
Проблема

Болезнь замечают, когда уже поздно

Любитель — не агроном. Симптомы похожи, а интернет даёт противоречивые советы. Растение успевает погибнуть, пока идёт спор на форуме.

01

Симптомы путаются

Пятна, краевой ожог и дефицит питания выглядят почти одинаково на телефонном фото.

02

Поиск не помогает

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

03

Нет системы

История наблюдений, уход и напоминания живут в разных местах — или нигде.

Решение

Один снимок — весь цикл диагностики

1

Снимок листа

Камера или галерея — наводишь и снимаешь. Детектор сам находит лист в кадре.

2

Диагноз за секунды

Классификатор на 9 классов болезней и состояний с честной оценкой уверенности.

3

План ухода EN / RU

Лечение, профилактика, график полива, подкормки и влажности — на двух языках.

Внутри приложения

Не просто сканер — помощник по уходу

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

Экран сканера с выбором модели Gamma
📷 Сканер

Наведи и сними

Живая камера на CameraX. Выбираешь семейство модели прямо на экране — облачную Gamma или офлайн-Aqua. Фильтр размытия отсекает нечёткие кадры до того, как они получат фальшивую уверенность.

Камера или галереяСнять вживую или выбрать готовое фото.
Переключатель Gamma / AquaОблако для максимума точности или полностью офлайн на устройстве.
Фильтр размытияНечёткий кадр → «переснимите» вместо ложного диагноза.
🩺 Результат

Понятный диагноз, а не сырая вероятность

Класс болезни, уверенность в процентах, подсвеченная область обнаружения, эталонные фото «как это выглядит» и описание. Внизу — кнопки «В сад» и «Новый скан».

Класс и уверенность«Краевой ожог (недолив)» — 79%, с цветовой меткой риска.
Область обнаруженияДетектор находит лист и подсвечивает зону поражения.
«Как это выглядит» + описаниеЭталонные фото и текст болезни прямо в карточке.
Диагноз: краевой ожог, уверенность 79%
Диагноз: пятнистость листьев
Экран Мой сад
Галерея сканов с фильтром
🪴 Сад · Галерея · Справка

Растения под наблюдением

Личный сад на Room хранит растения, сканы и заметки вместе. Напоминания о поливе и подкормке приходят через WorkManager. Галерея фильтрует историю на «здоровые / больные». Справка — двуязычная база болезней, вредителей, полива и света.

Мой садНесколько растений, история сканов и напоминания о поливе.
ГалереяВся история сканов с фильтром «Все / Здоровые / Больные».
СправкаБолезни, вредители, полив, свет и уход — с поиском и фото.
👥 Сообщество

Сканы рядом и второе мнение

Лента похожих сканов поблизости — что болеет у соседей в этом сезоне. Можно попросить «второе мнение» по своему скану и получить ответы сообщества. Приватность по умолчанию: только грубый регион (город, страна), никаких сырых GPS-координат, и опт-аут в любой момент.

Лента поблизости Второе мнение Только грубый регион Опт-аут
Сканы рядом — лента сообщества
Scans near you — community feed

ИИ-фитопатолог

Опциональный чат (OpenRouter), привязанный к диагнозу твоего скана — задавай уточняющие вопросы по лечению.

по ключу API

Определение вида

Интеграция PlantNet автоматически подставляет вид растения по фото скана — уход становится точнее.

по ключу API

Динамика болезни

Сравнение сканов во времени: вердикт «лучше / хуже / стабильно» и спарклайн тяжести по 5 точкам.

Планы ухода EN / RU

К каждому диагнозу — описание, чек-лист лечения, профилактика, график полива/подкормки/влажности и список тревожных признаков.

Полный офлайн

Модель Aqua (TFLite INT8, ~6 МБ) скачивается с сервера и кешируется — диагноз без интернета.

Честная неопределённость

Топ-3 альтернативы, конформные множества, мягкие предупреждения (размытый кадр, спорный «здоров», конфликт детектора).

Под капотом

Сначала найти лист, потом поставить диагноз

Двухэтапный конвейер: YOLOv8n находит лист и отдаёт плотный кроп, а замороженный DINOv2 ставит диагноз. Так классификатор видит лист, а не всю комнату.

Клиент
Android · Kotlin
CameraX, история (Room), напоминания, UI на Material 3
Этап 1 · Детектор
YOLOv8n
Находит лист и отдаёт плотный кроп
Этап 2 · Классификатор
DINOv2 ViT-S/14 + LoRA
Замороженный backbone + MLP-голова, 9 классов, вход 224 px
OOD-фильтр MaxLogitЛовит «не лист», когда детектор сработал слабо.
Фильтр размытия (Лаплас)Нечёткий кадр сразу отправляется на пересъёмку.
Калибровка + конформные множестваТемпература и RAPS дают честную уверенность.
Семейства моделей

Один рецепт обучения, три уровня ёмкости

Gamma — измерено и работает в проде. Aqua и Frontier — проекции, подтверждаемые обучением соответствующего тира.

Aquaпроекция
на устройстве · офлайн
БэкбонMobileNetV3-S
Macro-F1 · real≈70%
Размер≈6 МБ
СредаAndroid · TFLite
Gamma● измерено
текущий прод · баланс
БэкбонDINOv2 ViT-S/14
Macro-F1 · real77.4%
Размер22.5 МБ
Средасервер CPU/GPU
Frontierпроекция
высокая ёмкость · GPU
БэкбонDINOv2 ViT-B/14
Macro-F1 · real≈83%
Размер≈90 МБ
Средасервер GPU (выкл.)
Качество модели

90.4% общей точности на реальных «садовых» фото

Оценка тира gamma на отложенной выборке реальных фото (val_realworld) — не студийный датасет.

Macro-F1 · real
77.4%
болезни, без healthy / NaP
Macro-F1 · in-domain
86.1%
доменная выборка
Общая точность
90.4%
9 классов · real-world
Healthy-bias
0.90
норма < 1.5 — нет перекоса
Покрытие conformal
96.6%
цель ≥ 90% · набор 1.86
«Не растение» (OOD)
97.5%
защита от посторонних фото
Размер · INT8
22.5 МБ
fp32 87.3 МБ · дрейф −0.2%
Детектор · mAP50
82.0%
Stage-1 · YOLOv8n

Доказательства, а не обещания

Живые графики из отчёта об оценке — наведи курсор на любой элемент, чтобы увидеть точные значения.

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

Доля строки · строки — истинный класс, столбцы — предсказание. Сильная диагональ значит, что классы почти не путаются.

Метрики по классам

Точность / полнота / F1 на реальных фото (val_realworld).

Полнота + 95% ДИ

Бутстрэп n=1937 · широкий интервал = узкое место по данным, не по архитектуре.

In-domain против реальных

Разрыв показывает обобщение на «садовые» снимки.

Конформные множества (RAPS)

«Либо X, либо Y» с гарантией покрытия — честная неопределённость.

Все графики построены нативно в браузере из данных отчёта об оценке PlantVision 2.5.0 · gamma.

Честная неопределённость

Модель знает, когда она не уверена

97.5%

Голова-отказ (OOD)

Отсекает посторонние кадры вместо ложного диагноза.

96.6%

Конформное покрытие

Топ-3 альтернативы с гарантией покрытия ≥ 90%.

Лаплас

Фильтр размытия

Нечёткие кадры сразу отправляются на пересъёмку.

0.90

Healthy-bias в норме

Нет перекоса в «здорово» — болезни не маскируются.

Итоги и планы

Готовый продукт — и честный план роста

Что уже работает
90.4%Общая точность на 9 классах, реальные фото
97.5%Защита от посторонних фото (класс «не растение»)
22.5 МБОфлайн-модель INT8 прямо на устройстве
EN/RUДвуязычные планы ухода и личный сад с напоминаниями
Над чем работаем
64–76%Краевой ожог и дефицит питания — расширить датасет этих классов
КлассыРазделить пятнистость и вредителей на подклассы при росте данных
frontierViT-B/14 на GPU-хосте — следующий уровень точности
ПолеБольше «полевых» фото для устойчивости в реальных условиях
Стек и API

Как это собрано

Android

Kotlin-клиент: камера, история, напоминания и офлайн-инференс.

KotlinMaterial 3CameraXRoomRetrofit + OkHttpWorkManagerTFLite (Aqua)Coroutines

Server · ML

FastAPI-сервис: двухэтапный конвейер, калибровка и графы метрик.

PythonFastAPIPyTorchDINOv2 ViT-S/14LoRAYOLOv8nONNX · INT8RAPS conformalPrometheusDocker
МетодЭндпоинтНазначение
POST/api/analyzeФото → двуязычный диагноз (family=aqua|gamma|frontier)
POST/api/care-planГрафик полива / света / влажности + чек-лист лечения
POST/api/progressionСравнение сканов → тренд + спарклайн тяжести
POST/api/identifyОпределение вида (PlantNet, graceful)
POST/api/chatИИ-фитопатолог (OpenRouter, graceful)
GET/api/capabilitiesДоступность семейств aqua / gamma / frontier
GET/api/aqua/modelОфлайн-модель TFLite для скачивания на устройство

Здоровые растения начинаются с одного снимка

Открытый исходный код · общественное достояние (Unlicense)

github.com/pmixay/plantdiseases