【吴恩达机器学习笔记】十六、应用实例:图片文字识别

本文涉及的产品
教育场景识别,教育场景识别 200次/月
个人证照识别,个人证照识别 200次/月
车辆物流识别,车辆物流识别 200次/月
简介: 【吴恩达机器学习笔记】十六、应用实例:图片文字识别

十六、应用实例:图片文字识别


1. 问题描述和流程图

我们希望可以通过扫描图片从提取关键字,这样当我们输入关键字时机器就能帮我们正确找到对应的照片,而不用我们煞费心思去找一些图片,接下来我们就来讲讲**照片OCR流水线(pipeline)**的处理。

a2e535bf30e743c08a3ddd5780b07b5e.png



我们首先会对图片中含有文字的地方进行检测并提取出来,然后自动将其分割成不同字符并进行分类,正如下面流程图:

dbd530cefc0e42b99e585c3cd9645bc2.png



2. 滑动窗口

在讲字符检测的具体方法之前,我们先看看是如何对行人进行检测的。

d5d26b6e58a440a1a474ec509f930120.png



比如我们会从数据集中收集一些82×36的照片即正负样本,其中有包含行人的即y=1,其中有不包括行人的即y=0,然后给机器学习,接下来我们就可以利用滑动窗口对图片进行检测了。

d506dc712af1479d9c50190beb5f45eb.png



我们会用一个82×36的窗口在图片上滑动,每次滑动的距离就是步长,每次会将窗口中的信息传递给分类器去判断是1还是0,对整张图片检测完后,会换一个更大的窗口再进行滑动检测。这里要注意的是,使用更大的窗口时,要将窗口中的图片转化成82×36的再传入分类器,这样就能找出所有行人了。

e07c47c5858b4d69b984f8279befcdd3.png



所以,我们就可以用检测行人的方法,去检测字符。



90a8d65e9afb49bbad3ff66f0d65e2f2.png

我们同样从数据集中找一些正负样本,然后让机器进行学习。

e7555f6a70a04f388693e100f1efa7eb.png



我们在检测文字时同样也用到滑动窗口对图片进行扫描,然后得到上面黑白的图像,区域越白说明这个地方有字符的概率越大。最后在此基础上,使用放大算子,将有白色的地方周围一部分也变为白色,然后舍弃那些白色区域长宽比例与文字不配的地方,将没舍弃的地方框起来即可。接下来,我们再进行字符的分割。


35cf16df90634f52b0cef273faa5d199.png


还是同样的方法,从数据集中收集正负样本让机器学习,然后在我们上面框出来的字符中再次进行扫描,将字符分割出来。要注意的是,这里的滑动窗口是一维的。


3. 获取大量数据和人工数据

我们前面知道,一个最可靠去得到高性能机器学习系统的方法是使用一个低偏差高方差的机器学习算法,并且使用庞大的数据集去训练它,但是我们要从哪得到这么多的数据呢,这就要引入人工数据合成概念了。



cb8cb63c002048448d5b4c448289b795.png

其中一种方法是,网上有庞大的各种各样的字体库,然后可以从这些字体中剪切一小块字体出来,粘贴到不同的背景上,最终得到一个人工合成的数据集。


1f600ac40dc940e9b1d6eb515d93ff8d.png


另一种方法是,可以从真实的样本中演变出更多的样本,例如可以对其进行图像拉伸等失真操作,得到更多的数据。这种操作也可以用于语音识别应用中,我们可以将一段语音通过失真合成数据例如加一些噪音之类的,从而扩充样本。


153b2ab388d04460b0f03a86a84a7325.png


当然,进行失真操作时,也要选取有效的失真,比如扭曲图像,但是像上图下面那个通过增加高斯噪声扩充样本的方法不可取,只是改变了每个像素的亮度,跟原来的样本几乎没什么两样。


学完上述内容,你应该静下心好好想想,如果我要获得我现在数据十倍的数据量,我需要花费多少时间,有时候你自己思考一会或者和你的小组成员讨论一会后都会发现,其实所花费的时间并不多,可能就几天时间,但是这样做却能让你的算法性能提高很多。当然,如果你觉得自己做这些工作浪费时间的话,也可以去网上找一些廉价但质量高的网站去帮你进行一些标签标注工作。


4. 上限分析:哪部分管道的接下去做

在你日后的研究中,不希望出现的是当你花了几周或几月之后,才发现某些模块对你的算法性能提升没什么帮助,所以接下来我将为你介绍上限分析(ceiling analysis),指导你哪些模块是值得去花时间研究的。


0abc52c4dbeb4dcc8f97ed141bdfd121.png


