Andrew Ng机器学习课程笔记--week11(图像识别&总结划重点)
一、内容概要
-
Photo OCR
- Problem Decription and pipeline(问题描述和流程图)
- Sliding Windows(滑动窗口)
- Getting Lots of Data and Artificial Data
- Ceiling Analysis(上限分析):What part of the pipline to Work on Next
二、重点&难点
1. Problem Decription and pipeline
为了实现图像文字识别通常按如下流程图进行操作:
- 文字侦测(Text detection)——将图片上的文字与其他环境对象分离开来
- 字符切分(Character segmentation)——将文字分割成一个个单一的字符
- 字符分类(Character recognition)——文字识别
2. Sliding Windows(滑动窗口)
滑动窗口是一项用来从图像中抽取对象的技术。 假使我们需要在一张图片中识别行人,首先要做的是用许多固定尺寸的图片来训练一个能够准确识别行人的模型。然后我们用之前训练识别行人的模型时所采用的图片尺寸在我们要进行行 人识别的图片上进行剪裁,然后将剪裁得到的切片交给模型,让模型判断是否为行人,然后在图片上滑动剪裁区域重新进行剪裁,将新剪裁的切片也交给模型进行判断,如此循环直至将图片全部检测完。一旦完成后,我们按比例放大剪裁的区域,再以新的尺寸对图片进行剪裁,将新剪裁的切片按比例缩小至模型所采纳的尺寸,交给模型进行判断,如此循环。
3. Getting Lots of Data and Artificial Data
机器学习要获得更好的效果就需要大量的数据来训练,但是有的数据并不是很方便的获得,所以可以在原有数据的基础上通过人工合成的方式来扩大数据。例如将已有的字符图片进行一些扭曲、旋转、模糊处理。
4. Ceiling Analysis:What part of the pipline to Work on Next
下面以图像文字识别流程图为例来解释上限分析的思想。
Text detection -> Character segmentation -> Character recognition
首先按照最开始的模型得出最终的系统识别准确率为72%。
之后我们人为的提高上面三个环节的准确率接近100%,然后观察系统准确率的变化。
例如我们在Text Detection这一步骤中人为的指定出文字所在位置,使得文字检测准确率达到100%,然后其他步骤不变,最后观察到系统准确率为89%,提高了17%。 其他同理,可以看到提高 文字识别(Character recognition) 这一步骤的准确率可以使得系统准确率达到100%,所以接下来的工作则是尽量提高文字识别这一步骤的准确率,而不是另外两个步骤。
最后一节课了,超级感谢吴大大~~~~~~~~~~~~~~~~~~~~~~ 附上整个课程所学的知识点,划重点了有没有!!!!
- linux(十)配置ssh免密登录实现
- 微信群也有群相册功能了,终于可以给手机相册腾出空间了!
- PHP5.3、PHP5.4安装ZendOptimizer
- linux(十一)之初始化文件
- C编译: 动态连接库 (.so文件)
- 腾讯叮当首都发布生态合作伙伴计划,全面开放AI能力
- Python火爆的背后的应用领域是数据挖掘、大数据和人工智能的应用吗?
- linux(九)之网络基础
- eclipse从数据库逆向生成Hibernate实体类
- C编译: 使用gdb调试
- linux(八)linux系统中查找文件二
- Java魔法堂:String.format详解
- Java基础12 类型转换与多态
- linux(七)之linux系统中查找文件
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- lldb 入坑指北(1) - 给Xcode批量添加启用&禁用断点功能
- Xcode 中的 Workspace、Project、Target 和 Scheme
- 学习Python一年,这次终于弄懂了浅拷贝和深拷贝
- 为速度而生的构建系统 - Ninja
- Python面试题:字符串连接
- Python面试突击
- 我半夜爬了严选的女性文胸数据,发现了惊天秘密
- 二分查找(Python实现)
- 图解JavaScript——代码实现【2】(重点是Promise、Async、发布/订阅原理实现)
- 编译器 bug 系列(1)
- 面试高频:反转链表
- 存储过程
- 为什么别人不想回答你提的问题?
- python面试题搜集:史上最全python面试题详解(一)
- 一日一技:在 Golang 中如何快速判断字符串是否在一个数组中