国内车牌号检测数据集 7800张 车牌识别 带标注 voc yolo

news2024/10/2 10:27:11

 

车牌号检测数据集 7800张 车牌识别 带标注 voc yolo

 

车牌号码检测数据集

名称

车牌号码检测数据集 (License Plate Detection Dataset)

规模
  • 图像数量:7800张图像。
  • 类别:无分类,主要针对车牌区域的定位。
  • 标注个数:10,000多个标注。
数据划分
  • 训练集 (Train):通常占总数据的80%左右,约6240张图像。
  • 验证集 (Validation):通常占总数据的20%左右,约1560张图像。
数据特点
  • 多地区车牌:涵盖了不同地区的车牌,包括但不限于北京、上海、广东、四川等地。
  • 详尽标注:每张图像都有精确的边界框标注,用于训练车牌检测模型。
  • 真实场景:数据来源于实际道路场景,具有较高的实用价值。
应用领域
  • 智慧交通:通过自动识别车牌号码,提升交通管理和安全监控水平。
  • 停车管理:协助停车场管理系统快速识别车辆,提高效率。
  • 科研应用:为计算机视觉和模式识别领域的研究提供有价值的数据资源。
1. 安装依赖库

首先,确保安装了必要的依赖库。可以在项目目录中的requirements.txt文件中列出这些依赖库,然后运行以下命令进行安装:

pip install -r requirements.txt

requirements.txt 文件内容示例:

torch==1.10.0
torchvision==0.11.1
pandas==1.3.4
cv2
albumentations==1.1.0
2. 创建数据集

定义一个自定义的数据集类,并创建数据加载器。

import os
import pandas as pd
import cv2
from torch.utils.data import Dataset, DataLoader
from torchvision.transforms import Compose, ToTensor, Normalize, Resize
from albumentations import HorizontalFlip, RandomBrightnessContrast, ShiftScaleRotate, BboxFromMasks, BBoxFormatPASCAL
from albumentations.pytorch import ToTensorV2

# 自定义数据集类
class LicensePlateDataset(Dataset):
    def __init__(self, data_root, annotations_file, transforms=None):
        self.data_root = data_root
        self.annotations = pd.read_csv(annotations_file)
        self.transforms = transforms

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

    def __getitem__(1, idx):
        img_path = os.path.join(self.data_root, self.annotations.iloc[idx, 0])
        image = cv2.imread(img_path)
        bboxes = self.annotations.iloc[idx, 1:].values.reshape(-1, 4)  # bounding box coordinates
        labels = self.annotations.columns[1:]

        if self.transforms:
            augmented = self.transforms(image=image, bboxes=bboxes)
            image = augmented['image']
            bboxes = augmented['bboxes']

        return image, bboxes, labels

# 图像预处理
def get_transforms():
    """构建预处理函数"""
    _transform = [
        Resize(height=416, width=416, interpolation=cv2.INTER_LINEAR),
        HorizontalFlip(p=0.5),
        RandomBrightnessContrast(p=0.2),
        ShiftScaleRotate(p=0.5, shift_limit=0.0625, scale_limit=0.2, rotate_limit=15),
        Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]),
        ToTensorV2(),
        BboxFromMasks(format=BBoxFormatPASCAL)
    ]
    return Compose(_transform)

# 创建数据加载器
train_dataset = LicensePlateDataset(
    data_root='path_to_your_data_directory',
    annotations_file='path_to_your_annotations.csv',
    transforms=get_transforms()
)
val_dataset = LicensePlateDataset(
    data_root='path_to_your_data_directory',
    annotations_file='path_to_your_annotations.csv',
    transforms=get_transforms()
)

train_loader = DataLoader(train_dataset, batch_size=32, shuffle=True, num_workers=4)
val_loader = DataLoader(val_dataset, batch_size=32, shuffle=False, num_workers=4)
3. 训练YOLOv5模型

使用YOLOv5进行训练。

!git clone https://github.com/ultralytics/yolov5  # 下载YOLOv5代码仓库
cd yolov5

