我试图使用图像中的角落特征来比较两幅图画。这是一个示例图像:
查询图片:
我使用 SIFT算法来比较图像,但它不起作用,因为在SIFT中我们考虑一个16X16像素的窗口来提取感兴趣点的特征,但在这种情况下(绘图对象)我们将只获得角点作为特征点,SIFT特征描述符将为所有角点提供非常相似的特征,因此在特征匹配步骤中,由于它们的相似性得分非常接近,它将拒绝角点。
所以我使用以下方法来比较图像。 我在opencv中使用基于Shi-Tomasi算法的函数ie。 cv2.goodFeaturesToTrack()查找图像中的角点(要素点)。找到角落后,我想将它们分为4类,并将它们分成两个图像。下面是现在定义的角落类别,由于角落类型的巨大变化(角落,角落交叉的线条数,角点处的不规则像素变化),我的角色变化:
角落类别:
type-4:Curve-Curve intersectio
我试图用以下方法解决这个问题:
=>取一个围绕角落像素的固定窗口大小的补丁说一个32X32的窗口
=>找到渐变信息即。梯度幅度及其在此窗口中的方向,并使用此信息对上述4个类中的角进行分类。经过图像分类后,我发现使用HOG算法可以将图像梯度信息转换为特征向量。
=>在上述步骤中计算的HOG特征向量可用于训练SVM以获得模型。
=>该模型可用于新的特征点分类。
在实施上述算法后,我的准确性很差。
如果有任何其他方法对角落进行分类,请建议。