对象检测是一种计算机视觉技术,其中软件系统可以从给定的图像或视频中检测、定位和跟踪对象。对象检测的特殊属性是它可以识别给定图像中对象的类别(人、桌子、椅子等)及其位置特定坐标。通过在对象周围绘制边界框来指出位置。边界框可能会也可能不会准确定位对象的位置。在图像内定位对象的能力决定了用于检测的算法的性能。人脸检 最近的手机号码数据 测是对象检测的示例之一。
这些物体检测算法可能是预先训练的,也可以从头开始训练。在大多数用例中,我们使用预训练模型中的预训练权重,然后根据我们的需求和不同的用例对其进行微调。
使用 YOLO 算法进行物体检测
物体检测如何工作?
一般来说,物体检测任务分三步进行:
- 如下图所示,在输入中生成小片段。如您所见,一大组边界框覆盖了整个图像。
- 对每个分割的矩形区域进行特征提取,以预测矩形是否包含有效对象。
- 重叠的框组合成单个边界矩形(非最大抑制)。
光学字符识别
OCR 代表“光学字符识别”。它是一种识别 您的 cms 绝对必须具备的 10 个功能 数字图像中文本的技术。它通常用于识别扫描文档和图像中的文本。
甚至在 2012 年深度学习兴起之前就已经有许多 OCR 实现。虽然人们普遍认为 OCR 是一个已解决的问题,但 OCR 仍然是一个具有挑战性的问题,尤其是在不受约束的环境中拍摄文本图像时。
我说的是图像中的复杂背景、噪音、闪电、不同的字体和几何扭曲。
正是在这种情况下,机器学习 OCR(或机器学习图像处理)工具就大放异彩。
OCR 问题中的挑战主要源于 OCR 任务的属性。我们通常可以将这些任务分为两类:
结构化文本— 键入的文档中的文本。采用标准背景、正确行、标准字体和最密集的格式。
非结构化文本 — 自然场景中随机位置的文本。稀疏的文本,没有适当的行结构,背景复杂,位于图像中的随机位置,没有标准字体。
非结构化 OCR 任务的数据集
英语有很多数据集,但很难找到其他语言的数据集。不同的数据集代表不同的待解决任务。以下是一些常用于机器学习 OCR 问题的数据集示例。
SVHN 数据集
街景门牌号数据集包含 73257 个用于训练的数字、26032 个用于测试的数字以及 531131 个额外的训练数据。该数据集包含 10 个标签,即 0-9 的数字。该数据集与 MNIST 不同,因为SVHN包含门牌号的图像,门牌号的背景各不相同。该数据集在每个数字周围都有边界框,而不是像 MNIST 那样包含多张数字图像。
场景文本数据集
该数据集包含 3000 张不同设置(室内和室外)和光照条件(阴影、光照和夜晚)的图像,并带有韩语和英语文本。一些图像还包含数字。
天城文字符数据集
该数据集为我们提供了来自 36 个字符类的 1800 个样本,这些样本来自 25 位不同的梵文母语作者。
此外,还有许多其他样本,例如这个用于汉字的样本,这个用于CAPTCHA的样本,或者这个用于手写单词的样本。
任何典型的机器学习 OCR 流程都遵循以下步骤:
预处理
- 消除图像中的噪音
- 删除图像中的复杂背景
- 处理图像中的不同光照条件
文本检测
需要文本检测技术来检测图像中的文本并在图像中包含文本的部分周围创建边界框。
滑动窗口技术
可以通过滑动窗口技术在文本周围创建边界框。然而领导 这是一项计算量很大的任务。在这种技术中,滑动窗口穿过图像以检测该窗口中的文本,就像卷积神经网络一样。我们尝试使用不同的窗口大小,以免错过不同大小的文本部分。滑动窗口有一个卷积实现,可以减少计算时间。
文本识别
一旦我们检测到包含文本的边界框,下一步就是识别文本。有几种识别文本的技术。
卷积神经网络
卷积循环神经网络 (CRNN) 是 CNN、RNN 和 CTC(连接主义时间分类)损失的组合,用于基于图像的序列识别任务,例如场景文本识别和 OCR。网络架构取自 2015 年发表的这篇论文。