Прототип сервиса, который распознает гриб по фото
tl;dr Прототип сервиса распознавания грибов по фотографии https://twitter.com/mushroomaibot
Задав вопрос на Spark, опросив грибников на форумах и побеседовав со знакомыми, мы пришли к выводу, что основным продуктом Mushroom.ai будет мобильное приложение, распознающее грибы офлайн, под платформы iOS и Android.
Понять то, к чему мы идём, это, конечно, здорово, но нас постоянно спрашивают: “А работает ли распознавание?”, “А насколько быстро и точно?”, “А где можно попробовать?”. Собственно говоря, поэтому мы решили не томить всех в ожидании, а запустить онлайн-прототип нашего приложения, бот в Twitter: @mushroomaibot
Задача
Просто запустить прототип было бы слишком “просто”. Поэтому мы решили изначально запустить его почти в таких же условиях, в которых будет работать мобильное приложение, а именно:
- Размер не более 100 мегабайт (в настоящее время: 80 мегабайт без компрессии)
- Ответ не более 3 секунд (в текущей реализации 200 миллисекунд, но, блин, Twitter позволяет отвечать только раз в минуту)
- Намеренно выбран сервер по мощности примерно равный современному смартфону О_о
И мы решили эту задачу! Работает, распознаёт, радует пользователей и нас самих ;)
Технические детали
Для распознавания видов грибов мы использовали глубокую свёрточную нейронную сеть. Проектирование нейронной сети выполнено с использованием открытой и достаточно популярной библиотеки tensorflow. В настоящее время количество натренированных параметров сети более 20 миллионов, что позволяет сочетать скорость и точность определения вида гриба.
Для обучения такого большого количества параметров мы задействовали специальные GPU сервера от AWS, так как на обычном настольном компьютере это может занять до нескольких недель. Базу фотографий грибов для обучения нейронной сети мы пополняем ежедневно, делая предсказания точнее с каждым днём.
Описание прототипа
Для создания прототипа мы выбрали 10 видов грибов:
- Свинушка тонкая (paxillus involutus)
- Мухомор красный (amanita muscaria)
- Шампиньон двуспоровый (agaricus bisporus)
- Бледная поганка (amanita phalloides)
- Шампиньон обыкновенный (agaricus campestris)
- Дождевик шиповатый (lycoperdon perlatum)
- Подберезовик обыкновенный (leccinum scabrum)
- Лисичка обыкновенная (cantharellus cibarius)
- Белый гриб (boletus edulis)
- Маслёнок обыкновенный (suillus luteus)
Чтобы распознать образец гриба, вам необходимо:
- Если вы ещё не зарегистрированы в Twitter О_о, то зарегистрироваться.
- Открыть профиль бота @mushroomaibot или просто упомянуть его в сообщении.
- Отправить боту твит с фотографией гриба (желательно, но не обязательно, чтобы гриб был запечатлен сбоку и отчетливо виден).
Как только фото будет обработано, бот опубликует ответ в своей ленте.
Будем рады любым отзывам и пожеланиям как по работе прототипа, так и по поводу конечного продукта в комментариях к этому посту.
Встречаем, пробуем: https://twitter.com/mushroomaibot