图像分类 Image Classification

1. 图像分类 Image Classification

1.1 图像分类器

图像分类的算法难以用如下的函数进行硬编码(hard-code)

1
2
3
def classify_image(image):
# Some magic here?
return class_label

所以通常采用机器学习,即Data-Driven的方式

先用包含图像与标签的数据集训练分类器,再评估分类器在分类新图片的表现:

1
2
3
4
5
6
7
def train(images, labels):
# Machine learning!
return model

def predict(model, test_images):
# Use model to predict labels
return test_labels

1.2 常见数据集

MNIST

CIFAR10

CIFAR100

ImageNet

MIT Places

1.3 邻近算法 Nearest Neighbor

  1. 记忆数据集中所有的图像和对应的标签
  2. 与数据集中最相似的图像的标签即为新图像的标签

使用距离度量比较图像,以下是常见的两种距离度量:

L1 距离(曼哈顿距离 Manhattan distance): \[ d_1(I_1, I_2) = \sum_p |I_1^p - I_2^p| \] L2 距离(欧拉距离 Euclidean distance): \[ d_2(I_1, I_2) = \sqrt{\sum_p (I_1^p - I_2^p)^2} \]

1.4 K近邻算法 K-Nearest Neighbors

若 𝑘 个最相似的图像中的大多数为某一个标签,则该图像也属于这个标签

当训练的样本足够多时,K近邻算法可以表示任何函数

1.5 超参数 Hyperparameter

从数据集中无法通过训练得到的参数为超参数 ,超参数需要在学习之前设定

例如K邻近算法中的K就是超参数

超参数的设定方法:

将数据集分为train、validate和test三部分,选择超参数的值在train上训练,并在validate中验证,只在最后使用test上查看效果

如果条件允许,可以将数据集分割成许多部分,每次选择不同的部分作为validate,剩下的部分作为train,同样的只在最后在test上检验


图像分类 Image Classification
http://hmnkapa.github.io/2024/06/30/图像分类/
作者
呼姆奴库
发布于
2024年6月30日
许可协议