创客项目秀|基于XIAO ESP32 sense的宠物猫检测项目

本文介绍了矽递科技和硬禾学堂联合举办的项目,使用XIAOESP32S3Sense开发板和深度学习技术,实现在家宠物猫行为监测。项目涉及硬件选型、软件算法、功能实现和问题解决,包括实时性、准确性及可扩展性等性能指标。
摘要由CSDN通过智能技术生成

今天小编给大家带来的是矽递科技和硬禾学堂联合举办的寒假在家练活动的第三个项目,基于XIAO ESP32S3 sense的宠物猫检测项目,该项目由张文绵小伙伴制作,使用XIAO ESP32S3 sense作为主要硬件,在Robo Flow平台上处理XIAO摄像头抓拍的数据,处理好的数据经过AI Studio平台训练输出模型,通过SenseCraft 平台上传模型至硬件从而实现项目功能。

材料清单

硬件:

Seeed Studio XIAO ESP32S3 Sense

软件:

  • Arduino IDE
  • roboFlow
  • AI Studio
  • SenseCraft

项目技术要点分析

基于XIAO ESP32 S3开发板的宠物猫视觉识别检测项目,旨在利用深度学习技术和嵌入式系统,实现对宠物猫行为和特征的实时监控和分析。本项目要求包括硬件设备、软件算法、功能模块和性能指标。

在硬件设备方面,项目需要以XIAO ESP32 S3开发板为主控,配备摄像头模块采集宠物猫咪的图像数据。摄像模块需要具有高清晰度和宽广的视野,以保证对宠物猫的全方位观察。通过摄像头模块采集的视频流,实时检测宠物猫的行为和特征,对监控数据进行分析和统计。

在软件算法方面,项目需要建立基于深度学习技术的宠物猫视觉识别模型。识别算法还需要具备一定程度的鲁棒性,能够准确识别不同光照条件、不同背景下宠物猫的行为。预先训练的深度学习模型用于识别猫,从而实时监控家中是否有猫。

完成的功能和性能

使用XIAO ESP32 S3开发板,通过OV2640摄像头的控制,通过预训练的深度学习模型对猫进行识别,从而实现对家里是否有猫的即时监控。当检测到猫时,会发送光信号并闪烁 LED。

性能如下:

1、实时性:系统需要对摄像头采集的视频流进行实时处理,确保对宠物猫的行为进行及时的监控和反馈。

2、准确度:视觉识别算法需要具有较高的精度,能准确识别宠物猫的特征。

3、稳定性:系统需要运行稳定,长期连续监测宠物猫,无碰撞或异常情况。

4、可扩展性:系统需要具有一定的可扩展性,以方便后续功能和性能的升级和扩展。

实施思路

1.使用Arduino IDE软件和图像采集程序,将猫咪的照片拍摄到数据集中,以便后续制作。

2、使用机器人流平台上传猫咪照片进行图像数据标注的标签分类,下载数据文件,导出预处理数据。

3. 使用AI Studio平台的ModelAssistant项目对模型进行训练。

4、将自定义模型上传至Sense Craft平台,连接开发板,启动猫目标检测识别。

 实施过程

1. 流程图

2.组装 XIAO ESP32 S3

3. 在Arduino IDE上运行图像捕获程序

初始化开发板后

if(camera_sign && sd_sign){
      String command;
 // Read incoming commands from serial monitor
 while (Serial.available()) {
        char c = Serial.read();
 if ((c != '\n') && (c != '\r')) {
          command.concat(c);
 } 
 else if (c == '\n') {
          commandRecv = true;
          command.toLowerCase();
 }
 }
 
 //If command = "capture", take a picture and save it to the SD card
 if (commandRecv && command == "capture") {
        commandRecv = false;
        Serial.println("\nPicture Capture Command is sent");
        char filename[32];
 sprintf(filename, "/image%d.jpg", imageCount);
 photo_save(filename);
        Serial.printf("Saved picture:%s\n", filename);
        Serial.println("");
        imageCount++; 
 }
 }

使用camera_sign和sd_sign作为条件,确定相机和SD卡是否已成功初始化。接下来,读取串口接收命令,并在收到“捕获”命令时拍摄照片并将其保存到 SD 卡。

接下来,将图片保存在SD卡上。

// 保存图片到SD卡
void photo_save(const char * 文件名) {
 // 拍摄照片
  camera_fb_t *fb = esp_camera_fb_get();
 if (!fb) {
    Serial.println("获取相机帧缓冲区失败");
 return;
 }
 // 保存照片到文件

使用的 writeFile() 函数如下:

// SD card write file
void writeFile(fs::FS &fs, const char * path, uint8_t * data, size_t len){
    Serial.printf("Writing file: %s\n", path);

    File file = fs.open(path, FILE_WRITE);
 if(!file){
        Serial.println("Failed to open file for writing");
 return;
 }
 if(file.write(data, len) == len){
        Serial.println("File written");
 } else {
        Serial.println("Write failed");
 }
    file.close();
}

4.将收集到的猫咪照片上传至Robo Flow平台。

共注释了1000张猫咪照片。

将最终的预处理数据集转换为COCO格式进行导出。

 使用AI Studio平台训练模型,引入ModelAssistant项目。

!git clone https://github.com/Seeed-Studio/ModelAssistant.git 
%cd ModelAssistant

导入要训练的数据集。

%env DATA_ROOT="https://universe.roboflow.com/ds/aliqVGka4t?key=JibV8Iog4S"
%env NUM_CLASSES=1

训练 Swift-YOLO 微型模型。

!python tools/train.py \
  configs/swift_yolo/swift_yolo_tiny_1xb16_300e_coco.py \
 --cfg-options \
    epochs=10 \
    num_classes=${NUM_CLASSES} \
    workers=1\
    imgsz=192,192 \
    data_root=${DATA_ROOT} \
    load_from=https://files.seeedstudio.com/sscma/model_zoo/detection/person/person_detection.pth

将模型上传到 SenseCraft 平台

遇到的主要问题

1、第一次训练模型识别准确率低

当模型第一次训练时,使用的数据集太小,只有200张图片,训练好的模型可以很容易地将人或其他物体识别为猫。当模型进行重新训练时,使用更大的数据集,训练时间更长,最终提高了训练模型的识别精度。

2.引脚无法控制。使用 SenseCraft 运行模型时,只能执行一次 LED 灯操作,无法添加其他代码或引脚。

3、运行过程中,芯片严重发热。

4、摄像机帧率低,只有十帧,无法保持高帧率的识别。

 对未来计划的建议

该项目已成功实现了猫目标识别和检测功能,并可发送光信号报警,初步达到了预期目标,但通过增加更多外设

要实现功能扩展和延伸:

1、使用OV2640摄像头分辨率有限,添加更高像素的摄像头可以使识别更清晰。

2、通过添加一些外围设备,驱动一些电机,就可以实现智能家居的应用。

3、更换频率更高的芯片,可以提高帧率。

在不更换硬件的情况下可以升级的地方:

1、使用较大的数据集来训练模型,训练的照片越多,最终模型的识别效果越好。

2.可以添加更多标签来识别更多类型的宠物。

3.联网后,连接一些应用程序进行远程控制。

4、使用蓝牙连接部分设备。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值