LINUX.ORG.RU

Опубликованы исходники MoveNoid — бесконтактного арканоида под Linux

 , , ,


3

3

MoveNoid — это бесконтактный арканоид, в котором управление ракеткой осуществляется в воздухе с помощью специально размеченной картонки. Игра написана с помощью библиотеки компьютерного зрения OpenCV и популярного движка двумерной физики Box2D. В качестве фреймверка общего назначения используется Qt 5.9. Исходные коды proof-of-concept были открыты в этом месяце под свободной лицензией GPL v.3 и Modified BSD.

Для игры потребуется компьютер, веб-камера и специально размеченная картонка (чертеж разметки доступен на официальной странице игры). Желательно использовать камеру высокого разрешения с быстрой незамыливающей изображение матрицей. Автор использует бытовую Logitech C270, однако лучше подойдет более продвинутая модель C615, или другие веб-камеры из профессиональных серий.

Разработка игры находится в начальной стадии, код прост и понятен, поэтому в настоящий момент можно легко подключиться к разработке и сделать один из пунктов Плана развития игры.

Для интересующихся доступны ссылки:

>>> Официальная страница игры

>>> Видеообзор с демонстрацией процесса игры

>>> Подробности: Новость на сайте автора

★★★★★

Проверено: Shaman007 ()

Так то прикольно, в том плане что подумалось, а ведь можно сделать трекинг систему и захватывать анимацию. (Просто мне это интересно сейчас) А захваченое сразу привязывать к костям моделей например проекта makehuman, очень удобно будет. В том же блендере что бы трекинг сделать надо упороться огого как, ну или я неосилятор.

linux-org-ru ()

Чёрт, парни реально круты. Всякие гуглоочки, шлемы виртуальной реальности, m$ кинект, акселерометры и гироскопы в каждой мыльнице, нафиг всё это. Всё что нужно, это хорошая вебкамера и кусок картона!

kirill_rrr ★★★★★ ()
Ответ на: комментарий от linux-org-ru

Чтобы хорошо работал захват с конечностей человека, нужны будут однозначные метки, которые будут определяться под любым углом. Я например придумать не могу, что за форма может быть у таких меток.

В арканоиде метка одна, и она безошибочно детектится где-то при диагональных наклонах +/- 15 градусов, имеется в виду вот это:

Глазок камеры и метка в разрезе: [) ----- /

Когда метку держишь руками, допустимый угол нетрудно соблюсти.

А когда ты будешь махать руками с несколькими метками на костюме, то такого угла ты не соблюдешь. Единственный способ - просто контрастные метки, но тогда программа не будет понимать, где рука а где голова. И если даже задать и отслеживать, то если метки на изображении сольются при каком-то движении, то после разлияния опять получится неопределенность.

Xintrea ★★★★★ ()

прикольно, только пожалуйста, не произноси больше вслух «фреймвёрк».
ещё интересно, были ли тесты, сколько среднестатистический человек может «бесконтактно» играть, прежде чем результаты начнут ухудшаться?

system-root ★★ ()
Последнее исправление: system-root (всего исправлений: 1)
Ответ на: комментарий от fluorite

openpose

Штука прикольная, но видно что пропадает то одна конечность то другая. Потому что распознавание именно в таком виде неустойчивое. Там много нужно руками допиливать после анализа видео. Впрочем, если подобрать движения и условия съемки, должно получиться неплохо для домашнего Motion Capture.

Xintrea ★★★★★ ()
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от system-root

только пожалуйста, не произноси больше вслух «фреймвёрк»

В наших палестинах все только так и говорят, привыкай.

ещё интересно, были ли тесты, сколько среднестатистический человек может «бесконтактно» играть, прежде чем результаты начнут ухудшаться?

Я так себя не изматывал. Еще руки не дошли с коробкой поиграть, может на новогодних праздниках получится.

Xintrea ★★★★★ ()
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

Чтобы хорошо работал захват с конечностей человека, нужны будут однозначные метки, которые будут определяться под любым углом. Я например придумать не могу, что за форма может быть у таких меток.

просто трекинг должен быть в пространстве, а не на плоскости. примерно как в десятом айфоне. тогда угол обзора не будет иметь значения.

anonymous ()
Ответ на: комментарий от Xintrea

когда ты будешь махать руками с несколькими метками на костюме, то такого угла ты не соблюдешь. Единственный способ - просто контрастные метки, но тогда программа не будет понимать, где рука а где голова.

катафотные (светоотражающие) метки из полосок или колец из соответствующей ткани. и подсветка от камеры

anonymous ()
Ответ на: комментарий от Xintrea

Чтобы хорошо работал захват с конечностей человека, нужны будут однозначные метки, которые будут определяться под любым углом. Я например придумать не могу, что за форма может быть у таких меток.

Надувные нарукавники разного цвета.

CrossFire ★★★★★ ()

работы тут еще ого-го, причем не про плюшки игры. Добавить бы минимальную «фильтрацию» положения картонки в пространстве.

