Learning Journal: January 31st 2019 - The seeds are coming!

In my last language entry I talk about both of these topics a bit, but now I wanted to take the time to write about them a little more in depth maybe. And those topics are; my hydroponics project and tensorflow inside of HA.

Firstly, hydroponics. I fixed my setup to help keep the seeds a bit warmer while they are germinating. And it is working. one of my tomato seeds has a freakishly long root already, the rest all look like they are at least coming along. The peppers look to have mostly all broken free as well, though the roots there are much smaller.

The one tomato seed is a like a super seed compared to everything else. It is honestly almost 10x longer than the next biggest. I'm honestly wondering if that means that the others are weaklings.

Longer term plans are already forming. I plan to store them in the insulated chamber I had created for the beer. I want to get back into brewing. But, while I found kegging easier/quicker in the final stages, it generated more things to clean, and slow leaks are a pain to detect which craters the whole system. I'd much rather just go back to carbonating in bottles. Now that I have a basement I can do that in, it is even better. And, enjoying via bottles is a lot easier.

So, my fermentation chamber seems destined to become my little hydroponics garden. And, when I get back into beer making, I may need another thermostat driving the power for the fermentation fridge. But, it feels good. I know I'm nowhere near being able to actually eat anything. Nonetheless, it is exciting to take something from seed to food.

TensorFlow is the other item. Which in turn talks about my server. Getting the Steam games I actually play running on Linux is HUGE. I really wasn't sure of the long term viability of this system with my gaming still in Windows. I'm not a huge gamer, but when I feel that itch, I need a way to scratch it. If I need to take my server down to do that, it means that project is either going to die, or I'll need to new hardware. Not to say I don't have a plan. If HA alone were running on the Pi, it would be very possible as long as I have a recovery plan (which) I do, to convert back to Windows.

On the TensorFlow topic. I got things "working". It isn't perfect. But, what I have is pretty cool. It can definitely be improved. Though, the biggest problem right now is simply in testing. I want it detecting only certain things within a certain area. And that area doesn't (and shouldn't) get a lot of activity. Which means, unless I'm running into and out of the house regularly in front of the camera and moving cars, etc... testing doesn't really happen, and the system only gets improved very slowly.

But, the important thing is, since I got it working yesterday, I only got 3 alerts, and all 3 were legitimate events. It missed a few I expected it to get. In some cases the camera update frequency missed the events so the data never got fed to TensorFlow, and it also seems to fail to identify cars in my driveway. If the data never goes into TensorFlow, then I can't do anything about the quality of the results. But, I clearly need to try some new models since the vehicle detection in the driveway (where I care about it) is poor (well, non-existent actually). I mean, my wife sat with the car in the driveway for 5 minutes and all tensorflow caught was an image of her getting back into the car.

Anyway, the important thing here is, as far as I can tell, it has successfully identified every single time there was a human in the image. Which is obviously the most important detection. It also NEVER gave a false positive. THIS is what I was expecting the Nest Aware to be able to do, which it failed massively at.

This is also why I'm so excited about this. I'm getting the kind of alerts now that I expect from an automated, artificially intelligent security system. And I'm achieving it with someone else's pre-compiled models. In short, it means if I decide to dive into developing my own object detection models in tensorflow, then I should be able to get even more accurate results.

I really want to go to the Nest division at Google and smack them in the face. I'd LOVE to not feel the need to do this. And frankly, I think that they have much better resources and skills to carry this out. I think that the ideal model would be to create a few different "standard" models for locations where a camera might be mounted and process a few images to determine if the best model is being used. If not, switch. Add an advanced mode where high probability matches can be incorporated into the model on something like a weekly basis, and even allow the user to help train on lower confidence pictures.

So, ideally, it would start with a default profile. After recording for a while, take a sampling of the images and attempt to determine a profile (driveway facing, subdivision, back porch in country, etc...). To improve the accuracy and detection, it should take a random sampling of high confidence detections (95%+) and incorporate them into the model used for that specific camera and profile.

The last piece would be, if the detection is bad or could be better, it would be great to log in and be presented with a bunch of cached images with OK probabilities and show the picture with a bounding box of the detection and say something like "Is this is a picture of a person?". For the positive matches, these can be incorporated into the model.

This could help with detection with partial obstructions or weird lighting conditions which might degrade the performance of a more generalized model.

The first one should help the model get better over time for your camera as long as it remains in the same location. And the latter should make it possible to deal with unique features of what the camera is taking in to help it.

Perhaps most importantly, this sort of customized modeling should allow, over time to permit the model to shrink. As the concentration of photos used to train the model which come from the camera itself increases, fewer images should be required to achieve the same or better accuracy. Which should lower the processing requirements.

Anyway... yeah, it is working. And it looks promising.

Comments

Popular Posts