Actions
Task #6637
openДетектор морганий и расчёт частоты морганий
Status:
New
Priority:
Normal
Assignee:
-
Start date:
09/21/2026
Due date:
% Done:
0%
Estimated time:
Description
Заказчик просит детектор морганий и калькулятор.
Нужно: сигнал закрытия глаз на каждом кадре, детектор морганий как событий (закрыл — открыл, с длительностью), частота морганий в минуту по скользящему окну, метрика Blinks каталога в ядре, число морганий на карточке каждого лица.
Предыстория: #6605 — меш не опускал веки на клипе с морганиями при прежнем кропе. Сначала перемерить на текущем кропе; если веки всё ещё не двигаются, брать закрытие по пикселям области глаза, которую меш кладёт верно. Сверить алгоритм с eye/eyeMetrics.js в focus24. Эталонная разметка кадров клипа blink.mp4 — по снимкам.
Updated by Redmine Admin about 1 month ago
Моргания готовы (не закоммичено).
- Ядро: BlinkCounter по правилам eyeMetrics.js (порог 0.9, 50–500 мс, длинное > 200 мс; частота — среднее 3 последних минут, до минуты — счёт за промежуток ≥ 30 с). Моргание меряется от последнего открытого кадра до следующего открытого: при 30 кадр/с моргание 100 мс закрыто на 1 кадре. Ядро заполняет метрику Blinks.
- Натив: закрытие глаза по доле тёмных пикселей внутри контура глаза (веки сетки плоские, EAR 0.36–0.39). Открытое состояние лица — 80-й перцентиль за 90 кадров, усиление 1.6.
- Ролик blink: 14 из 15 морганий; остальные 8 роликов: 0–2.
- Карточка лица: строка BLINK — N/m с тоном по полосе метрики, до появления частоты — счёт Nx.
- Тесты: tests/physiology/blinks.rs (10), tests/app.rs (+2), tests/domain/eyes.rs (5), карточки (+2). tools/check.sh: 15 из 15.
Actions