48| 0
|
[K10教程] 基于micropython实现人类识别 |
AI功能这个东西,官方迟迟没有出教程,于是通过大量查找,发现https://github.com/mocleiri/tensorflow-micropython-examples有一个人类识别的案例,于是编译了K10的固件进行使用。 1.行空板介绍 行空板K10集成ESP32-S3、摄像头、2.8寸彩色LCD、麦克风、扬声器、WiFi蓝牙模块、RGB指示灯及多种传感器和扩展接口于一体;支持图像检测、语音识别、语音合成、mind+图形化编程,MicroPython编程,是一款专为信息科技课程教学需求而研发的开发板 2.TensorFlow-Lite-Mirco介绍 TensorFlow Lite for Microcontrollers(TFLM)是TensorFlow Lite的一个实验性移植版本,专门针对微控制器和其他仅有数千字节内存的设备。以下是关于它的详细介绍: 特点 轻量级:核心运行时在Cortex M3上运行时仅需16KB,加上运行语音关键字检测模型的操作,也只需22KB的空间。这使得它能够在资源极其受限的微控制器上运行。 无需依赖:可以直接在“裸机”上运行,不需要操作系统支持、任何标准C/C++库和动态内存分配,降低了对硬件环境的要求。 低功耗:微控制器通常针对低能耗和小尺寸进行优化,TFLM在这样的设备上运行,有助于实现低功耗的机器学习应用,适合电池供电或能量收集的设备。 功能和组件 C++ API:提供了运行时的C++ API,方便开发者在微控制器上进行开发。 标准FlatBuffer架构:使用标准的TensorFlow Lite FlatBuffer架构,能够与TensorFlow Lite的生态系统兼容。 预生成项目文件:为Arduino、Keil和Mbed等较为流行的嵌入式开发平台预生成了项目文件,方便开发者快速上手。 针对嵌入式平台优化:对多个嵌入式平台进行了优化,以提高在这些设备上的性能。 应用场景 智能家居:可用于家庭安防系统中的人体检测功能,通过在微控制器上运行人体检测模型,实现对家庭环境的实时监控。 工业自动化:在工业设备上部署语音控制功能,通过运行语音识别模型,实现对设备的语音指令控制。 物联网设备:在低功耗物联网设备上运行各种机器学习模型,如环境监测、设备状态预测等,实现设备的智能化。 3.tensorflow micropython介绍 TensorFlow MicroPython 示例项目是一个开源项目,旨在将 TensorFlow Lite for Microcontrollers (TFLM) 集成到 MicroPython 固件中,以便在微控制器上运行机器学习模型。该项目由 Michael O 创建,支持 ESP32 和 RP2040 等微控制器平台。通过该项目,开发者可以轻松地在微控制器上实验和部署 TinyML(微型机器学习)应用。 项目特点 TensorFlow Lite 集成:将 TensorFlow Lite 模型集成到 MicroPython 固件中,使得微控制器能够运行轻量级的机器学习模型。 MicroPython 支持:提供了一个自定义的 MicroPython 固件,允许开发者使用 MicroPython 语言进行开发和实验。 ulab 模块:集成了 ulab 模块,这是一个用于 MicroPython 的科学计算库,提供了类似于 NumPy 的功能。 示例实现:提供了多个 TensorFlow Micro 示例的 MicroPython 实现,包括 hello_world、micro_speech、person_detection 等。 项目目录结构 boards/: 包含不同开发板的配置文件。 ci/: 持续集成相关的配置文件。 docker/: Docker 相关的配置文件。 examples/: 包含多个示例项目,如 micro-speech、person-detection 和 hello-world。 images/: 项目相关的图片文件。 lib/: 包含项目依赖的库文件,如 micropython、micropython-modules、micropython-ulab 和 tensorflow。 src/: 包含项目的源代码,如 micro-speech。 应用案例和最佳实践 语音识别:使用 micro-speech 示例来识别特定的语音命令。 图像分类:通过集成 TensorFlow Lite 模型,实现简单的图像分类任务,例如使用 person-detection 示例来检测图像中是否有人。 传感器数据处理:结合传感器数据,实现实时数据处理和预测,例如使用加速度传感器数据进行姿态识别。 典型生态项目 Edge Impulse:一个用于开发嵌入式机器学习应用的平台。通过集成 TensorFlow MicroPython 示例项目,可以在 Edge Impulse 上训练模型并将其部署到微控制器上。 OpenMV:一个开源的机器视觉平台,支持 MicroPython。通过 TensorFlow MicroPython 示例项目,可以在 OpenMV 上运行 TensorFlow Lite 模型,实现更复杂的机器视觉任务。 MicroPython-ulab:一个用于 MicroPython 的科学计算库,类似于 NumPy。通过结合 TensorFlow MicroPython 示例项目和 ulab,可以在微控制器上进行高效的数值计算和机器学习推理。 4.开发流程 首先,我们使用Edge Impulse训练模型,并刷入固件。 接着,把模型放到根目录部署代码 最后,迭代使用即可。 5.部署代码 我们在这里先不训练模型,直接使用官方示例person-detection(人类检测),改了文件代码引脚后,参考代码如下: 6.效果把脸凑到摄像头前识别不到人,当人出现在摄像头里是才会识别到。 |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed