Контроль кассира без просмотра записей: камера сверяет расчёт с заказом
Видеонаблюдение на кассе есть почти у всех. Толку от него мало: девять часов записи в день никто не пересматривает. Мы сделали так, чтобы записи смотрел не человек. Система сама разбирает происходящее у стойки, сверяет расчёт с учётной системой и пишет владельцу только тогда, когда деньги взяли, а заказа под них нет.

Почему записи не спасают
Запрос «контроль кассира» набирают 256 раз в месяц, и почти всегда за ним стоит одна и та же ситуация: камера висит, а недостача есть. Причина простая — просмотр стоит времени. Чтобы найти один расчёт мимо кассы, нужно отсмотреть смену целиком, и делают это обычно уже после того, как сошлась не та сумма.
Выборочный просмотр не работает тем более: наличные передают за несколько секунд, и попасть на этот момент случайной перемоткой почти невозможно.
Как устроена проверка
Раз в две минуты в рабочие часы система берёт короткий отрезок с камеры над кассовой зоной и проходит его тремя ступенями. Первые две нужны, чтобы не гонять дорогую модель по пустому помещению.
- Движение. Два лёгких кадра с паузой в три секунды сравниваются между собой. Ничего не изменилось — отрезок дальше не идёт.
- Есть ли клиент у стойки. Один кадр уходит в быструю дешёвую модель с единственным вопросом: стоит ли сейчас человек с внешней стороны стойки. Сотрудник, который просто ходит по залу, проверку не запускает.
- Разбор отрезка. Если клиент есть, пишутся сто секунд: звук плюс пятнадцать кадров. Всё это уходит одним запросом в модель, которая понимает и речь, и картинку.
Пока клиент стоит у стойки, отрезки идут подряд. Ещё одно правило: если в разговоре прозвучала сумма, следующие несколько минут снимаются даже при полной тишине — передача денег занимает секунду и никакого шума не создаёт.
Слова ничего не доказывают
Фраза «давайте наличными» — это намерение, а не расчёт. Клиент может передумать, приложить карту или уйти. Поэтому факт передачи денег система определяет только по кадрам: видно руку с купюрами, видно деньги на столе, видно телефон или карту у терминала. Звук помогает понять контекст и назвать сумму, но событием считается то, что видно.
Отдельно отсекаются телефонные разговоры. Сотрудник, который называет цену по телефону, звучит ровно как расчёт, и без этого правила система дёргала бы владельца каждый час.
Сверка с учётной системой
Событие не улетает владельцу сразу. Система ждёт двадцать минут — этого хватает, чтобы приёмщик оформил заказ и провёл оплату. Потом берутся все транзакции дня по всем кассам и ищется запись в окне плюс-минус двадцать минут от момента расчёта.
Нашлась — событие закрывается молча, и владелец о нём не узнаёт. Не нашлась — уходит сообщение.
Сумма при этом не сверяется. В первой версии сверялась, и мы от этого отказались: расхождение на пару сотен обычно означает скидку или доплату за деталь. Тревожит другое — деньги взяли, а записи под них нет.
Что видит владелец
Сообщение приходит в мессенджер текстом: время расчёта, признаки, по которым система решила, что деньги передали, до трёх дословных фраз из разговора, названная сумма и короткое описание сцены. В конце — «проверьте лично», потому что у наличных нет банковского следа.
Кадры события в сообщение не вкладываются: разглядывать снимки владелец не должен, а картинки остаются на диске и поднимаются, если разговор с сотрудником всё-таки состоится.
Безналичный расчёт без записи в учётной системе приходит отдельной мягкой пометкой. Такой платёж всё равно виден в реестре эквайринга и разбирается на ежедневной сверке — срочного сигнала он не требует.
Чего система не делает
Система не обвиняет. Сообщение говорит только то, что видно: был расчёт, записи нет. Дальше решает владелец, потому что причина бывает и безобидной — забыл оформить, оформил задним числом, принял деньги за чужой заказ.
Если учётная система недоступна и транзакции не отдаёт, событие не помечается вовсе и ждёт следующего круга. Иначе первый же сбой интеграции превратился бы в пачку ложных обвинений.
Покрытие тоже честно ограничено: отрезок в сто секунд раз в две минуты закрывает около восьмидесяти процентов рабочего времени, а не всё подряд. Ночью, когда офисные компьютеры выключены, захвата нет. Отдельный сторож следит за самой камерой: если она зависла и перестала отдавать поток, система сначала перезагружает её сама, а через полчаса молчания пишет владельцу — но не чаще раза в сутки.
Что нужно на стороне сервиса
Обычная IP-камера с микрофоном над кассовой зоной — мы работаем с недорогой моделью за пару тысяч рублей. Компьютер в офисе, через который идёт поток, и учётная система, из которой видны заказы и оплаты. Специального оборудования и отдельного видеосервера не нужно.
Настройка занимает вечер. Дальше система работает сама, и в спокойный день владелец не получает от неё ни одного сообщения — это и есть нормальный результат.