Короче, мне не удалось заставить устойчиво работать картонку.

demidrol ★★★★★ ()
Ответ на: комментарий от demidrol

Там четыре этапа фильтрации. Многие настройки надо в интерфейс выносить, чтоб было что крутить. Кстати, ты уровень контраста в настроечном окне выставил, как это написано на официальной странице?

Xintrea ★★★★★ ()
Ответ на: комментарий от demidrol

Я специально видео для таких случаев и записывал, чтоб было видно как оно должно быть. А то набежит толпа троллей с криками «нифига не работает».

Кстати, я считаю, что на видео лаг довольно небольшой для наколенного поделия.

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

я так понимаю, ты не особо мудришь с распознаванием краев объектов — просто выше-ниже уровня?

Мне не удается избавиться от изображения своей морды в камере. Ну, и рука тоже. Хотя ты-то в кофте на видео — возможно, это тоже роль играет.

demidrol ★★★★★ ()
Ответ на: комментарий от demidrol

Как это не мудрю, там оценивается как минимум форма, площадь, соотношение сторон, предыдущий и текущий угол наклона. Пятно, которое не квадратное и не прямоугольное, сразу будет отброшено.

Xintrea ★★★★★ ()
Ответ на: комментарий от Xintrea

я про нахождение границ объектов. Вижу, что используешь cv::findContours, которому скармливаешь B&W-фрейм. Т.е. информация о градиентах не учитывается.

Я не спец в этой области, но по картинке с камеры видно, что у всех объектов в области видимости, кроме картонки, края размытые.

demidrol ★★★★★ ()
Ответ на: комментарий от Xintrea

а «фильтрация» — это про то, что картонка не может мгновенно из одного края экрана переместиться в другой или вообще перевернуться. Но это опять же к вопросу о настройке камеры.

demidrol ★★★★★ ()

Сделайте нормальную графику, уровни и бонусы как в dxball/sdl-ball, а то только ради самой идеи управления картонкой что-то даже смотреть не хочется. Хотя казалось бы первый раз в жизни я вижу применение камере в ноутбуке.

slovazap ★★★★★ ()
Ответ на: комментарий от demidrol

Тогда играйся с освещением. Пока не получишь контрастную картинку, на которой четко виден только маркер и немного шума, как на официальной странице, дальше можно не ковырять.

Xintrea ★★★★★ ()

Под оффтопик нет? Всего-то либы в .pro добавить.

Кстати, внятного описания на github я не нашел. Надо бы по свободе форкнуть и привести до ума.

Release ()
Ответ на: комментарий от system-root

только пожалуйста, не произноси больше вслух «фреймвёрк».

Это ты ещё до призношения «лину́кс» не дослушал =)

Xintrea, предлагаю такую идею. Вместо вырезания и раскрашивания картонок можно сделать управление смартфоном. То есть выводить контрастную картинку на экран, и её уже распознавать. Подумай, по-моему это будет удобнее для пользователей.

Crocodoom ()

Респект и уважуха :)

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

Но фантазия разыгралась дальше . Если уж сказали «А» надо и Б говорить. Ракетка у Вас в 3D так и мишень в три де просится - ну нарисовать эдакий коридорчик, хоть из проволочек, и в нем расставлены кирпичи ... В художественном ... порядке.

michman-panin ()
Ответ на: комментарий от Xintrea

> однозначные метки, которые будут определяться под любым углом.

Текстуры какие-нибудь. Например, шашечки чёрно-$COLOR, где $COLOR у каждого узла свой. На гладких телах (не стелс-формы) всегда будет участок, видимый под углом <15°. Локоть обмотал и норм. Только вряд ли это будет бумага, что резко усложняет изготовление.

muon ★★★ ()
Последнее исправление: muon (всего исправлений: 1)
Ответ на: комментарий от Crocodoom

Есть подозрение, что кроме удобства светящийся экран смартфона будет лучше виден камере, а баланс белого (если он включён в камере) будет делать фон темнее (не запускал, но из описания показалось, что это будет полезно).

muon ★★★ ()

Затея всем настолько понравилась, что даже не поругали за «Репозитарий».

> Сделать чтобы из кирпичей вылетали призы и полезности

И вредности давай. Только правильные: не чтобы от них уворачиваться, а чтобы получать за страдания дополнительное бабло/ачивки.

muon ★★★ ()
Ответ на: комментарий от Xintrea

Тогда играйся с освещением. Пока не получишь контрастную картинку, на которой четко виден только маркер и немного шума,

А если взять ракетку от настольного тенниса и развести на ней маркеры светодиодами?

anonymous ()
Ответ на: комментарий от Xintrea

Чтобы хорошо работал захват с конечностей человека, нужны будут однозначные метки, которые будут определяться под любым углом. Я например придумать не могу, что за форма может быть у таких меток.

Что-то типа светящегося жезла полицейского?

sniper21 ★★★★★ ()
Последнее исправление: sniper21 (всего исправлений: 1)