Как мы сделали всевидящее ВеКо — систему отслеживания внимания сотрудников досмотра в аэропорту
Система отслеживания внимания создавалась под конкретную задачу — для одного из московских аэропортов. Там, на досмотровых постах, операторы смотрят на экраны интроскопов, проверяя багаж. Работа монотонная, требующая постоянной концентрации, а отвлечение — потенциальный риск для безопасности. Нужно было понять, когда человек действительно теряет фокус: отвернулся, задремал, отвёл взгляд или вообще вышел из поля зрения камеры.
На старте у нас был базовый прототип на MediaPipe, оставшийся от научной работы по смежной тематике определения утомления оператора. Этот фреймворк хорошо справляется с задачами вроде отслеживания поз, рук, контрольных точек на лице. Но для точного анализа взгляда он оказался не слишком подходящим. Мы пробовали построить 3D-направление взгляда по ключевым точкам и вычислить угол относительно монитора — чтобы определить, смотрит ли человек туда, куда должен. Однако результаты оказались недостаточно точными и медленно обновлялись. Направление головы он определял хорошо, но оно не всегда совпадает с направлением глаз — а нам нужен именно взгляд. Возможно, при более высоком разрешении камеры можно было бы добиться лучшего качества, но на практике пришлось искать другие решения.
Мы протестировали несколько современных моделей отслеживания взгляда.
- RT-GENE (2018) — один из первых real-time трекеров.
- Few-shot Adaptive Gaze Estimation (2019)
- L2CS-Net (2022)
- MCGaze(2024)
Во всех работах разные подходы к отслеживанию и интересные способы сбора данных для обучения. Например, придумывают специальные очки, которые точно отслеживают угол зрения. Но это просто к слову, а лучше всех себя показала L2CS-Net. Она сначала локализует лицо с помощью RetinaFace, а затем находит пять ключевых точек (середина двух глаз, кончик носа, уголки губ) и строит направление взгляда.
L2CS мы поместили в наш собственный фреймворк для компьютерного зрения VideoAI.NTR, способный включать разные модули. MediaPipe мы тоже оставили — он отвечает за определение, открыты ли глаза, что критично для анализа внимания.
Чтобы система действительно работала, мы ввели простой этап калибровки. Оператор занимает два положения — ближе и дальше от экрана — и плавно водит взглядом по его периметру. Так собирается информация о рабочей зоне. Изменения относительно этой зоны в дальнейшем считаются отвлечением. Расстояние до оператора считаем по межзрачковому расстоянию. Вся калибровка занимает около двух минут.
В результате у нас получилась система, работающая в реальном времени. Она определяет, куда смотрит человек, и отслеживает длительность отклонения взгляда. Если взгляд уходит от экрана больше чем на четыре секунды, система начинает подавать звуковой сигнал. Если внимание не возвращается, автоматически останавливается лента интроскопа — это ключевой элемент, который позволяет сразу вмешаться и не пропустить потенциальную угрозу.
При этом сама система не требует сложной инфраструктуры. По сути, достаточно одной камеры — и можно работать. Мы запускали её на мощном GPU, но сама по себе она достаточно лёгкая, чтобы со временем быть перенесённой даже на мобильные устройства.
В процессе внедрения мы столкнулись с реальными человеческими особенностями, о которые легко забыть в “лабораторных” условия.
- Очки иногда закрывают зрачок, особенно если оправа массивная или есть отражения от экрана. .
- Брови. Густые брови — особенно если пользователь смотрит вниз — маскируют глаза.
- Ресницы. Накладные ресницы или слишком яркий макияж тоже создают проблемы для трекера.
- Рост. Операторы иногда работают стоя. Если оператор немного выше или ниже среднего роста, камера может просто не видеть лицо — тогда не поможет никакая нейросеть.
Одним из решений стало размещение камеры под монитором, что частично решает проблему с углом обзора, но не всегда есть физическая возможность так её установить.
Сейчас система уже внедрена и используется в одном из московских аэропортов. В первые дни внедрения операторы относились к технологии настороженно — думали, что это инструмент надзора за ними, способ следить за их дисциплиной. Кто-то пытался просто выдернуть систему из розетки или сдвинуть камеру в сторону, чтобы она не видела лицо. Но когда стало понятно, что система — это в первую очередь помощник, а не контролёр, отношение изменилось. Она не ругает, не пишет отчёты и не следит «кто сколько зевнул», она просто предотвращает ошибку, которая может стоить слишком дорого. Саботаж прекратился сам собой — стало понятно, что система работает на оператора, а не вместо него.
Потенциал ВеКо не ограничивается аэропортами. Такой подход можно использовать не только в сфере авиационной безопасности, но и на любых рабочих местах, где критично сохранять внимание: на производстве, в диспетчерских, в медицине, на транспорте. Всё, где человеческий фактор — это риск, может получить от этого реальную пользу.
Собрать работающую систему отслеживания внимания оказалось не так просто, как кажется. Но результат — это инструмент, который вовремя подскажет, что человек потерял фокус. А иногда это важнее, чем любой автоматический анализ содержимого экрана.