我们来看看上面这个例子,如果让我们去决定每个部分该投入的精力是多少,这时候就可以引入一个数值标准,例如图像识别的准确率。


假设正常通过机器完成识别的整个系统准确率为72%,接下来我对每个部分接连进行人工处理,先人为选择文本框,再人为分割字符,最后再人为的判断字符,这样我们就分别得到89%、90%和100%的准确率。


然后,我们就可以进行上限分析,每个部分提升的性能有多少,如果提升的高例如人为处理文本框能提升17%的性能,我可以花更多精力在这部分上面,如果提升的少我就不用花太多精力再这上面了。


接下来,我们再看一个人脸识别的例子。

4ca1f1645802413d8a42a2e7d456bef1.png



我们首先将图片进行去背景处理,然后利用滑动窗口检测到人脸,再进行眼睛、鼻子和嘴巴的分割,再将这些得到的信息归总于逻辑回归分类器,得到最终的标签。


a0905ac535434457aaff8889709d0311.png


然后我们同样的对每个模块接连进行人工处理,得到不同的准确率,再通过上限分析,得到哪些模块值得我去花时间,例如上面的人脸处理,提升了5.9%,哪些不值得去花时间,例如去除背景,只提升了0.1%。



目录
相关文章
|
6月前
|
人工智能
一键生成视频!用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流(清晰的实例)
用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流(清晰的实例)
229 2
|
3月前
|
文字识别 并行计算 PyTorch
MiniCPM-V 系列模型在多模态文档 RAG 中的应用(无需OCR的多模态文档检索+生成)
现在我们以 OpenBMB 基于 MiniCPM-V-2.0 训练的端到端多模态检索模型 MiniCPM-Visual-Embedding-v0 为例,实现无需OCR的多模态文档检索与问答。
MiniCPM-V 系列模型在多模态文档 RAG 中的应用(无需OCR的多模态文档检索+生成)
|
4月前
|
机器学习/深度学习 人工智能 文字识别
文本,文字扫描01,OCR文本识别技术展示,一个安卓App,一个简单的设计,文字识别可以应用于人工智能,机器学习,车牌识别,身份证识别,银行卡识别,PaddleOCR+SpringBoot+Andr
文本,文字扫描01,OCR文本识别技术展示,一个安卓App,一个简单的设计,文字识别可以应用于人工智能,机器学习,车牌识别,身份证识别,银行卡识别,PaddleOCR+SpringBoot+Andr
|
4月前
|
存储 文字识别 算法
印刷文字识别使用问题之在企业信息化中有哪些应用解决方案
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
5月前
|
机器学习/深度学习 人工智能 数据处理
人工智能平台PAI产品使用合集之PAI-DSW实例服务器ping不通google.com,该如何排查
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6月前
|
文字识别
分享:如何ocr识别身份证复印件并导出至excel表格 ? 图片批量识别导出excel表格应用,图片批量识别转excel表格的方法
该软件是一款OCR身份证识别工具,能批量处理图片,自动提取身份证信息并导出为Excel。支持百度网盘和腾讯云盘下载。用户界面直观,操作简单,适合新手。识别过程包括:打开图片、一键识别、导出结果。特别注意,此程序仅适用于身份证识别,不适用于其他类型的图片识别。
243 1
分享:如何ocr识别身份证复印件并导出至excel表格 ? 图片批量识别导出excel表格应用,图片批量识别转excel表格的方法
|
5月前
|
机器学习/深度学习 算法 Python
【机器学习】集成学习在信用评分领域实例
【机器学习】集成学习在信用评分领域实例
117 1
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
【机器学习】贝叶斯算法在机器学习中的应用与实例分析
【机器学习】贝叶斯算法在机器学习中的应用与实例分析
412 1
|
5月前
|
人工智能 网络架构 异构计算
以LLaMa 65B模型训练实例来计算AI/HPC算力光模块数量
本文介绍了如何根据LLaMa 65B模型训练需求计算所需的AI/HPC光模块数量。在案例中,使用2048个A100 GPU,单GPU算力为156 TFLOPS。模型算力需求为546*10^21 FLOPS,预计训练时间为20天。采用两层Fat-Tree网络架构,需1024个400G网卡,48台交换机,若全用400G光模块则需4096个,交换机间2048个,网卡间1024个。大成鹏通信提供200G至800G的解决方案,并提供咨询与支持服务。
101 0
以LLaMa 65B模型训练实例来计算AI/HPC算力光模块数量
|
5月前
|
机器学习/深度学习 安全 算法
【机器学习】信息安全实例
【机器学习】信息安全实例
66 0