很荣幸能有机会参加硬禾与ADI联合举办的本次智能边缘计算设计大赛,让我能够有机会使用这个款新的MAX78000的羽毛板来展开一些关于CNN机器学习相关内容的尝试。至此,项目已至中期,对我的工作内容和进度进行整理和总结。
首先,感谢 @HonestQiao|乔楚 @aramy @汤半泛 与其他在交流群中为我答疑解惑的大佬们,没有大家的帮助和群里积极的学习氛围,我也很难坚持下去,一起加油吧。
在前半段比赛过程中,我的主要工作内容集中在开发环境的配置和熟悉板卡,并对于本项目进行了部分工。具体内容如下:
最近事情也比较多,因此在此只放一些重点内容,更多以图片为主。
关于我的项目:
因为自己前段时间也在研究一点关于传感器的课题,因此其实想做一个运动识别类的题目。但是奈何最近疫情形势严峻,我们学校封宿舍无法外出,传感器在实验室无法取得,因此难以自己进行训练集德采集等工作。经过较长时间的等待,疫情仍未好转,项目进度受到了严重耽搁。
为了能够使得项目得以继续,被迫在中期先改变题目为静态手势识别。这是一个图像分类的较为经典的题目,因此在网上有较多现成的数据集得以使用。同时采集自己的数据集也较为方便,仅通过拍照即可实现。目前已从一些公开数据集网站中下载了部分手势相关数据集,正在进行挑选工作。
公开的训练数据集 供参考:
Datasets — Torchvision 0.14 documentation (pytorch.org)
awesomedata/awesome-public-datasets: A topic-centric list of HQ open datasets. (github.com)
同时也在自己准备一些数据集打算进行尝试,如下:
若疫情有所好转,会考虑变换题目回到运动识别类题目。
历程项目探索:
TFT_Demo
因为我购买的是带有cs片选信号线和ble背光信号线的tft显示屏,因此在配置时需要添加这两个信号线的初始化。
mxc_gpio_cfg_t tft_reset_pin = {MXC_GPIO0, MXC_GPIO_PIN_19,MXC_GPIO_FUNC_OUT, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH};
mxc_gpio_cfg_t tft_blen_pin = {MXC_GPIO0, MXC_GPIO_PIN_9,MXC_GPIO_FUNC_OUT, MXC_GPIO_PAD_NONE, MXC_GPIO_VSSEL_VDDIOH};
MXC_TFT_Init(MXC_SPI0, 1, &tft_reset_pin, &tft_blen_pin);
CameraIF
在配置时需要仔细调整里面关于enableTFT和enableStream的选项。
该例程画面刷新的速度异常缓慢,仅能有2FPS。但经过我个人的一些测试,基本认定是由于显示器刷新速度慢造成的,而非摄像头捕获速度慢。
CNN_kws20_v3
尝试部署了该CNN模型,这是一个语音分类的模型,可以看到它可以正常识别目标词汇。
CNN_cats_dogs
这是一个图像分类的模型,仅能区分猫和狗,由于疫情封校,仅能拿一些图片进行尝试,可以看到还是蛮准确的。
尝试机器学习
kws20_v3
在训练过程中,似乎GPU的使用率较低,推测是并没有合理的进行配置,由于这次训练仅是通过允许脚本开始,并未来得及仔细研究代码。因此该问题保留,后续会进行研究。
训练成功 耗时5h