Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

陈静茹-CV-OpenCV-20220405 #13

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 123 additions & 0 deletions 2022.04.05课后/陈静茹-CV-OpenCV-20220405.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# 课程内容总结

## 庖丁解牛

### 是什么?

庖丁解牛即拿到一个问题,学会目标拆解,要明白先干什么,后干什么

### 为什么?

形成自己的做事方法论,并且通过不断练习变得熟练,以应对真实业务场景和面试时不断深挖的问题

### 怎样做

#### 1.选择环境

选择:云端环境ModelArts云平台

原因:比赛数据有三万张训练集,一万张测试集,千万不能在本地环境跑,本地环境慢且会被那么的的数据集搞崩溃。

#### 2.分析数据集

一定要每一张图片都自己看一遍,看每张图片大概有什么特征,存不存在干扰识别的因素,充分了解自己的数据集。

其次提取图片信息构建DataFrame,再用EDA工具分析该DataFrame,能得到很多一张一张看得不到的信息,包括Image Height的大体分布等。

#### 3.Pillow

最常用的图像处理库,现实中的图片可能需要pillow库来进行预处理

## 赛题理解

## 计算机视觉字符识别问题

训练集数据包括3W张照片

验证集数据包括1W张照片

每张照片包括颜色图像和对应的编码类别和具体位置

测试集A包括4W张照片,测试集B包括4W张照片。

## 给出的数据标签

给出了以下信息

| Field | Descriptiontop |
| ------ | -------------- |
| top | 左上角坐标X |
| height | 字符高度 |
| left | 左上角最表Y |
| width | 字符宽度 |
| label | 字符编码 |

需要注意,每张图片中需要识别的字符起始位置不同,且同一张图片中可能包含多个字符,多个字符时给多个边框字符编码

![Alt text](http://jupter-oss.oss-cn-hangzhou.aliyuncs.com/public/files/image/1095279523651/1590046233702_bDYZWbzeRJ.jpg)

![Alt text](http://jupter-oss.oss-cn-hangzhou.aliyuncs.com/public/files/image/1095279523651/1590046243876_M7q1ta5vwQ.jpg)

## 测评指标


$$
Score=编码识别正确的数量/测试集图片数量
$$

## 赛题思路

赛题本质是分类问题,需要对图片的字符进行识别。但赛题给定的数据图片中不同图片中包含的字符数量不等,有的图片的字符个数为2,有的图片字符个数为3,有的图片字符个数为4。

- 简单入门思路:定长字符识别
- 专业字符识别思路:不定长字符识别
- 专业分类思路:检测再识别

# 预习内容

## opencv下载

版本:4.5.5(推荐的那个3.3.4已经下载不到了)

简介:OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,拥有了丰富的常用图像处理函数库,能够快速的实现一些图像处理和识别的任务。

## 在看文件时不懂的单词

### 灰度处理

https://zhuanlan.zhihu.com/p/32908931

灰度图:单通道图像,颜色具有三个基本特征量:辉度(亮度)、色调和饱和度,灰度图相当于亮度

RGB图就是彩色图就是RGB三通道图

二者的转化公式为:

公式: Gray(i,j)=0.299*R(i,j)+0.587*G(i,j)+0.144*B(i,j)

### Alpha通道

(https://www.zhihu.com/search?type=content&q=alpha通道)

特别的通道,意思是“非彩色”通道,指一张图片的透明和半透明度,主要是用来保存选区和编辑选区。

### Gamma变换

我们较难一眼就对像素中值的分布有细致的了解,这时候就需要直方图。如果直方图中的成分过于靠近0或者255,可能就出现了暗部细节不足或者亮部细节丢失的情况。、

可以考虑用Gamma变换来提升暗部细节,通过非线性变换让图像从对曝光强度的线性响应变得更接近人眼感受到的响应

### 图像的仿射变换

对图像的缩放,旋转,剪切,翻转和平移的组合,效果图看懂了,但是具体代码没看懂

### 数据增加

(https://zhuanlan.zhihu.com/p/442423499)

数据增强指通过对已有数据添加微小改动或从已有数据新创建合成数据,以增加数据量的方法。

- **paraphrasing-based 方法**:生成原始数据的释义作为增强数据。有限的语义不同,与原始数据很相近。
- **noise-based 方法**:保证结果有效的前提下对原始数据增加噪声。提升模型鲁棒性。
- **sample-based 方法**:掌握原始数据的分布,采样新数据作为增强数据。基于人工启发式和训练模型输出更多样化的数据并满足下游任务的更多需求。