I'd like to build a battery powered text recognizer, and seeking feedback on hardware and software platform. I'd like to use battery power microcontroller w/ camera to periodically take a image of a meter (think old fashion water meter), use something like tensor flow to capture meter reading, and then send it back to a gateway via Bluetooth or LoRa (maybe separate wireless hardware from the imaging/inference work).
I'm looking for feedback on hardware and software platforms to accomplish this.
Here are the constraints important to me, and how I'm thinking about it.
- Software platform support for tensor flow and camera peripheral
- Hardware size and availability
- Energy consumption and battery life
Software Platform Support: On the image recognition side, I need driver support for cheap cameras like the OVxxxx camera. And Tensor Flow lite / uTensor for doing inference given a model.
The wireless portion may be performed on a separate piece of hardware that does Bluetooth (long range maybe) or LoRa module.
Hardware size/availability: I'm not going to spin my own PCB and hardware, and I'd very much like this to be something other people can replicate easily, so I'd like to build this mostly with off-the-shelf hardware that's almost there.
Some possibilities:
The ESP32-CAM really fits that bill - the camera and microcontroller is pretty well integrated. There are quite a bit of tensorflow examples using ESP-IDF.
ARM mBed has some good examples of using STM32F4 to do character recognition. But I couldn't find any good hardware for STM32 that has an OVxxxx camera well integrated. The closest I can find is the STM32F4 discovery board plus the FPV camera, but that's physically big and clunky. So any project will be big or require quite a lots of hardware development.
I really like nRF52840. There's lots of physical form factors for MCU (adafruit feather size), and it can do Bluetooth long range for good wireless performance without having to add another wireless module. But I haven't found any easy ways to integrate a OV2640 type camera to it. I'm also unsure about how well TensorFlow works on nRF52 software platforms. Zephyr doesn't seem to support it very well? The Arduino Nano BLE 33 is a nRF52840, and Arduino supports tensor flow, so that's one possibility? I just haven't seen projects that use something like the Adafruit feather nRF52840 to do tensor flow on Arduino or mBed.
Sorry if this was a bit rambling. Fishing for any better options or insights that might push one of these options more to the front.
Thanks!