MauiJerry / Pose2Art

Pose2Art creates an AI Camera run on small 'edge' device that extract Pose and sends tracked points via OSC to TouchDesigner and Unity/UnReal for ART!
Other
20 stars 3 forks source link

Pose2Art: smartCamera Pose to TouchDesigner etc

Pose2Art creates an AI Camera that can run on small 'edge' device that extract Pose and sends tracked points via OSC to TouchDesigner (and Unity/UnReal) for ART!

The project is documented in longer form in the Hackaday.io project Pose2Art: SmartCam to TouchDesigner, Unity via OSC. It is an evolving project, with the initial setups (esp pushing into Raspberry Pi) being a bit complex, so see that project for the how-to as well as discussion of details of the code, etc. As of June 2023, this repo is ahead of Hackaday project,

Pose2Art System Diagram

Album for Pose2Art demo videos

See related repo pyUdpTest for udp sender/receiver tests. These can be used to test both the udp connection, and as receiver of OSC messages. (TL:DR turn off windows defender)

There are a couple tools to implement the pose capture and sending OSC, along with a number of TouchDesigner applications that utilize the messages.

Sample TouchDesigner apps:

The testScripts folder holds scaffolding test tools

A number of explorations are NOT in git at this time. Mostly these are various TouchDesigner apps that explore different effects off the skeleton. I've also been looking into alternative Pose2Art cameras that can do multiple person and/or Hand Tracking and Gestures recognition.

Critique

Initially there were 2 hardware SmartCamera for Pose_OSC: a PC's webcam and raspberryPi4. The PC can do a respectable frame rate with decent graphics board. My PC webcam gets about 28fps, which is decent. The rPi4 about 8-9fps, which is not good enough for interactive work. Maybe the Jetson Nano or Coral dev boards will be better. Meanwhile, we at least have a path for getting ML data into TouchDesigner via OSC. This method could be extended for multiple person tracking (on fast hardware), object detection or other ML processing. The OSC messages will need to change for those new applications, so when you fork this, document them ;-)

Credit Where Credit Due

The initial code is derived from other projects on GitHub/web.