例子:照片的OCR识别
来自ng的ml-003中 18_XVIII._Application_Example-_Photo_OCR
这是ng2013年在coursera上最后的一课了。这一系列的几个视频还是相比前面有些难懂,。。。。。。
ng说拿这个做例子有三个原因:一、演示如何将复杂的机器学习进行融合;二介绍下机器学习的type line和当你决定做某事的时候如何的利用资源;三、这个例子能够说明更多有趣的机器学习idea(将机器学习用于计算机视觉,人工数据综合)
首先是图像中的文字识别
这是最简单的几部划分,(但是比如你之前的单词是cleaning,但是机器有可能会反馈给你c1eaning,会有少许的错误,简单的提下)
这里是一个OCR识别的管道图,下面是每个部分差不多需要这么多人的合作,但是(ng最后居然说其实一个人完成整个工作也是可以的,如果他知道怎么做的话,唉)
一、滑动窗口
相对应来说,行人检测中的窗口比较简单,因为他的背景较为单一,不像之前的文本识别,背景很是复杂,在行人检测中,要考虑到不同距离下不同人的窗口的高度和宽度等等。
这里是个简单的数据集的例子,通过观察采用这么大的窗口较为合适,行人检测的数据集一般都是1k或者10k等等的
从图的左上角开始一个82*36的窗口,然后分类获得这个是y=0,就是非行人的数据,然后将窗口右移这其中的移动的距离就叫做stepsize,如果stepsize等于1 的确可以抓取足够的数据,但是计算量太大,一半都是stepsize等于4 或者8.然后这里的窗口大小如果按照需要也是可以调的更大的。并不是完全的限定在一个数值上
这样就能够获得这样一个结果
通过这样的方法就能应用在文字识别上,通过不同的滑动窗口获得文本的位置
通过不同的滑动窗口最后就锁定了文字的位置,然后进行图片的放大来更清晰的显示字符串的位置
但是如果采用中间划分的方法,左边的明显是滑动窗口取到了两个字,而右边的是取到了一个完整的字
通过一种方法当滑动窗口滑倒完整的字的时候不采用切分,而滑倒两个字的时候采用切分。
二、人工数据结合
ng说见过的最好的机器学习算法都是采用一个low bias算法,然后再大量的数据上运行。对于文字识别来说。数据有一个是来自于真实的数据,一个是来自于众多的字体库
或者通过采用字体库的字体,在放到实际数据的背景上合成人工数据:
或者是在数据上加上扭曲等方法
在音频上:
对于数据添加噪声来说,添加的噪声是有意义的,比如上图中的扭曲是可以在test中真实找到的,(类似模拟test数据一样)。而下文中的椒盐噪声是无意义的,添加了也没什么帮助,因为在这个例子中,我们是想识别的文字而且文字的扭曲是真实世界中看得到的,而添加的椒盐噪声是除非你就是为了比如降噪这种噪音,能够在test中看到的,因为这里是为了识别不同形状的a,而不是为了降噪,
按照上图说的,在添加人工合成的数据的时候,一定要知道你的模型是不是过拟合的,如果模型是欠拟合的,那么增加再多的数据都是在浪费时间。其次,可以坐下来和团队的人员一起问问 想要这些数据的处理速度提升10x,需要做多少工作:1、人工合成;2、手动添加标签;3、寻找混合来源。
三、细胞级别分析
如上图来说,对于整个系统而言,每个地方都是需要做工作的,但是如何找到这个系统的瓶颈之处,通过提升这个系统的瓶颈来达到提升整个系统的效率,这是值得思考的,不然在其他表现很好的环节上大量的工作,最后还是在浪费时间
相比较而言,首先没有任何改变的情况下最好的精度是72%,然后通过修改第二项,让他的输出是100准确的,那么整个系统提升到89%的精度,有17%的改变,说明这部分值得我们花时间,然后再改动第二项的基础上,接着将第三项改动成完美情况下,整个系统只提升了1%,这说明第三项是很好的,差不多不需要花时间去完善。
这同样让我们知道每个部分的上限是多少,和在这个部分的上限上运行的时候整个系统的精度是多少
上面两个图就是一个人脸检测的模型过程。
通过与最原始的模型的效果相对比,先逐个部分的进行人工的修改(即将这个部分的精度提到上限),比如第一部分的背景移除,可以通过ps等软件人工的去除,然后将这个完美的模型代替第一部分的输出,观察整个模型提升的效果,这里第一个模型只提升了0.1%,说明这部分没什么可改善的地方。接着往下按照这种原理进行。找到整个模型的瓶颈之处。
就是用人工的小数据去验证模型的瓶颈,而不至于花了很久时间才发现其实都在浪费时间。
例子:照片的OCR识别的更多相关文章
- 深入学习OpenCV文档扫描及OCR识别(文档扫描,图像矫正,透视变换,OCR识别)
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 下面 ...
- AI时代的OCR识别技术浅析
人工智能这个词可谓是耳熟能详,近几年人工智能热潮再次席卷而来,引起轰动的要数google的AlphaGo,相继打败了围棋界的韩国选手李世石以及世界冠军柯洁,见证了人工智能发展的里程碑式的变革,人工智能 ...
- 基于Tesseract的OCR识别小程序
一.背景 先说下开发背景,今年有次搬家找房子(2020了应该叫去年了),发现每天都要对着各种租房广告打很多电话.(当然网上也找了实地也找),每次基本都是对着墙面看电话号码然后拨打,次数一多就感觉非常麻 ...
- 微信公众号开发调用摄像头、拍摄或选择图片、OCR识别
一 .准备工作 <1> 域名认证准备工作 在需要调用摄像头的接口页面引入微信的js,具体地址为:(支持https):http://res.wx.qq.com/open/js/ ...
- Atitit ocr识别原理 与概论 attilax总结
Atitit ocr识别原理 与概论 attilax总结 1.1. Ocr的过程与流程1 1.2. OCR不同技术细分略有不同,但大概原理是一样的. 即主要技术过程是:二值化(又叫归一化)----- ...
- 基于Python实现对PDF文件的OCR识别
http://www.jb51.net/article/89955.htm https://pythontips.com/2016/02/25/ocr-on-pdf-files-using-pytho ...
- OCR识别-python版(一)
需求:识别图片中的文字信息环境:windows系统 开发语言:python 使用工具类:1.pyocr 2.PIL 3.tesseract-ocr 步骤: 1.pyocr 网络通直接使用命令:pip ...
- 汽车Vin码识别——可以嵌入到手机里的新OCR识别技术
汽车Vin码识别(车架号识别),顾名思义,就是识别汽车的Vin码(车架号),汽车Vin码识别(车架号识别)利用的是OCR识别技术,支持视频流获取图像,自动触发识别,另外汽车Vin码 ...
- 汽车Vin码识别—— 一款二手车行业值得拥有的OCR识别软件
一.汽车Vin码识别产品描述 汽车Vin码识别系统,主要应用在智能手机IOS与Android两个平台中.前端扫描查询模式,无需联网,只需扫描汽车前挡风玻璃右下角的Vin码(车架号),即可轻松识别出车辆 ...
随机推荐
- Code Signal_练习题_variableName
Correct variable names consist only of English letters, digits and underscores and they can't start ...
- apicloud 自定义模块引用aar
apicloud 引入aar包,如果使用apicloud自定义模块的话,如果是一般的jar包,我们需要把jar down到本地然后添加到module的libs中就可以了(不要想着用远程地址了,既然用a ...
- View的layout机制
View框架的工作流程为:测量每个View大小(measure)-->把每个View放置到相应的位置(layout)-->绘制每个View(draw). 源代码分析 在View的源代码中, ...
- Java学习笔记之异常处理
一.异常的分类 1.由Java虚拟机抛出的异常(Error):程序无法处理的问题,用户不用去进行处理(虚拟机错误丶内存溢出错误丶线程死锁) 2.Exception异常:程序本身可以进行处理的异常 1. ...
- [Objective-C] Block实现回调和简单的学习思考
初识Block的时候,总觉得其很可怕,因为看不懂其运行原理,所以用起来总是觉得不安全.关于Block的语法,等我把手里的资料全部看完,整理好再发出来.这次先看看用Block怎么实现回调. 新博客:wo ...
- 从零自学Java-4.使用字符串来交流
1.使用字符串来存储文本: 2.在程序中显示字符串: 3.在字符串中包含特殊的字符: 4.拼接字符串: 5.在字符串中包含变量: 6.比较字符串: 7.判断字符串的长度: 程序Credits:显示一部 ...
- Saltstack安装配置过程
一.安装配置 1.服务器配置情况 三台服务器,均需要关闭iptables和selinux(否则salt执行指令无效) master: 192.168.60.139 centos slave: 192. ...
- SQL Server下ADO.NET 怎么获取数据库SQL语句INSERT,UPDATE,DELETE了多少行数据
ADO.NET 在发送SQL语句到SQL Server数据库后,怎么知道真正INSERT,UPDATE,DELETE了多少行数据呢? 使用SQL Server内置的全局变量@@ROWCOUNT即可,@ ...
- Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
新服务器搭建环境总是有很多问题.在安装MS SQL SERVER 2014 EXPRESS的时候提示无法安装成功,需要先安装 .NET Framework 3.5!但是新问题又来了,使用Windows ...
- Angular 过滤器的简单使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...