Вторник, 24 Мая 2022, 02:08

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Управление игрой с помощью web-камеры (Нужна помощь и хорошие советы мастеров)
Управление игрой с помощью web-камеры
lumennesДата: Суббота, 08 Октября 2011, 19:38 | Сообщение # 1
Убийца Diablo
Сейчас нет на сайте
Доброго времени суток.

Не так давно купил себе новую веб-камеру и увидел в инете такое видео:
http://www.youtube.com/watch?v=mzem7bBAw0I
Естественно загорелся желанием сделать такое же, тем более это сделано на Ogre3D, а я использую GMOgre3D.

Для вытаскивания картинки с веб-камеры в ГМ использую WebCam.dll, в которой всего 4 функции, в том числе и сохранение скрина с веб-камеры в формате bmp. Вставил эту dll в GMOgre3D, работает нормально. В самом GMOgre3D настроил сцену и персонажа, который будет повторять за нами движения.



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

Может мне в этом кто-нибудь помочь? Как в ГМ из спрайта сделать силуэт или что-то подобное?


Как мало вы знаете, как громко вы судите...
Kefir87Дата: Суббота, 08 Октября 2011, 19:42 | Сообщение # 2
участник
Сейчас нет на сайте
Quote (lumennes)
http://www.youtube.com/watch?v=mzem7bBAw0I

Quote (lumennes)
Может мне в этом кто-нибудь помочь?

У тебя даже приблизительный результат не получится, т.к. в видео используется Kinect
MaxaonДата: Суббота, 08 Октября 2011, 20:03 | Сообщение # 3
участник
Сейчас нет на сайте
lumennes, Вырезано
AmriДата: Суббота, 08 Октября 2011, 20:09 | Сообщение # 4
Auriss IGD
Сейчас нет на сайте
ZizilkДата: Суббота, 08 Октября 2011, 20:18 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
kinnect бился над такой же проблемой). Ему потребовалось несколько лет, и в итоге плюс девайс с двумя камерами обычными и одной которая определяет глубину)
вот к примеру, кто то написал шейдер для вывода данных с карты глубины в видимый формат) ну и поприколу засветил руки.

Так что сомневаюсь, что только на гм такое можно сделать. (Да и на других языка с чем-то гораздо более стандартизированным, а именно номерами автомобилей брат двоюродный пару месяцев мучался, в плоть до того, что ему пришлось генерить свой шрифт, )
elis1112Дата: Суббота, 08 Октября 2011, 20:27 | Сообщение # 6
Igni et ferro
Сейчас нет на сайте
может под футболкой датчиков куча =_+ или тепловизор камера)

Сообщение отредактировал elis1112 - Суббота, 08 Октября 2011, 20:35
ZizilkДата: Суббота, 08 Октября 2011, 20:34 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
Quote (elis1112)
может под футболкой датчиков куча =_+ или тепловизор камера)

Прикол в том что для кинекта датчики действительно не нужны, и всё интегрированно в ту маленькую фигню, именно поэтому его подключили и сделали своё сдк для компа ещё до того как выпустили официально)
1 обычная камеры и lдве камеры глубины для фиксации движений, вроде 3 микрофона, 2 из которых заняты отсечкой шума. Те кинект это не банальная вебкамера как многие думают, а технологически навроченный аппарат)

Fixed по уточнёным данным


Сообщение отредактировал Zizilk - Суббота, 08 Октября 2011, 20:36
TimKruzДата: Суббота, 08 Октября 2011, 20:35 | Сообщение # 8
старожил
Сейчас нет на сайте
Quote (lumennes)
убрав не нужный фон

Ну это, скажем, просто - игрок должен играть на белом фоне в цветной одежде. huh А вот остальное будет крайне проблематично. Одной-единственной камерой будет сложно измерить глубину (а может и не возможно), а движение в одной плоскости ни кому не нужно. Закрепить точки координат: можно запомнить круглый фрагмент изображения, соответствующий, например, ладони, и каждый кадр искать этот или подобный ему фрагмент, но, думаю, это будет слишком напрягать комп. huh
Quote (Zizilk)
вот к примеру, кто то написал шейдер для вывода данных с карты глубины в видимый формат

Что-то типа этого можно сделать и без особых датчиков глубины. Например, подвесить, скажем, за камерой средненькую по силе лампу, которая будет освещать игрока, при этом чем ближе предмет к камере (и к лампе, конечно), тем он светлее, и наоборот, если предмет тёмный - он далеко, но чтобы распознать объект, его придётся придвинуть вплотную к камере, чтобы программа распознала максимальную освещённость объекта, и потом только двигать в любую сторону; однако это, думаю, не пройдёт с чёрными и глянцевыми объектами. huh