# 使用YOLOv5训练模型
python train.py --weights yolov5s.pt --data path_to_your_data.yaml --name license_plate_detection --img 416 --batch 16 --epochs 100 --device 0
  • 数据配置文件:创建一个名为data.yaml的数据配置文件,其中包含训练和验证数据集的信息。
train: path_to_your_train_images
val: path_to_your_val_images
nc: 1  # 类别数量(这里不需要分类)
names: ['license plate']  # 只有一个类别
4. 调整模型
  • 超参数调整:根据实际情况调整模型的超参数,例如学习率、批大小等。
  • 数据增强:增加数据增强策略,如旋转、缩放、翻转等,以提高模型鲁棒性。
5. 预测与评估

完成训练后,可以使用训练好的模型对新的图片进行预测和评估。

from models.experimental import attempt_load
from utils.datasets import ImageList
from utils.torch_utils import select_device, time_synchronized
from utils.plots import plot_results

# 加载模型
device = select_device('0')
model = attempt_load('runs/train/exp/weights/best.pt', map_location=device)  # 加载最佳权重

# 新建数据集
test_dataset = ImageList('path_to_test_images', transform=get_transforms())
test_loader = DataLoader(test_dataset, batch_size=1, shuffle=False, num_workers=4)

# 进行预测
results = []
with torch.no_grad():
    t0 = time_synchronized()
    for i, (x, path) in enumerate(test_loader):
        x = x.to(device)  # 将输入图像转换到设备上
        pred = model(x)[0]  # 获取预测结果
        results += plot_results(pred, path, save=True, show=False)  # 绘制预测结果图

print(f'Time {time_synchronized() - t0:.3f} s')

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2184216.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows 11 的 24H2 更新將帶來全新 Copilot+ AI PC 功能

10 月起率先向 Insider 推出。 微軟今日宣布 Windows 11 的 24H2 更新將從 10 月起陸續開放給不同用戶,其中將包括多項全新 Copilot AI PC 功能。首先是回爐重造的 Recall 回顧,官方在聽取社群意見後對安全性做了進一步加強。現在用戶可以自己選擇是否保…

从小IPD到大IPD

IPD体系实施或变革是一个长期的系统工程,需要坚持“总体规划、分步实施”的原则,业界经常有从“小IPD”到“大IPD”的说法。 像华为当年就是从“产品开发流程”开始推行,就是小范围的“小IPD”,后面逐步扩大为“大IPD”&#xff0…

Ubuntu22.04之mpv播放器高频快捷键(二百七十)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…

两个向量所在平面的法线,外积,叉积,行列式

偶尔在一个数学题里面看到求两向量所在平面的法线,常规方法可以通过法线与两向量垂直这一特点,列两个方程求解;另外一种方法可以通过求解两个向量的叉积,用矩阵行列式 (determinant) 的方式,之前还没见过,在…

正则表达式调试工具实战

正则表达式调试工具实战 1、新建工程QWidget工程工程名RegexTool 如果QT不会配置,请参考我的博客,QT配置 Widget.cpp 默认内容如下 2、主界面设计 三行两列,每行采用HBoxLayout作为行布局控件,内部一个Lable控件和一个TextEdit控件,采用VBoxLayout 控件包裹三个HBoxLa…

JWT | JWT 漏洞介绍

关注这个漏洞的其他相关笔记:JWT 漏洞 - 学习手册-CSDN博客 0x01:JWT 漏洞介绍 JWT(Json Web Token)是用于在网络应用环境间传递声明的一种基于 JSON 的开放标准。它通过使用 JSON 对象进行安全的信息传输,可以用于身…

ChatGPT实时语音将于本周向免费用户推出:OpenAI DevDay 2024详细解读

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

激活函数ReLU,Sigmoid,tanh,softmax性质讲解及使用matplotlib绘制

