Интеграция AI-распознавания растений в мобильное приложение

Мы внедряем распознавание растений в мобильное приложение под ключ: готовим разметку, обучаем модель и передаём её вместе с регламентами. Точность определения вида и болезней растёт, а время ответа сокращается — пользователь получает подсказку прямо в поле.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Интеграция AI-распознавания растений в мобильное приложение
Средний
от 4 часов до 2 дней
Часто задаваемые вопросы

Почему распознавание растений в приложении даёт сбои

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

Слабое освещение — вторая по частоте причина сбоев. В сумерках, против света или на пёстром фоне подлеска цвет и текстура листа меняются сильнее, чем различия между близкими видами, и точность определения вида падает. Если предобработка не выравнивает экспозицию и не отделяет объект от фона, модель сравнивает шум с признаками.

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

Долгий отклик после съёмки обычно означает, что вычисления идут в одном потоке с камерой: интерфейс подвисает, особенно на слабом устройстве. Разросшийся каталог усугубляет картину — чем больше видов, тем выше шанс спутать похожие. Ниже разбираем, как каждый из этих сбоев закрывается.

Что меняется после внедрения: время ответа и точность

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

Второй — доля верных определений. Её видно на отложенной выборке с разбивкой по сезону и региону: базовое качество плюс дообучение на снимках пользователей поднимают точность на популярных видах, а редкие и спорные случаи уходят на серверную проверку с уточнением ответа.

Третий — определение без сети. Класс отказов «нет соединения, попробуйте позже» просто исчезает: справочник и модель лежат внутри приложения, поэтому распознавание работает в лесу, в парке и в подземном переходе, а история синхронизируется позже, когда связь вернулась.

Четвёртый — нагрузка на поддержку приложения. Часть обращений с формулировкой «не распозналось» закрывается подсказкой прямо в приложении: типовые вопросы уходят с первой линии, остаются реальные ошибки и запросы на расширение справочника.

Пятый — стабильность на слабых устройствах. Модель подбирается под объём памяти бюджетных аппаратов, поэтому распознавание не приводит к вылетам и перезапускам, а отклик остаётся предсказуемым на всём парке устройств.

Эти пункты мы фиксируем как приёмочные: по каждому есть замер до внедрения и после, поэтому эффект проверяется цифрами, а не ощущениями.

Схемы распознавания растений: на устройстве и в облаке

Схема определения задаёт не только точность, но и то, что команда сможет менять без выпуска новой версии приложения. Ограничения у вариантов разной природы: где-то это связь и задержка отклика, где-то — вес сборки, а где-то — чужие правила работы с вашими снимками.

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

Вариант Когда подходит Ограничения
Модель на устройстве Съёмка без сети, нужен ответ в момент кадра, каталог видов стабилен Растёт вес приложения, на слабых устройствах вывод медленнее, новая модель — только с релизом
Серверный вывод модели Широкий каталог видов и частые обновления модели без пересборки приложения Нужна связь, отклик зависит от канала, нагрузка растёт вместе с числом пользователей
Гибридная схема определения Массовые виды считаем на устройстве, редкие уточняем на сервере Две ветки логики и два набора проверок, сложнее воспроизводить жалобы пользователей
Дообучение на своих снимках Свой или локальный каталог видов, съёмка в нестандартных условиях Нужен размеченный набор снимков, регулярный цикл переобучения и контроль качества
Готовое внешнее решение Нужен быстрый запуск и охват популярных видов Каталог и точность задаёт поставщик, свои снимки и дообучение зависят от условий сервиса

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

Этапы внедрения: от аудита снимков до передачи модели

Порядок работ выстроен так, чтобы качество распознавания подтверждалось до релиза, а не после жалоб пользователей. Каждый этап закрывается проверяемым артефактом — отчётом, схемой или размеченным набором, поэтому спор «работает или нет» решается фактами.

  1. Аудит снимков. Смотрим, что реально попадает в кадр: ракурсы, освещение, смазанные и обрезанные кадры, доля листьев без цветов и плодов. Считаем распределение по видам — оно почти всегда неравномерное, и от этого зависит стратегия обучения.

  2. Постановка метрики качества. Фиксируем, что считаем верным ответом: точный вид в первой подсказке или в списке из трёх, как обрабатываем неуверенные ответы. Метрика согласуется до обучения, чтобы результат потом не подгонялся под удобные цифры.

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

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

  5. Обучение и контрольный набор снимков. Контрольный набор собираем по регионам, сезонам и типам камер, чтобы он не пересекался с обучающим. По нему видно ошибки по классам и долю отказов, когда ответ лучше не давать вовсе.

  6. Передача модели и документации. Отдаём код, веса, скрипт переобучения и инструкцию по расширению справочника видов. Команда заказчика дальше обновляет модель и добавляет виды самостоятельно.

Пакет передачи: обученная модель, разметка, регламенты

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

  • Обученная модель распознавания растений в переносимом виде: веса, конфигурация входа и список поддерживаемых видов. Дообучение или замена не требует пересборки приложения.
  • Разметка снимков: исходный корпус по видам, разделённый на обучающую и проверочную выборки, плюс правила разметки — какие ракурсы и освещение считаем валидными, что помечаем как «неопределённый случай».
  • Схема работы приложения: путь снимка от камеры до ответа модели, точки предобработки и единый формат ответа, включая отказ «распознать не удалось».
  • Регламент обновления модели: периодичность дообучения на новых снимках, минимальный объём добавленных данных для перезапуска обучения и критерии приёмки по доле верных ответов на проверочной выборке.
  • Правила отката версии: где хранятся предыдущие веса, как переключиться на прошлую версию и при каких метриках качества переключение срабатывает без ручного вмешательства.
  • Инструкция для поддержки: типовые обращения, чтение журналов, порядок действий при просадке качества распознавания и матрица эскалации.
  • Доступы и права: репозиторий, хранилище снимков и учётные записи передаются с ролями; сохраняем ли мы доступ после сдачи — решает заказчик.

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

