Інтеграція AI-розпізнавання рослин у мобільний застосунок

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

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Інтеграція AI-розпізнавання рослин у мобільний застосунок

Штучний інтелект та ML у мобільних застосунках (CoreML, TFLite, LLM)Середнійвід 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