Як комп'ютерне зір визначає їжу: технології за AI-трекінгом калорій
Досліджуйте, як згорткові нейронні мережі та класифікація зображень забезпечують AI-розпізнавання їжі, дозволяючи додаткам, таким як Nutrola, перетворювати просте фото на точні дані про калорії.
Кожного разу, коли ви наводите камеру свого телефону на тарілку з їжею і отримуєте миттєвий розрахунок калорій, за цим стоїть складний ланцюг процесів штучного інтелекту. Те, що здається простим дотиком, насправді включає згорткові нейронні мережі, багатокласову класифікацію зображень і роки досліджень у галузі комп'ютерного зору. Розуміння того, як працює ця технологія, допомагає пояснити, чому AI-трекінг калорій став таким точним і чому він продовжує вдосконалюватися.
Ця стаття розкриває основні технології, що стоять за AI-розпізнаванням їжі, від базових елементів нейронних мереж до специфічних інженерних викликів, пов'язаних з визначенням того, що знаходиться на вашій тарілці.
Що таке комп'ютерне зір і чому це важливо для харчування?
Комп'ютерне зір — це галузь штучного інтелекту, яка навчає машини інтерпретувати та розуміти візуальну інформацію з реального світу. Хоча люди без зусиль розрізняють миску вівсянки від тарілки пасти, навчити комп'ютер робити те ж саме вимагає обробки мільйонів промаркованих зображень і створення математичних моделей візуальних патернів.
Для трекінгу харчування комп'ютерне зір вирішує найбільшу проблему самостійного моніторингу дієти: проблему ручного введення даних. Дослідження, опубліковане в Journal of the Academy of Nutrition and Dietetics, показало, що ручне ведення харчового щоденника призводить до недооцінки споживання калорій на 10-45 відсотків. Замінивши текстові описи фотографією, комп'ютерне зір усуває перешкоди, які змушують більшість людей відмовлятися від трекінгу їжі протягом перших двох тижнів.
Масштаб проблеми
Розпізнавання їжі вважається одним із найскладніших завдань класифікації зображень через величезну різноманітність:
- Існує тисячі різних страв у світовій кухні
- Одна й та ж їжа може виглядати кардинально по-різному в залежності від способу приготування
- Освітлення, кут зйомки та подача також впливають на зовнішній вигляд
- Часто на тарілці присутні кілька продуктів, що вимагає одночасної ідентифікації
- Розміри порцій варіюються, а не підпадають під чіткі категорії
Незважаючи на ці виклики, сучасні системи розпізнавання їжі досягають точності в топ-5 вище 90 відсотків за стандартними тестами, що означає, що правильний продукт з'являється в топ-5 варіантів системи більше дев'яти разів з десяти.
Згорткові нейронні мережі: основа розпізнавання їжі
В основі майже кожної системи розпізнавання їжі лежить тип архітектури глибокого навчання, відомий як згорткова нейронна мережа (CNN). Розуміння CNN є ключем до того, щоб зрозуміти, як ваш телефон може подивитися на фото і сказати, що ви їсте курку тікка масала з басматі.
Як CNN обробляє зображення
CNN обробляє зображення через серію шарів, кожен з яких призначений для виявлення все більш складних візуальних ознак:
Шар 1 - Виявлення країв: Перший згортковий шар навчається виявляти прості краї та градієнти кольору. Він може розпізнати вигнуту крайку миски або межу між шматком м'яса та соусом.
Шар 2 - Визнання текстур: Глибші шари об'єднують краї в текстури. Мережа починає розрізняти зернисту текстуру коричневого рису від гладкої поверхні білого рису або волокнисту текстуру грильованої курки від блискучого вигляду смаженої курки.
Шар 3 - Визнання форм і патернів: Вищі шари збирають текстури в впізнавані форми та патерни. Кругла форма з певною текстурою може бути класифікована як тортилья, тоді як витягнута форма з іншою текстурою стає хлібною паличкою.
Шар 4 - Визнання об'єктів: Останні згорткові шари об'єднують всю попередню інформацію для розпізнавання цілісних продуктів. Мережа навчилася, що певна комбінація кольору, текстури, форми та контексту відповідає конкретній їжі.
Роль пулингу та карт ознак
Між згортковими шарами пулингові шари зменшують просторові розміри даних, зберігаючи найважливіші ознаки. Це виконує дві функції: робить обчислення керованими та забезпечує певний ступінь трансляційної інваріантності, що означає, що мережа може розпізнавати продукт незалежно від того, де він з'являється в кадрі.
Вихід кожного згорткового шару називається картою ознак. Ранні карти ознак захоплюють інформацію низького рівня, таку як краї та кольори, тоді як пізні карти ознак кодують концепції високого рівня, такі як "ця область містить спагетті". Типова модель розпізнавання їжі генерує сотні таких карт ознак на кожному шарі.
Популярні архітектури CNN, що використовуються в розпізнаванні їжі
| Архітектура | Рік | Ключова інновація | Типове використання в AI їжі |
|---|---|---|---|
| AlexNet | 2012 | Довела, що глибокі CNN працюють на великій шкалі | Ранні дослідження розпізнавання їжі |
| VGGNet | 2014 | Показала, що глибина має значення | Витягування ознак для наборів даних їжі |
| GoogLeNet/Inception | 2014 | Обробка на кількох масштабах | Ефективне мобільне розпізнавання їжі |
| ResNet | 2015 | Резервні з'єднання для дуже глибоких мереж | Високоточна класифікація їжі |
| EfficientNet | 2019 | Збалансоване масштабування глибини, ширини, роздільної здатності | Сучасні мобільні додатки для розпізнавання їжі |
| Vision Transformers | 2020 | Самоувага для патчів зображень | Дослідження розпізнавання їжі на передовій |
Від класифікації до багатокласного виявлення
Ранні системи розпізнавання їжі розглядали завдання як просту класифікацію: отримавши одне зображення, потрібно передбачити одну етикетку їжі. Але реальні страви рідко такі прості. Типовий обід може містити основний білок, гарнір з овочів, злаки та соус, все на одній тарілці.
Виявлення об'єктів для складних тарілок
Сучасні системи розпізнавання їжі використовують фреймворки виявлення об'єктів, які можуть ідентифікувати та локалізувати кілька продуктів у межах одного зображення. Ці системи малюють обмежувальні рамки навколо кожного окремого продукту та класифікують їх незалежно.
Архітектури, такі як YOLO (You Only Look Once) та Faster R-CNN, були адаптовані для виявлення їжі. Ці моделі ділять зображення на сітку та одночасно прогнозують як місце розташування, так і клас продуктів, що дозволяє здійснювати обробку в реальному часі на мобільних пристроях.
Семантична сегментація для точних меж
Для ще більшої точності деякі системи використовують семантичну сегментацію, яка класифікує кожен піксель у зображенні як належний до певної категорії їжі. Це особливо корисно для змішаних страв, таких як салати або стір-фрай, де різні інгредієнти перекриваються та переплітаються.
Функція Snap & Track від Nutrola використовує комбінацію цих підходів. Коли ви фотографуєте свою страву, система спочатку виявляє окремі області їжі, потім класифікує кожну з них і, нарешті, оцінює кількість кожного продукту. Цей багатоступеневий процес дозволяє системі впоратися з усім — від простої банана до складної багатопорційної страви.
Навчальні дані: паливо для точного розпізнавання їжі
Модель розпізнавання їжі є настільки ж хорошою, як і дані, на яких вона була навчена. Створення якісного набору зображень їжі є одним із найскладніших і ресурсомістких аспектів розробки AI для їжі.
Публічні еталонні набори даних
Кілька публічних наборів даних сприяли прогресу в дослідженнях розпізнавання їжі:
- Food-101: Містить 101 000 зображень у 101 категорії їжі, широко використовується як еталон
- ISIA Food-500: Охоплює 500 категорій їжі з 400 000 зображень, пропонуючи ширше охоплення
- UEC Food-256: Японський набір даних їжі з 256 категоріями, важливий для охоплення азійської кухні
- Nutrition5k: Парами зображень їжі з точними харчовими вимірюваннями з лабораторних умов
Виклик реального різноманіття
Публічні набори даних, хоч і цінні для досліджень, не повністю представляють різноманіття їжі, яку люди їдять у всьому світі. Модель, навчена переважно на західній кухні, матиме труднощі з азійськими стравами, і навпаки. Саме тому виробничі системи розпізнавання їжі доповнюють публічні набори даних власними даними, зібраними з їхньої бази користувачів.
Nutrola обслуговує користувачів у понад 50 країнах, що означає, що система щодня стикається з величезним різноманіттям кухонь. Ця глобальна база користувачів забезпечує безперервний потік реальних зображень їжі, які допомагають моделі покращувати своє розпізнавання у всіх кухнях з часом.
Техніки збільшення даних
Щоб штучно розширити навчальні дані та покращити стійкість моделі, інженери застосовують різні техніки збільшення даних:
- Обертання та перевертання: Забезпечує, щоб модель розпізнавала їжу з будь-якого кута
- Зміна кольору: Симулює різні умови освітлення
- Випадкове обрізання: Навчає модель розпізнавати часткові види їжі
- Cutout та mixup: Складні техніки, які змушують модель зосереджуватися на кількох відмінних регіонах, а не покладатися на один візуальний сигнал
Як працює технологія Snap & Track від Nutrola
Функція Snap & Track від Nutrola об'єднує всі ці технології в єдиний користувацький досвід. Ось що відбувається приблизно за дві секунди між зйомкою фото та отриманням розрахунку калорій:
Попередня обробка зображення: Фото змінюється в розмірі та нормалізується до формату, очікуваного нейронною мережею. Застосовуються корекції освітлення та кольору для стандартизації вхідних даних.
Виявлення їжі: Модель виявлення об'єктів ідентифікує окремі області їжі на зображенні та малює обмежувальні рамки навколо кожної з них.
Класифікація: Кожна виявлена область передається через класифікаційну мережу, яка визначає конкретний продукт. Система враховує найкращі кандидати та їхні оцінки впевненості.
Оцінка порцій: Окрема модель оцінює об'єм та вагу кожного виявленого продукту на основі візуальних ознак та еталонних розмірів (більше про це в нашій супутній статті про оцінку розміру порцій).
Пошук харчових даних: Виявлені продукти та оцінені порції зіставляються з комплексною харчовою базою даних для розрахунку калорій, макронутрієнтів та мікронутрієнтів.
Перевірка користувача: Результати надаються користувачу, який може підтвердити або виправити ідентифікації. Цей зворотний зв'язок постійно покращує модель.
Увесь цей процес відбувається менш ніж за дві секунди, що робить його швидшим, ніж введення "грила курячої грудинки" у рядок пошуку та перегляд десятків результатів.
Виклики в AI-розпізнаванні їжі
Незважаючи на вражаючий прогрес, AI-розпізнавання їжі все ще стикається з кількома викликами, над якими активно працюють дослідники та інженери.
Візуально схожі продукти
Деякі продукти виглядають майже ідентично на фотографіях, але мають дуже різні харчові профілі. Білий рис і рис з цвітної капусти, звичайна паста та цільнозернова паста, а також сир з повним вмістом жиру та з низьким вмістом жиру — все це приклади візуально схожих продуктів, які суттєво відрізняються за калоріями та макронутрієнтами.
Сучасні системи справляються з цим за допомогою комбінації контекстуальних підказок (що ще на тарілці), історії користувача (що зазвичай їсть людина) та запитуючи користувача підтвердити, коли впевненість низька.
Змішані та багатошарові страви
Бурріто, сендвіч або запіканка представляють основну проблему: більшість інгредієнтів приховані від погляду. AI може бачити тортилью, але не боби, сир, сметану та рис всередині.
Щоб вирішити цю проблему, моделі вивчають типовий склад звичайних страв. Коли система ідентифікує бурріто, вона може зробити висновок про ймовірні внутрішні інгредієнти на основі видимого зовнішнього вигляду та звичайних методів приготування. Користувачі можуть потім коригувати конкретні начинки за потреби.
Освітлення та умови навколишнього середовища
Тьмяне освітлення в ресторані, різкий спалах та кольорове навколишнє світло можуть впливати на зовнішній вигляд їжі. Жовте освітлення може зробити білий рис схожим на рис з шафраном, тоді як синє освітлення може зробити червоне м'ясо коричневим.
Сучасні системи вирішують це за допомогою збільшення навчальних даних та створення кольорово-інваріантних ознак, які більше зосереджуються на текстурі та формі, ніж на абсолютних значеннях кольору.
Майбутнє технології розпізнавання їжі
AI-розпізнавання їжі швидко еволюціонує. Кілька нових тенденцій вказують на ще більш потужні системи в найближчому майбутньому:
Розпізнавання на основі відео: Замість аналізу одного фото, майбутні системи можуть аналізувати короткий відеокліп страви, захоплюючи кілька кутів і покращуючи точність.
Накладки доповненої реальності: AR може надавати інформацію про харчування в реальному часі, коли ви скануєте шведський стіл або меню ресторану, допомагаючи вам приймати обґрунтовані рішення перед їжею.
Багатомодальні моделі: Поєднання візуального розпізнавання з текстом (меню, списки інгредієнтів) і навіть аудіо (запитуючи користувача "чи додали ви соус?") для більш повного розуміння страви.
Обробка на пристрої: Оскільки мобільні процесори стають потужнішими, більше AI-обробки може відбуватися безпосередньо на телефоні без відправки зображень на сервер, що покращує швидкість і конфіденційність.
Розпізнавання на рівні інгредієнтів: Перехід від класифікації на рівні страв до ідентифікації окремих інгредієнтів і їх приблизних кількостей, що дозволяє здійснювати більш точні харчові розрахунки.
Чому точність продовжує покращуватися
Одним із найобнадійливіших аспектів AI-розпізнавання їжі є його вбудований механізм покращення. Щоразу, коли користувач робить фото і підтверджує або виправляє результат, система отримує промарковану точку даних. З мільйонами користувачів, які щодня реєструють свої страви, виробничі системи, такі як Nutrola, накопичують навчальні дані з швидкістю, яку академічні дослідження не можуть зрівняти.
Це створює позитивний цикл: краща точність призводить до більшої кількості користувачів, більше користувачів генерують більше даних, більше даних дозволяє досягати кращої точності. Саме тому розпізнавання їжі, яке ви спостерігаєте сьогодні, значно краще, ніж те, що було доступно навіть рік тому, і воно продовжуватиме вдосконалюватися.
Питання та відповіді
Наскільки точним є AI-розпізнавання їжі в порівнянні з ручним веденням?
Дослідження показали, що AI-розпізнавання їжі може досягати точності понад 90 відсотків для звичайних продуктів, що є порівнянним або навіть кращим, ніж точність навчених дієтологів, які оцінюють порції вручну. Ручне ведення даних непрофесіоналами зазвичай недооцінює споживання калорій на 10-45 відсотків, що робить ведення даних за допомогою AI більш надійним для більшості людей.
Чи може AI-розпізнавання їжі працювати з кухнями з усього світу?
Так, хоча точність варіюється в залежності від кухні, враховуючи доступні навчальні дані. Системи, такі як Nutrola, які обслуговують глобальну базу користувачів у 50 і більше країнах, постійно покращують своє розпізнавання різноманітних кухонь, оскільки вони збирають більше даних від користувачів з усього світу. Чим більше кухня представлена в навчальних даних, тим точніше стає розпізнавання.
Чи працює AI-розпізнавання їжі офлайн?
Це залежить від реалізації. Деякі додатки обробляють зображення на пристрої, використовуючи оптимізовані моделі, що працює офлайн, але може жертвувати деякою точністю. Інші надсилають зображення на хмарні сервери для обробки, що вимагає підключення до Інтернету, але може використовувати більші, більш точні моделі. Багато сучасних додатків використовують гібридний підхід, виконуючи початкове розпізнавання на пристрої та уточнюючи результати за допомогою хмарної обробки, коли це можливо.
Як AI справляється з домашніми стравами, які не відповідають ресторанним стравам?
Сучасні системи розпізнавання їжі навчені на зображеннях як ресторанних, так і домашніх страв. Вони ідентифікують окремі компоненти, а не намагаються зіставити повну страву з записом у базі даних. Тому домашній стір-фрай буде розкладений на його видимі компоненти (курка, броколі, рис, соус), а не зіставлений з єдиним пунктом меню.
Чи зберігаються дані моїх фотографій їжі в приватності?
Політики конфіденційності варіюються в залежності від додатку. Nutrola прагне до конфіденційності користувачів і використовує зображення їжі виключно для цілей харчового аналізу та покращення моделі. Зображення обробляються безпечно і не передаються третім особам. Користувачі можуть переглянути політику конфіденційності для отримання повних деталей щодо практик обробки даних.
Що відбувається, коли AI помиляється в ідентифікації їжі?
Коли AI неправильно ідентифікує їжу, користувачі можуть виправити результат, вибравши правильний пункт зі списку або ввівши правильну їжу. Це виправлення слугує цінною навчальною даними, які допомагають моделі покращуватися з часом. Чим більше виправлень система отримує для конкретної їжі, тим швидше її точність покращується для цього продукту.
Готові трансформувати своє відстеження харчування?
Приєднуйтесь до тисяч, які трансформували свою подорож до здоров'я з Nutrola!