TensorFlow Lite 是一种用于低运算能力终端的开源深度学习框架。它适用于微控制器和其他一些仅有数千字节内存的设备。它可以直接在“裸机”上运行,不需要操作系统支持、任何标准 C/C++ 库和动态内存分配。核心运行时(core runtime)在 Cortex M3 上运行时仅需 16KB,加上足以用来运行语音关键字检测模型的操作,也只需 22KB 的空间。
微控制器通常是小型、低能耗的计算设备,经常嵌入在只需要进行基本运算的硬件中,包括家用电器和物联网设备等。每年都有数十亿个微控制器被生产出来。微控制器通常针对低能耗和小尺寸进行优化,但代价是降低了处理能力、内存和存储。一些微控制器具有用来优化机器学习任务性能的功能。
通过在微控制器上运行机器学习推断,开发人员可以在不依赖于网络连接的情况下将 AI 添加到各种各样的硬件设备中,这经常用来克服带宽、功率以及由它们所导致的高延迟而造成的约束。在设备上运行推断也可以帮助保护隐私,因为没有数据从设备中发送出去。开发人员通过在大型设备上生成模型,使用专用程序转换模型,然后部署模型和处理程序在低运算能力的终端上实现智能应用。下面介绍我的实现过程。我的开发环境如下:
- 硬件:ESP-CAM
- 开发框架:Arduino 1.8.10
在arduino的库管理界面添加tensorflow lite和JPEGdecoder。然后在libraries/Arduino_TensorFlowLite/src/tensorflow/lite/experimental/micro/arduino/debug_log.cpp中查看波特率参数9600,你可以修改参数或者修改串口监视器的参数,总之要保持一致。
我打开tensorflow lite自带的案例person_detect,它的案例主要是在 SparkFun Edge(Apollo3 Blue)、Arduino MKRZERO、
S