Нейронные сети и распознавание изображений

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

Нейронные сети и машинное обучение

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

Схема нейронной сети

Схематичное изображение 3-уровневой нейронной сети, источник

Для распознавания изображений используются сверточные нейронные сети (англ. convolutional neural network — CNN) глубиной 19, 50 или даже 1 000 слоев. CNN получает изображение и выдает 5 предположений, ранжированных по вероятности.

Критерием точности негласно признают ImageNet Challenge, цель которого научить CNN классифицировать картинки по 1 000 категорий (телевизор, кабриолет, собака и т.п.). 1,2 млн изображений используется для тренировки, 100 000 для тестирования и еще 50 000 – для валидации.

AlexNet классифицирует изображения

Примеры того, как нейронная сеть AlexNet распознает объекты на картинках

Чем чаще топовая категория оказывается верной, тем точнее CNN и ниже top-1 error rate (коэффициент ошибки топ-1). Для top-5 error rate ошибкой считается, если среди 5 лучших вариантов нет правильного ответа.

Например, лучший в 2012, AlexNet показал top-5=15,3%, а Inception-v3 в 2015 — уже 3.5%. Но как справится с заданием человек? Если любопытно, пройти тест можно здесь.

5 приложений, которые понимают, что на картинке

Даже если у вас нет новейшей системы безопасности или беспилотного авто, вы можете увидеть нейронные сети в деле. Просто скачайте мобильное приложение.

Мир глазами программы

AI Scry покажет, как искусственный интеллект видит привычные предметы. «Мозгом» приложения стала нейронная сеть Neural Talk, разработанная Andrej Karpathy. Технологии распознавания не на 100% точны, что приложение с юмором демонстрирует. Например, называя кактус котом.

Скриншот приложения AI Scry

Источник: creators.vice.com

В AI Scry есть интересная настройка – «Attention Aperture», которая влияет на результат. Поставите на минимум – получите безопасные и очевидные ответы. А если выкрутить до максимума – программа свободнее (и безумнее) интерпретирует объекты. Приложение доступно только для iOS и стоит 75 руб.

Эффекты и фильтры, фильтры и эффекты

FaceApp – наверняка, знакомый вам фоторедактор, который добавляет улыбки, меняет возраст или пол и развлекает другими эффектами. Разработка российской студии Wireless Lab появилась сначала на iOS, а чуть позже стала доступна и на Android.

Создатели «с нуля» тренировали нейронную сеть специально для модификации лиц. FaceApp не запрашивает лишних разрешений вроде GPS (в отличие от конкурента Meitu). Разработчики сказали The Verge, что фото загружаются на сервер для экономии трафика, но долго не хранятся. Монетизируют проект за счет рекламы и платной PRO-версии, где нет объявлений и доступны доп. фичи.

Пример коллажа FaceApp

FaceApp меняет Арнольда Шварценеггера: оригинал, улыбка, молодость и женщина

Хотите портрет в стиле поп-арт, импрессионизма или кубизма? Попробуйте Prisma. Как и FaceApp, проект делали российские разработчики. Чтобы улучшить приложение, они ускорили нейронные сети, добавили фильтров и перенесли обработку на устройства. Prisma можно бесплатно скачать в App Store или Google Play.

Обработка в Prisma

Слева — оригиналы фото, справа — в стиле Surf и Gothic

Считаем калории по… фото

Ок, пока процесс не полностью автоматизирован. Но Google уже работает над приложением Im2calories, которое будет считать калории только по картинке. никаких лишних телодвижений!

В упрощенном виде фича есть в LoseIt (iOS Android) или FatSecret (iOS Android). Приложения определят, что на фото – бутерброд или банан, но вид и размер порции придется уточнять вручную. Альтернативно используется скан штрих-кода и поиск по названию, но забивать, например, яблоки удобнее через камеру.

Распознавание еды в приложениях FatSecret и LoseIt

LoseIt для iOS и FatSecret для Android

Препятствия

Распознавание еще даже не довели до совершентсва, а уже есть способы обмануть нейронные сети. Читайте про adversarial images в нашей следующей статье.