零基础入门CV实践-Task1

赛题简介

赛题名称:零基础入门CV之街道字符识别
赛题简介:简单来说就是识别街道上的字符(一位至六位之间)

事先准备

环境安装

1、安装Anaconda
2、启动Anaconda
Prompt 执行

conda create -n py37_torch131 python=3.7

创建专门的环境
3、激活环境

source activate py37_torch131

当上述语句无法激活时,使用下列语句

activate py37_torch131

4、安装pytorch
这边遇到了问题,总是http error,下载速度特别慢
换了网络环境就好了,网速是个问题
安装pytorch没有gpu的需要去官网找到cpu的下载命令

pip install torch1.2.0+cpu torchvision0.4.0+cpu -f https://download.pytorch.org/whl/torch_stable.html

5、安装其他所需库
可能会遇到问题,可以尝试管理员权限运行prompt再执行安装命令

6、启动nootbook,开始学习

(*)7、涉及的小知识:A卡和N卡如何区分

1.双击“我的电脑”,点击右键–在弹出的对话框里选择“属性”。
2.在弹出的对话框里选择:硬件设备管理器。
3.进入硬件设备管理器界面,弹出的对话框里选择:显示适配器。
4.进入显示适配器界面,即可看到显示适配器的类型,NVIDIA:为N卡;ATI或AMD:为A卡。

数据读取

通常很多数据是无法直接使用的,我们读取前后都可能需要做很多数据处理(清洗)。比如之前了解过的文本/数值类数据的处理:缺失值处理,删除特殊字符,主要信息提取/拼接,数据类型转换,索引设置,计算等等。本次的是规范的图片数据,不需要自己再做这种规范方面的处理。

简单了解一下图片数据的处理方式(等等):
①重命名图片文件名称
②剪切图片
③调整图片灰度
④二值化【*不明白】

图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果

⑤缩放
⑥丰富数据

数据

比赛提供数据:
在这里插入图片描述
因为是刚刚接触,一开始不知道json其实右键保存就可以了,ԾㅂԾ,

本次数据简介

采用的是公开数据集SVHN街道字符(进行了匿名采样处理)【*不明白】

匿名化是指数据挖掘中隐私保护的最主要的一种技术手段
数据挖掘上保护隐私的方法可以分成以下几类:

1、扰动和泛化的方法。扰动是对原数据中正确的数值做一些变换,比如加上一个随机量,而且当扰动做完后,要保证分析扰动数据的结果和原数据的结果一致。泛化是指从一个合适的范围内选择新值将原值替换,例如将日期随机替换为一年内的某一天。许多未经过处理的数据都包括用户的姓名、身份证号等,这些属性在公开前可以直接删除,也可以看作泛化的一种形式,即把范围当作无限大。

2、K匿名化和I多样性的方法。

定义准标识符(Quasi-dientifier,
QI)是由数据集上若干个属性构成的集合,通过准标识符可以充分识别唯一一个个体,例如身份证号。K匿名化通过扰动和泛化的方法使得每一个准标识符都至少对应k个实例,这样就不能唯一识别,从而保护了用户的隐私。

3、分布式隐私保护。大型的数据集可以在被分割后发布。划分可以“水平”地进行,例如将数据分成不同的子集分别在不同的地方公开;也可以“竖直”地进行,例如按照属性划分成不同的数据集再公开,或者两者结合起来。例如表1中的信息,可以根据不同的需要只公布年龄和身体状况的信息,或者只公布性别和身体状况的信息。

4、降低数据挖掘结果的效果。在很多情况下,即便数据无法被获取,数据挖掘的结果(比如关联规则或者分类模型)仍然有可能泄露隐私。为此可以隐藏某些关联规则或轻微改变分类模型来保护隐私。

5、差分隐私保护的方法。它是研究人员最近提出的,基本思想是通过添加噪声的方法,确保删除或者添加一个数据集中的记录并不会影响分析的结果;因此,即使攻击者得到了两个仅相差一条记录的数据集,通过分析两者产生的结果都是相同的,也无法推断出隐藏的那一条记录的信息。

训练集数据包括3W张照片,验证集数据包括1W张照片,每张照片包括颜色图像和对应的编码类别和具体位置;为了保证比赛的公平性,测试集A包括4W张照片,测试集B包括4W张照片。

为了降低比赛难度,提供了所有字符的位置框。
在这里插入图片描述
打开“.json”文件如下:在这里插入图片描述
说明
在这里插入图片描述
在这里插入图片描述
当图片中有三个数据时:
在这里插入图片描述

解题思路

根据pdf学习文档中,有三个解题思路:
1、定长字符识别,不满的位置填充(入门)
2、不定长字符识别(专业字符识别思路)
3、检测再识别(专业分类思路)

由于个人刚接触CV,选择第一个解题思路

选择思路一

采用第一个填充的思路,识别字符变成0~9这十个数和一个填充位(x:表明字符位为空)

数字识别看到过的有:minist手写数字识别

通过上述案例,可以更清楚的了解到一个较完整的数字识别案例的整个流程。该案例使用的是tensorflow和卷积神经网络,个人理解经过一层层卷积层,是使得图像变成可用简单的数字串描述的形式,再从这样的简单的形式之间去区分不同的数字之间的特征。

等后续学习过程中学习了本次赛题的解题过程后早来做比较。

baseline代码

由于是没有基础的状态,所以第一目的是能够跑通baseline代码。

跑通过程中的问题

train_path = glob.glob('../input/train/*.png')

train_path = glob.glob('input/train/*.png')

因为是同级目录,不需要“…/”返回上一级
所有的路径都做以下这样的修改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值