暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

科大讯飞 机动车车牌识别挑战赛baseline

Coggle数据科学 2022-07-20
181

赛题介绍

随着世界各国汽车数量的增加,城市交通状况日益受到人们重视,如何高效地进行交通管理,成为各国政府和有关部门关注的焦点,开发智能交通系统是大势所趋。车牌识别技术是智能交通的重要环节,其中较为典型的应用场景为卡口系统。

卡口系统已被广泛应用于国道、省道、高速公路等应用场景,车牌识别技术结合电子不停车收费系统(ETC)识别车辆,过往车辆通过道口时无须停车,即能够实现车辆身份自动识别、自动收费。车牌号码识别是否准确和高效直接影响了卡口系统的整体性能及其在更多场景的应用泛化。

img

赛事任务

本次赛题需要选手对车牌字符进行识别,具体的案例如下:

正确识别结果:皖AUZ779

评审规则

  1. 数据说明

训练集和测试集图片放在不同的文件夹,训练集文件名为训练图片标签。

  1. 评估指标

本次竞赛的评价标准采用准确率指标,最高分为1。计算方法参考:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.html

解题思路

由于赛题是一个典型图像多标签任务任务,因此我们可以直接使用CNN完成多分类的操作。具体的步骤如下:

步骤1:读取数据,转换标签

对于一张图片包含了多个字符,我们需要将字符转换为数值表示,这里需要自定义dataset来完成。

class QRDataset(Dataset):
    def __init__(self, img_paths, lbl_dict, transform=None, label=True):
        self.img_paths = img_paths
        self.lbl_dict = lbl_dict
        self.label = label

        if transform is not None:
            self.transform = transform
        else:
            self.transform = None

    def __getitem__(self, index):
        start_time = time.time()

        img = cv2.imread(self.img_paths[index])
        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

        if self.transform:
            augmented = self.transform(image=img)
            img = augmented['image']

        img_label = self.img_paths[index].split('/')[-1][:-4]
        
        if self.label:
            label0 = np.array(self.char2idx(img_label[0]))
            label1 = np.array(self.char2idx(img_label[1]))
            label2 = np.array(self.char2idx(img_label[2]))
            label3 = np.array(self.char2idx(img_label[3]))
            label4 = np.array(self.char2idx(img_label[4]))
            label5 = np.array(self.char2idx(img_label[5]))
            label6 = np.array(self.char2idx(img_label[6]))

            return img, torch.from_numpy(label0), torch.from_numpy(label1), \
                torch.from_numpy(label2), torch.from_numpy(label3), torch.from_numpy(label4),\
                torch.from_numpy(label5), torch.from_numpy(label6)
        else:
            return img

    def __len__(self):
        return len(self.img_paths)

    def char2idx(self, ch):
        return self.lbl_dict.find(ch)

步骤2:定义多输出模型

加载预训练模型,通过多个全链接网络完成多次分类,这里需要分类7次。

class RMB_Net(nn.Module):
    def __init__(self):
        super(RMB_Net, self).__init__()

        feat_size = 512
        self.fc0 = nn.Linear(feat_size, 62)
        self.fc1 = nn.Linear(feat_size, 62)
        self.fc2 = nn.Linear(feat_size, 62)
        self.fc3 = nn.Linear(feat_size, 62)
        self.fc4 = nn.Linear(feat_size, 62)
        self.fc5 = nn.Linear(feat_size, 62)
        self.fc6 = nn.Linear(feat_size, 62)

        model = models.resnet18(True)
        model = torch.nn.Sequential(*(list(model.children())[:-1]))
        self.resnet = model

        self.resnet = model

    def forward(self, img):
        feat = self.resnet(img)
        feat = feat.reshape(feat.size(0), -1)

        out0 = self.fc0(feat)
        out1 = self.fc1(feat)
        out2 = self.fc2(feat)
        out3 = self.fc3(feat)
        out4 = self.fc4(feat)
        out5 = self.fc5(feat)
        out6 = self.fc6(feat)

        return out0, out1, out2, out3, out4, out5, out6

步骤3:模型训练与验证

定义好训练函数和验证函数后,通过模型训练,模型则可以正确识别所有的车牌。

for _ in range(5):
    train_loss = train(train_loader, model, criterion, optimizer)
    val_acc, val_loss = validate(val_loader, model, criterion)
    print('{:2f} {:2f} {:2f}'.format(train_loss, val_acc, val_loss))

训练完成后可以在测试集上进行预测,然后提交得到Top10的分数,你也来试试吧。

完整代码:https://github.com/datawhalechina/competition-baseline/tree/master/competition/%E7%A7%91%E5%A4%A7%E8%AE%AF%E9%A3%9EAI%E5%BC%80%E5%8F%91%E8%80%85%E5%A4%A7%E8%B5%9B2022

 竞赛交流群 邀请函  #

△长按添加竞赛小助手
添加Coggle小助手微信(ID : coggle666)


每天Kaggle算法竞赛、干货资讯汇总

与 22000+来自竞赛爱好者一起交流~


车牌
文章转载自 Coggle数据科学,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

聚圣源细高跟鞋个体工商户名称取名起名大全保定二手车赶集网看图软件哪个好金命起名代理记账公司起名纸醉金迷是什么意思牧羊犬的起名大全五行缺金应该怎么起名浩 起名十二星座时间环保公司起名网免费取名太阁立志传5商人八字起名字测试评分调查组认定马拉多纳未获得妥善医治叶无道徐灵儿小说阅读起名字船务公司梓字怎么起名大全给杨姓婴儿起名facebook股权结构卖油翁原文及翻译家居商贸公司起名大全司起名字女党员争先创优承诺书排生辰八字起名字主神逍遥极道拳君幽浮宝贝1986年日历卫生值日表淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化