先看源代码图片
image.png
在242行通过宽度,高度,宽高比筛选出可能的候选区,并保存在rects中,在需要的地方,按照rects中保存的矩形框裁剪下来。如果选中了学习模式的Checkbox就把这些候选区座位图片保存到SD卡上,这些图片就需要人工分类后,分别放到19个文件夹中,就是最终的样本。样本越多,样本越准确,识别的结果也越准确,但是跟多的样本也会导致速度的更慢。
在273行开始,就是真正的进入识别过程了
image.png
识别过程有如下步骤
1.初始化机器学习引擎(在App启动的时候做了这件事)
这个初始化,首先是把样本图片按照设定好的参数转换成向量特征,识别过程中并不是对比的图片而是对比的特征,这一点需要牢记,如果是对比图片那就是另一种算法了。所以其实我们整理好识别的图片后保存它们的特征就好了,特征比图片占用的存储空间小很多。在机器学习的生产环境是不会把样本转换成特征的过程放到最终的程序中的,最终的程序只负责把特征加载到机器学习引擎中用于计算。我这里之所以每次都要从图片转换为特征,就是为了我方便添加样本文件到文件夹中,添加好了重启一下App就行了,