使用贝叶斯类进行数字识别

2024-03-15

我需要编写一个仅用于数字的 OCR 程序。我将使用 MNIST 数据集。问题是我不知道从哪里开始。有很多论文并没有真正解释算法。我对模式识别真的了解不多。所以我有几个问题。

Q1:在哪里可以找到算法(或教程) Q2:如何对数字进行分类?我不需要很先进的东西。我首先想到的是找到上半部/下半部和左侧/右侧的比率。有没有更有用、更简单的分类方法。 Q3:什么是反向传播以及大多数论文中显示的层。我的简单 OCR 需要它们吗?

注意:我知道我的 OCR 程序不准确。目前还不是很重要。


如果离您最近的工程图书馆有关于图像处理、计算机视觉或机器视觉的部分,那么幸运的是,该图书馆将拥有我推荐的 OCR 书籍的副本:

字符识别系统作者:Cheriet、Kharma、Liu 和 Suen

本书对 OCR 技术和最新研究进行了相当全面的概述。它没有深入探讨任何特定主题,但确实提供了学术论文的参考。

确保您可以获得一本好的图像处理入门教科书。冈萨雷斯和伍兹的书是许多大学的标准:

数字图像处理冈萨雷斯和伍兹

即使是“简单”的 OCR 也会很快变得棘手。如果您在牢牢掌握基本图像处理原理之前就跳入有关神经网络、贝叶斯定理等的课程,可能会感到不知所措。

如果可以,请先尝试为机器打印字符编写一种或多种 OCR 算法,然后再尝试为手写字符编写算法。

Q1:在哪里可以找到算法(或教程)

OCR 有多种算法。 Cheriet 书将为您提供一个良好的开端。

Q2:如何对数字进行分类?我不需要很先进的东西。我首先想到的是找到上半部/下半部和左侧/右侧的比率。有没有更有用、更简单的分类方法。

尝试实施该技术,看看它的效果如何。即使实施效果不如您所愿,实施过程中吸取的经验教训也可以在以后为您提供帮助。

您还可以将字符细分为 2 x 2 网格或 3 x 3 网格,并检查像素的相对密度。与机器打印的字符不同,手写字符在直线网格中无法很好地排列。

使用归一化相关性的模板匹配很简单,并且对于单一已知字体的机器打印字符可以相当好地工作。实现起来比较简单,值得学习:http://en.wikipedia.org/wiki/Cross-correlation#Normalized_cross-correlation http://en.wikipedia.org/wiki/Cross-correlation#Normalized_cross-correlation

对于 OCR,通常第一步是细化样本中的字符。细化是一种将字符(或任何其他形状)缩小为 1 像素宽的表示形式的技术。一旦你有了细化的字符,就可以更容易地识别线条和交叉点。如果您可以识别直线(或曲线)和相交,那么一种技术是查看每条线相对于其他线的相对位置和角度。

常见的细化算法包括Stentiford和Zhang-Suen。 WinTopo 的免费软件版本演示了这两种算法:http://wintopo.com/ http://wintopo.com/

您可以查看有关“笔画提取”的学术论文,但这些技术往往更难实施。

Q3:什么是反向传播以及大多数论文中显示的层。我的简单 OCR 需要它们吗?

这些术语指的是人工神经网络。对于简单的 OCR 算法,您将硬编码识别逻辑或使用简单的训练方法。可以训练人工神经网络来识别软件中未硬编码的字符。http://en.wikipedia.org/wiki/Neural_network http://en.wikipedia.org/wiki/Neural_network

尽管您不需要了解人工神经网络来编写简单的 OCR 算法,但简单的算法对于手写字符的成功率有限。

