Подтвердить что ты не робот

Как вы можете отслеживать движение с помощью камеры iPhone?

Я увидел, что кто-то сделал приложение, которое отслеживает ваши ноги с помощью камеры, чтобы вы могли играть в виртуальный футбол на экране вашего iPhone.

Как вы могли бы сделать что-то подобное? Кто-нибудь знает какие-либо примеры кода или другую информацию об использовании камеры iPhone для обнаружения объектов и их отслеживания?

4b9b3361

Ответ 1

Я только что поговорил на SecondConf, где продемонстрировал использование камеры iPhone для отслеживания цветного объекта с использованием шейдеров OpenGL ES 2.0. Сообщение, сопровождающее этот разговор, включая мои слайды и образец кода для всех демонстраций, можно найти здесь.

Образец приложения, которое я написал, код которого можно загрузить из здесь, основан на примере, выпущенном Apple для демонстрации Core Image на WWDC 2007. Этот пример описан в Глава 27 книги GPU Gems 3.

Основная идея заключается в том, что вы можете использовать собственные шейдеры GLSL для обработки изображений с камеры iPhone в реальном времени, определяя, какие пиксели соответствуют целевому цвету в пределах заданного порога. Затем эти пиксели имеют свои нормализованные координаты X, Y, встроенные в их красные и зеленые цветовые компоненты, тогда как все остальные пиксели отмечены как черные. Затем цвет всего кадра усредняется для получения центроида цветного объекта, который вы можете отслеживать, когда он перемещается по экрану камеры.

В то время как это не касается случая отслеживания более сложного объекта, такого как нога, шейдеры, подобные этому, должны быть способны писать, чтобы выбрать такой движущийся объект.

Как обновление вышеизложенного, за два года с тех пор, как я написал это, я разработал инфраструктуру с открытым исходным кодом, которая инкапсулирует OpenGL ES 2.0 шейдерная обработка изображений и видео. Одним из последних дополнений к этому является класс GPUImageMotionDetector, который обрабатывает сцену и обнаруживает в ней любые движения. Это даст вам обратно центроид и интенсивность общего движения, которое он обнаруживает как часть простого блока обратного вызова. Использование этой структуры для этого должно быть намного проще, чем выполнять собственное решение.

Ответ 2

У меня были некоторые успешные отслеживания лиц и глаз с использованием OpenCV на iPhone. Здесь хорошее место для начала: http://niw.at/articles/2009/03/14/using-opencv-on-iphone/en

Я предполагаю, что трюк - это поиск каскада (описание того, что должна искать камера), который описывает ногу, не совсем уверен, существует ли это.