1.需求:判断书签是哪种类型,并显示判断结果。
2.解决思路:
首先说一下我自己的想法。
第一个想法,如下图。
只使用到了两种工具,图像转换工具和模板匹配工具。为什么要使用图像转换工具?第一是彩色图像包含更多的像素信息,转换成灰度图后,信息更少,减少计算量;第二点是在做的过程中发现的。
我直接把图像输入给模板匹配工具,然后训练模板,会报如下的错误。但是转换成灰度图后再输入给模板匹配工具后,训练就不报错了,目前不知道原因。猜测应该是输入图像的格式不符合模板匹配工具要求输入图像格式导致的。
好的,就改成这样了,主打一个听劝。因为有3中不同的书签,所以需要训练3中模板分别去匹配。好像这样做没有什么问题对吧,但是出现了这样的问题,如下。
这张图片明明是心形,但是结果是两个工具都将其识别到了,虽然花朵工具识别到的分数并不高。
同样的,这一张也误识别了。
为什么会导致这种问题呢?因为每中书签都有相似的部分,那就是下方铁的部分,工具受到相似部分的影响,打分时相似部分为分数做出了重大的贡献,因此会导致误识别。所以这里总结一下经验,在使用模板匹配工具的时候,尽量选择各个图片的差异部分进行训练,不仅能减少计算量,还能增大识别的精度。那么为了避免这种问题,可不可以只训练上方的图案,不识别下方的图案(铁的部分)呢,试一下。
答案是可以的,每张图片都可以正确的识别出来。
以上就是个人的思考过程。
但是视频中老师并不是这样做的。
老师的思路是这样的,先使用图像转换工具将彩色图转换为灰度图,然后使用模板匹配工具对书签的下部分(铁的部分)进行训练,加上定位工具。最后使用3个模板匹配工具分别对书签的图案部分进行训练。最后就是结果输出部分没什么好说的。
为什么要这么做呢?首先分析一样这样做的工作流程是什么样的。
灰度图输入给模板匹配工具,该工具是对铁的部分,也就是各类书签的相似部分进行模板匹配,然后加上定位工具,这一套组合拳下来,就可以定位到每张图片中书签所在的位置了。然后将带有位置信息的图像输入给三个模板匹配工具,这三个工具分别去对书签的图案进行匹配。
所以啊,这样做的目的应该是减少计算量,按照这种方法,匹配图案的模板工具可以定位到书签的图案部分去进行匹配。但是按照我的方法,工具是在整张图片中去进行搜索,然后进行匹配的,这样计算量显然很大。可是第一个模板工具匹配铁的部分也要进行全局的搜索啊,这就是1对3的问题了,按照老师的方法,只需要进行一次全局的搜索,而按照我的方法,需要进行3次全局的搜索,显然老师的方法更优雅。
ok,知道了原因其他的就很简单了,就不再实操了。