Thursday, January 26, 2017
There Should Be Bicycles in It
The video above is from experiment #2 with machine learning (ML): use a python script to process a video clip through TensorFlow / Deepdream. Experiment #1, my previous post, was to do that with a still photo. This is the next step in the continuing efforts of the OSG Institute for Machine Learning (OSGIML) to do something with it for bicycles.
To that end, I've put together the following set of guiding rules that I sort of follow:
1. Experiments are successful when I learn something new, and the code runs.
2. There should be bicycles in it.
3. Experiments should prove out the software prior to me buying new hardware to run it, to minimize waste.
4. Set the bar low to ensure stepwise daily progress, to nurture new habits and have fun.
5. Exploit the virtues of developer laziness: reuse, adapt, recycle, refactor. Don't create tools you can download. Solve the heart of the problem, and don't expend cycles on problems that others have already solved.
6. Add flashes and insights to the backlog, for when tools, time, and technique might render them feasible.
EXPERIMENTS SO FAR:
Experiment #1. Use TensorFlow and Python to process bicycle images with Deepdream.
learning: python, TF, ML, tensors
Experiment #2. Use TensorFlow and Python to process video clips which include bicycles with Deepdream.
learning: more TF, more py, more ML, tensors and usage, hardware requirements, Siraj Raval videos for learning stuff about this (he's great)
Experiment #3. Try out Jupyter while using TF and Py to classify images that include bicycles.
learning: basic TF usage, tensors, matrix math, Jupyter
According to rule #1, experiments #1 and #2 were resounding successes! On to experiment #3, classifying images with bicycles in them.
Add to backlog: bike-threat (classification). 1-shot, 1-hot, 1/10th second, fire alert with sound, LED, haptic, indicate direction and intensity.
Video note: I uploaded to Blogger, Youtube, and Vimeo, but the first two thought the flower effects were noise, and mainly took them out during processing, while Vimeo left them in, so that's why I used Vimeo in this post.