第十一周-ORC系统

2024-01-02 17:32
文章标签 系统 第十一 orc

本文主要是介绍第十一周-ORC系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1图像ORC

1.1问题描述

在这一段介绍一种 机器学习的应用实例 照片OCR技术。 我想介绍这部分内容的原因 主要有以下三个 , 
1. 第一 展示 一个复杂的机器学习系统 是如何被组合起来的 
2. 第二 介绍一下 机器学习流水线(machine learning pipeline)的有关概念, 以及在决定下一步做什么时, 如何分配资源。 
3. 最后,通过介绍照片OCR问题 的机会来告诉你, 机器学习的诸多 有意思的想法和理念 。其中之一是如何将机器学习 应用到计算机视觉问题中, 第二是有关 人工数据合成(artificial data synthesis)的概念。

OCR技术 -主要解决的问题是让计算机 读出照片中拍到的文字信息。

image

OCR pipeline的意思主要是把一个ML系统分割为几个连续的部分,如下图:

image

如果你有一个工程师的团队 在完成同样类似的任务, 那么通常你可以让 不同的人来完成 不同的模块 ,所以我可以假设 文字检测这个模块 需要大概1到5个人 ,字符分割部分 需要另外1到5个人 ,字母识别部分 还需要另外1到5个人。

在复杂的机器学习系统中 流水线的概念 已经渗透到各种应用中

1.2 滑动窗(sliding windows)

为了更好地介绍 图像的检测 ,我们从一个简单一点的例子开始, 我们先看这个探测行人的例子:

在行人检测中 你希望照一张相片 然后找出图像中 出现的行人。

image

这个问题似乎 比文字检测的问题更简单, 原因是 大部分的 行人都比较相似, 因此可以使用一个固定宽高比的 矩形来分离出你希望找到的行人。

image

我们要做的是 首先对这个图像取一小块长方形, 比如这是一个 82×36的图像块, 我们将这个图像块 ,通过我们训练得到的分类器 来确定 这个图像块中是不是有行人。 如果没问题的话, 我们的分类器 应该报告这个图像块 y=0 因为没有行人 。

做完这以后 , 我们再向右滑动一点窗口 然后同样地 把图像块传入分类器, 你每次滑动窗口的 大小是一个参数 ,通常被称为 步长(step size) 。这样一个滑动的过程就叫做:滑动窗(sliding windows)。


接下来我们转向 文字识别的例子 ,让我们来看看 对于照片 OCR 流水线中 要检测出文字 需要怎样的步骤 。 
1. 第一步通过滑动窗在图像中找出有字母的部分,然后把他变白方便下一步提取。

image

  1. 分割字母,使用滑动窗在上一部提取的像素中提取分割的部分。

image

image —–> image 
3. 第三步,字母分类。

image

分类哪个字母或哪26个字符A到Z。

1.3获取大量的图片

Getting Lots of Data and Artificial Data获取大量数据和人工合成数据。

要想获得一个比较高效的 机器学习系统, 其中一种最可靠的办法是 选择一个低偏差的学习算法 ,然后用一个巨大的训练集来训练它 。但你从哪儿得到那么多的训练数据呢? 其实在机器学习中 有一个很棒的想法 叫做“人工数据合成”(artificial data synthesis) 。 就是说用一个小的训练集 将它扩充为一个 大的训练集 ,这节课中 我们将对这两种方法进行介绍 。

为了介绍人工数据合成的概念 让我们还是用之前用过的 照片OCR流水线中 的字母识别问题, 我们输入一个图像数据 然后想识别出是什么字母 。

如果你想要获得 更多的训练样本 ,其中一种方法是你可以 采集同一个字符的不同种字体 , 
然后将这些字符 加上不同的随机背景。 比如你可以取这个字母C, 然后把它粘贴到一个随机背景前面 。

image

因此通过使用合成的数据 ,你实际上已经获得了 无限的训练样本, 这就是人工数据合成 。

idea2: take an existing example and and introducing distortions通过引入扭曲合成数据 
image

注意:网格线覆盖图像只是为了说明的目的。

image
如果您面临机器学习问题,通常值得做两件事情: 
其中一个就是头脑清楚,通过学习曲线,可以得到更多的数据。 
其次,假设情况如此,请问:要获得十倍的创造数据将需要多少时间,但有时候,您可能会感到惊讶,原因可能是几天,几周甚至几天 ,这可以是一个很好的方式来给你的学习算法在性能上有巨大的提升。

1.4分析

Ceiling Analysis:What Part of the Pipeline to Work on Next 上限分析-接下来工作重心应放在pipeline哪个部分。

上限分析的想法:通过经历这样的分析,你试图找出什么是上升的潜力,改善这些组件的每一个,或者如果这些组件中的一个变得绝对完美,那么你可能获得多少 
对该系统的性能提出了一个上限。

image

首先写出总的项目精度为72%;然后手工把某一个模块设置为“全对”,看模型提升了多少,提升的多说明这个工作有用;提升的少,说明在这里做工作没什么太大意义

另外一个例子:Another more complex ceiling analysis example人脸识别。 
image

看每一个小块的提升对总的精度提升的大小。 
image

这篇关于第十一周-ORC系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/563168

相关文章

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作