Comments 59
А зачем суп распознавать? Наливай в разные тарелки, а тарелки помечай ...
Вы правы, это один из возможных способов. Но это дополнительные накладные расходы. Разные тарелки под каждое блюдо - это не бюджетно, больше работы персоналу. Плюс могут перепутать на раздаче. Подход теоретически рабочий, но у нас не прижился.
А что если сделать всё наоборот? Блюда ведь подают людям, а не сами забирают (исключая уже упакованные). Так что делаем номер для вставших в очередь людей, выдаём номер, а потом пока будут проходить по номеру выдающий будет указывать, что по такому-то номеру отдано такое то блюдо. А т.к. место и блюдо всегда одно и тоже, то заранее сотрудник мог выбрать, что будет выбирать у себя и делать быстрей (можно вообще в автоматизации просто номер покупателя вводить и всё, заранее выбрав номер блюда). Так что когда покупатель подойдёт на кассу по таким объектам будет точно ясно, что он выбрал.
Верно. Только хотел написать. Очередная выдумка от технарей.
Надеюсь, бэкенд распознавания не из индусов состоит? :)
В целом, интересно. Давайте вторую часть.
Понравилось, как в итоге покупатель стал частью обучающего пайплайна. Столовская RL-система с человеческим обратным связью, иначе никак
Если система сомневается между блюдами, она выводит их на экран и просит покупателя выбрать правильный вариант.

Выбрано "яйцо вареное". Яйцо вареное, молоко сгущеное или ряженка... Разве они похожи, чтобы предлагать выбрать правильный вариант?
Это, видимо, один из тестовых прогонов, когда систему еще настраивали. Было задано пороговое значение уверенности, и если оно оказывалось ниже, то система выдавала ровно три варианта на выбор. На ранних стадиях обучения правильного варианта среди них могло и не оказаться. Но забавно, да)
Собственно, эксперименты с разными подходами к обучению все еще продолжаются.

