街景字符识别赛题理解及前期准备
赛题理解
Day 1 报名赛事 街景字符识别赛题理解
准备工作(初版为流水账)
1.下载Anaconda (之前都是服务器运行 笔记本没有python环境)并进行安装 教程选用的是datawhale中给的教程 链接:https://zhuanlan.zhihu.com/p/59027692 并学习一下如何使用csdn进行博文写作
2. 阅读赛题 街景字符识别 数据集选用的是SVHN(http://ufldl.stanford.edu/housenumbers/) 下载之后才发现选用的是主办方的数据集 从这个中选取部分
3. 注册天池账号 参加赛事 并下载数据
4. 数据为自然图像 给出了左上角的坐标 (top、left )高度height 宽度 width 标签label 其中json格式是给出的这些信息 对应原始图片中图片中的字符 每个字符都含有以上信息
5. 评价指标为Score=编码识别正确的数量/测试集图片数量
6. json数据读入(pdf中给出)
import json
train_json = json.load(open('../input/train.json'))
# 数据标注处理
def parse_json(d):
arr = np.array([
d['top'], d['height'], d['left'], d['width'], d['label']
])
arr = arr.astype(int)
return arr
img = cv2.imread('../input/train/000000.png')
arr = parse_json(train_json['000000.png'])
plt.figure(figsize=(10, 10))
plt.subplot(1, arr.shape[1]+1, 1)
#位置是由三个整型数值构成,第一个代表行数,第二个代表列数,第三个代表索引位置
plt.imshow(img)
plt.xticks([]); plt.yticks([]) #代表坐标轴不写东西
#xticks(locs, [labels], **kwargs) # Set locations and labels
#应该是用于显示图片 得跑起来看一下
for idx in range(arr.shape[1]):
plt.subplot(1, arr.shape[1]+1, idx+2)
plt.imshow(img[arr[0, idx]:arr[0, idx]+arr[1, idx],arr[2, idx]:arr[2, idx]+arr[3, idx]])#(前两个是top+height 后两个是left+width)
plt.title(arr[4, idx])
plt.xticks([]); plt.yticks([])
代码运行结果:
其中发现图片编号和其在json中的变化差1 既1.png对应的是json中的000000.png 数据读入时要注意 只要到时候按照顺序对应即可
(数据集为手动下载 小组内成员分享了一个脚本文件 感叹一下 代码几行就可以解决了 值得学习)
anaconda 下配置pytorch
之前都是在服务器上运行python 在windows下用命令行总是觉得还是不习惯 这回给笔记本配置环境
用的是conda命令 之前在学校的电脑上 用的pip 但是windows下用pip真的是一堆错误 安装教程参考了:
https://blog.csdn.net/m0_37240250/article/details/84402102
https://blog.csdn.net/qq_38704904/article/details/95192856
点卡anaconda prompt
1、创建pytorch的虚拟环境
conda create -n pytorch python=3.6
2、激活环境
conda activate pytorch
3、进入官网 https://pytorch.org/get-started/locally/
conda install pytorch torchvision cpuonly -c pytorch
结果不用清华源镜像真的太慢了 手动取消之后
加入清华源镜像 参考博文https://blog.csdn.net/m0_37922734/article/details/86315761?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
pip install pip -U(出现问题 应该再install 后面加--user)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
加了–user还是报错
这句用easy_install pip
代替 (参考https://blog.csdn.net/wls666/article/details/103236219?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase)
终于成功
4、安装pytorch
conda install -c pytorch pytorch torchvision -y
5、环境clone(还没用 用的pycharm直接选用的conda里的pytorch环境)
conda create -n name --clone [需要clone的环境的路径]