Делаем Head Tracker своими руками (часть 2)
Запись опубликована Nefigase ·
28 879 просмотров
Итак, в первой части статьи мы подготавливали камеру, которая и будет следить за движениями головы, а точнее специальных меток на ней.
В этой статье мы соберем прибор, который будет создавать точки для отслеживания движения головы, назовем его "маркер", а так же поставим софт, который поможет распознавать движения и передавать их в компьютер по определенному протоколу.
"Маркер" я делаю трех точечный, для этого понадобится:
1) 3 диода инфракрасных (можно любых на самом деле, но инфракрасный человек не видит и поэтому он не отвлекает Вас, а обычный будет дико мешать... да и зрение сломаете из-за этого, т.к. будете коситься на свет как не крути). Я использую диоды SFH485P со сточенной головкой, т.к. это дает яркий свет со всех сторон (при повороте не тускнеет). Если Вы не смогли найти подобных, то круглую шляпку можно аккуратно сточить, получив все те же сточенные диоды.
2) Резистор 5.1Ohms 5% (питаться все это будет от USB у меня), но если у Вас другие диоды или источник питания будет иной, то посчитать и получить схему соединения можно тут: http://www.free-track.net/english/hardware/calcled/
3) Провода для соединения этого всего добра
4) Питание... я использую USB, поэтому взял провод 2 метра (169 руб) от USB->microUSB (он банально тоньше и легче), хотя кто-то возможно выберет батарейки
5) Паяльник и припой
6) Что-то для разнесения диодов на определенной расстояние друг от друга, а так же крепеж. Я использовал трубочку от воздушного шарика и какие-то колпачки от бытовой химии. Тут уже креативте сами
7) Драйвер типа "прямые руки"
Итак, поехали...
1) Для начала я нарисовал 1:1 схему расположения диодов (классическую). В дальнейшем советую увеличить расстояние между верхним и нижним диодами (относительно центрального) по вертикали, т.к. классическое показало себя не очень хорошо при наклоне вверх и вниз, а в программе потом эти расстояния можно отрегулировать будет. Например сделайте не 40 и 70, а 60 и 90... хотя нижний можно и не изменять, он вроде как нормально отрабатывает довольно.
2) Далее я разместил на точках диоды (масштаб сделал 1:1) и нарисовал как должна проходить трубка и крепление, чтобы все было точно потом, а не придумывать по ходу пьесы. Это очень важно! Сначала подумайте, потом сделайте, иначе выйдет ерунда.
3) Т.к. я использую для питания USB, т.е. 5V, то пришлось в цепь поставить резистор (ссылка на калькулятор была выше). Распайку USB привожу ниже... красный провод - плюс, черный - минус, остальные не нужны.
4) Проверяем, что все есть и на своих местах и ... и начинаем творить. Обращаю внимание, что у диода минус - это толстая пластинка, а плюс - потоньше. Если перепутаете, то просто не заработает, т.к. диод пропускает ток только в одну сторону. Сжечь не сожжете. Минус диода подключается к плюсу питания... т.е. ток идет как бы от плюса к минусу.
5) Резистор можно паять любой стороной, это не принципиально. Старайтесь делать крепления не тяжелыми (иначе голова устанет), но при этом не хлипкими... т.е. при повороте крепление должно жестко вставать, а не еще секунду "вибрировать".
У меня на фото цвета проводов не смотрите, они там намешаны (что было, то и использовал), т.е. красный местами минус, местами плюс... и т.д.
6) Для крепления диодов в трубке я использовал немного клея + термоусадочные трубки (последние не обязательно нужны... просто так эстетичнее и у меня они были ) Если обратите внимание, то диоды я нарочно немного по краям сместил, чтобы они смотрели вперед строго, как и центральный. Далее я залил все это дело клеем и скрепил крышки... получился бокс своеобразный.
7) Ну и в конце концов все это дело было установлено на наушники, а точнее прикреплено на двусторонний скотч... кто-то может будет использовать офисный зажим для бумаг для крепления на дужку наушников... кто-то еще что-то придумает.
Сразу обращаю внимание, что наверное потом переделаю на батарейки... лучше пусть будет 1-2 аккумулятора на 1.5 вольта, чем провод... мешает не сильно, но все же немного напрягает иногда.
Для проверки берем нашу камеру, запускаем в ней трансляцию видео (например через Скайп или еще какую-то тестовую программу из комплекта ПО к камере). Берем пульт от телевизора, направляем его на камеру и жмем кнопку любую... на изображении камеры Вы должны увидеть яркий свет от инфракрасного диода пульта во время нажатия. Если увидели, то все нормально, камера работает как надо. Теперь запускаем "маркер" и смотри, что его диоды точно так же светятся на камере.
ВНИМАНИЕ! Если камера используется PS3 Eye, то для ее работы смотрите инструкции далее!
Такс... с "маркером" закончили, теперь начнем с софтом.
1) Если Вы используете камеру PS3 Eye, то Вам понадобится специальный драйвер для Windows. Следующий драйвер я использую на Windows 8.1, но он должен работать по идее везде, если у кого-то не заработает, то придется погуглить. Причина в том, что PS3 Eye не предназначена для компьютера и банально Windows ее не видит изначально.
Ссылка на драйвер: http://e-shubin.ru/head_tracker/PS3eye.zip
Вытаскиваем камеру из компьютера, ставим дрова, вставляем камеру... должно заработать (проверяется в идущей с драйверами тестовой программой)
2) Ставим программу FaceTrackNoIR со специальным модулем PointTracker 1.1.
Ссылка на это добро: http://e-shubin.ru/head_tracker/NoIR.zip
Инструкция:
1. Устанавливаем основную программу SetupFaceTrackNoIR_Full_v170.exe
2. Копируем библиотеку из папки PointTracker_1_1 в папку куда установили предыдущую программу (что-то вроде C:\Program Files (x86)\Abbequerque Inc\FaceTrackNoIR)
3) Инсталляция завершена. Запустим установленную программу (я запуская с правами администратора для надежности):
Выбираем в блоке "Tracker Source" пункт "PointTracker 1.1", в "Game protocol" выберем "FreeTrack 2.0". Далее заходим в "Settings" блока "Tracker Source" и проверяем, что на вкладке "Camera" у Вас выбрана именно Ваша камера и стоит максимальный FPS. А на вкладке "Model" в подвкладке "Clip" все расстояния выставлены так, как у Вас было по схеме... иначе подправьте. Там же есть кнопка калибровки (Calibrate) чтобы зафиксировать центр. Жмем "OK" и выходим в главное окно программы.
После этого всего жмем в блоке "GO!" кнопку "Start", должно запуститься отслеживание точек. Соответственно на голову надо уже натянуть и включить "маркер". При повороте головы у Вас будут меняться слева координаты, а сверху морда мужика должна двигаться так же, как и Ваши движения. На экране же в середине слева появятся точки от диодов с красными перекрестиями, которые означают, что точка поймана.
Возможный тюнинг:
Если свет от диодов очень яркий (вообще подгонку такую рекомендую сделать всем) и перекрестий на каждый диод красных отрисовывается очень много, то заходим в "Settings" блока "Tracker Source", вкладка "Camera" и играемся с ползунком "Threshold" до того, пока не получим самый малый радиус свечения диода на картинке, при этом на нем будет только одно перекрестие. Чуть ниже "Threshold" в блоке "Status" в "Extracted Points" у вас должно быть написано что 3 OK! Т.е. 3 точки найдено... если диодов больше, то точек будет соответственно больше.
Если в игре у вас перепутано право-лево или верх-низ, то в главном окне в блоке "Global Settings" ставим галочку на Invert для Yav или Pitch соответственно... возможно еще Roll где-то пригодиться (в SC наверняка).
Чтобы в игре не сломать шею крутя ее в разные стороны, можно поиграться с настройками "Curves". Так можно добиться, например, плавного поворота в самом начале поворота головы и более резкого в конце... это даст то, что при небольшом ходе головы при обзоре вперед у Вас не будет в кабине голова трястись постоянно, а будет смотреть вперед четко, но при повороте на определенный угол начнет все более резко меняться поворот головы. Углы надо делать так, чтобы не приходилось для поворота на 120 градусов выкручивать шею даже на 45... иначе косоглазие заработаете. Думаю в пределах 30 для 120 градусов и 10-15 для 90 - вполне удобно должно быть. Но тут все индивидуально...
Собственно все.
Итого бюджет решения составил:
1) Камера б/у - 400 рублей
2) 3 диода - 300 рублей (по факту 500 было и 5 диодов)
3) USB провод - 169 рублей
4) Резистор - 20 рублей
5) Остальное бесплатно было нарыто по шкафам и антресолям
Итого: 889 рублей, вместо 9 тыс. рублей... мне кажется оно того стоит
P.S. Сейчас играл в EuroTruckSimulator 2 с этой приблудой... все работает отлично, хотя надо все же кривые настроить для удобства будет. Очень непривычно я Вам скажу! С одной стороны намного удобнее и быстрее, да и точнее в разы стало головой крутить. С другой надо привыкать, т.к. часто во время езды на что-то отвлечешься, картинка сразу поворачивается и в мозгу паника, т.к. краем глаза дорогу уже не видишь В SC думаю такого не будет, там дороги не такие узкие
- 3
8 комментариев
Рекомендованные комментарии
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас