Pull to refresh

Comments 5

ESP32 Super Mini,

Может ESP32-С3 Super Mini?

Первый прототип на простой ESP32. То, что На ободке на Супер Мини.

Идеологически, мне кажется проще, вместо создания железного устройства (который некому поддерживать, даже если здесь и сейчас его создадут за 10х прайс, починить его будет уже 100х) лучше сфокусироваться на решении проблемы программным способом (как минимум вам это явно доступно, а с помощью ИИ и подавно) и уже готовыми инструментами.

Отдал идею на изучение ИИ, забраковал, типа отраженный свет слабый, экраны не идеальные, будут потери сигнала и т.п.

Самый простой и эффективный - вебкамера + отражатели на голове (цветные блестки которые на одежду крепят) + экран (стена/потолок). Блестки могут быть не только разного цвета но и формы (звездочка, крест, квадрат, круг... лучше в форме каких-нибудь fiducial markers типа ArUco/AprilTag только их придется делать самому, когда как разной формы можно купить готовые). Крепить отражатели лучше на чем то типа заколок в волосах и сережках в ушах (с ними сидеть долго удобнее чем в шапочке), максимум приклеить крошечные на висках, лбу и может носу. Направленное освещение на голову дает четкие солнечные зайчики на экран, которые ловит вебкамера, дальше вопрос калибровки. Саму голову можно детектировать как отправную точку, не говоря о том что маркер может быть прямым а не отражателем (но позиционная точность тут будет заметно ниже чем угловая). Подчеркну, что речь идет об определении угловой дельты при наклоне головы, а не самого угла, так как положение самой головы точно получить сложнее.

Для OpenCL были библиотеки поддержки ArUco и тем более простых ярких ярких точек, несколько их плюс стена+потолок дадут четкий вектор в 3d. Веб камер так же может быть несколько, с разных ракурсов повышают точность распознавания но усложняют код (обязательно заложить автокалибровку, разместив метки на стенах и потолке) .

Еще момент, просто движение мыши напрямую завязать на движение головой неудобно. Это скорее эпизодический процесс, нужна команда - вот тут начинаем двигать, а потом заканчиваем... есть не только голос но и моргание к примеру (камерой это просто). Так же не нужно сбрасывать со счета устройство детектирования направления взгляда, команды от него могут быть аналогом кнопок, т.е. переключение режима - клики, захват мышкой,

p.s. почему идея с блестками (без маркера, просто точка) рабочая, можно найти в магазине фурнитуры для рукоделия миллионы разных стеклянных/пластиковых бусинок (крохотные от миллиметра) которые дают четкие отражения (чаще всего в небольшом пределе угола, не обязательно обратно в сторону светильника), это даже фичей считается. В темной комнате зайчики очень яркие, вопрос только в их количестве и калибровке (вот тут то цвета и понадобятся, они позволят различать несколько точек относительно их взаимного положения а дальше информацию берут из соседнего кадра и последней калибровки)

p.p.s. начать можно с простого - определение координаты самой головы с помощью вебкамеры, разместив на ней пару маркеров под разными углами (условная оригами-шапочка из бумаги с напечатанными маркерами, под которые при необходимости подложены картонки для жесткости, так как маркер должен быть ровным), грубая прикидка 4мегапиксельная камера даст точность порядка 10 пикселов на fullhd экране, т.е. курсор будет дрожать, но если точность привязать к скорости или ко времени, то это решаемо, т.е. начинаем движение с невысокой точностью, с каждой долей секунды скорость движения курсора уменьшается а точность повышается, т.е. настроить это замедление под типовую работу пользователя таким образом что бы было удобно и не пришлось курсором долго вокруг цели крутить

upd. https://eviacam.crea-si.com/

Чинить тут нечего, все компоненты копеечные и заказываются с Али, корпус печатается на 3D принтере. И это несравнимо проще, чем решать задачу трекинга головы через камеру.

У нас разные понятия 'проще'. У автора например с руками проблема, и весь мир превращается в лучшем случае взять готовое или попросить другого. Быть зависимым от другого - очень тяжело.

Sign up to leave a comment.

Articles