Як Nutrola використовує комп'ютерне зору та ШІ для ідентифікації понад 130,000 продуктів
Глибокий технічний аналіз ШІ, що стоїть за функцією Snap & Track Nutrola: як згорткові нейронні мережі, виявлення кількох предметів та оцінка порцій працюють разом, щоб ідентифікувати понад 130,000 продуктів з одного фото.
Проблема: Чому розпізнавання їжі є одним з найскладніших викликів ШІ
Ідентифікація їжі на фотографіях здається простою справою. Люди роблять це без зусиль. Але для систем комп'ютерного зору розпізнавання їжі є однією з найскладніших технічних задач візуальної класифікації, значно складнішою, ніж ідентифікація облич, автомобілів чи рукописного тексту.
Причини цього є повчальними:
- Екстремальна варіативність всередині класу. "Салат" може виглядати тисячею різних способів. Цезар, грецький салат, фруктовий салат і деконструйований Нісуаз мають спільну назву, але майже жодної візуальної схожості.
- Висока схожість між класами. Пюре та хумус можуть виглядати практично ідентично на фото. Так само деякі супи та смузі. Білий рис і цвітна капуста в певних ракурсах візуально не відрізняються.
- Деформація та змішування. На відміну від жорстких об'єктів, їжа ріжеться, готується, змішується, складається та оформлюється в нескінченних комбінаціях. Бурріто, обгортка та енчілада можуть містити однакові інгредієнти в різних структурних конфігураціях.
- Залежність від культурного контексту. Один і той же візуальний вигляд може представляти різні страви в різних кухнях. Круглий плоский хліб може бути тортильєю, роти, пітою, млинцем або шведським тунбредом, кожен з яких має різні харчові профілі.
- Часткова оклюзія. Продукти на тарілці накладаються один на одного, соуси закривають інгредієнти, а прикраси приховують те, що знаходиться під ними.
Ці виклики пояснюють, чому розпізнавання їжі багато років відставало від інших застосувань комп'ютерного зору. Це також пояснює, чому для його вирішення знадобився принципово інший підхід, ніж традиційна класифікація зображень.
Основи: Згорткові нейронні мережі
Як CNN обробляють зображення їжі
В основі сучасного розпізнавання їжі лежить згорткова нейронна мережа (CNN), клас архітектури глибокого навчання, спеціально розроблений для обробки візуальних даних. CNN аналізує зображення через серію ієрархічних шарів виділення ознак:
Шар 1-3 (Низькорівневі ознаки): Мережа визначає краї, кольори та прості текстури. На цьому етапі вона може виявити круглу крайку тарілки, коричневий колір приготованого м'яса або зернисту текстуру рису.
Шар 4-8 (Середньорівневі ознаки): Ці шари поєднують низькорівневі ознаки в більш складні візерунки: мармуровий візерунок грильованого стейка, шарувата структура сендвіча, глянсова поверхня соусу або волокниста текстура подрібненого курячого м'яса.
Шар 9-15+ (Високорівневі ознаки): Найглибші шари збирають середньорівневі візерунки в специфічні для їжі представлення. Мережа вчиться, що певна комбінація текстур, кольорів, форм і просторових розташувань відповідає "пад тай" або "піца маргарита" чи "курка тікка масала".
Еволюція архітектури
Архітектури, що використовуються для розпізнавання їжі, значно еволюціонували за останнє десятиліття:
| Архітектура | Рік | Ключова інновація | Точність у розпізнаванні їжі |
|---|---|---|---|
| AlexNet | 2012 | Доказала, що глибокі CNN є життєздатними | ~55% top-1 на Food-101 |
| VGGNet | 2014 | Глибші мережі з малими фільтрами | ~72% top-1 на Food-101 |
| GoogLeNet/Inception | 2014 | Виявлення ознак на кількох масштабах | ~78% top-1 на Food-101 |
| ResNet | 2015 | Пропускні з'єднання, що дозволяють значно глибші мережі | ~85% top-1 на Food-101 |
| EfficientNet | 2019 | Комплексне масштабування глибини/ширини/роздільної здатності | ~91% top-1 на Food-101 |
| Vision Transformers (ViT) | 2020 | Механізми уваги для глобального контексту | ~93% top-1 на Food-101 |
| Сучасні гібридні архітектури | 2023-2025 | Злиття CNN та трансформерів з увагою до регіонів | ~96%+ top-1 на розширених наборах даних |
Бенчмарк Food-101 (101 категорія їжі, 101,000 зображень) був стандартним набором даних для оцінки протягом багатьох років. Сучасні системи, такі як Nutrola, працюють на значно більшому масштабі, з 130,000+ розпізнаваними продуктами, що вимагає навчальних парадигм, які виходять за межі академічних бенчмарків.
Виявлення кількох предметів: бачити все на тарілці
За межами класифікації однієї їжі
Ранні системи розпізнавання їжі могли ідентифікувати лише один продукт на зображенні. Фото тарілки з рисом, карі та нааном класифікувалося як один з цих трьох предметів, пропускаючи інші зовсім. Справжні страви не такі прості.
Виявлення кількох предметів вимагає іншого архітектурного підходу. Замість того, щоб класифікувати все зображення як одну категорію, система повинна:
- Визначити області інтересу (де знаходяться окремі продукти на зображенні?)
- Сегментувати ці області (де закінчується рис і починається карі?)
- Класифікувати кожну область незалежно (ця область — рис, це — курка карі, це — наан)
- Обробляти накладені предмети (соус карі на рисі є частиною карі, а не окремим предметом)
Рамки виявлення об'єктів для їжі
Сучасне виявлення кількох продуктів у їжі базується на рамках виявлення об'єктів, спочатку розроблених для загальних завдань комп'ютерного зору:
- Підходи на основі регіонів (виведені з Faster R-CNN) генерують кандидатні області та класифікують кожну з них. Вони точні, але обчислювально витратні.
- Одноразові підходи (виведені з YOLO та SSD) прогнозують обмежувальні рамки та класифікації за один прохід, що дозволяє виявлення в реальному часі на мобільних пристроях.
- Підходи семантичної сегментації (виведені з U-Net та Mask R-CNN) генерують картки їжі на рівні пікселів, забезпечуючи точні межі між предметами.
Система Snap & Track Nutrola використовує гібридний підхід, оптимізований для мобільного інтерфейсу. Процес працює ефективно на пристрої для початкового виявлення, з серверною обробкою для складних сцен або неоднозначних предметів. Це забезпечує швидкий досвід користувача, зазвичай менше двох секунд від моменту зйомки до розподілу харчування, зберігаючи при цьому високу точність.
Обробка складних структур страв
Деякі страви представляють структурні виклики, які просте виявлення не може вирішити:
- Шаруваті продукти (лазанья, сендвічі, бурріто): Система повинна вивести внутрішні інгредієнти з видимих зовнішніх ознак та контекстуальних знань.
- Змішані страви (смажені овочі, рагу, запіканки): Окремі інгредієнти об'єднуються в одну візуальну масу. Система використовує аналіз текстури, розподіл кольору та контекстуальні пріоритети для оцінки складу.
- Деконструйовані презентації (блюда в мисках, бенто-бокси, тапас): Кілька малих предметів у окремих відділеннях вимагають індивідуального виявлення та класифікації.
- Напої поряд з їжею: Відрізнити склянку апельсинового соку, манговий смузі та тайський айс-чай вимагає аналізу кольору, непрозорості, типу тари та контексту.
Навчальні дані: Основи якості розпізнавання
Вимоги до масштабу та різноманітності
Система розпізнавання їжі є настільки ж хорошою, як дані, на яких вона була навчена. Створення моделі, яка розпізнає понад 130,000 продуктів з 50+ країн, вимагає навчального набору даних надзвичайного масштабу та різноманітності.
Ключові аспекти якості навчальних даних:
Обсяг: Сучасні моделі розпізнавання їжі потребують мільйонів мічених зображень їжі. Кожна категорія їжі повинна мати сотні до тисячі прикладів, що демонструють різні приготування, презентації, умови освітлення, кути та розміри порцій.
Різноманітність: "Куряча грудинка", сфотографована в японській кухні, виглядає інакше, ніж у бразильській кухні, а також відрізняється від тієї, що в нігерійській кухні. Навчальні дані повинні відображати це різноманіття, інакше модель зазнає невдачі з кухнями, які вона не бачила.
Точність міток: Кожне зображення повинно бути правильно помічене конкретним продуктом, а не лише загальною категорією. "Грильований лосось з теріякі" харчово відрізняється від "грильованого лосося з лимонним маслом", і навчальні мітки повинні відображати це розрізнення.
Варіація порцій: Те саме блюдо, сфотографоване в порції 100 г і 300 г, повинно бути представлене в навчальних даних, щоб модель могла навчитися оцінювати кількість, а не лише ідентичність.
Стратегії збільшення даних
Збір сирих даних не може охопити всі можливі презентації кожної їжі. Техніки збільшення даних розширюють ефективний навчальний набір:
- Геометричні трансформації: Поворот, перевертання та масштабування зображень, щоб модель могла розпізнавати їжу незалежно від орієнтації тарілки.
- Варіація кольору та освітлення: Регулювання яскравості, контрасту та балансу білого для імітації різних умов освітлення (освітлення ресторану, флуоресцентні кухонні лампи, природне світло на вулиці, спалах).
- Синтетична оклюзія: Випадкове маскування частин зображень їжі, щоб навчити модель розпізнавати предмети, навіть коли вони частково приховані.
- Передача стилю: Генерація синтетичних зображень, які зберігають ідентичність їжі, змінюючи фон, стиль подачі та посуд.
Безперервне навчання з даних користувачів
З понад 2 мільйонами активних користувачів, які щодня реєструють свої страви, система Nutrola виграє від безперервного зворотного зв'язку. Коли користувач виправляє неправильно ідентифікований продукт, це виправлення стає сигналом для навчання. З часом це вдосконалення, кероване користувачами, вирішує крайні випадки та регіональні варіації їжі, які жоден початковий навчальний набір даних не міг би повністю передбачити.
Це особливо цінно для:
- Регіональних страв, які можуть не з'являтися в академічних наборах даних про їжу
- Нових харчових трендів (нові продукти, ф'южн-кухні, вірусні рецепти)
- Продуктів конкретних брендів, де упаковка та презентація змінюються в залежності від регіональних ринків
- Домашніх страв, які виглядають інакше, ніж ресторанні презентації
Оцінка порцій: складніша проблема
Чому оцінка порцій важливіша за ідентифікацію
Правильна ідентифікація продукту — це лише половина проблеми. Харчова різниця між порцією пасти 100 г і 250 г становить 230 калорій, що може суттєво вплинути на дієту. Оцінка порцій з одного фотографії є, в багатьох відношеннях, більш технічно складним викликом.
Оцінка глибини та масштабу
2D фотографія не містить інформації про глибину, необхідної для прямого вимірювання об'єму їжі. Система повинна вивести тривимірні властивості з двовимірних підказок:
- Об'єкти-еталони: Тарілки, миски, столові прибори та руки в кадрі надають масштабні еталони. Стандартна обідня тарілка (приблизно 26 см в діаметрі) служить основою для оцінки розміру всього, що на ній.
- Геометрія перспективи: Кут, під яким зроблено фото, впливає на видиму величину. Тарілка, сфотографована прямо зверху, виглядає інакше, ніж та, що сфотографована під кутом 45 градусів. Система оцінює кут камери та коригує перспективні спотворення.
- Моделі щільності, специфічні для їжі: Однаковий об'єм салату та стейка має кардинально різні ваги та калорійний вміст. Система застосовує пріоритети щільності, специфічні для їжі, щоб перетворити оцінену величину в оцінену вагу.
- Вивчені розподіли порцій: Статистичні пріоритети з мільйонів зареєстрованих страв інформують про очікувані розміри порцій. Якщо модель виявляє "миску вівсянки", вона знає, що медіанна порція становить приблизно 250 г і використовує цей пріоритет для обмеження своєї оцінки.
Бенчмарки точності
Наскільки точна оцінка порцій на основі ШІ? Дослідницькі бенчмарки надають контекст:
| Метод | Середня помилка (% від справжньої ваги) |
|---|---|
| Візуальна оцінка людини (не навченого) | 40-60% |
| Візуальна оцінка людини (навчений дієтолог) | 15-25% |
| Оцінка зображення з одного фото (епоха 2020) | 20-30% |
| Оцінка зображення з одного фото (сучасний стан, 2025) | 10-20% |
| Оцінка ШІ з об'єктом-еталоном | 8-15% |
| Вимірювання їжі з вагами (золотий стандарт) | <1% |
Сучасні системи ШІ не можуть зрівнятися з вагами для їжі, але вони постійно перевершують оцінку не навчених людей і наближаються до точності навчений дієтологів. Для більшості випадків відстеження цей рівень точності є достатнім для підтримки значущих харчових висновків.
Шар харчового картографування
Від візуальної ідентифікації до харчових даних
Ідентифікація "грильованої курячої грудинки" на фото є корисною лише в тому випадку, якщо ця ідентифікація відображає точні харчові дані. Тут стає важливим 100% перевірена база даних харчування Nutrola.
Шар картографування з'єднує кожну візуальну класифікацію з конкретним записом у базі даних, що містить:
- Розподіл макронутрієнтів (калорії, білки, вуглеводи, жири)
- Профіль мікронутрієнтів (вітаміни, мінерали)
- Варіації розміру порцій
- Корекції методу приготування (грильована курка проти смаженої має значно різний вміст жиру)
- Регіональні та брендовані варіації
Це картографування не є простим таблицею для пошуку. Система враховує:
- Виявлення методу приготування: Візуальні підказки (підрум'янення, блиск олії, сліди обжарювання) допомагають визначити, чи була їжа приготована на грилі, смажена, запечена чи приготована на парі, кожен з яких змінює харчовий профіль.
- Оцінка соусів та начинок: Видимі соуси, заправки, сири та начинки ідентифікуються, а їх харчові внески додаються до базового продукту.
- Оцінка складних страв: Для змішаних страв, де точні рецепти невідомі, система використовує статистичні моделі типової композиції для оцінки вмісту макро- та мікронутрієнтів.
Різниця в перевірці
Багато систем розпізнавання їжі картографують до неперевірених, створених користувачами баз даних харчування. Це вводить накопичувальну помилку: навіть якщо візуальна ідентифікація правильна, харчові дані, до яких вона картографується, можуть бути неправильними. Підхід Nutrola, що підтримує базу даних, перевірену дієтологами, усуває це друге джерело помилки, забезпечуючи, щоб правильна ідентифікація призводила до правильної харчової інформації.
Крайні випадки та постійні виклики
Де сучасні системи стикаються з труднощами
Прозорість щодо обмежень є такою ж важливою, як і підкреслення можливостей. Сучасний ШІ для розпізнавання їжі, включаючи систему Nutrola, стикається з постійними викликами:
- Сховані інгредієнти: Харчова цінність смузі-бowl залежить від того, що змішано всередині, що не видно на фото. Система покладається на загальні моделі рецептів і може запитувати користувачів про додаткову інформацію.
- Дуже схожі продукти: Відрізнити візуально ідентичні продукти (наприклад, звичайне пюре проти пюре з цвітної капусти) іноді вимагає підтвердження від користувача.
- Незвичні презентації: Їжа, представлена незвичним чином, наприклад, молекулярна гастрономія або дуже художнє оформлення, може заплутати системи виявлення.
- Екстремальні умови освітлення: Дуже темні ресторани або різкі спалахи знижують якість зображення та зменшують точність розпізнавання.
- Упаковані продукти без видимих етикеток: Загорнуте сендвіч або закрита упаковка надає обмежену візуальну інформацію.
Як Nutrola справляється з невизначеністю
Коли ШІ не впевнений у своїй ідентифікації, система використовує кілька стратегій:
- Топ-N пропозиції: Замість того, щоб зупинятися на одній ідентифікації, система пропонує найбільш ймовірні варіанти та дозволяє користувачу вибрати правильний.
- Уточнюючі запитання: AI Diet Assistant може ставити додаткові запитання: "Це білий рис чи рис з цвітної капусти?" або "Це містить соус на основі вершків чи томатів?"
- Голосове доповнення: Користувачі можуть додати усний контекст до фото: зробіть знімок і скажіть "це суп з сочевиці, приготований моєю мамою з кокосовим молоком." Голосовий ввід розрізняє візуальне.
- Навчання з виправлень: Кожне виправлення користувача покращує майбутню точність для подібних предметів.
Процесинговий конвеєр: від фото до харчування менш ніж за дві секунди
Ось спрощений погляд на те, що відбувається, коли користувач Nutrola робить фото їжі:
Крок 1 (0-200мс): Попередня обробка зображення. Фото нормалізується за розміром, орієнтацією та кольоровим балансом. Базові перевірки якості забезпечують, щоб зображення було придатним для використання.
Крок 2 (200-600мс): Виявлення кількох предметів. Модель виявлення визначає області, що містять окремі продукти, і малює обмежувальні рамки навколо кожного.
Крок 3 (600-1000мс): Класифікація по регіонах. Кожна виявлена область класифікується відповідно до таксономії з понад 130,000 продуктів. Кожній класифікації присвоюються бали впевненості.
Крок 4 (1000-1400мс): Оцінка порцій. Об'єм та вага оцінюються для кожного виявленого предмета за допомогою глибини, масштабування об'єктів-еталонів та моделей щільності, специфічних для їжі.
Крок 5 (1400-1800мс): Харчове картографування. Кожен класифікований та порційований предмет зіставляється з його записом у базі даних, перевіреній дієтологами. Застосовуються корекції методу приготування.
Крок 6 (1800-2000мс): Збір результатів. Повний розподіл харчування збирається та представляється користувачу, з окремими предметами в списку та загальним підсумком страви.
Весь конвеєр зазвичай завершується менш ніж за дві секунди на сучасних смартфонах, при цьому початкове виявлення та класифікація працюють на пристрої, а харчове картографування підключається до хмарної бази даних Nutrola.
Що буде далі: Майбутнє ШІ для розпізнавання їжі
Нові можливості
Сфера ШІ для розпізнавання їжі продовжує швидко розвиватися:
- Відео-трекінг, що аналізує процес їжі, а не окремі фото, покращуючи оцінку порцій через кілька ракурсів
- Визнання на рівні інгредієнтів, що ідентифікує окремі компоненти в змішаних стравах, а не розглядає їх як єдині записи
- Аналіз процесу приготування, що може оцінити зміни в харчовій цінності від сирих до приготованих станів на основі візуальних ознак методу приготування та тривалості
- AR-поміч для вимірювання порцій, що використовує датчики глибини смартфона (LiDAR) для більш точної оцінки об'єму
- Крос-модальне навчання, що поєднує візуальну, текстову (меню, етикетки) та контекстуальну (місце, час доби) інформацію для більш точної ідентифікації
Перевага масштабу
З понад 2 мільйонами користувачів у 50+ країнах, які реєструють мільйони страв, система розпізнавання Nutrola покращується темпами, які академічні дослідження не можуть зрівняти. Кожна зареєстрована страва є точкою даних. Кожне виправлення є сигналом для навчання. Кожна нова кухня, з якою стикаються, є розширенням знань моделі. Цей ефект "літаючого колеса" означає, що система стає помітно точнішою кожного місяця, особливо для довгого хвоста регіональних та культурних продуктів, які менші системи не можуть вивчити.
Підсумок
ШІ для розпізнавання їжі є одним з найскладніших технічних застосувань комп'ютерного зору, що вимагає вирішення проблем, з якими більшість систем класифікації зображень ніколи не стикаються: екстремальна візуальна варіація всередині категорій, виявлення кількох предметів на переповнених тарілках, оцінка тривимірних порцій з двовимірних зображень та картографування до перевірених харчових даних з понад 130,000 предметів з десятків кухонь.
Технологія, що стоїть за функцією Snap & Track Nutrola, представляє собою злиття глибоких згорткових нейронних мереж, розвинених архітектур виявлення об'єктів, статистичних моделей оцінки порцій та бази даних харчування, перевіреної дієтологами. Результат — система, яка може перетворити звичайне фото вашого обіду на детальний розподіл харчування менш ніж за дві секунди.
Вона не ідеальна. Жодна сучасна система не є. Але вона достатньо точна, щоб зробити відстеження харчування практичним для мільйонів людей, які ніколи не зважують свою їжу або не шукають вручну в базі даних. І вона покращується щодня, навчаючись на кожній страві, яку ділять її користувачі. Це поєднання поточної можливості та безперервного вдосконалення робить розпізнавання їжі на основі ШІ не лише технічним досягненням, але й практичним інструментом для кращого харчування.
Готові трансформувати своє відстеження харчування?
Приєднуйтесь до тисяч, які трансформували свою подорож до здоров'я з Nutrola!