**
计算机视觉实践(街景字符编码识别)
**
Task01:赛题理解(2天)
学习目标
- 理解赛题背景和赛题数据
- 完成赛题报名和数据下载,
- 理解赛题的解题思路 了解赛题
首先对电脑的环境进行配置:
conda create -n environment_name python=X.X
“environment_name”是要创建的环境名;“python=X.X”是选择的Python版本,我的相关代码为:
conda create -n py37_torch131 python=3.7
然后进行激活
安装pytorch=1.3.1
使用清华镜像快速安装pytorch
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
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
conda install pytorch=1.3.1 torchvision cudatoolkit=10.0
一键安装其他库
采用清华源下载较快
pip install jupyter tqdm opencv-python matplotlib pandas -i https://pypi.tuna.tsinghua.edu.cn/simple
因为我安装时候出现各种问题,用的conda次数比较多。。。所以有几个命令用的较多:
conda list 查看安装了哪些包。
conda env list 或 conda info -e 查看当前存在哪些虚拟环境
conda update conda 检查更新当前conda
activate your_env_name(虚拟环境名称) 就是选择用哪个虚拟环境,activate然后把环境名字敲上去
安装完成后看赛题数据:
import os, sys, glob, shutil, json
os.environ["CUDA_VISIBLE_DEVICES"] = '0'
import cv2
from PIL import Image
import numpy as np
from tqdm import tqdm, tqdm_notebook
import torch
torch.manual_seed(0)
torch.backends.cudnn.deterministic = False
torch.backends.cudnn.benchmark = True
import torchvision.models as models
import torchvision.transforms as transforms
import torchvision.datasets as datasets
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from torch.autograd import Variable
from torch.utils.data.dataset import Datase
运行出现错误:
解决了问题:版本不匹配, torchvision重新下载了0.4.1
现在进行赛题的理解:
1. 赛题数据
赛题以街道字符为为赛题数据,数据集报名后可见并可下载,该数据来自收集的SVHN街道字符,并进行了匿名采样处理。
训练集数据包括3W张照片,验证集数据包括1W张照片,每张照片包括颜色图像和对应的编码类别和具体位置;为了保证比赛的公平性,测试集A包括4W张照片,测试集B包括4W张照片。
需要注意的是本赛题需要选手识别图片中所有的字符,为了降低比赛难度,我们提供了训练集、验证集中所有字符的位置框。
2. 数据标签
对于训练数据每张图片将给出对于的编码标签,和具体的字符框的位置(训练集、验证集都给出字符位置),可用于模型训练:
在比赛数据(训练集和验证集)中,同一张图片中可能包括一个或者多个字符,因此在比赛数据的JSON标注中,会有两个字符的边框信息:
3. 评测指标
选手提交结果与实际图片的编码进行对比,以编码整体识别准确率为评价指标。任何一个字符错误都为错误,最终评测指标结果越大越好,具体计算公式如下:
Score=编码识别正确的数量/测试集图片数量
读取json数据代码,文档中代码:
结果:
注意:存储的路径当中不要有中文,否则可能会出现如下报错,把中文删了就好:
TypeError: Image data cannot be converted to float
解题思路:
因为我第一次参加CV相关赛事,因此采用简单入门思路,设定最大个数为6.
个人总结:
**
思路大概清楚了,采用最简单的定长字符识别就可以,就是感觉自己基础的好多不足,各种代码第一次用到,还有安装虚拟环境时候有些恶心,各种错误。