个人学习使用,若有错误,敬请指正
主要实现
构建数据集类,使用xml的文件信息去提取车牌特征,转换尺寸之后输入神经网络。
因为没有搜索到纯代码实现xml的图片内容,所以自己尝试使用torch框架并实现。
实现代码
导入包和定义文件路径
import os
import matplotlib.pyplot as plt
from PIL import Image
import random
import xml.etree.ElementTree as ET
import torch
import torch.optim as optim
from torchvision import transforms, datasets,utils
from torch.utils.data import DataLoader, Dataset
from skimage import io, transform
import glob
import torchvision
import numpy as np
plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams["axes.unicode_minus"]=False #该语句解决图像中的缺失中文
# 定义训练集和测试集的路径
trainData_dir = 'Train/images'
testData_dir = 'Test/images'
# 引入Annotations文件来增强特征提取
trainAnno_dir = 'Train/annotations'
testAnno_dir = 'Train/annotations'
images= os.listdir(trainData_dir)
# print(f'文件夹下总共有{len(images)}条数据')
# 构建图片名称和索引的映射
name_map = {
}
for i in range(len(images)):
# print(images[i][:-4])
name_map[i] = images[i][:-4]
print(len(name_map))
自定义数据集的类
'''https://pytorch.org/tutorials/beginner/data_loading_tutorial.html
'''
class XMLDataset(Dataset):
def __init__(self,trainData_dir,trainAnno_dir,name_map,transform):