Control your lights with dab and t-pose, duh
Control your lights by dabbing and t-pose'ing, duh
Check out the full blog post here.
By default, I couldn't write to the
/dev/ttyACM0device that the ZWave USB controller came up on with my NVDIA Tegra TX2.
You'll need to do something along the following to get permissions:
$ sudoedit /etc/udev/rules.d/50-myusb.rules
Followed by inserting the following lines to add perms to the
There are two ways, I started out by using the original OpenPose repo to get a build and proof of concept running.
I got ~~probably half a frame~~ 1.4(ish) frames per second out of that. You can see how I initialize and use the built in devboard camera in the
01_body_from_image.pyfile in this repo. That comes directly out of the included Python examples.
Because I wanted better response time, I ended up searching for a better model. I found tf-pose-estimation.
It requires Tensorflow, so be sure to grab the latest Jetpack release from NVIDIA here when installing.
After that, it should run with the included
run_webcam.py, just be sure to run it with the right model. Mobilenetv2large was the bare minimum for an acceptable detection for me:
$ python3 run_webcam.py --model=mobilenet_v2_large --resize=432x368
With this model, I get 4(ish) frames per second on the TX2, much better for detection latency. I may try seeing if I can optimize further after getting a full proof of concept running.
We'll use some saved examples of T-Poses and Dabs in order to train our classifier. You can see the Jupyter notebook here with examples of labeling and converting our raw
npyNumpy exports to CSVs and Pandas datasets, along with cleanup and training.
The current (working) architecture looks like this:
You'll need to get OpenPose up and running, along with the Python libraries for OpenCV and ZWave. After that, you can use the included program, just run it under the
If you want to grab more example poses for retraining, just replace the
01_body_from_image.pywith the one included in this repo's
For some reason, the model test I run on my original
ydataset doesn't seem to work. I think I messed the data up somewhere along the way in the Jupyter Notebook. If you figure out where that happens, open a PR please. :)