如何利用百度AI Studio做一个车牌定位系统
百度AI Studio
百度推出的AI Studio是一个一站式开发平台:囊括了 AI 教程、代码环境、算法算力、数据集,并提供免费的在线云计算,是一个一体化编程环境。这里我们主要使用百度AI studio提供的免费算力:V100显卡,显存16G的配置,每天 12 个小时的免费算力支持(试了一下,一般需要到晚上十二点以后才能申请到,白天基本申请不到GPU的使用权限)。
平台主张使用paddle paddle,但是可以自己进行pytorch的配置(tensorflow应该也可以)。虽然可以配置pytorch环境但是每次重启服务器之后又要重新配置pytorch,如果要配置的环境比较多的话,安装时间也是需要考虑的问题。
AI Studio官网
PaddlePaddle
飞桨(PaddlePaddle)以百度多年的深度学习技术研究和业务应用为基础,集深度学习核心训练和推理框架、基础模型库、端到端开发套件、丰富的工具组件于一体。是中国首个自主研发、功能完备、开源开放的产业级深度学习平台。
制作数据集
准备的车牌图片(198张已标注):车牌
提取码:psl2
1.点击Open Dir,打开文件夹,载入图片;
2.点击Create RectBox,即可在图像上画框标注;
3.输入标签,点击OK;
4.点击Save保存,保存下来的是XML文件;
然后把标注好的图片整理成VOC格式的数据集:
1.创建三个文件夹:Annotations、ImageSets、JPEGImages
将标注生成的XML文件存入Annotations,图片存入JPEGImages,训练集、测试集、验证集的划分情况存入ImageSets。 在ImageSets下创建一个Main文件夹,并且在Mian文件夹下建立label_list.txt,里面存入标注的标签。 此label_list.txt文件复制一份与Annotations、ImageSets、JPEGImages同级位置放置。 label_list.txt内容如下:
2.创建一个py文件,命名为create_list
运行该代码将会生成trainval.txt、train.txt、val.txt、test.txt,将我们标注的1000张图像按照训练集、验证集、测试集的形式做一个划分。
create_list代码如下:
import os
import random
trainval_percent = 0.95 # 训练集验证集总占比
train_percent = 0.9 # 训练集在trainval_percent里的train占比
xmlfilepath = 'D:/Aplate/Annotations'
txtsavepath = 'D:/Aplate/ImageSets/Main'
total_xml = os.listdir(xmlfilepath)
num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)
ftrainval = open('D:/Aplate/ImageSets/Main/trainval.txt', 'w')
ftest = open('D:/Aplate/ImageSets/Main/test.txt', 'w')
ftrain = open('D:/Aplate/ImageSets/Main/train.txt', 'w')
fval = open('D:/Aplate/ImageSets/Main/val.txt', 'w')
for i in list:
name = total_xml[i][:-4] + '\n'
if i in trainval:
ftrainval.write(name)