柳子澍

来自iCenter Wiki
2018年7月28日 (六) 03:26Zs-liu讨论 | 贡献的版本

跳转至: 导航搜索

2018年7月20日 第一天

  • 成功安装Android Studio及其Android SDK,并将GitLab上的androidAudioRecg[1] 项目下载并安装到提供的Android平板上。
  • 以自己为声源,对androidAudioRecg项目所需的训练集进行了扩充
  • 初步了解了PYNQ的使用方法,尝试编写了一个LED灯计数的程序并进行了烧写

2018年7月23日 第二天

  • 进一步熟悉了对PYNQ的操作,通过外界模块实现了对光强的测量
  • 初步接触opencv,将样例程序烧写至PYNQ,实现了对图像的捕捉和人脸检测
  • 安装opencv和python-opencv,并简单地进行了图像识别的尝试

以开源图片训练集[2]中的100张犀鸟图片作为正样本,[3]中截取的300图片作为负样本。根据要求,所有正样本通过PhotoShop批处理变为长宽比一致的矩形。

使用opencv自带的opencv_createsamples命令和opencv_traincascade(opencv_haartraining未成功使用)命令,具体参数为:
opencv_createsamples: -num 100 -w 60 -h 60
opencv_traincascade: -numPos 40 -numNeg 600 -numStages 5 -w 60 -h 60 -minHitRate 0.98 -maxFalseAlarmRate 0.5 -weightTrimRate 0.95 -maxDepth 1 -mode ALL

尝试中发现正样本图像的规格达到150*150像素时,训练过程无法正常进行(磁盘迅速被占用),故最后使用100张60*60像素的正样本,并参考网上建议使用了300张负样本。实际上训练过程中-numPos参数仍然过大,使得训练两级后正样本即使用完毕,训练结果并不理想。

训练测试结果如下,可见其可以在某些情况下实现对“鸟类”(而非犀鸟)的识别,但仍会出现极大误差(甚至无法识别犀鸟)。

  • 后期进一步查阅资料,[4]中指出一个较好的训练集需要1000各左右的正样本和2000各左右的负样本。正样本不应当有相似背景,推荐训练层数为14~25层(我的训练过程在第三层就出现虚警无法继续)。文章举例一个可用的人脸分类器在Pentium 2.7GHZ 2GB RAM处理器上训练了6天。
  • 进一步尝试训练参数,然而由于样本过少,训练结果依然不理想。

2018年7月24日 第三天

参观公司。