LINUX.ORG.RU

Пример «дополненной реальности» на питоне

 , , ,


3

3

こんにちは, ЛОР!

Раньше, когда я был маленьким и глупым (не то что сейчас), возился как-то с питоном и мультимедийной библиотечкой pygame с замечательным модулем для работы с камерой. И так мне все это было интересно, а времени так много, что решил сделать небольшой примерчик так называемой «дополненной реальности» на питоне. Да-да, я знаю, что для этого все умные люди уже давно используют OpenCV (и не используют питон), но, как я написал выше, то было раньше, да и интересно было повозиться самостоятельно, с дилетантской точки зрения. Сказано - сделано: через некоторое время появился код, который позволял отслеживать положение объекта IRL и взаимодействовать с виртуальными объектами («кнопочками», летающими шариками и прочей глупостью). Все это дело работает из коробки под православным линуксом и оффтопиком. Как обстоят дела с GayOSOSX я, честно сказать, не знаю. Возможно, что и на этом тоже работает, через OpenCV.

Краткая инструкция:

  1. Берете яркий предмет, желательно однотонный и с матовой поверхностью; лучше будет, если он не будет совпадать по цветовой гамме с окружающими вас предметами.
  2. С помощью кнопок, указанных в readme.txt, фиксируете цвет искомого предмета.
  3. Настраиваете RGB-компоненты выбранного пипеткой цвета таким образом, чтобы был виден лишь искомый объект, желательно без «шума».
  4. Переключаетесь из режима калибровки в режим отслеживания объекта и веселитесь от души.
  5. ???
  6. PROFIT!!!

ACHTUNG!!! Код был написан питонячьим ньюфагом и представляет из себя полный пипростыню не для слабонервных, хоть и с комментами (слава богу не на русском). Код под GPL2.

P.S. в данный момент решил переписать все по заветам дедушки Ленина: модульно, с многопоточностью, событийной архитектурой на слабосвзянных компонентах и прочими блекджеками. Код выложен в public domain.

Если кому интересно: страничка проекта на pygame.org (с целой одной картинкой).

Еще: legacy-исходники и mercurial-репозиторий на bitbucket.



Последнее исправление: slmgc (всего исправлений: 2)
Ответ на: комментарий от I-Love-Microsoft

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

gnunixon ★★★
()

Код был написан питонячьим ньюфагом и представляет из себя простыню

Хочу заметить, что вообще написан... Надо поощрять подобное рвение.

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

Делал такой трюк на опенсв и Processing, в качестве «яркого предмета» использовал фонарик. Пишется за день/вечер (opencv/Processing с нуля соответственно).

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

скриншоты в студию

Да, ты прав, сейчас добавлю прямую ссылку.

slmgc
() автор топика
Ответ на: комментарий от I-Love-Microsoft

это желательно узнать непосредственно от автора темы, скриншотов хатю

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

Что-то в этих ваших ЛОРах не получается отредактировать созданную тему, после того, как в нее накидали ответов.

Ну да ладно, вот прямая ссылка на скрин.

slmgc
() автор топика
Ответ на: комментарий от moved

не работает :(

А можно подробнее немного? Что не работает? Не запускается или не получается откалибровать? Автокалибровки пока(?) нет, но у меня есть пара идей, которые я хотел опробовать. Если не запускается, то напиши версию ОСи, питона и пигейма.

slmgc
() автор топика
Ответ на: комментарий от I-Love-Microsoft

скажите, а OpenCV имеет в своем составе детектор движений?

OpenCV - это целый комбайн с огромным количеством готового функционала по теме компютерного зрения, там есть все, что требуется.

Мне же хотелось попробовать сделать что-то простое, но самостоятельно, без использования высокоуровневых наработок. Pygame как раз и позволяет это сделать.

slmgc
() автор топика

P.S. мне бы хотелось получить немного больше отзывов от тех, кто попробовал: получилось ли запустить, если нет, то подо что не пошло. Получилось ли откалибровать маску, насколько понятно как это сделать и т.п.

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

slmgc
() автор топика

Дополненнная реальность (и сабж) — это прикольно, конечно, но мое мнение, что оно никогда толком не взлетит, ибо у каждого реальность субъективна.

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

ибо у каждого реальность субъективна.
buddhist ***

Ну еще бы.

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

Я к тому, что понятие «текстурки» для каждого свое. man Витгенштейн :)

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

у каждого реальность субъективна.

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

slmgc
() автор топика
Ответ на: комментарий от slmgc

мне бы хотелось получить немного больше отзывов от тех, кто попробовал

Я нифига не понял. Что нужно делать? Картинка с камеры появилась, что дальше - непонятно.

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

В readme, если что, смотрел - там только про Esc и Enter.

А, теперь понятно: ты же dev-версию из репозитория скачал, а там только основной каркас на новой архитектуре, функционала еще нет. Тебе нужна работающая старая версия, я специально об этом на сайте проекта написал.

slmgc
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.