对于两张图片来说我们如何量化这两张图片的相似度呢?计算机科学家给出了两个简单的方法:曼哈顿距离和欧氏距离
曼哈顿距离公式 解释:两个矩阵相减之后,再对该矩阵的所有值取绝对值,最后将该矩阵所有值相加。最后得出的值就是两张图片的距离。
欧式距离公式 解释:在一个二维的坐标系中A(x1 , y1),B(x2 , y2)这两点的距离公式是:
二维欧氏公式 ,那么这两个矩阵的距离就可以推广为在一个1024维的坐标系上两点的距离
从1中我们可以根据公式计算出两张图片的相似度在接下来设为A,我们再假设我们有n张可供训练的图片每张图片被称为Tn,对于训练图片我们都知道该图片到底属于哪个种类的图片,如猫、狗等,所以这里设第Tn张图片的种类为CTn。然后有m张可供测试的图片,每张图片被称为Cm,对于测试图片我们也知道该图片到底属于哪个种类,所以这里设第Cm张图片的种类为CCm。那么某张测试图片和某张训练图片的相似度就可以被称为Anm。
项目目录
展示一下整体的KNN算法流程等等会按照这个图中代码一行行向下讲,建议结合github上面的代码食用更佳。
KNN算法
data_util
预测图片结果
两次循环计算L2距离
获取预测的图片种类