Почему еду на подносе сложно распознавать
На тарелке может быть несколько блюд, они перемешиваются и перекрывают друг друга. Почему segmentation или metric learning не решают задачу автоматически?
Короткий ответ
Смешанная еда ломает четкие границы объектов: одно блюдо может лежать внутри другого, классы похожи визуально, а cosine similarity начинает сравнивать смесь, а не отдельный item.
Полный разбор
У обычной object detection задачи есть относительно понятные объекты. В столовой это часто не так: рис, овощи, соус и мясо могут лежать в одной зоне, перекрывать друг друга и визуально смешиваться. Поэтому bounding box или segmentation mask не всегда соответствует "блюду" как позиции в меню.
Metric learning тоже не магия. Если embedding считается по кропу, где внутри сразу несколько блюд, расстояние отражает смесь признаков. Hard negatives появляются постоянно: похожие гарниры, разные блюда одного цвета, разные подачи одного блюда, локальная кухня, которую модель не видела.
Практичный ответ - гибрид: ограничения меню конкретной точки, несколько view/камер, quality checks, business rules, confidence thresholds, active learning на ошибках и, возможно, VLM/teacher для разметки или reranking.
Теория
Здесь ошибка часто не в архитектуре, а в mismatch между визуальным объектом и бизнес-объектом "позиция меню".
Типичные ошибки
- Сказать "возьмем YOLO/segmentation и готово".
- Не объяснить, что такое hard negatives в еде.
- Игнорировать меню конкретной столовой.
Как отвечать на собеседовании
- Объясни mismatch: mask/object != menu item.
- Предложи hybrid system, а не одну модель.