- 🍨 本文为🔗365天深度学习训练营 中的学习记录博客
- 🍖 原作者:K同学啊
前言
要求:
- 学习并理解本文
拔高:
- 对单张车牌进行识别
实验环境:
- 语言环境:Python3.10
- 编译器:Pycharm
- 深度学习环境:Pytorch
1.torch == 2.4.0+cu121
2.torchvision == 0.19.0+cu121
一、前期准备
1.设置GPU
import torch
import torch.nn as nn
from torchvision import transforms, datasets
import os,PIL,pathlib,warnings
import os,PIL,random,pathlib
import torch.nn.functional as F
from torch.autograd import Variable
warnings.filterwarnings("ignore") #忽略警告信息
#隐藏警告
import warnings
import numpy as np
import os
import pandas as pd
from torchvision.io import read_image
from torch.utils.data import Dataset
import torch.utils.data as data
from PIL import Image
import torchsummary
import matplotlib.pyplot as plt
#-------------设置GPU---------------
# 设置硬件设备,如果有GPU则使用,没有则使用cpu
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(device)
代码输出:
cuda
2.导入数据
输入代码:
# ---------------------------导入数据----------------------
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
data_dir = 'F:/lsydata/chepai/015_licence_plate/'
data_dir = pathlib.Path(data_dir)
data_paths = list(data_dir.glob('*'))
classeNames = [str(path).split("\\")[4].split("_")[1].split(".")[0] for path in data_paths]
print(classeNames)
代码输出:
['川W9BR26', '藏WP66B0', '沪E264UD', '津D8Z15T', '浙E198UJ', '陕Z813VB', '甘G24298', '青SN18Q3', '云HZR899', '辽G46Z9R', '湘G0H422', '蒙D35P2J', '冀Z4K30A', '青Q31F3Y', '京X3U68P', '粤P6W0T1', '浙LD9F20', '黑AQ8U79', '津T0B1L3', '琼D0DK01', '渝V8X77K', '陕H4M02X', '沪K8W7S0', '津L612CY', '琼U2E68N', '鄂YDK772', '赣G3B80M', '陕B4H8M5', '甘J9R5K1', '贵UB312U', '浙R6PA34', '豫P21V72', '冀K3DD99', '黑DU092M', '川CQ816G', '晋N678PK', '川T65HK2', '闽FD24Q5', '桂X2R99V', '皖ZX3N01', '晋AL98Q2', '皖S9Q7H7', '川Q802LX', '琼F21DU3', '浙MZB988', '粤C035ZT', '津T127WB', '黑J92YL9', '津L93B1R', '贵R86A0C', '川C6W88E', '川STQ089', '沪DFS269', '赣K6R6S7', '新CXX059', '藏E6E0J5', '吉TY9Y56', '赣H71Y6P', '甘Y64BV5', '黑AD426J', '云T559R9', '沪W70W0S', '苏MB1B64', '青EYJ193', '苏PK4A85', '鄂W0UC59', '苏V617UX', '鲁FU211P', '川V12X5U', '沪J541UR', '冀G844UX', '冀V924RP', '吉EV33G4', '贵F1WA97', '桂L120AY', '贵S014M8', '吉A47W3K', '闽UC760E', '苏VU77Z2', '陕Z0C3J1', '豫L1Z7W9', '鄂BX6773', '宁U71Y0N', '藏Y996XF', '晋P6UE94', '苏XY2E83', '辽S041TN', '黑CW73L1', '京A300JJ', '鲁Y0XU14', '京X2U380', '琼X57T3N', '渝FF77F5', '辽G6Z0E6', '皖N7MY60', '鲁S38MC4', '新PCJ034', '黑RQ5Y82', '京T77UG0', '青Z0M0Q9', '蒙CND016', '豫QA728B', '津F06W8L', '苏D08RX8', '冀S467MS', '琼K70U4T', '皖JKT701', '贵LH972J', '鄂BS039A', '鄂XU23J4', '皖N0QZ88', '陕DK449S', '京JD27D0', '辽W5H1W1', '津WXR665', '陕WJ0K89', '吉D5MZ11', '渝CW50V0', '冀YR14S2', '苏D3F8Y8', ...... '青UE87B7', '辽A3DU99', '渝FJ65C3', '甘A0W9U9', '皖JP7Z46', '渝R6P85G', '青AY1G55', '浙X4DZ51', '蒙XX83H0', '皖C2HW16', '蒙NLP471', '皖D785JQ', '藏H54HU0', '京X48LL5', '桂UP03K2', '渝W63CD0', '鄂U60RJ1', '蒙U17CL7', '赣S8Q147', '琼XFN464', '闽B99EB1', '甘YJ5A31', '苏JA147V']
代码输入:
data_paths = list(data_dir.glob('*'))
data_paths_str = [str(path) for path in data_paths]
print(data_paths_str)
代码输出:
['015_licence_plate\\000000000_川W9BR26.jpg',
'015_licence_plate\\000000000_藏WP66B0.jpg',
'015_licence_plate\\000000001_沪E264UD.jpg',
......
'015_licence_plate\\000000003_甘G24298.jpg',
'015_licence_plate\\000000003_青SN18Q3.jpg',
'015_licence_plate\\000000004_云HZR899.jpg',
...]
3.数据可视化
# ----------------------数据可视化-----------------------
total_datadir = 'F:/lsydata/chepai/015_licence_plate/'
plt.figure(figsize=(14, 5))
plt.suptitle("数据示例(lsy)", fontsize=15)
for i in range(18):
plt.subplot(3, 6, i + 1)
# plt.xticks([])
# plt.yticks([])
# plt.grid(False)
# 显示图片
images = plt.imread(data_paths_str[i])
plt.imshow(images