【发布时间】:2025-12-16 06:30:02
【问题描述】:
我正在做一个识别电视频道的项目。 我正在拍摄频道的照片,我试图避开背景并从徽标的中心获取样本。 我认出了 4 个不同的徽标,以下是模板:
我的模板匹配算法是如何工作的:
给定 4 个大小为 100x100 的模板,每个模板代表一个不同的电视频道,每个都有不同的阈值(概率)。
用户正在从电视机中捕捉标识,那么算法是:
- 在每个模板上运行 4 个独立的模板匹配,以接收每个模板匹配捕获图像的概率。
- 对于每个信道概率,如果一个信道的概率低于该信道的阈值,则概率变为0;
- 宣布被认可的标志是概率最高的标志。如果所有概率均为 0,则宣布“不识别”。
例如,如果我得到一个概率为 0.85 且阈值为 0.9 的通道,而第二个通道的概率为 0.8 和阈值为 0.75,则第二个通道“获胜”。
当我为其中一个标志拍照时,95% 的时间它都能认出这些照片。
目前的结果:
- 当尝试检测第一个(“笑脸”标志)时,在 10 次检测中我得到了 10 次正确检测。对于正确模板和图像之间的模板匹配,我得到的概率在 0.91 到 0.94 之间。对于其他徽标,我得到的概率在 0.77 到 0.91 之间。
- 在尝试检测第二个(“绿色”徽标)时,在 10 次检测中,我得到了 10 次正确检测。对于正确模板和图像之间的模板匹配,我得到的概率在 0.78 到 0.91 之间。对于其他徽标,我得到的概率在 0.71 到 0.83 之间(但由于阈值高,检测成功)。
- 当尝试检测第三个(“圆形”标志)时,在 10 次检测中我得到了 9 次正确检测。对于正确模板和图像之间的模板匹配,我得到的概率在 0.83 到 0.92 之间。对于其他徽标,我得到的概率在 0.73 到 0.91 之间。
- 在尝试检测第四个(“黑白”徽标)时,在 10 次检测中,我得到了 10 次正确检测。对于正确模板和图像之间的模板匹配,我得到的概率在 0.91 到 0.94 之间。对于其他徽标,我得到的概率在 0.78 到 0.92 之间。
- 在尝试检测“负面”图像时,我多次得到徽标检测(这很糟糕)。例如,如果我拍摄一张完整白纸的图像,它会以超过 0.9 的概率检测到第一个、第三个和第四个徽标
我如何改进或更改我的算法,以便在“负面”图像上获得更好的结果?
感谢您的帮助,
艾尔
【问题讨论】:
-
目前您的模板匹配效果如何?
-
请看一下编辑 - 我已经添加了决策算法和我所做的测试结果。
-
@Eyal,您的模板匹配算法似乎不够好。白纸与您的徽标不同。
-
我使用openCV的算法,我只使用了阈值并找到了最大值
-
如果您使用的是OpenCV,您是否尝试过其他识别方法,例如EigenVecors (PCA)?
标签: image-processing template-matching