PyTorch深度学习实战(43)——手写文本识别
0. 前言
手写文本识别,也称为手写文本的光学字符识别 (Optical Character Recognition
, OCR
),是计算机视觉和自然语言处理中的一项具有挑战性的任务。与印刷文本不同,手写文本在风格、大小和质量方面变化巨大,这使得识别和转录变得更加困难。手写文本识别的目标是准确地识别和转录手写文本,以便进行进一步的分析、存储或处理。我们已经学习了如何根据输入图像生成描述性文本单词序列,在本节中,我们将学习如何根据手写文字图像输入生成字符序列,为了提高手写图像的转录性能,将引入 CTC
损失函数。
1. 手写文本识别
1.1 基本概念
手写文本识别与图像字幕生成不同,图像字幕生成模型中所用图像的内容与输出单词之间没有直接的相关性,而手写图像中的字符序列与输出序列之间存在直接相关性。因此,图像字幕生成模型架构并不适用于手写文本识别模型,需要设计不同的架构。
假设一张图像被分成 20
个部分(假设一个图像中每个单词最多包含 20
个字符),其中每个部分(在循环神经网络中每个部分可以作为一个时间步的输入)对应一个字符。在手写文本图像中,有些笔迹可能会确保每个字符完全对应每个部分,而有些笔迹可能较为混乱,使得每个部分包含不同数量的字符,或者可能导致两个字符之间