Камера
Овал — ориентир для головы: держите лицо внутри, зелёный — поза стабильна.
«Глаза» — экспериментальный режим
Точность ~50% на данных 04.08 (см. analysis/) — каждый второй выбор может быть неверным. «Голова» проверена на 99%+ и рекомендуется как основной канал, если человеку доступны движения головой.
Про экран и расстояние. Чем экран физически меньше, тем меньше разница во взгляде между его углами — камере труднее отличить «смотрит влево» от «смотрит вправо». На маленьком экране стоит сесть ближе, чтобы углы снова разошлись.
Единственного правильного расстояния нет: оно зависит от экрана, камеры и самого человека. У нас откалибровалось на 13-дюймовом ноутбуке примерно с вытянутой руки — это отправная точка, а не норма. Пробуйте другие экраны, камеры и расстояния — это только приветствуется: калибровка каждый раз покажет, стало лучше или хуже, а удачную настройку можно сохранить профилем.
Моргните на подсвеченной карточке — она озвучится.
Взгляд делится на 4 угла по направлению — смотрите в сторону карточки и задержите (или моргните). В центре — «мёртвая зона»: смотришь ровно посередине, ничего не выбирается. Ложно срабатывает у центра → увеличьте; хотите чувствительнее → уменьшите.
Без камеры: тап по карточке пальцем или пробел (выбирает подсвеченную).
Реакция и журнал
Зачем: доска показывает, что человек выбрал, но не показывает, рад ли он этому. Чтение мимики отвечает на второй вопрос и копит в журнале, на что реакция хорошая, а что раз за разом вызывает недовольство. Снимите галочку — распознавание остановится, на выбор карточек это никак не влияет.
Вместо «доволен / недоволен» — радость, удивление, огорчение, злость, неприятно, испуг. Менее надёжно, чем два основных состояния: мимика при двигательных нарушениях часто атипична. Показывается как предположение с пометкой уверенности — опирайтесь на журнал за несколько сессий, а не на отдельный кадр. Требует калибровки мимики.
«Журнал» — один JSON со всем сразу: калибровка + события (выбор карточки, разметка педагога, эмоции) + вся телеметрия внутри. «Телеметрия CSV» — только сырой поток замеров отдельной таблицей, без событий — для анализа в Excel/скриптах (analysis/fit_thresholds.py, train_model.py).
Микрофон измеряет только громкость реакции (вокализация). Запись не ведётся и никуда не отправляется.
Разметка (педагог/родитель)
Отметьте, что на самом деле происходит — это эталон для настройки под человека.
Сбор датасета (для подгонки порогов)
Как калибровка, но много повторов подряд в случайном порядке — объект прыгает хаотично внутри угла. Каждый повтор пишет в датасет все кадры окна с меткой карточки. Нужны данные для того, чтобы подгонять GATE/веса не на глаз, а по числам.
Один из двух — не оба сразу. «Только глаза»: вес головы обнуляется, кадры вне овала отбрасываются. «Только голова»: вес глаз обнуляется, овал не проверяется — голову специально уводят к каждой карточке. Каждая строка в датасете помечается, каким каналом собрана.
Обученная модель (эксперимент, вместо геометрии)
Точность на офлайн-тесте: 85.7% против 48-58% у геометрии на тех же данных (analysis/train_model.py). Обучается прямо в браузере на кадрах из «Сбор датасета» выше — нужны данные по всем карточкам. Личная: под это лицо/камеру/ свет, живёт в этом браузере, к обычной калибровке 4 углов отношения не имеет.
Почему часть кадров не участвует в обучении: это специально отложенный экзамен — если бы модель проверяли на тех же кадрах, на которых училась, она могла бы просто «запомнить» их и показать точность выше настоящей. Отложенные кадры модель не видела вообще, поэтому по ним честно видно, как она справится с новым взглядом позже. Для реальной работы (когда включаешь «Использовать вместо геометрии») модель всё равно обучается на 100% данных — экзамен только для оценки, не в ущерб качеству.