Кейс: определение вида и болезней по снимку с поля

Как было до внедрения

Пользователь присылал снимок в поддержку, оператор сверял его со справочником вручную и возвращался с текстовым ответом. Среднее время ответа — 6-8 часов, в сезонный пик доходило до суток, а уточняющие вопросы («доснимите лист», «нужен кадр с другой стороны») отправляли человека на второй круг ожидания. Доля таких переспросов держалась на уровне трети обращений.

Что изменили

Распознавание растений перенесли в само приложение: снимок обрабатывается на устройстве, справочник остаётся источником описаний и рекомендаций по уходу. В основе — открытая модель сообщества PlantNet, дообученная на снимках пользователей и местной флоре. Порог уверенности настроили так, что при слабом результате приложение само предлагает доснять лист или соцветие — до обращения в поддержку, а не после.

Что изменилось в цифрах:

  • Время до ответа: с 6-8 часов до 2-4 секунд прямо на экране.
  • Доля уточняющих переспросов: с 31% до 9% — остались в основном редкие культуры.
  • Нагрузка на первую линию поддержки упала вчетверо, освободившиеся инженеры занялись разбором сложных случаев.
  • Точность на тестовой выборке из 2000 снимков — 94% для вида и 88% для признаков болезней.

Отклик пользователей: доля тех, кто возвращается к съёмке повторно, выросла на 40%, оценки в магазинах приложений — 4.6 против 4.1. Такой разбор задачи снимает основную часть нагрузки поддержки ещё до того, как человек напишет обращение.

Что делать, если в приложении уже стоит сторонняя модель

Сторонняя модель в приложении — не приговор, и переписывать приложение из-за неё не нужно. Сначала разбираем, где именно теряется качество: сама модель, предобработка кадра, выставленный порог уверенности или отсутствие классов для местной флоры. Нередко дело не в модели, а в том, что она обучена на чужой флоре и просто не видит виды, которые растут там, где снимают ваши пользователи.

Дообучение вместо обучения с нуля даёт результат заметно быстрее и на меньшем объёме данных. Берём уже работающую модель как основу, сохраняем общие признаки — форму листа, жилкование, текстуру, характер роста — и добавляем свои классы поверх. На класс хватает нескольких сотен подтверждённых снимков вместо десятков тысяч, а качество распознавания растений на типовых видах при этом не проседает.

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

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

Замена сторонней модели целиком оправдана, когда поставщик закрывает доступ, ограничивает объём запросов или качество упирается в потолок чужой модели. Тогда переносим вычисления на свою сторону и сохраняем для приложения те же ответы. Опишите задачу — вернёмся с оценкой и планом: что дообучаем, что переносим, что остаётся на месте.

Технические сомнения: съёмка, разметка, объём данных

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

Снимок — это ещё и геометка, поэтому на сервер по умолчанию уходит только сам кадр, без метаданных, а координаты и история определений остаются на устройстве. Разметку не делаем с нуля: часть классов закрываем открытыми определениями, спорные кадры уходят в очередь на проверку биологу. Каталог видов пополняется без пересборки приложения — новый класс подключается на стороне сервиса.

Пользователь снимает в сумерках — распознавание по фото ухудшится?

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

Куда уходят фотографии пользователей?

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

Сколько времени займёт обучение модели под нашу флору?

Базовая модель на открытых данных запускается сразу и уже даёт рабочее определение. Дообучение под локальные виды идёт итерациями — версия обновляется каждые две-четыре недели, а каталог пополняется через серверный справочник, без обновления приложения.

Обсудим задачу: что уточнить до старта работ

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

  • Сценарии съёмки: один лист крупно, цветок в кроне, всходы у земли, одиночный кадр или съёмка на ходу — от этого зависит набор данных для модели.
  • Каталог видов: регион, число видов, нужны ли культурные сорта и редкие растения, добавляем ли карточки с описанием и уходом.
  • Платформы и парк устройств: минимальная версия системы, старые модели с медленной камерой — влияет на выбор способа распознавания.
  • Работа без сети: считаем кадр на устройстве или отправляем на сервер, обновляется ли каталог без выпуска новой версии приложения.
  • Приватность: остаются ли фотографии и геометки на телефоне, что уходит на сервер, как и по чьему запросу удаляется.
  • Формат ответа: одно название, список вероятных вариантов с уверенностью или карточка вида — определяет интерфейс и логику подсказок.
  • Порядок старта: кто передаёт тестовые кадры и разметку, по каким показателям принимаем результат.

Обсудим задачу в этих границах — вернёмся с оценкой и планом работ по этапам, чтобы вы понимали, где какая проверка стоит и что получите на выходе.

Наши компетенции:

Последние работы

  • Разработка мобильного приложения для компании FEEDME
    Разработка мобильного приложения для компании FEEDME
    1010
  • Разработка мобильного приложения для компании XOOMER
    Разработка мобильного приложения для компании XOOMER
    903
  • Разработка мобильного приложения для компании RHL
    Разработка мобильного приложения для компании RHL
    1332
  • Разработка мобильного приложения для компании ZIPPY
    Разработка мобильного приложения для компании ZIPPY
    1180
  • Разработка мобильного приложения для компании Affhome
    Разработка мобильного приложения для компании Affhome
    1107
  • Разработка мобильного приложения для компании FLAVORS
    Разработка мобильного приложения для компании FLAVORS
    714