littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于Arduino和Edge Impulse的Timer Camera F物体识别系统

项目简介

本项目围绕M5Stack的Timer Camera F设备展开,探索其在物联网技术领域的图像采集与分析能力,聚焦于物体识别和分析。结合Arduino IDE进行软件开发,利用Edge Impulse平台创建机器学习模型,可实现不同场景下的物体识别,如仓库货架物品识别,用于库存管理等实际应用。

项目的主要特性和功能

  1. 利用Timer Camera F的OV3660摄像头进行图像采集。
  2. 通过ESP32微控制器实现高效且低成本的图像数据处理。
  3. 借助Arduino IDE进行C++代码开发,方便连接设备并查看串口输出。
  4. 可将采集的照片上传至FTP服务器,用于后续机器学习模型的创建。
  5. 运用Edge Impulse创建的机器学习模型,对图像中的物体进行识别和分析。
  6. 提供用户界面,方便设置连接参数,无需修改代码。
  7. 支持不同的图像分辨率和拍摄数量设置。
  8. 可设置相机进入低功耗的“deep sleep”模式,延长电池使用时间。

安装使用步骤

1. 安装相机驱动

参考M5Stack官网教程安装相机驱动:Tutorial M5Stack per installazione driver camera

2. 安装Arduino IDE

从官网下载并安装Arduino IDE:Download Arduino

3. 配置开发环境

4. 安装照片采集库

从指定链接下载库文件,在Arduino IDE中通过“Sketch -> Include library -> Add .ZIP library”分别添加这两个库。

5. 照片采集

将“test -> TimerCAM_PhotoAcquisitionToFTP.ino”代码上传到相机。相机作为AP创建名为“ESP32 Camera Configuration”的WiFi网络,无密码。连接该网络后,在浏览器中访问“http://192.168.4.1”,设置WiFi和FTP服务器连接参数,点击“Salva”。设置拍摄照片的数量、标签和分辨率,点击“Cattura foto”开始采集。若不设置拍摄数量,相机会持续拍摄并上传,断开电源可停止。

6. 创建和训练模型

在Edge Impulse官网注册账号并创建项目:Sito Edge Impulse。上传采集的照片,选择“Automatically split between training and testing”和“Infer from filename”,创建图像识别项目。在“Labelling Queue”中为需要识别的物体绘制边界框并添加标签。在“Impulse design”中创建脉冲,选择训练分辨率(建议实时识别选择48x48或96x96),添加图像处理和学习模块,保存脉冲。设置图像参数,生成特征。在“Object Detection”中设置训练参数(如训练周期30、学习率0.005),选择模型“FOMO (Faster Objects, More Objects) MobileNetV2 0.1”,开始训练。训练完成后,在“Deployment”中选择“Arduino Library”格式下载模型库。

7. 使用实时识别程序

下载并安装模型库“ei-timer-camera-object-recognition-arduino-1.0.4.zip”。在Arduino IDE的“File -> Examples -> Examples from custom libraries”中选择模型库,打开“esp32 -> esp32-camera”示例代码,上传到相机即可实现实时物体识别。若使用项目中的示例“TimerCAM_Object_Recognition”,需包含“ei-timer-camera-recognition-arduino-1.04.zip”库,该示例非实时识别,拍摄照片、分类后会进入1分钟的“deep sleep”模式。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】