elis1112Дата: Суббота, 08 Октября 2011, 20:35 | Сообщение # 9
Igni et ferro
Сейчас нет на сайте
http://www.youtube.com/watch?v=TFzJbl-o5Pk&feature=mfu_in_order&list=UL
вот предыдущие видео этого же автора =( все слишком сложно
на видео видно как программа скелет расчертила по сгибам


Сообщение отредактировал elis1112 - Суббота, 08 Октября 2011, 20:37
ZizilkДата: Суббота, 08 Октября 2011, 20:39 | Сообщение # 10
постоянный участник
Сейчас нет на сайте
Quote (TimKruz)
Что-то типа этого можно сделать и без особых датчиков глубины. Например, подвесить, скажем, за камерой средненькую по силе лампу, которая будет освещать игрока, при этом чем ближе предмет к камере (и к лампе, конечно), тем он светлее, и наоборот, если предмет тёмный - он далеко, но чтобы распознать объект, его придётся придвинуть вплотную к камере, чтобы программа распознала максимальную освещённость объекта, и потом только двигать в любую сторону; однако это, думаю, не пройдёт с чёрными и глянцевыми объектами

По этому же принципу и работает датчик глубины, только там чтобы небыло проблем с глянцем и прочим, датчик состоит из лазерной развёртки, ИК проектора и чёрнобелой приёмной матрицы. ЗА счёт этих систем эта навороченая фигня автокалибруется и значительно более всеядна, в плане сцены)
TimKruzДата: Суббота, 08 Октября 2011, 20:41 | Сообщение # 11
старожил
Сейчас нет на сайте
Quote (Zizilk)
Те кинект это не банальная вебкамера как многие думают, а технологически навроченный аппарат)

Но это сделано только для того, чтобы сделать технологию легко доступным богатеньким "чайникам" и их детям, и, соответственно, "увеличить число пользователей Xbox 360". Настоящие народные умельцы и по-круче смогут, но ни кому это не нужно, да и пользоваться этим сможет только посвящённый. biggrin
***
Quote (elis1112)
на видео видно как программа скелет расчертила по сгибам

Ну, это достаточно просто. Она "расчертила" полученную выделенную фигуру, определив её как человека. Она с тем же успехом воспримет манекен.
Quote (Zizilk)
По этому же принципу и работает датчик глубины,

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




Сообщение отредактировал TimKruz - Суббота, 08 Октября 2011, 20:46
ZizilkДата: Суббота, 08 Октября 2011, 20:47 | Сообщение # 12
постоянный участник
Сейчас нет на сайте
На удивление такая технологическая навороченность оправданна

Я люблю людей, которые делают/делали сюрпризы, поэтому я уважаю Джобса, Гейтса, Нотча, Нинентендо, ССР, Vavle. Те компании и люди которые старались не плестить за тенденцией а их делать. Мелгкомягикие, как компания занимающаяся игровыми приставками, не входила в список, но тем не менее внесла приятное исключение). Другое дело, что они так привыкли волочится за рынком и тенденциями, что не поняли какой козырь дал им киннект, при чём не только в области игр)
TimKruzДата: Суббота, 08 Октября 2011, 20:49 | Сообщение # 13
старожил
Сейчас нет на сайте
Quote (lumennes)
Как в ГМ из спрайта сделать силуэт или что-то подобное?

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


ZizilkДата: Суббота, 08 Октября 2011, 20:53 | Сообщение # 14
постоянный участник
Сейчас нет на сайте
Quote (TimKruz)
По-любому, тут нужны общие для любой среды разработки алгоритмы обработки изображений, сам GM к этому не предназначен, вряд ли у него есть нужные средства.

По сикрету, системами распознавания образов, сейчас почти отдельная наука, и брату для распознавалки автономеров приходилось, чё только не делать чтобы заставить найти номер или знак на статичной картинке, от выборки пикселей, работы с цветами самого изображения, до ассемблерных вставок в С++ код который он писал, так что тут вряд ли найдётся общедоступный алгоритм, который можо легко реализовать
lumennesДата: Суббота, 08 Октября 2011, 20:57 | Сообщение # 15
Убийца Diablo
Сейчас нет на сайте
Quote (TimKruz)
По-любому, тут нужны общие для любой среды разработки алгоритмы обработки изображений, сам GM к этому не предназначен, вряд ли у него есть нужные средства.

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


Как мало вы знаете, как громко вы судите...
TimKruzДата: Суббота, 08 Октября 2011, 21:08 | Сообщение # 16
старожил
Сейчас нет на сайте
Quote (Zizilk)
так что тут вряд ли найдётся общедоступный алгоритм, который можо легко реализовать

Ну, почему же. huh Что-то найти можно, но это будет примитивно. Да ведь тут и не нужно распознавание каждой точки тела игрока, а только лишь силуэт, а уж детали - это шум... huh
Quote (Zizilk)
брату для распознавалки автономеров приходилось, чё только не делать чтобы заставить найти номер или знак на статичной картинке,

