I am sitting out on my deck with my portable fan blowing in my face learning how to manipulate Yolo v3 so I can upgrade my prediction algorithms and set up birdcam once again.
For those who do not know, the plan behind birdcam — completely derailed by the pandemic — is this:
- Have a raspberry pi hooked to a passive infrared sensor (a PIR) to sense movement.
- When sensed movement, take a picture with the onboard camera.
- Convert the image into digits and pass it through an ML object detection algorithm.
- If it believes that it has found a bird, then store the image in S3 and send out a message. And perhaps, tweet out birds, as is appropriate to twitter.
- If it has not seen a bird, then dump the image.
My original model had, like, a 63% accuracy, which was complete garbage. That lead me down a path of sitting down and really learning the basics of Machine Learning (done), build some neural nets from scratch with their activator functions, also from scratch, in numpy so I actually knew what they were doing (done), understand how CNNs work by building one from scratch (done), learn how to make Keras do basic CNN things (done), and then, finally, start working with Yolo v3.
So, on vacation, I decided to be up to my armpits in data science python. Which, of course, is nothing like regular python. It’s a skill I did not have. Right now, the yolov3.weights file is downloading and I shall endeavor to learn fun new things about transfer learning.
The problem with starting with keras is that you just sort of wire things together like magic lego bricks. Oh, it’s a multi-classifier, I guess I need a crossentropy loss function. It’s a regression, so I’ll use MSE and RMSE. And you just plug those things into the workflow and out pops a trained model all ready to get saved, slurped onto a PI somewhere, and off it goes.
I liked learning all the math but with the pandemic and my brain fully tapioca’d it took freaking forever. That said, I can do a CNN for my image classifiers and do RNNs for the time series of the hydroponics data collection to predict when a plant needs water. I now have that power under my control.
Also, I installed pylance in my visual studio code setup and it feels like programming-based cheating with all the type checking and inspection and hotness. 20 years of python in vim and I’m like where has this been all this time? It’s way too easy to get something done now.
There’s a fly that lives on this deck and no matter how much I wave at it it doesn’t stop buzzing my head. I’ve brought out a fan, and the fan does wonders on all other bugs except the fly. It is impervious to the fan.
Other than that, I read a comic. I worked on my Mom’s site a bunch. And that’s it. Vacation it is.
I haven’t actually looked at the news today. At all. I feel better about the universe for it.
- 59,652,675 total tests
- 4,869,058 confirmed cases
- 162,130 dead
- 93,601 cases in MD with 3,650 dead
- 1 in 87 people have it in Howard County
Hilarious fact! The reason that the daily cases loads are going down isn’t because we have the spread of the virus under control. NO! It’s because test results are taking so long to come back that people aren’t getting tested at all. That’s right. People have simply stopped getting tested. It looks like caseloads are going down but deaths are going up up up up! Woo! USA! USA!
Also, my kid’s school is rollout out the MOSH PIT mnemonic to help remember to wear masks and wash hands when on campus and man I am torn on that one.