最重要的是,请记住,手写字符的 OCR 是一个极其困难的问题。如果您可以通过简单的技术实现 20% 的手写字符读取率,那么就认为这是成功的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用贝叶斯类进行数字识别 的相关文章

  • 训练 Tesseract 特定单词 - 可能吗?

    我想使用 Tesseract 从文档中提取大约 10 20 个关键字 该文档将包含所有英文字符 单词 我感兴趣的是 年龄 23 之类的东西 这里 Age 是我感兴趣的关键字 也想提取 23 它的值 我想到的第一个方法是将整个页面提取为文本
  • Tesseract OCR:解析表格单元格

    我正在使用 cmd 中的 Tesseract OCR v4 0 0 alpha 从如下所示的表格的 png 中提取文本 我希望 Tesseract OCR 能够解析一个单元格中的内容 然后再转到下一个单元格 我不想继续 行 中的下一个单词
  • 确定图像中的文本和图形区域

    我不知道我是否应该在这里发布这个问题 但如果有人知道请回答一下 用于确定图像中哪个区域是文本 哪个区域是图形的算法是什么 意味着如何分离这些区域 图或图 大多数 OCR 软件 例如Ocropus http code google com p
  • 如何减小tesseract生成的PDF的大小?

    我的 网络 应用程序的设置如下 我获取用户上传的 PDF 文件 对它们运行 OCR 并向他们显示 OCRed PDF 由于一切都在线 因此最小化生成的 PDF 文件的大小是减少用户加载和等待时间的关键 我从用户那里收到的文件是sample
  • 字符识别(OCR算法)[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在开发一个项目 其中我必须开发 OCR 算法 我必须从图像中读取文本 然后将其转换为不同的语言 所以我的第一个任务是从图像中获取文
  • 用于 OCR 的 Python OpenCV 倾斜校正

    目前 我正在开发一个 OCR 项目 需要读取标签上的文本 请参见下面的示例图片 我遇到了图像倾斜的问题 我需要帮助修复图像倾斜 以便文本是水平的而不是成角度的 目前 我正在使用的过程尝试从给定范围 下面包含代码 对不同角度进行评分 但这种方
  • 如何使用OCR(TesseractOCR)php库

    我使用此链接克隆了 OCR 的 git 库 git clone git github com thiagoalessio tesseract ocr for php git 然后我只需按照以下步骤包含所需的文件example http th
  • Android OCR 仅使用流行的 tessercat fork tess-two 检测数字

    我正在使用流行的 OCR tessercat fork for android tess twohttps github com rmtheis tess two https github com rmtheis tess two 我整合了
  • OCR 处理前的图像预处理

    我当前的项目涉及将 pdf 中的文本转录为文本文件 我首先尝试将图像文件直接放入 OCR 程序 tesseract 中 但效果不佳 原始图像文件基本上是旧报纸 并且有一些背景噪音 我确信 tesseract 存在问题 因此 我尝试在将图像输
  • 计算机视觉的统计帮助[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在计算机视觉领域做我的毕业项目 我只修了一门讨论非常基本概念的统计学课程 现在我在相当高级的主题上面
  • emgucv:C# 中的 pan 卡不正确的倾斜检测

    我有三个泛卡图像 用于使用 emgucv 和 c 测试图像的倾斜 顶部的第一张图像检测到 180 度工作正常 中间的第二张图像检测到的 90 度应检测为 180 度 第三张图像检测到 180 度应检测为 90 度 我想在这里分享的一个观察结
  • OCR:图像转文本?

    在标记为复制或重复问题之前 请先阅读整个问题 我目前能做的如下 获取图像并裁剪 OCR 所需的部分 使用处理图像tesseract and leptonica 当应用的文档被裁剪成块 即每个图像 1 个字符 时 它提供 96 的准确度 如果
  • 使用 OCR 识别上标字符

    我已经开始了一个简单的项目 其中它必须获取包含带有上标的文本的图像 然后通过使用 OCR 目前我使用的是 tesseract 它必须识别上标字符 普通字符 例如 我们有一个化学方程式 例如 Cl 但是当我使用超立方体识别它时 它给出了 Cl
  • Tess-2 OCR 不工作

    我试图在 Android 上使用 tess two 从图像中获取文本 但这给了我一个非常糟糕的结果 01 16 12 00 25 339 I Tesseract native 29038 Initialized Tesseract API
  • 提高识别率的图像预处理步骤

    我正在为我的项目使用 TessBaseAPI 制作一个简单的 OCR Android 应用程序 我已经完成了一些图像预处理步骤 例如二值化和图像增强 但他们的结果是50 到60 怎样才能提高识别率呢 我包括两个示例图像 http image
  • 在Python中从pdf中提取印地语编写的文本[重复]

    这个问题在这里已经有答案了 我想从 pdf 文档中提取印地文输入的文本 我已附上示例页面的图像 https i stack imgur com UkT86 jpg我正在处理 我尝试使用 pdfminer 从中获取文本 但文本是乱码 可能是由
  • OCR 扑克牌 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我决定做一个有趣的项目 我想将扑克牌的图像作为输入并返回其等级和花色 我认为我只需要查看左上角 因为那里包含了所有信息 它应该是稳健的
  • 收据褪色部分可以恢复吗?

    我有一些包含一些扫描收据的文件 我需要使用 OCR 从中提取文本 由于收据上打印的文字在一段时间后会褪色 导致收据上的某些文字不清晰 影响OCR结果 褪色单词的一些示例 有什么方法可以恢复褪色的部分 以便提高 OCR 结果吗 我在OpenC
  • 用Python识别图像

    我对 OCR 识别和 Python 都有点陌生 我想要实现的是从 Python 脚本运行 Tesseract 以 识别 tif 中的某些特定数字 我以为我可以为 Tesseract 做一些培训 但我在 Google 和 SO 上没有找到任何
  • Tess4j - Pdf 到 Tiff 到 tesseract - “警告:分辨率 0 dpi 无效。使用 70 代替。”

    我正在使用 tess4j net sourceforge tess4j tess4j 4 4 0 并尝试对 pdf 文件进行 OCR 因此 据我了解 我必须首先将 pdf 转换为 tiff 或 png 其中有任何建议吗 我这样做是这样的 t

随机推荐

  • 覆盖 Maven-Bundle-Plugin 中的 Require-Capability

    我的问题类似于this one https stackoverflow com questions 38322981 how to override bnd require capability generated from ds anno
  • 如何在 Symfony 2 中有效地使用分页和教义?

    我想在 Symfony 中使用 Doctrine ORM 和分页方法 KnpPaginatorBundle 看起来简单易用 我还使用 Doctrine 存储库 因为查询可以轻松地重用和测试 这个捆绑包的工作原理与我发现的其他捆绑包一样 它需
  • 如果前一个线程仍然繁忙,如何让计时器跳过刻度

    我创建了一个 Windows 服务 该服务应该每 60 秒检查数据库中的某个表是否有新行 对于添加的每个新行 我都需要在服务器上进行一些繁重的处理 有时可能需要 60 秒以上的时间 我在服务中创建了一个 Timer 对象 该对象每 60 秒
  • 使用 WebSockets 的自托管 WCF 无法使用 SSL 工作

    我在控制台应用程序中有这段代码 我正在尝试从 chrome 开发工具进行连接 但出现此错误 尽管问题肯定在 WCF 端 WebSocket connection to wss 127 0 0 1 5650 Echo failed Error
  • Javascript for 循环 Promise

    我有一个像这样的网址数组 var urls www google com www yahoo com 我想循环遍历 url 并在循环内执行异步任务 并且在异步任务完成之前不会继续执行下一个项目 我知道你可以通过承诺做到这一点 但我在这方面遇
  • 可以直接在浏览器中运行C代码吗?

    除了性能考虑之外 是否有任何已知的方法可以采用现有的 C C 或 Objective C 代码并直接在浏览器中运行它 例如 编译器将所有代码转换为某种可以在浏览器中运行的解释性语言 就像 Javascript Actionscript 和
  • 使用单击功能将 php 变量传递到模态窗口

    我有一个启动模式窗口的单击功能 在模态窗口内部 我加载 modal window php 点击函数如下所示 a testmodal click function e varid get modal window php id varid f
  • jQuery 美元符号未定义

    在我寻求获取历史信息的过程中 我尝试使用下面的代码 Chrome 调试器说Uncaught ReferenceError is not defined 你能建议一个解决办法吗 我真的被困住了 我只需要它在 Chrome 上工作 并且我正在利
  • Twitter 搜索 API - 无法使用?

    经过多次测试 我无法让 Twitter 搜索 API 返回超过 80 的包含特定关键字或话题标签的推文 这与最大结果数无关 一项测试涉及已被推文 50 次的主题标签 而 Twitter 搜索 API 仅返回了其中的 15 个 使用 Twit
  • 使用 Marshmallow 序列化 SQLAlchemy

    我正在遵循教程并使用下面的代码 我还使用 Postman 查看服务器的状态http localhost 5000 行星 http localhost 5000 planets 但我得到了500内部服务器错误 当我应该看到我创建的行星的 JS
  • 在给定顶点坐标的情况下查找图中的所有循环基

    类似的问题发布在这里 https stackoverflow com questions 1607124 algorithms to identify all the cycle bases in a undirected graph 我有
  • 在 pandas 中用分组依据的总数百分比注释每一行?

    我有一个如下所示的数据框 Company Speciality Payment AcmeCorp Roofing 50 00 AcmeCorp Grounding 50 00 LolCorp Roofing 106 00 LolCorp G
  • 我如何从标签获取对象?

    我有一个视图 在该视图中我有 2 个按钮 我知道那个按钮的标签 我想更改该按钮的图像 我如何通过这个标签更改图像 UIButton button UIButton myView viewWithTag myTag button setIma
  • 在运行时添加动画

    我想要动画化我的AnimatedVectorDrawable在运行时不使用 xml文件 其实我正在使用 xml文件的方式与文档示例显示的方式相同 动画矢量Drawable https developer android com refere
  • 如何修复 String 字段未实现“Copy”? [复制]

    这个问题在这里已经有答案了 我正在用 Rust 构建一个简单的命令行待办事项应用程序 如果我不实现复制特征 我会收到此错误 发生移动是因为 todo 具有类型 todo Todo 它没有实现 复制 特征 当我尝试为 Todo 结构实现 Co
  • 不使用自定义 UI 编辑器创建 Excel 2007 功能区

    谁能告诉我是否可以在 Excel 2007 中创建自定义功能区 而不使用 自定义 UI 编辑器 软件 使用编辑器确实很容易 但在我工作的地方 我们无法下载外部软件 有没有其他方法可以像记事本 word一样做到这一点 提前谢谢了 我也无法安装
  • 如何通过 jQuery 删除值中的反斜杠?

    if this val 有反斜杠 通过 jQuery 删除其中的反斜杠 如何 1111 11 11 gt 1111 11 11 this val replace g 您必须使用两个反斜杠来获取 字符 单反斜杠用于控制字符 例如 r n 等
  • 使用基于表格的公式来确定要设置格式的单元格

    I have a table called MyTable and I want to use conditional formatting to format the entire row of a table using a condi
  • 数据模型和对象模型有什么区别?

    CWM是数据建模 UML 是对象建模 有人可以解释一下外行可以理解的区别吗 对象模型 处理系统的面向对象 蓝图 这包括类图 您将要创建的类 这些类之间的关系 类中的方法 属性等 数据模型 处理数据库级别的实体 比如 OM 中的类如何存储在数
  • 使用贝叶斯类进行数字识别

    我需要编写一个仅用于数字的 OCR 程序 我将使用 MNIST 数据集 问题是我不知道从哪里开始 有很多论文并没有真正解释算法 我对模式识别真的了解不多 所以我有几个问题 Q1 在哪里可以找到算法 或教程 Q2 如何对数字进行分类 我不需要