Т.е. по фото машины автоматически определить его номер? Ну конечно, ведь числа - это довольно маленький и особенный объект, чуть влево, чуть вправо - другое число получится, тут чёткость нужна... Например, если грязью "5" заляпает, то даже человек может её спутать с "6". А полустёртая "7" похожа на "1".
Однако в случае с игроком мы имеем один силуэт на фоне, в идеале чистом. И при этом человек занимает почти весь кадр.
Хотя ладно, я мало что в этой области знаю... sad


ZizilkДата: Суббота, 08 Октября 2011, 21:14 | Сообщение # 17
постоянный участник
Сейчас нет на сайте
На одном фото несколько машин, при том, тк снимает спид камера, то в добавок может быть что в разных местах. При чём его часть работы заключалась не только в том чтобы найти и прочитать знак, а ещё определить как раз читаем он или нет, реальные там цифры или такие опечатки, и если нечитаем отложить в папочку.

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

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


Сообщение отредактировал Zizilk - Суббота, 08 Октября 2011, 21:14
BOOMДата: Суббота, 08 Октября 2011, 21:39 | Сообщение # 18
I am the creator of ADE
Сейчас нет на сайте
Quote (lumennes)
Проблема в том чтобы из полученного bmp изображения сделать силуэт игрока, убрав не нужный фон и закрепить точки координат на нем.

Если решать этот вопрос только с помощью одной камеры - бред полный и не решаемый.
Можно, конечно, организовать такую систему, но на это понадобится следующее:
1. Как минимум, четыре камеры, расположенные со всех сторон + система глубинного определения.
2. Модуль преобразования объектного характера по фотографиям.
А далее всё программно...

Quote (TimKruz)
Ну, почему же. Что-то найти можно, но это будет примитивно. Да ведь тут и не нужно распознавание каждой точки тела игрока, а только лишь силуэт, а уж детали - это шум...

Нет, конкретных устоявшийся алгоритмов опознавания не существует, кроме чёрно-белого алгоритма-сканера для анализа штрих-кодов; и то, он работает с малым объёмом информации, однако тупит, не по детски.
А представь реализовать такого уровня алгоритм? Анализ оттенков, тонов; реализация чёткого объекта (формы) поиска при условии неизвестности цветовых пропорций; многопоточный алгоритм перебора каждого пикселя (по другому вопрос со скоростью ни как не решить)... И того уже, около 1 000 000 строчек, и алгоритм, кушающий приличное количество ресурсов... wacko .

Quote (Zizilk)
С игроком кстати не легче, цвета пропорции знаков и номеров строго известны стандартизированны, вплоть до того, что по пропорциям на картинке можно судить о его пространственной ориентации). Игрок и то что творится за ним, ни его пропорции ни одежда ни фоны.

Полностью согласен.


______________________________
Я вернулся, и это чудо.
______________________________
lumennesДата: Суббота, 08 Октября 2011, 21:40 | Сообщение # 19
Убийца Diablo
Сейчас нет на сайте
В-принципе у меня уже появились еще идеи как реализовать "киннект" управление в ГМ. Фон должен контрастировать с игроком, желательно чтобы он был светлый, а игрок в темной одежде. Перед запуском игры, игрок становится в стандартную позу 3D моделек, то есть руки в в сторону. Примерно 30-40 секунд программа фиксирует все цвета попавшие в обзор, их местоположение и их цветовое изменение за это время. Записывает в память цвета заднего фона - светлые оттенки и те цвета, которые не изменили своего местоположения во время фиксации (игрок вряд ли сможет простоять не шелохнувшись с разведенными руками). Цветовое изменение нужно для сопастовления возможных цветовых вариаций в данном местоположения. То есть если он будет сильно отличаться и совпадать с фоном,то игрок сменил позицию и мы ищем ближайшую точку с предыдущими цветовыми пределами. Так происходит движение. Короче сам пока в шоке, да и трудно наверно это. Придется думать дальше...

Как мало вы знаете, как громко вы судите...
BOOMДата: Суббота, 08 Октября 2011, 21:45 | Сообщение # 20
I am the creator of ADE
Сейчас нет на сайте
Quote (lumennes)
Перед запуском игры, игрок становится в стандартную позу 3D моделек, то есть руки в в сторону. Примерно 30-40 секунд программа фиксирует все цвета попавшие в обзор, их местоположение и их цветовое изменение за это время.

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

Quote (lumennes)
Так происходит движение. Короче сам пока в шоке, да и трудно наверно это. Придется думать дальше...

На счёт трудно - это точно. На идея интересная. Кстати, а как ты будешь определять глубину движения? Ведь может произойти так, что игрок шевельнёт руку, а в игре она растянется или закрутится как пропеллер.


______________________________
Я вернулся, и это чудо.
______________________________
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Управление игрой с помощью web-камеры (Нужна помощь и хорошие советы мастеров)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг