好像还没有人把cnn在工业机器视觉中使用,我们打破界限,试一试!
工业上有很多需求,判断加工产品有还是没有,从前基本上都是使用找斑的方法来判断。
我们可以用cnn代替试试!
我们前头cnn最好成绩是,固定核bpnet多输出识别手写数字,使用mnist数据集学习训练,训练6万次,成绩96-97之间。
我们怎么把他移植过来到我们的机器视觉软件megauging中,抄代码好说,问题是:
我们工业相机,一般情况只有一幅图像,怎么训练许多次呢?
这里我们要想通的道理是:同一幅图像训练1000次,与差别不大的同一事物的1000副图像训练是一样的。这是我们的立足点。
另外,我们手写数字输出10个数字,而这里只有一个输出,怎么办?我们使用的方法是:始终d【0】=1,其他为0.
其实,给我启发想到这两个方法的是前期学习简单bpnet推导时的收获,我们现在的情况退化后,就是,输入不变总是一副图像,迭代(训练)很多次后,输出只有一个结果的简单bpnet(这个结果可以判定是或不是)。
我的另外一个认识,就是,cnn就是bpnet,一定要有这样的想法,这个很关键!
我们先看一看移植后程序的效果!
整幅图像训练1000次的效果:
整图cnn匹配执行结果:
好,我们图像动一动,再执行,看结果(设置0.94才匹配上,图像向下移动了一点点):
这说明什么?说明你不动,得分就高,移动图像改变,匹配度降低很快!也就是说,只要你轻轻移动,匹配就会失败!
也就是说,合适的设置得分参数,我们就可以确认是否匹配!
你再看:
我们换一幅图像,得分降到0.87,所以,我们可以用这个设置筛选,训练后的图像参数来预测下一幅图像,是不是我们想要的结果,这样我们就达到了目的。
我们觉得这个方法已经达到了对事物的识别匹配,下一步,我们在这个基础上,我们用cnn学习训练“望庐山瀑布”几个字(即使用roi扣图训练),看能不能找到这几个字准确位置,下一节挑战一下!