1.项目需求
- 开发一个基于深度学习或者机器学习算法的图像识别系统,能够识别宠物的不同行为模式,如进食、睡眠、活动等。该系统应能够准确识别不同种类的宠物.
- 实现远程监控和互动功能,让主人可以随时随地通过手机或者电脑监控宠物的状态,并与宠物进行语音或视频互动,以缓解宠物的孤独感。
- 不断优化和改进系统功能,结合用户反馈和市场需求,不断提升系统的性能和用户体验,确保系统能够与时俱进,满足用户的需求和期待。
2.完成的功能及达到的性能
2.1对目标进行精准的识别
在使用Seeed Xiao ESP32S3 Sense开发平台的Arduino IDE集成环境中,结合roboflow和AI Studio的图像识别功能,可以对手办宠物目标进行识别。通过先进的图像处理算法和深度学习模型,ESP32S3 Sense可以准确识别手办宠物,并将识别结果传输到Sense Craft上显示出来:
2.2识别到目标是进行有效的反馈
在成功识别到家中宠物的行为目标后,我们将通过控制板载 LED 灯来进行反馈。LED 点亮作为一种直观的视觉反馈方式,将提供实时的识别结果,并加强用户对宠物行为的感知。这项智能家居方案的创新之处在于将高级图像处理技术与嵌入式系统相结合,实现了对家中宠物行为的智能识别和及时反馈,为家庭成员提供了更便捷、安全和舒适的居住环境。
3.实现思路
1.在Arduino IDE 集成环境中编写拍照代码,每执行一个指令会进行一次拍照,需要拍取足够多的照片;
2.再拍取足够多的照片之后,在roboflow 总中进行数据预处理,并获取数据包链接;
3. 在AI Studio平台上进行神经网络训练,得到最终的识别代码;
4.将AI Studio平台上生成的识别代码导入到Sense Craft平台中,并生成最终模型,且测验结果。
5.在识别到目标后,进行有效的反馈。
4.实现过程
4.1程序流程图
4.2拍照采样代码
通过不断的拍取目标图像,然后不断的存到SD卡,然后用读卡器在电脑上取出来;
// Save pictures to SD card
void photo_save(const char * fileName) {
// Take a photo
camera_fb_t *fb = esp_camera_fb_get();
if (!fb) {
Serial.println("Failed to get camera frame buffer");
return;
}
// Save photo to file
writeFile(SD, fileName, fb->buf, fb->len);
// Release image buffer
esp_camera_fb_return(fb);
这是写入SD卡的函数:
// 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.3图片预处理
利用roboflow进行图片的预处理操作,下面是预处理得到的数据集:
httpsuniverse.roboflow.comdsXCtjJlyscPkey=rBxT8Famcp
4.4模型训练
利用AI Studio进行神经网络训练,得到了相关代码:代码文件位于附件中。
4.5模型检验
上传自定义的模型,并生成窗口进行检验。
4.6识别反馈
在识别到目标后,我用led进行了反馈。
这是led处理代码:
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
5.遇到的主要难题
1. 图像采集质量不佳:由于环境光线、摄像头设置或宠物移动等因素,可能导致拍摄到的图像质量不佳,影响后续图像识别的准确性。
2. 数据预处理困难:在使用 roboflow 进行数据预处理时,可能需要处理大量的图像数据,包括裁剪、缩放、增强等操作,而这些操作可能需要花费大量时间和计算资源。
3. 神经网络训练时间长:在 AI Studio 平台上进行神经网络训练过程可能需要较长的时间,特别是在训练大规模数据集时,可能需要花费数小时甚至数天。
4. 模型转移和部署问题:将 AI Studio 中训练好的模型导入到 Sense Craft 平台并进行部署可能存在一些技术挑战,需要考虑模型格式的兼容性、部署环境的配置等问题。
5. 实时识别和反馈:在识别到目标后进行有效的实时反馈可能需要设计合适的控制策略和反馈机制,以确保反馈的及时性和有效性。
6.未来的计划建议
1. 进一步优化图像采集和处理流程:通过改进图像采集设备和算法,提高图像的质量和准确性,从而提升后续图像识别的性能。
2. 持续改进神经网络模型:不断优化和改进在 AI Studio 平台上训练的神经网络模型,以提高对宠物行为的识别准确率和效率。
3. 探索多种反馈机制:除了LED点亮之外,可以考虑使用声音、震动或者移动机械臂等方式进行反馈,以增加反馈的多样性和灵活性。
4. 集成更多智能功能:将智能家居方案与其他智能设备或服务集成,如语音助手、智能门锁等,以实现更多的智能化功能和场景。
5. 加强用户体验和互动性:设计用户友好的界面和交互方式,提供个性化的设置和定制选项,增强用户与智能家居系统之间的互动体验。
6. 持续跟踪和反馈改进:定期收集用户反馈和需求,持续改进智能家居方案,以满足用户不断变化的需求和期望。