本人参加的是xiao系列的活动,家里没有宠物,所以就用一只玩偶代替,本来打算加个灯什么的,可是SenseCraft平台无法实现点亮黄灯,所以有所遗憾。只能做到识别玩偶模型(小红龙)。
一·开发板介绍1.以下是本开发板特点:
- 强大的MCU板: 采用ESP32S3 32位双核Xtensa处理器芯片,运行频率高达240 MHz,安装多个开发端口,支持Arduino/MicroPython
- 高级功能 (用于Sense): 可拆卸的OV2640相机传感器,分辨率为1600*1200,与OV5640相机传感器兼容,内置额外的数字麦克风
- 精心设计的电源:锂电池充电管理功能,提供4种功耗模式,可实现低至14μA的深度睡眠模式
- 拥有更多可能性的美好记忆: 提供8MB PSRAM和8MB FLASH,支持用于外部32GB FAT内存的SD卡插槽
- 出色的射频性能: 支持2.4GHz Wi-Fi和BLE双无线通信,连接U.FL天线时支持100m+远程通信
- 拇指大小的紧凑型设计:21x17.5mm,采用XIAO的经典外形,适用于可穿戴设备等空间有限的项目
2.以下是照片和部分原理图
图一,开发板接口图示
图二,开发板实物图(1是主开发板和摄像头板,2是内存卡,3是读卡器,4是USB连接线)
二·项目思路介绍此次项目分为两个思路
思路1:
通过edge impulse 平台导出arduino 的依赖包,通过官方demo(识别三种水果)来实现对玩偶的识别,和相关代码的添加(失败,识别率太低,单片机几乎没有识别能力)。流程图如下(代码见附件):
相关代码:
#include <FastLED.h>
#include <GestureDragon_inferencing.h>
引入相关模块,1是led灯条驱动 2是edge impulse生成的依赖包
for (size_t ix = 0; ix < EI_CLASSIFIER_LABEL_COUNT; ix++) {
ei_printf(" %s: ", result.classification[ix].label);
ei_printf_float(result.classification[ix].value);
ei_printf("\n");
if (result.classification[ix].value > pred_value) {
pred_index = ix;
pred_value = result.classification[ix].value;
}
}
// Display inference result
if ((pred_index == 0 && (pred_value > 0.8))) {
digitalWrite(LED_BUILTIN, HIGH); //Turn on
} else if ((pred_index == 2) && (pred_value > 0.8)) {
digitalWrite(LED_BUILTIN, LOW); //Turn off
} else {
//nothing to do.
}
此代码确认扫描到的事物和相关权重,依靠这段代码,添加相关个性程序,如闪灯等。
思路2:
通过官方百度平台教程,首先通过roboflow进行数据预处理(可以很好地个性化处理数据,本来就很少的样本,能裂化出很多)。然后在百度飞桨平台上用AI studio进行模型训练,最后导入上传至XIAO开发板。流程图如下(相关文件见附件):
三、项目效果展示因为思路一失败了,所以只展示思路二的项目效果
如上图,能做到玩偶的识别。
四、项目效果展示项目只能做到玩偶识别,对SenseCraft网站上的output功能无论如何都无法实现,厂家这次给的技术支持太少了,很多都需要自己去找。下次希望能给的信息更加信息,或者能安排专门的人手
Comments