Sigmoid及tanh sigmoid及tanh的函数图像较为相似,它们的公式如下 Sigmoid公式 tanh公式 Sigmoid及tanh性质解析 Sigmoid和tanh作为激活函数都可以有效完成非线性映射的功效,其中Sigmoid经常作为2分类的神经网络的输出层的激活函数,由于其非线性映射会将输出值转换到0-1的区间…

心觉:潜意识开发为何失败?99%的人卡在理性与感性学习的误区

Hi,我是心觉,与你一起玩转潜意识、脑波音乐和吸引力法则,轻松掌控自己的人生! 挑战每日一省写作187/1000天 小时候看武侠剧的时候,经常看到剧中有武林高手把绝世武功传给某个涉世未深的铁憨憨主角,比如《天…

四、Drf认证组件

四、Drf认证组件 4.1 快速使用 from django.shortcuts import render,HttpResponse from rest_framework.response import Response from rest_framework.views import APIView from rest_framework.authentication import BaseAuthentication from rest_framework.exception…

win11 升级报 0x80073713 错误

安装错误 - 0x80073713 通常是由于系统文件损坏或 Windows Update 组件异常引起的。‌ 这个问题可能阻止您的系统正常接收和安装更新,影响系统的稳定性和安全性。 可以尝试如下如下方法: 首先,您可以尝试使用命令提示符运行系统文件检查器…

资源《Arduino 扩展板2-矩阵按钮 》说明。

资源链接: Arduino 扩展板2-矩阵按钮 1.文件明细 2.文件内容说明 包含:AD工程、原理图、PCB。 3.内容展示 4.简述 该文件为PCB工程,采用AD做的。 该文件打板后配合Arduino使用,属于Arduino的扩展板。 该文件主要有16个按钮…

wgan的实现的伪代码,和原理,dcgan,模型坍塌 em距离 js kl散

原文地址 https://blog.csdn.net/Keep_Trying_Go/article/details/130471766 伪代码详细看这个, 特别注意点:gan(xnosize) 生成器 是 输入噪声 ,而不是全部噪声生成的 特别注意点:gan(xnosize) 生成器 是 输入噪声 &#…

vue3使用Teleport 控制台报警告:Invalid Teleport target on mount: null (object)

Failed to locate Teleport target with selector “.demon”. Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree main.…

基于SSM+小程序的选课管理系统2(源码+sql脚本+视频导入教程+文档)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1、项目介绍 ​ 教师的账号和密码可以注册,管理员的账号和密码可由系统开发者在数据库中设置,学生的账号和密码可以由注册获得。 1、管理员的主要功能为学生资料、教师资料的添…

如何升级OCAT

如何升级OCAT 一. 从官网下载OCAT 官网下载地址链接:https://github.com/ic005k/OCAuxiliaryTools/releases 目前下载下来版本为0.8.8,但RapidEFI显示最新版本已经为1.0.1。 为了防止OC版本过低导致进不了系统,需要对OCAT进行升级。![在这里…

.NET 一款支持冰蝎的免杀WebShell

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

探索 PixiJS:强大的 2D 图形渲染库

探索 PixiJS:强大的 2D 图形渲染库 演示地址 演示地址 源码地址 源码地址 获取更多 获取更多 随着 Web 技术的发展,越来越多的开发者希望在网页中实现丰富的视觉效果和动画。PixiJS 作为一个高性能的 2D 渲染库,凭借其强大的功能和易用性…

《NoSQL》非关系型数据库MongoDB 学习笔记!

Mongo基础: 使用数据库: 使用use 命令 后面跟着要使用的数据库名字即可, 例如:use cities, 值得注意的是, mongo中不像mysql, 还需要先创建数据库,后访问, mongo中,你无…

媒介坊:在数字化时代,企业如何在竞争激烈的市场中脱颖而出

在当今的数字化时代,企业如何在竞争激烈的市场中脱颖而出,成为消费者关注的焦点?软文投放作为一种高效的营销手段,正受到越来越多企业的青睐。而媒介坊,作为一站式软文投放平台,正是帮助企业实现这一目标的…