光学字符识别问题:手写数字识别。简单点说,这个问题包括图像中字符的定位和识别两部分。为了演示方便,我们选择使用 Scikit-Learn 中自带的手写数字数据集。
1.加载并可视化手写数字
首先用 Scikit-Learn 的数据获取接口加载数据,并简单统计一下:
>>>from sklearn.datasets import load_digits
>>>digits = load_digits()
>>>digits.images.shape
(1797, 8, 8)
这份图像数据是一个三维矩阵:共有 1797 个样本,每张图像都是 8 像素 ×8 像素。对前100 张图进行可视化:
>>>import matplotlib.pyplot as plt
>>>fig,axes = plt.subplots(10,10, figsize=(8, 8),subplot_kw={'xticks':[], 'yticks':[]},gridspec_kw=dict(hspace=0.1, wspace=0.1))
>>>for i, ax in enumerate(axes.flat):
ax.imshow(digits.images[i], cmap='binary', interpolation='nearest')
ax.text(0.05, 0.05, str(digits.target[i]),transform=ax.transAxes, color='green')