Quite some time has passed since part 1. I’ve trained a new neural network to recognize ducks.
That’s much better than what the stock network was seeing. Not ideal to be sure, but good enough to work with.
This was achieved largely following the tutorial by EdjeElectronics, but on Ubuntu instead of Windows. I had around two thousand photos to train on, which took some time to label manually. I’ve struggled a bit experimenting with different models and settled on ssdlite_mobilenet_v2_coco.
Also, I’ve tried to follow the following tutorial, but either I’m an idiot (which is very likely), or google cloud machine learning is very far from being a reliable product. I’ve spent dozens of attempts trying to at least start training there so that it didn’t crash after first 10 minutes running. Then after having spent 200$ (gladly out of 300$ of promo credit given upon registration) I’ve ended up with a model that didn’t perform any better than the one I’ve trained locally on my 3Gb GTX 1060.
The bad news that the model takes about 1 second to run on raspberry, which is a bit slow. So I decided to try Nvidia’s Jetson Nano out, which set the project budget some $100 back. To my pleasure it processes the model in about 0.2 sec. So that’ll be the way to go, even though it barely fits inside the boat.
The following bad news was that the Jetson doesn’t work with raspberry cameras that I had. It only accepts IMX219 camera sensor, while the cameras I had were on older OV5647, so now I have to buy another camera.
While I’m waiting for camera shipment I’ll probably try to assemble everything with raspberry, maybe one-two second latency is not that bad.