ЦНС, наркотики и рок-н-ролл: история про прибор, который заставил нас пить, не спать и не моргать
Одно из самых забавных применений алгоритмов машинного зрения – это возможность определять скорость реакции нервной системы человека по реакции зрачка на свет.
Это может использоваться для оценки адекватности человека, его готовности к сложной, опасной и ответственной работе (пилот самолета, оператор АЭС, диспетчер метро и т.п.).
Например, так делает фельдшер скорой. Раньше «пинг» делался простой реакцией зрачка на свет фонарика. Мы нашли способ автоматизировать это, определяя зрачки на камере со съёмкой 40 fps. Но можно оценивать ещё и скорость реакции, что даёт куда больше информации. Вычислительная сложность невысокая, 3-5 тысяч сравнений на кадр — полный реалтайм:
Данные пупиллометрии здорового человека
По скорости реакции зрачка на свет (сужение и восстановление диаметра зрачка после вспышки) можно оценить скорость прохождения нервного импульса, а также скорость его последующей обработки в нервной системе.
Выглядит эта штука как 3D-очки.
Вот наш прототип. То есть да, это – своеобразный пинг вашей ЦНС. Можно сделать красивее, но смысла особого нет, это предсерийный образец: Обычно мы встраиваем его в диагностические терминалы (то есть из устройства торчат вот эти очки), но бывает – используем и отдельно.
Что это даёт?
Ещё конце XVII века врачи начали замечать, что пациенты в разных состояниях по-разному реагируют на свет. Спустя почти 300 лет исследования подхватил мэтр Экхард Хесс, который также сделал вывод, что на скорость реакции зрачка влияет усталость и виды мысленного напряжения перед оценкой. В целом – скорость расширения зрачка после вспышки света (адаптации к темноте) может служить мерилом степени возбуждения нервной системы. В 1982 году Хесс же доказал, что зрачки больше раскрываются, когда вы смотрите на предмет, который вам интересен. Показывал он испытуемым-мужчинам, конечно, фото девушек. Потом постепенно перешли к более тонким материям – любимой еде, кандидату от своей партии и так далее. Потом перешли к измерению ментальной нагрузки. Чем интенсивнее человек думает, тем медленнее расширяются зрачки. Тогда мозг «нагружали» арифметикой. Сегодня бы мы сказали, что процессы параллелятся, и когда вычислительная мощность мозга чем-то занята, оценка окружающего состояния по освещению ведётся медленнее. Осталось недоказанным предположение, что расширенные зрачки служат одним из аттракторов в невербальной коммуникации.
Ещё позднее стали появляться исследования, численно связанные с влиянием на зрачковый рефлекс различных видов мысленного напряжения (внимательное рассмотрение предметов, проведение вычислений в уме) и нервных расстройств (депрессия, повышенная возбудимость и т.д.).
Как работает прибор
Это такие большие очки или бинокль. Вам надо заглянуть внутрь на несколько секунд, там инфракрасные светодиоды и видеокамеры.
В «бинокле» также умещается управляющая плата, разъемы и прочий обвес. Если быть более точным, используются: светодиоды инфракрасного спектра — для подсветки глаз, они невидимы для человеческого зрения; светодиоды видимого спектра — с белым светом, для вспышки; цифровая камера для ИК-диапазона с объективом и ещё маленький диод-метка для фокусирования взгляда во время проведения обследования.
Само обследование после аутентификации длится от 6 до 8 секунд, обследуемый плотно прикладывает к глазам маску устройства так, чтобы исключить внешнюю засветку. Сначала он распознаёт вас по радужке, чтобы вы не принесли чужие глаза. В это время зрачки расширяются примерно до 5-6-7 миллиметров, пытаясь отдать на сетчатку максимум света, чтобы можно было распознать хоть что-то. В первые 1-2 секунды происходит адаптация к темноте. Смотрите, зрачки большие и красивые: Мы подсвечиваем глаза инфракрасным светодиодом, — для человека этот диапазон не виден, и зрачок на него не реагирует.
Начало светового стимула принимается за ноль по шкале времени при построении пупиллограммы – графика зависимости изменения диаметра зрачка от времени. После достижения максимального диаметра зрачка в течение 200 мс загораются диоды белого света (световой стимул). Точка Dmin (максимальное сжатие сфинктеров зрачков) выглядит вот так: Нас интересует следующие 5 секунд после вспышки.
Управляющее программное обеспечение (ПО) находит на каждом кадре зрачок и определяет его диаметр. Цифровая камера регистрирует изображения двух глаз с частотой не менее 40 кадров в секунду.
Дальше зрачок постепенно расширяется.
Распознаём видео, убираем шум в данных (у нас много опорных кадров) и получаем в итоге график (это пример моего коллеги, условно-здорового человека): Основная задача: нам нужно получить пупиллограмму, то есть график реакции зрачка на свет.
Ключевыми параметрами латентной области является начальный диаметр зрачка (DN) и время задержки реакции зрачка от начала светового воздействия (TL). Пупиллограмма содержит три важных участка: латентную область, область сужения зрачка и область восстановления. Пупиллограмма может быть признана непригодной для оценки, если человек закрыл глаза во время светового воздействия, слишком часто моргал или особенно сильно водил глазами из стороны в сторону. Вторая область графика характеризуется минимальным диаметром (Dmin) и временем сужения (TC), третья область – точками восстановления диаметра зрачка до 50, 66 и 75 процентов от первоначального диаметра DN. Некорректные результаты можно получить и для испытуемого в цветных линзах.
После этого делается вывод об адекватности человека и его готовности к сложной и опасной работе. Затем ПО анализирует эти параметры, самые главные из которых – скорость сужения и скорость расширения зрачка.
Особенно хорошо разница будет заметна, если вначале мы получим эталон – обследуем человека, когда он в нормальном состоянии, а позже – в ненормальном. Графики людей сильно уставших, после сильного недосыпа или в состоянии опьянения, алкогольного или наркотического – будут отличаться от графиков людей в адекватном состоянии.
Тесты
Мы тестировали прибор на примерно 760 сотрудниках компании в разных условиях (включая корпоративы и дни после них). Всего 3496 измерений до публикации (новые добавляются каждый день). Самое сложное – это не столько распознавание, сколько оценка получаемого графика. Мы ещё в рамках теста ездили по разным интересным клиникам, где пациентам с известным диагнозом (например, хронический алкоголизм) предлагалось добровольно поучаствовать в исследовании. Испытуемых в наркотическом опьянении для репрезентативной выборки найти сложнее. В рамках исследования мы сотрудничали с несколькими наркологическими клиниками, где проходят лечение пациенты с наркотической зависимостью и психическими расстройствами. Они в медицинских целях принимают такие классы средств, как транквилизаторы, антидепрессанты, нейролептики, антиконвульсанты и седативные вещества, поэтому база накопилась довольно большая.
У каждого человека могут быть индивидуальные особенности реакции зрачка на свет. Нужно было отлаживать алгоритм, собирать больше данных о пациенте и так далее. Так вот один раз мы чуть не госпитализировали самого доктора. Самые первые варианты алгоритма иногда выдавали вообще смешные вещи из-за сложностей распознавания.
В худшую – может, с помощью ряда мер, но применение как раз должно отсеивать непригодных (например, водителей автобуса перед рейсом) от полностью боеготовых специалистов. По ходу развития проекта и подключения наших бета-тестеров, мы выстроили такую систему, в которой пациент не может сознательно обмануть устройство в «лучшую» сторону.
Поэтому прямо сейчас берём нужные данные из кадрового досье пациента, либо собираем анамнез вот так на полевом приборе (это интерфейс врача): Мы можем проводить оценку, сравнивая с эталоном после медосмотра или с общечеловеческим эталоном для такого типа людей.
Если устройство встраивается в диагностический терминал – карточки пациента и данных текущего измерения достаточно для построения очень точной гипотезы.
А при условии замера на аппарате всех ключевых показателей (пупиллометр, алкотестер, измеритель давления) – возможно направлять на личный медосмотр только тех, в отношении кого у диагностического терминала появились хотя бы минимальные сомнения, а это уже могут быть 20 человек из 100. Предполагается, что диагностический терминал не исключает медосмотр специалистом лично, но в разы ускоряет его.
Напомним, раз уж мы встроили камеры в «бинокль», и раз уж мы всё равно распознаём что-то с них, глупо не воспользоваться распространёнными библиотеками распознавания человека по радужке, благо это очень давно решаемая задача. Откуда берётся карточка? Вот мы и получаем ID пациента, и можем подтягивать его предыдущие данные.
Вот бета-тестеры самоотверженно пожертвовали собой:
Возникли проблемы с линзами:
Мы предполагаем, что это связано с уменьшением общего количества света, который попадает в глаза, при использовании линз. Даже прозрачные однодневные линзы приводят к снижению выраженности зрачкового рефлекса, что очень похоже на усталость и алкогольное опьянение. Этот эффект необходимо обязательно учитывать при анализе таких графиков, поэтому наш интерфейс содержит обязательный вопрос о линзах перед началом обследования.
Нужно набирать большую статистику для повышения точности. Сейчас мы продолжаем дорабатывать алгоритмы и методологию. Сейчас статистика не позволяет делать никаких достоверных диагностических заключений. Прибор уже работает как хороший наркотестер, но мы хотим большего. Мы стремимся улучшить алгоритм, уменьшить ошибки первого и второго рода. Кроме того, для хорошей диагностики состояния конкретного человека требуется провести сначала несколько нормальных измерений его зрачковой реакции, чтобы потом с высокой вероятностью после какого-либо воздействия отловить отклонения от нормы — это к вопросу инструкции по эксплуатации для персонала АЭС. Безопасники и специалисты по обеспечению соблюдения ТБ благостно кивают, глядя на эту работу.
Съёмка «из глаз»
Вот видео:
Ещё нужно распознавать ошибки (когда человек намеренно моргает, пытается сознательно аккомодировать и в целом мешает работе прибора) – пока такие случаи видны на графике и фиксируются руками, позже будет отметка о недостоверности результата.