Datawhale 零基础入门CV赛事-Task1 赛事理解

Datawhale 零基础入门CV赛事-Task1 赛事理解

1 赛题理解

赛题名称:零基础入门CV之街道字符识别
赛题目标:通过这道赛题可以引导大家走入计算机视觉的世界,主要针对竞赛选手上手视觉赛题,提高对数据建模能力。
赛题任务:赛题以计算机视觉中字符识别为背景,要求选手预测街道字符编码,这是一个典型的字符识别问题。

在本次的学习中,查看了教程后,作为一个初学者有些手足无措,配置好环境后开始对每个模块进行熟悉。例如:
定义好读取图像的Dataset:

class SVHNDataset(Dataset):
	def __init__(self, img_path, img_label, transform=None):
		self.img_path = img_path
		self.img_label = img_label
		if transform is not None:
			self.transform = transform
		else:
			self.transform = None
		def __getitem__(self, index):
			img = Image.open(self.img_path[index]).convert('RGB')
			if self.transform is not None:
				img = self.transform(img)
	# 设置最⻓长的字符⻓长度为5个
			lbl = np.array(self.img_label[index], dtype=np.int)
			lbl = list(lbl) + (5 - len(lbl)) * [10]
			return img, torch.from_numpy(np.array(lbl[:5]))
		def __len__(self):
			return len(self.img_path)

定义好训练数据和验证数据的Dataset

train_path = glob.glob('../input/mchar_train/mchar_train/*.png')
train_path.sort()
train_json = json.load(open('../input/mchar_train.json'))
train_label = [train_json[x]['label'] for x in train_json]
print(len(train_path), len(train_label))

train_loader = torch.utils.data.DataLoader(
    SVHNDataset(train_path, train_label,
                transforms.Compose([
                    transforms.Resize((64, 128)),
                    transforms.RandomCrop((60, 120)),
                    transforms.ColorJitter(0.3, 0.3, 0.2),
                    transforms.RandomRotation(10),
                    transforms.ToTensor(),
                    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ])), 
    batch_size=40, 
    shuffle=True, 
    num_workers=0,
)

val_path = glob.glob('../input/mchar_val/mchar_val/*.png')
val_path.sort()
val_json = json.load(open('../input/mchar_val.json'))
val_label = [val_json[x]['label'] for x in val_json]
print(len(val_path), len(val_label))

val_loader = torch.utils.data.DataLoader(
    SVHNDataset(val_path, val_label,
                transforms.Compose([
                    transforms.Resize((60, 120)),
                    # transforms.ColorJitter(0.3, 0.3, 0.2),
                    # transforms.RandomRotation(5),
                    transforms.ToTensor(),
                    transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    ])), 
    batch_size=40, 
    shuffle=False, 
    num_workers=0,
)

2 遇到的问题及解决

2.1 jupyter notebook 报错 500 : Internal Server Error

问题:在虚拟空间中输入jupyter notebook后,浏览器中无法打开.ipynb文件,出现报错500:Internet Server Error。
解决:在卸载jupter notebook再重装并无法解决,根据参考解决方案,判断为nbconvert和pandoc不兼容造成的,更新或安装nbconvert5.4.1及以后的版本即可,下面附上问题解决参考的链接:
链接: link.

2.2 模块缺失问题

	问题:在配置环境后,运行程序发现缺少部分重要组件包
	解决:使用对应的语句在该虚拟空间中安装
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值