CV для робота-кассира в столовой
Есть робот-кассир: пользователь ставит поднос с едой, система делает фото и за пару секунд должна распознать блюда и сформировать чек. Как спроектировать ML-систему?
Короткий ответ
Нужен pipeline: quality checks, tray/dish detection, recognition/classification, business rules по меню и ценам, confidence fallback и жесткий latency budget около пары секунд.
Полный разбор
Постановка здесь не "просто классифицировать картинку". На входе фото подноса, на выходе список блюд, их количество и чек. Поэтому pipeline лучше строить слоями: контроль качества кадра, детекция зон/тарелок/блюд, распознавание блюда, сверка с меню конкретной точки и расчет цены.
Данные критичны: меню локальное, блюда похожи, рецепты и подача меняются. Нужны фотографии из реальных точек, разметка блюд, hard cases с перекрытиями, плохим светом, перемешанной едой и новыми позициями. Для confidence ниже порога нужен fallback: ручная проверка, подсказка оператору или уточнение пользователю.
В production главное ограничение - latency. Модель, которая отвечает 40 секунд, может быть полезна как teacher/offline разметчик, но не как кассовый inference.
Теория
Food recognition в таком продукте объединяет detection, classification, retrieval по меню, quality control и product guardrails.
Типичные ошибки
- Предложить один общий classifier на все блюда без меню конкретной точки.
- Не обсудить latency и fallback.
- Не учесть перекрытия, смешанные блюда и смену меню.
Как отвечать на собеседовании
- Сначала проговори end-to-end контракт: фото -> блюда -> чек.
- Отдельно назови latency, local menu и confidence fallback.