Моделирование движений человека.

uaha1979

Задача: написать прогу, которая показывает заданное движение человека (например выбираем из списка: бег, ходьба, приседание, выступление олимпийской чемпионки по художественной гимнастике итд)
Идея реализации: Человек просто состоит из отрезков (плечо, кисть, голень итд) и суставов.
Кладем ограничения на движения суставов (самые простые: локти назад не гнутся, итд)
Отрисовку всего этого на экран положим пока.
Сосредоточимся на том, как задать движение.
Осложнения:
Как решеть проблему
1. задавать движения каждого сустава и отрезков слишком геморно,
2. писать свой движок окружающего мира (введем силу гравитации, силу взаимодействия между отрезками, и сведем все к системе дифуров) не понятно как вообще делать не понятно как задавать движение,
3. на вход видео с нужным движением, на выход получаем обработанное движение, гемор разбираться с обработкой видео,
4. Нацепить на себя датчики, которые регистрируют свои координаты в 3d, потом воспроизводятся на экране (хз где покупать, хз как собирать такое устройство).
Вопрос:может я где накосячил, и все не так геморно как кажется (например обработка видео на таком уровне ботается за месяц, дастчики соят ра радио рынке совсем дешево, итд)
Вопрос: где можно почитать про подобные разработки (не может же это быть моей уникальной идеей)

margadon

с инерционными датчиками - охренеешь покупать, настраивать
конечно, есть вариант споттить точки на теле (а точнее яркие шарики) с помощью видеокамер и спец.софта, но опять же, охренеешь
есть ещё вариант снимать движения Kinect-ом (или Asus Xtion) - вот это более осиливаемо, хотя у этого датчика поле зрения не такое уж большое
стоит Kinect на ebay баксов 150-200, Xtion чуток подороже
посмотри Microsoft Kinect SDK и OpenNI - там есть готовые примеры распознавания движений с использованием этих датчиков

Dasar

Нацепить на себя датчики, которые регистрируют свои координаты в 3d
тебе необходимо показать движение на экране, или оцифровывать реальное движение человека?
Вторая задача много сложнее, чем первая

margadon

вторая задача очень легко решается Kinect-ом, кстати

danilov

Может, это уже есть в доступных mocap базах? Попробуй поискать

Dasar

вторая задача очень легко решается Kinect-ом, кстати
в каком виде при этом отдается результат?
в примитивном(вида): левая_рука: поднята_вверх.
или в сложном(вида):
левое_плечо: x1,y1,z1
левый_локоть: x2,y2,z2
левое_запястье: x2, y3, z3
?

Dasar

выглядит неплохо

margadon

думаю это более чем достаточно для целей тс
всё остальное потребует раз в двадцать большего бюджета и времени
это всё ещё и реалтайм

Dasar

ты сам пробовал с ним что-нибудь делать?

margadon

ну я научился с него грабить данные, позапускал все найденные примеры, но вот когда захотел накладывать меши с двух разных кадров, понял, требуются бодрые быстрые алгоритмы - их только на OpenCL/CUDA можно реализовать. Пока на этом и завяз, ибо пока что в этом не сильно силён.
что хорошо, поддержка датчика есть под все оси, под ARM есть сборки OpenNI, то есть можно использовать его в связке со всякими BeagleBone/RaspberryPi etc

Dasar

чисто для себя делал? или по работе?

margadon

нет, для себя

margadon

http://reconstructme.net/ вот это примерно то, что я сам хочу сделать

uaha1979

в каком виде при этом отдается результат?
в примитивном(вида): левая_рука: поднята_вверх.
или в сложном(вида):
левое_плечо: x1,y1,z1
левый_локоть: x2,y2,z2
левое_запястье: x2, y3, z3
?
Второе.
тебе необходимо показать движение на экране, или оцифровывать реальное движение человека?
Да нужно оцифровать движение.
За ссылки спасибо.
Теперь есть куда копать =)
Оставить комментарий
Имя или ник:
Комментарий: