![]() |
Team turn in rush hour traffic |
Tuesday, April 18, 2017
Sunday, March 12, 2017
Spring Street: From Emptiness to Fullness
![]() |
On Sundays we fill the streets |
![]() |
Not exactly what I pictured, but you can see the flowers and saguaros, and cyclists |
![]() |
The canal was filled with these, hundreds of them |
![]() |
A Spring when our rivers are richly full of water and flotsam |
Labels:
flower power,
meditations,
road bike,
spring,
sundays
Tuesday, February 14, 2017
Vehicle Detection for Cyclists Using a Raspberry Pi 3 with OpenCV Haar Cascades
![]() |
Real-time video image detection running on a Raspberry Pi 3 standalone |
I will post further details in future posts. This is just a quick progress update before I go hit the road to get more data.
![]() |
Better shot of the Pi, with the power bank that puts out 2.4 amps at 5v |
Up next in experiment 4B:
- Improve memory footprint and performance
- Work on multi-threading
- Look into leaner modules
- Integrate camera
- Road training
- Road testing
- Detection noise filtering (detect unicorns not herds)
- Experiment 5 is planned to included TensorFlow
Current status: giddy.
Labels:
be open,
fun with hallucinations,
getting to yes,
meditations,
OSGIML,
sharrows,
zen combat
Monday, February 6, 2017
Deep Bike Dreams
![]() |
Yes, still just goofing around with neural network image processing, with bikes in it |
I promise to write some code, hook up some hardware, and do something kind of useful, soon.
Labels:
be open,
fun with hallucinations,
getting to yes,
meditations,
OSGIML,
sharrows,
zen combat
Saturday, January 28, 2017
Bicycle Threat or Treat Image Classification Using TensorFlow and Inception
![]() |
.996 Bike Threat |
![]() |
.997 Bike Treat |
![]() |
Inception v3 looks like this, I'm told |
Not everything was a screaming success, however. I took some low-rez screen grabs from this post that has a clip I shot of one of my more threatening encounters on the road, imagining results that I might get if I had enough hardware and the right software running on the back of my bicycle to alert me of what was about to happen.
The first one scored high as a .997 threat. The second one, taken just before the actual close pass, got a more ambiguous .69 threat rating. The third one, taken just moments before #2, got a much stronger .93 threat rating. When I do this again, I will think more about close passes and real traffic situations, which I had a limited supply of photos of for this first experiment.
What's next for OSGIML? More image classification, I bet. First, more playing around with this experiment, to see what else I can learn.
Add to backlog: the follower-drone should provide data to enhance threat detection, and to attract to bicycle treats on or near the intended navigation route.
.997 Bike Threat |
.692 Bike Threat (doh!) |
.93 Bike Threat (yay!) |
ADDENDUM: Saturday afternoon shots
![]() |
bikethreat (score = 0.96360) |
![]() |
bikethreat (score = 0.99636) |
![]() |
biketreat (score = 0.54084) (confusing shadow is confusing) |
![]() |
bikethreat (score = 0.91335) |
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:
OSGIML RULES:
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.
Labels:
be open,
fun with hallucinations,
getting to yes,
meditations,
OSGIML,
sharrows,
zen combat
Monday, January 23, 2017
Getting to Yes! on the Bicycle
![]() |
Photo processed thru Deepdream python script, with TensorFlow |
While currently reading Tara Brach's "Radical Acceptance", it dawned on me that being open to the experience, recognizing it for what it is, then welcoming the feelings that accompany it with honest compassion, is potentially a more effective method for responding to road insults. If he's angry and I'm afraid, then that is what it is. It's about looking at reality openly, possibly differently, with less processing, rationalization, and denial, with more awareness, mindfulness, if you will. Too see what's there, be in the moment, and alive. Even when the moment itself has previously held strong negative potential. This, too, as Tara Brach might observe.
The photo above is an example of some recent forays I've taken into learning about Machine Learning (ML). So far, the math is about 80% over my head, but I'm chipping away at it through playful learning, which keeps me engaged. Instead of beating myself up for not really deeply understanding tensors or softmax so far, I play with the code and accept myself hack by hack and have fun with it. In my experience, the light usually goes on eventually, perhaps without me consciously willing it, or fighting against the setbacks, but just enjoying the act of creating trippy photos like the one above. Perhaps I will sneak up on understanding TensorFlow that way. Perhaps if part of our vision imagines sneaky weasel lurking beneath the share the road signs, we can get to "Yes" on our bicycles.
Why ML? I have this fantasy of programming and soldering something for bicycles, for cyclists. Raspberry Pi, Android, Python scripts, data overages, processing my commute through TensorFlow, I'm just saying yes, yes, yes, even if that's all crazy.
Labels:
be open,
fun with hallucinations,
getting to yes,
meditations,
OSGIML,
sharrows,
zen combat
Subscribe to:
Posts (Atom)