基于OpenHarmony的智能野外相机项目分享
参加OpenHarmony的学生挑战赛项目分享。基于OpenHarmony的智能野外动物监测相机。
这里写自定义目录标题
基于OpenHarmony的智能野外相机项目分享
参加本次OpenHarmony的学生挑战赛,项目为智能野外动物监测相机。
1. 应用领域
主要是针对珍稀动物数量稀少、不易监测的问题,系统可以对途经指定区域的 动物进行监测与识别,而对于无检测需求时又可以自动调节为低功耗模式, 保证长时间的设备运行。另一方面,全智能化的硬件设备无需人类的过多参 与,该设备可由无人机部署在野外环境,同时小体积、轻噪声等特点可以最 大程度减少以动物保护为目的的人类活动对野生动物的影响。
2. 系统结构及工作流程
系统主要由海思HI3516DV300和海思HI3861V100组成。
当红外传感器判断到有物体靠近时,相机开始工作。通过目标检测算法对拍摄区域内的物体进行检测。 ①若是需要识别的目标,则正确识别并分类,将实时视频流传回控制端,并将分类信息传回HI3861,在屏幕上显示。 ②若没有需要识别的目标,则继续进入低功耗模式;
3. AI模型训练及部署
OpenHarmony的环境搭建请参考OpenHarmony官方教程。
3.1 模型训练
首先需要准备数据集,这里使用的是开源数据集,地址为: https://www.kaggle.com/datasets/minhhngchong/animal-detection
数据集一共有 3008 张图片,4 个野生动物种类分别为 buffalo、elephant、rhino、zebra。使用 python 脚本对数据集图片数据做重命名处理,并将图片 Size 保持一致,同时将 VOC 格式的 label 转化成 YOLOv2 所以需要的标签格式。数据集的 2408 张作为 训练集,600 张作为测试集。
制作完数据集后,就需要搭建模型网络结构。这里我们使用的是修改后的resnet18网络。
然后对模型进行训练,我这边是用的一张NVDIA GeForce RTX3060 GPU训练了7小时左右,最后loss在0.52%,停止训练,得到训练好的resnet18_last.weights也就是最后训练好的权重文件。
3.2模型部署
由于在模型的量化和转换阶段,需要caffe模型,所以我们需要用yolo2caffe的开源代码将.weights权重文件转换caffe模型。
得到caffemodel后,使用Ruyi Studio对模型进行校准量化,并且输出最终在板端运行的二进制文件Wildlife_inst.wk。
最后需要在推理代码中修改classes类别,对齐region中的anchor参数。
4. RTSP实时视频流移植
这里是移植的第三方RTSP源码,理解完RTSP通信协议的基本原理后,主要需要注意的点是SAMPLE_COMM_VENC_GetVencStreamProc()函数中,把数据放入环形缓冲数据流
5.低功耗模式
低功耗模式主要是依赖红外传感器配合目标检测算法实现。当有物体接近时,会引起红外传感器信号的变化,使其输出的电平发生变化,HI3861,随后对目标区域进行目标检测,若没有需要检测的目标,则休眠;若有,则进行后续工作。
6. 实际效果演示
OpenHarmony学生挑战赛-智能野外动物监测系统-视频
更多推荐
所有评论(0)