поржать
а почему бы в расчет брать не только то, что в тарелке, но и то, что в кастрюле осталось? если за последние 5 минут вес кастрюли со свекольником не изменился, а с борщом изменился, то на подносе явно борщ
Не все так просто.
Очередь. За человеком на кассе стоят еще 50. Вполне возможно, кто-то из них уже взял и борща и свекольника. Мы не сможем в момент расчета точно сопоставить кастрюльный расход с блюдом на кассе.
Человек может попросить налить борща, а потом передумать и оставить на раздаче.
Кастрюли с борщом стоят на подогреве. Весы там в общем случае не предусмотрены.
Я не утверждаю, что так сделать невозможно, но здесь, как мне кажется, огромное поле для ошибок и человеческого фактора. Намного большее, чем в классическом OCR. ЕМНИП, даже у Amazon полностью автоматический магазин работал как раз за счет индусов, как тут верно отметили.
систему продавали как "у нас только камера и всё будет работать"
*когда-то работал прогером на распознавании изображений*
После обучения - работает. На комплексных обедах - точность 100%. В других форматах ниже, но все еще достаточно высоко, чтобы быть выгодным.
Один из 2-3 комплексных обедов человек мог выбрать и сам.
Вообще сломана сама система. Не надо так делать. Надо как у японцев делать. Пока ждешь в очереди в вендинговом автомате покупаешь жетоны на ту еду что тебе нужна(на них прям нарисована конкретная еда, причем они еще и многоразовые часто), потом меняешь их на еду на раздаче. И всё упрощается в разы.
На сегодня наверняка вместо жетонов можно мобильник использовать...
Хе-хе... Я на работе несколько раз пытался перед раздачей выбрать по меню, что я хочу сегодня съесть.
А на раздаче оказывалось - одно кончилось, другого не завезли, третье после 12 часов готовить будут... Зато есть четвёртое и пятое, которых не было в меню.
Можно как у японцев. А можно как у нас)
Расскажите подробнее, в чем там суть.
Читать пробовали ? Выбираешь и оплачиваешь заранее пока ждешь очереди. Кассир не нужен, система распознавания тоже.
Т.е. терминал все равно есть, только на входе, а не на выходе? И продает он не сами блюда, а жетоны? В некоторых советских столовых была такая схема, только с кассиршей вместо вендингового аппарата и бумажками вместо жетонов. Нифига не быстрее :)
В общем-то, я не спорю. Можно по всякому. Японцы вообще большие затейники в плане вендинга, как я слышал :)
Так задача не убыстрить, а обойтись без кассира. В целом терминал в телефоне позволит сэкономить и время и деньги, пока стоишь в очереди набиваешь всё что надо, чтобы не тратить время потом. Не нужно никакое железо итп. В целом можно сделать qr коды на ценниках, ведь ценники неизбежно должны быть. Взял тарелку, пропикал ценник телефоном, пошел дальше. Да что там код, достаточно двух или трехзначного номера зачастую.
Остается только вопрос кто это всё контролировать будет и как. Но он остается в любом случае, иначе человек просто может не платя с подносом выйти...
Подобный формат мы тоже делали. Но он больше подходит для фудкортов, а не традиционного формата столовой. В этом случае, действительно, у островков раздачи размещаются QR-коды для смартфона или считывающие терминалы, к которым нужно прикладывать карту сотрудника. Выбранное блюдо записывается на счет гостя. А на выходе из зала уже платежный терминал с готовой суммой. Т.е. получается как раз описанная вами схема: набрал еды, покушал, спокойно оплатил на выходе.
Однако пропускная способность такой схемы все же ниже. Для больших потоков не подходит. Люди шатаются по залу от островка к островку, мешают другу другу, хаос, суета.
Но он остается в любом случае, иначе человек просто может не платя с подносом выйти
Можно поставить турникеты, интегрированные со СКУД и кассой. Но в целом, как я уже писал - в столовых предприятий это не такая масштабная проблема.
Т.е. пользователей заставили выполнять работу кассира ?) А что пользователь получил от этого ? Только что-то мне подсказывает, что внедрение этой системы выйдет дороже, чем ЗП кассира за несколько лет. А эту систему надо еще и обслуживать. Какой смысл в такой системе для владельца? Чем вы обосновывали необходимость внедрения?
А что пользователь получил от этого ?
Пользователь получил меньше очередей, удобное и привычное (сегодня) обслуживание. В супермаркетах уже поголовно кассы СО. И туда часто идут, даже когда есть свободные кассиры. Сам пользуюсь каждый день. Здесь по сути то же самое. Вопрос привычки.
Какой смысл в такой системе для владельца?
Быстрое обслуживание. Для заводских столовых - это прямое снижение простоев в основной деятельности. У нас был кейс, когда люди элементарно не успевали за обеденный перерыв покушать.
Кассиры становятся не нужны. Это не только ЗП самих кассиров, но и расходы на их найм, обучение, отпуска, социальные выплаты, а также неизбежные потери на, скажем так, недобросовестность.
Кстати, найти кассира на низкую зарплату очень сложно, это реальная проблема (плюс еще текучка), а на высокую невыгодно. Обслуживание OCR намного дешевле. Конечно, кассиров можно еще заставить полы мыть и приемку товара делать, но это уже отдельная тема :)
Чем вы обосновывали необходимость внедрения?
Я знаю ответ - это модно, это ИИ, это цифровизация и вообще просто круто.
В 2020 году ИИ еще не был в трендах.
На самом деле это не мы обосновывали, это запрос который сформировался естественным путем, не в последнюю очередь под влиянием активных установок ксо в ритейле. Почему не попробовать сделать такое же для общепита?
Еще один значимый фактор - это нехватка кассиров, особенно в регионах. Особенно в ночные смены, если предприятие круглосуточное. Работать за копейки ночью желающих мало, поэтому первый кейс был именно про замену ночных кассиров. А уже потом всех.
А вся эта система работает оффлайн?
Оплата на терминале работает. Обучать новым блюдам тоже можно оффлайн. Для апдейтов самой нейросети нужен интернет.
Однако на самом деле это неважно, потому что кассы ныне обязаны работать через Честный знак и ОФД. А они только онлайн. Увы.
Вы пишете, что система просит покупателя выбрать правильный вариант, и "по мере получения таких корректировок, точность распознавания растет".
Я правильно понимаю, что вы сохраняете данные (фото с правильной разметкой) и модели сами дообучаются?
Не совсем понял, что вы имеете ввиду под "Обучать новым блюдам тоже можно оффлайн." Терминал сможет сам дообучиться? Разве для этого не нужен будет отдельный сервер?
Одно источника информации о предмете (OCR) здесь явно не достаточно. У мозга живого организма их явно больше при этом он (мозг) не всегда может сделать правильные выводы.
Нужен "электронный нос" - https://habr.com/ru/companies/first/articles/695986/ :-)
OCR - это Optical Character Recognition, распознавание текста. А здесь Object Detection.
При достаточно точной модели все должно работать мгновенно, в сравнении с кассиром . Поднос неподвижен, достаточно одного кадра, освещение можно поставить - идеальные условия.
Ну вам же даже в статье показали фото котлет и ризотто. Тут и человек фиг определит, не то что нейросеть. Внешний вид еды неспецифицирован и разные повара будут разную картинку генерировать, по одному рецепту заметьте. Добавить к этому разные емкости и разные подносы и получается не такая уж простая задача. Без дообучения тут никак.
Интересно быстро ли граждане начнут обучать что это не бутерброды с икрой, а стакан кефира ...
Ну показали, и что я, котлеты от компота не отличу? И креветки в рисе видно.
Человек-кассир определяет, значит, и нейросеть может. Просто в датасете нужны разные виды котлет, а не с одной столовой.
Так и есть. Человек видит сразу (хотя тоже не всегда), а нейросеть нужно обучать. А в датасет нужно включать разные виды котлет от разных поваров. Обо всем этом как раз и идет речь в статье. Технические моменты - в следующих.
Да? И вы отличите на глаз "котлету свиную рубленую" от "биточка". Особенно если название назначалось "потому что". Про борщ и свекольник автор уже упоминал.
Да никак не отличить некоторые части. К примеру котлету с маслом внутри и котлету без масла, потому что то, что внутри, ты не узнаешь, а если делать их одинаковой формы, то ни один кассир их не отличит, т.к. выглядят они абсолютно одинаково. Для этого делают изменения форм, чтобы понимать разницу для кассиров.
Удачи вам стакан пепсиколы от кокаколы по фото отличить....
Поднос неподвижен, достаточно одного кадра
Если бы :)
Optical Food Recognition, OFR. )
Эксплуатирование труда покупателей ради экономии на кассирах интересная затея, но тут так же много слабых мест, например, в магазине, если не пробил товар на кассе, то он запищит на выходе, здесь же мы имеем блюдо без упаковки и естественный в рост недобросовестных посетителей.
Так же возможно пробитие более дешевого товара в случае, когда его необходимо уточнить, думаю это актуально для напитков таких как вариации кофе или каркаде/компот.
Есть какой-то контроль от хитрецов?
Вкусная статья!
Скорее всего будет небольшой нюанс как с кассами самообслуживания - в больших магазинах, где много сотрудников и хорошо организованы процессы они работают отлично, а в маленьких бардачных нет - нужна газировка с кофеином или что-то о чем минздрав устал предупреждать, всё можно забыть о кассе самообслуживания... потому что подтвердить возраст или вообще некому или не всегда есть кому... Иногда можно сломать алгоритм стрельнув не тот штрихкод, иногда вещь есть физически а её нет в программе(как-то приспичило не в сезон сделать тыквенные лепешки, объехал десяток магазинов нигде нет в последнем нашлась тыква полный прилавок, но её не существовало в базе, такое правда не каждый живой сотрудник разрулит в пользу клиента) и это разруливать человеку. В итоге терминалов можно поставить много и увеличить пропускную способность, а вот человека оставить придется...
На самом деле, действительно, в текущей инкарнации, системы распознавания - это удел крупных компаний или операторов питания, потому что внедрение системы требует серьёзной вовлеченности и ресурсов заказчика, особенно на этапе внедрения. У больших компаний и процессы налажены и ресурс есть. А вот у небольших столовых это вряд ли взлетит.
Ну теоретически можно забацать франшизу столовых, с нуля часть проблем решается проще. Но поскольку проект, я так понимаю, собран по принципу - мы можем или когда в руках молоток - все вокруг кажется гвоздем. То придется еще раз пройти весь путь со стороны бизнес-процессов, если пройдет подобный аудит - даже есть шансы...
А есть запрет на газировку с кофеином для несовершеннолетних? А то её везде продают без просмотра возраста уже очень давно. Но вообще есть люди, которым кофеин под запретом, это да.
Внедрение киосков самообслуживания оказалось успешным.
Как это было посчитано? Можно хотя бы примерно привести расчеты вложенных средств/времени и полученного эффекта? И как считали эффект?
Интересует именно эффект для бизнеса. Сколько в итоге заработал бизнес? Надо еще учитывать загрузку столовой - может нет смысла вообще делать такую систему. Я сомневаюсь, что это вообще нужно - закопали деньги просто.
Экономический эффект я не могу разглашать из-за NDA, но он отнюдь не нулевой.
Что касается загрузки, на крупных предприятиях проходимость столовых достигает тысячи человек в час. В три смены. Для небольшой столовой где-то в спальном районе смысла в такой системе нет, ясное дело.
А можно только логику измерения эффекта? Как считали, по каким показателям и что улучшилось. Расходы на поддерку и внедрение системы дают экономию, скажем, на горизонте 5 лет. Так?
Срок окупаемости заложен год.
Тут много факторов на самом деле. Пилотные проекты в принципе редко окупаются. Это больше про общечеловеческий прогресс :) В начале много суеты, нужна активная реорганизация процессов. Человек-кассир может в непонятной ситуации что-то проинтуичить, выйти из положения, на худой конец крикнуть "Галя, отмена". А для КСО нужно все процессы и user flow прописать заранее. Но когда все налажено - системой пользуются, вопросы не возникают и уже можно думать об эффекте.
Эффект бывает прямой - экономия на кассирах. Условно, одна КСО заменяет двух кассиров. А есть косвенный - снижается нагрузка на кадры, налогов меньше, предсказуемая организация питания. Для больших организаций это весомо. Плюс репутационная составляющая, статус.
В разных регионах эффект разный. Кассиры на вахте на севере могут получать 60-70 тысяч, а где-нибудь в глубинке 25. Понятно, что во втором случае эффект ниже. С другой стороны, пойди еще найди кого-то на 25 тысяч. Контингент, согласный за такие деньги работать, весьма специфический. Тут вообще весь процесс может встать, поэтому и здесь внедрение оказывается оправдано, но в ином ключе.
Так что все индивидуально. Если есть интерес, можете в телегу написать в личку, обсудим предметно.
На середине статьи решил запостить в комменты тот случай из Хауса с салатом. Но вы подготовились :)
Почему в начале нет предупреждения о содержании!? Очень классная статья и интересная работа, НО хорошо, что читал на сытый желудок!)))
По различию котлет и пр. есть очень элегантное решение – столовые с ценником за граммы. Где основания еда заменяется по весу, а какая-то явно уникальная (десерты, хлеб, бургеры) идёт штучно. Что-то мне подсказывает – что именно на таких заведениях подобная система легко запустится)
P.S. нужна будет помощь в запуске в Сочи – напишите, у нас тут столовых очень много.


Как мы учили кассу самообслуживания в столовой отличать борщ от свекольника