热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

机器学习第十周之照片光学字符识别

一,照片光学字符识别(PhotoOpticalCharacterRecognition)照片光学字符识别是指让计算机读出图片中的文字信息 二,照片光学字符识别流水线(PhotoOC

一,照片光学字符识别(Photo Optical Character Recognition)

照片光学字符识别是指让计算机读出图片中的文字信息

机器学习第十周之照片光学字符识别

 

二,照片光学字符识别流水线(Photo OCR Pipeline)

1, 文字区域识别(Text Detection)

2,字符切割(Character Recognition)

3,字符分类(Character Classification)

机器学习第十周之照片光学字符识别

 

这三个步骤也叫作机器学习流水线

 机器学习第十周之照片光学字符识别

二,滑动窗(Sliding Windows)分类器

1,行人检测

图片中每个行人虽然大小不同,但是宽高比是差不多的

机器学习第十周之照片光学字符识别

训练行人检测的分类器

机器学习第十周之照片光学字符识别

从图片左上角选定长宽比等于行人大小的矩形,监测是否有行人,检测完然后向右移动Step-Size,移到末尾时,再向下移动Step-Size,再从图片最左端开始

机器学习第十周之照片光学字符识别

接着放大矩形,维持长宽比不变,读取矩形图片也要压缩成符合的行人训练器大小,如82*36

机器学习第十周之照片光学字符识别

2,文字检测

我们也像行人检测一样,找到一些含有文字和不含有文字的图片来训练文字检测分类器

机器学习第十周之照片光学字符识别

 对我们的图片的滑动窗口运行文字分类器,输出一幅是否在该区域检测到文字的灰度图,如果是输出白色,不是黑色,再扩展白色区域的轮廓5-10像素形成文字区域,再抛弃一些长宽比明显不是的文字的区域

机器学习第十周之照片光学字符识别

再对提取出来的文字区域执行字符检测,训练字符检测分类器,分类器判断是否存在分割线,然后用滑动窗口判断图片是否存在分割线

 机器学习第十周之照片光学字符识别

三,人工合成数据和获取数据的成本效益分析

要获得一个比较高效的机器学习系统,其中一个比较可靠的方法就是选择一个低偏差的算法,低偏差的算法需要大量数据,可以通过人工合成已有数据来得到新数据

以之前的照片光学字符识别为例,可以对原有图片更换背景,更换字体,缩放,旋转等等变形

机器学习第十周之照片光学字符识别

扭曲变形,

机器学习第十周之照片光学字符识别

声音数据的叠加,把杂音加到原始数据上

机器学习第十周之照片光学字符识别

人工合成的数据必须是在真实数据中可能出现的,对原始图片增加高斯或者无意义的噪声往往没什么用,当然最后还是以算法的准确值为准

机器学习第十周之照片光学字符识别

在获取更多的数据之前确保自己的算法是随着数据的增多偏差会降低,可以通过绘制学习曲线来观察

估算自己获得更多数据以提高算法性能的时间,看是否值得,还可以雇人搜集数据

机器学习第十周之照片光学字符识别

四,上限分析:流水线的哪一部分值得提升

开发机器学习系统的最宝贵的资源是时间,当开发出的机器学习流水线系统不符合你的要求时,接下来该做什么,可以使用上限分析来决策

以图片光学字符识别为例,

1),机器学习流水线的准确率72%

2),当使用100%准确率文字区域检测(Text Dectetion)时的准确率是89%,说明文字区域检测(Text Dectetion)可以提高的上限是89%-72%=17%

3),当使用100%准确率文字区域检测(Text Dectetion)和100%准确率字符分割(Character Segmentation)是90%时,说明字符分割(Character Segmentation)可以提高的上限是90%-89%=1%

4),当使用100%准确率文字区域检测(Text Dectetion),准确率字符分割(Character Segmentation)和字符识别(Charater Recognition)时,准确率当然是100%,字符识别(Charater Recognition)可以提高的上限是100%-90%=10%

由以上可以看出,文字区域检测有最大的提升空间17%

PS:在以上2),3),4)都是通过人工检测出训练数据,得以保证各模块的100%准确率

机器学习第十周之照片光学字符识别

以下是人脸识别的另一个机器学习流水线的例子

机器学习第十周之照片光学字符识别

 


推荐阅读
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 深入浅出解读奇异值分解,助你轻松掌握核心概念 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 最近版上有不少人在讨论图像处理的就业方向,似乎大部分都持悲观的态度。我想结合我今年找工作的经验谈谈我的看法。就我看来,个人觉得图像处理的就业还是不错的。 ... [详细]
author-avatar
晋coder
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有