# CV exp **Repository Path**: fuzzy-thirty-nine/cv-exp ## Basic Information - **Project Name**: CV exp - **Description**: 计算机图像实践项目。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-02 - **Last Updated**: 2026-06-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YOLOv8 Plate Recognition — 基于 YOLOv8 与 LPRNet 的车牌识别系统 > **三阶段全流程:YOLOv8 目标检测 → YOLOv8-Pose 透视校正 → LPRNet 文字识别** > **端到端综合识别率:98.25% ✅(超越 ≥98% 目标)**
| 流水线 | E2E 准确率 | 推理速度 | 参数量 | |:------|:---------:|:--------:|:-----:| | YOLOv8s-pose + LPRNet 🏆 | **98.25%** | ~48 ms/张 | 13.7 M | | YOLOv8n-pose + LPRNet ⚡ | **98.02%** | ~18 ms/张 (**2.7×**) | 5.2 M (-62%) |
--- ## 📋 目录 - [项目概述](#项目概述) - [Pipeline 架构](#pipeline-架构) - [核心创新:四点透视校正](#核心创新四点透视校正) - [最终指标](#最终指标) - [训练版本对比(消融实验)](#训练版本对比消融实验) - [环境与快速上手](#环境与快速上手) - [推理指南](#推理指南) - [端到端推理(推荐)](#端到端推理推荐) - [ONNX 推理](#onnx-推理) - [训练指南](#训练指南) - [Stage 1 — YOLOv8s 检测模型](#stage-1--yolov8s-检测模型) - [Stage 2 — YOLOv8s/YOLOv8n-pose 透视校正模型](#stage-2--yolov8syolov8n-pose-透视校正模型) - [Stage 3 — LPRNet 文字识别模型](#stage-3--lprnet-文字识别模型) - [全量一键流水线](#全量一键流水线) - [数据集构建](#数据集构建) - [模型权重清单](#模型权重清单) - [支持的车牌类型](#支持的车牌类型) - [训练汇总](#训练汇总) - [项目结构](#项目结构) - [References](#references) --- ## 项目概述 本系统是一个面向中国车牌的**端到端深度学习识别系统**,采用三阶段流水线架构: 1. **Stage 1 — 目标检测**:YOLOv8s detect 模型定位车牌区域,输出边界框 2. **Stage 2 — 透视校正**:YOLOv8-Pose 关键点检测模型预测车牌四角坐标,通过透视变换将任意倾斜的车牌矫正为正面 ROI(94×24) 3. **Stage 3 — 文字识别**:LPRNet 轻量 CNN + CTC 损失函数,端到端序列识别车牌字符 **核心亮点:** - ✅ **98.25%** 端到端识别准确率(超越需求 ≥98%) - ✅ **四点透视矫正**替代传统轴对齐裁剪,倾斜车牌识别率从 **38.33% → 73.33%** - ✅ **YOLOv8n-pose 轻量化版本**精度仅降 0.23%,推理加速 **2.7×**,模型缩小 **73%** - ✅ 覆盖 **12 种**中国车牌类型(蓝牌、绿牌、黄牌、警牌、港澳牌等) - ✅ 支持 ONNX 部署,推理速度 ~12.5 ms/张 - ✅ 完整的消融实验验证(6 组版本对比,每项改进可量化) --- ## Pipeline 架构 ```text ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ 输入图像 │ │ YOLOv8(s/n) │ │ LPRNet │ │ (任意大小) │ ──→ │ -pose │ ──→ │ + CTC │ ──→ "皖AKT952" │ │ │ bbox + 4pts │ │ ROI→文字 │ └──────────────┘ │ → 透视校正 │ └──────────────┘ │ → ROI 94×24 │ └──────────────┘ ``` ### 阶段一:车牌检测 (Detection) - **模型**:YOLOv8s (detect head) - **输入**:原始图像(任意尺寸,自动缩放) - **输出**:车牌边界框 `[x, y, w, h]` + 置信度 - **指标**:mAP50 **99.45%**,检出率 **100%** - **训练数据**:CCPD2019 约 1.8 万张 ### 阶段二:透视校正 (Perspective Correction) - **模型**:YOLOv8s-pose / YOLOv8n-pose (keypoint head) - **输入**:Stage 1 裁剪的车牌区域 - **输出**:4 个关键点坐标 `[x1,y1, x2,y2, x3,y3, x4,y4]` - **校正方法**:`cv2.getPerspectiveTransform` 计算 8-DOF 变换矩阵 → `cv2.warpPerspective` 输出 ROI - **指标**:Pose mAP50-95 **0.9948** - **训练数据**:CCPD2019 约 1.8 万张 ### 阶段三:文字识别 (LPRNet) - **模型**:LPRNet(轻量 CNN,**2.1M 参数**) - **输入**:矫正后的正面 ROI(94×24) - **输出**:车牌字符串(如 "皖AKT952") - **损失函数**:CTC Loss(Connectionist Temporal Classification) - **解码方式**:Greedy CTC Decoding / Beam Search - **训练数据**:35 万张透视校正后的 ROI 图像 - **数据增强**:6 种在线增强(亮度对比度/模糊/雨纹/噪声/遮挡/透视扰动) --- ## 核心创新:四点透视校正 ### 为什么需要透视校正? 传统做法直接对 YOLO 检测框进行轴对齐裁剪(BBox Crop),当车牌倾斜角度超过 30° 时,裁剪区域包含大量背景噪声,字符几何变形严重,识别准确率急剧下降。 | 方法 | 自由度 | 描述能力 | |:----|:-----:|:--------| | BBox 裁剪 | 4 (x, y, w, h) | 仅描述轴对齐矩形 | | **四点透视校正** 🏆 | **8** (4 × (x, y)) | **精确描述任意透视畸变** | ### 校正流程 ```text YOLOv8-Pose 输出 (LT, RT, RB, LB) ↓ 1. 计算目标矩形尺寸(自适应宽高) ↓ 2. cv2.getPerspectiveTransform(src_4pts, dst_4pts) ↓ 3. cv2.warpPerspective(image, M, (width, height)) ↓ 4. Resize → 94×24 ROI(标准输入尺寸) ``` ### 量化提升 | 方法 | 倾斜子集准确率 | 全流水线准确率 | |:----|:------------:|:------------:| | BBox 裁剪 + CRNN | **38.33%** | 76.40%(基线) | | **透视校正 + LPRNet** 🏆 | **73.33%** (+35%) | **98.25%** (+21.85%) | > **一句话**:没有透视校正,LPRNet 在倾斜数据上几乎不可用;有了它,任意角度的车牌都能矫正为正面图输入给识别模型。 --- ## 最终指标 ### 端到端全流水线 | 测试项 | 准确率 | 模型配置 | 测试规模 | |:------|:-----:|:--------|:-------:| | **E2E 全流水线** 🏆 | **98.25%** | YOLOv8s-pose + LPRNet stage4_full | 3,538 张 CCPD test | | **E2E 全流水线** ⚡ | **98.02%** | YOLOv8n-pose + LPRNet stage4_full | 3,538 张 CCPD test | | ROI 纯识别 (小测试集) | 97.60% | LPRNet stage4_full | 3,538 张 | | ROI 纯识别 (全量测试集) | 97.00% | LPRNet stage4_full | 51,715 张 | | 检测率 (两阶段) | **100%** | YOLOv8(s/n)-pose | 所有图像均检出 | ### 推理速度 | 模型 | 推理耗时 (ms) | 加速比 | 备注 | |:----|:-----------:|:-----:|:----| | YOLOv8s-pose (PyTorch) | 48.34 | 1× | 最高精度版本 | | YOLOv8n-pose (PyTorch) | 17.92 | **2.7×** | 轻量版本(精度仅降 0.23%) | | YOLOv8n-pose (ONNX) | ~12.5 | **~3.9×** | ONNX 部署版本 | ### 模型大小 | 模型 | 参数量 | 文件大小 | |:----|:-----:|:-------:| | YOLOv8s-pose | 11.6 M | 23.1 MB | | YOLOv8n-pose | **3.08 M** (-74%) | **6.13 MB** (-73%) | | LPRNet stage4_full | 2.1 M | 8.5 MB | | **全流水线 (v8n + LPRNet)** | **~5.2 M** | **~14.6 MB** | --- ## 训练版本对比(消融实验) | 版本 | 检测 + 校正 | 识别模型 | 训练数据 | 增强 | E2E 准确率 | Δ vs 基线 | |:----|:----------:|:-------:|:-------:|:---:|:---------:|:---------:| | CRNN 基线 | v8s (BBox crop) | CRNN | — | — | 76.40% | — | | stage3_aug | v8s-pose | LPRNet | 2.3 万 | 4 种 | 95.85% | **+19.45%** | | stage4_aug | v8s-pose | LPRNet | 2.3 万 | 6 种 | 97.00% | +20.60% | | **stage4_full** 🏆 | **v8s-pose** | **LPRNet** | **35 万** | **6 种** | **98.25%** | **+21.85%** ✅ | | stage4_full ⚡ | **v8n-pose** | LPRNet | 35 万 | 6 种 | **98.02%** | +21.62% | **关键发现:** - LPRNet 替代 CRNN 带来最大提升(+19.45%) - 6 种增强在 4 种基础上再提 +1.15% - 全量 35 万数据训练带来 +1.25% - v8n 轻量化仅降 0.23%,但推理加速 2.7× - 数据增强 +0.88% (val_acc),全量数据 +1.6% (val_acc) --- ## 环境与快速上手 ### 系统要求 - Python 3.9+ - PyTorch 2.0+(CUDA 11.8+ 推荐) - OpenCV 4.8+ ### 环境配置 ```bash # 克隆仓库 git clone https://github.com/your-repo/yolov8-plate.git cd yolov8-plate # 安装依赖 pip install -r requirements.txt ``` `requirements.txt` 主要内容: ``` torch>=2.0.0 torchvision>=0.15.0 opencv-python>=4.8.0 numpy>=1.24.0 Pillow>=10.0.0 ultralytics>=8.0.0 onnx>=1.15.0 onnxruntime>=1.15.0 tqdm>=4.60.0 ``` ### 预训练权重下载 项目已包含以下关键权重文件(位于仓库根目录): | 文件 | 说明 | |:----|:----| | `runs/pose/stage2n/weights/best.pt` | YOLOv8n-pose(推荐,2.7× 加速) | | `runs/rec/stage4_full/weights/best.pt` | LPRNet 最佳识别模型 | | `runs/rec/stage4_full/model.onnx` | LPRNet ONNX 导出模型 | > 如需完整训练复现,可自行执行各阶段训练脚本(参见 [训练指南](#训练指南))。 --- ## 推理指南 ### 端到端推理(推荐) 单张图片或整个目录的端到端车牌识别: ```bash # 基本用法(默认 v8n-pose + LPRNet) python detect_rec_plate.py --image_path imgs --output result # 切换到 v8s-pose(最高精度) python detect_rec_plate.py \ --detect_model runs/pose/stage2/weights/best.pt \ --image_path imgs --output result # 切换到 CRNN(旧版识别) python detect_rec_plate.py \ --rec_backend crnn \ --image_path imgs --output result ``` **输出说明:** - 每张图片的识别结果打印到终端 - 标注图片保存到 `--output` 指定目录(默认 `result/`) - 显示内容:边界框 + 四角关键点 + 识别字符串 + 置信度 ### ONNX 推理 ```bash # ONNX 端到端推理 python tools/infer_onnx.py \ --detect_model runs/pose/stage2n/weights/best.onnx \ --rec_model runs/rec/stage4_full/model.onnx \ --image_path imgs ``` ### 纯检测(仅供调试) ```bash # 仅 YOLO 检测,不进行识别 python detect_plate.py --source imgs --output result_test ``` --- ## 训练指南 ### Stage 1 — YOLOv8s 检测模型 训练车牌边界框检测模型: ```bash # 使用 ultralytics YOLO 训练 yolo detect train \ data=plate_stage1.yaml \ model=yolov8s.pt \ epochs=50 \ imgsz=640 \ batch=16 \ device=0 # 或者使用封装脚本 python train.py --model yolov8s.pt --data plate_stage1.yaml --epochs 50 ``` ### Stage 2 — YOLOv8s/YOLOv8n-pose 透视校正模型 训练关键点检测模型(同时输出 bbox + 4 个角点): ```bash # YOLOv8s-pose(高精度版) python train_stage2.py \ --model yolov8s-pose.pt \ --data plate_stage2_pose.yaml \ --epochs 50 # YOLOv8n-pose(轻量版,推荐) python train_stage2n.py \ --model yolov8n-pose.pt \ --data plate_stage2_pose.yaml \ --epochs 50 ``` ### Stage 3 — LPRNet 文字识别模型 训练 LPRNet 在透视矫正后的 ROI 图像上进行车牌字符识别: ```bash # 小规模训练(2.3 万 ROI,6 种增强) python train_stage3.py \ --augment \ --run-dir stage4_aug \ --epochs 50 \ --batch 256 # 全量训练(35 万 ROI,6 种增强,推荐) python train_stage3.py \ --augment \ --run-dir stage4_full \ --dataset-root CCPD2019_lprnet_full \ --epochs 50 \ --batch 256 # 从断点恢复训练 python train_stage3.py \ --resume \ --run-dir stage4_full # 自定义数据集路径 python train_stage3.py \ --dataset-root CCPD2019_lprnet_full \ --augment \ --run-dir my_run \ --epochs 50 # 选择性增强(仅开启部分增强类型) python train_stage3.py \ --augment \ --aug-brightness --aug-blur --aug-noise \ --run-dir stage3_aug \ --epochs 50 # CPU 训练(不推荐,速度慢) python train_stage3.py --cpu --epochs 20 ``` **训练参数说明:** | 参数 | 默认值 | 说明 | |:----|:-----:|:----| | `--epochs` | 50 | 训练轮数 | | `--batch` | 256 | 批次大小 | | `--lr` | 1e-3 | 初始学习率 | | `--workers` | 4 | 数据加载线程数 | | `--patience` | 10 | 早停耐心值 | | `--augment` | — | 启用数据增强 | | `--aug-p` | 0.5 | 增强应用概率 | | `--dataset-root` | CCPD2019_lprnet | 数据集根目录 | ### 全量一键流水线 从数据集构建到模型训练的完整自动化流程: ```bash python tools/run_full_pipeline.py ``` 该脚本按顺序执行: 1. 解析 CCPD 原版数据集 2. 使用 Stage 2 pose 模型生成透视校正 ROI 3. 构建 LPRNet 训练/验证/测试集 4. 启动 LPRNet 训练 5. 输出训练结果汇总 --- ## 数据集构建 ### CCPD 数据集说明 本项目基于 [CCPD2019](https://github.com/detectRecog/CCPD)(Chinese City Parking Dataset),包含约 30 万张中国停车场车牌图像。CCPD 的特色在于其**文件名编码标注**方式——车牌号和四个角点直接编码在文件名中,无需人工标注,**零标注误差**。 ```text xxx-xxx-xxx-省份索引_字母_数字_数字_数字_数字_数字-xxx-xxx.jpg ↑ ↑ 省份(如 皖) 车牌号(如 AKT952) ``` 数据集的 9 个子集覆盖各种真实场景: | 子集 | 场景 | 图片数量 | |:----|:----|:-------:| | base | 正常光照、正常角度 | ~20 万 | | fn | 新能源绿牌(前) | ~2 万 | | np | 新能源绿牌(后) | ~2 万 | | tilt | 大倾斜角度 | ~2 万 | | rotate | 旋转 | ~2 万 | | db | 强光/暗光 | ~2 万 | | weather | 雨雾天气 | ~1 万 | | blur | 模糊 | ~1 万 | | challenge | 挑战性场景 | ~0.5 万 | ### Stage 1 检测数据集 ```bash # 从 CCPD 构建 YOLO 检测数据集(含 bbox 标注) python tools/build_ccpd_labels.py \ --source CCPD2019 \ --output datasets/plate_detect \ --val-ratio 0.1 ``` ### Stage 2 透视校正数据集 ```bash # 使用 CCPD 编码角点生成透视校正标注 python tools/build_stage2_dataset.py \ --source CCPD2019 \ --output CCPD2019_stage2 \ --val-ratio 0.1 ``` ### Stage 3 LPRNet 训练数据集 ```bash # 小规模(~2.3 万) python tools/build_lprnet_dataset.py \ --source CCPD2019_stage2 \ --output CCPD2019_lprnet # 全量(~35 万) python tools/build_lprnet_dataset_full.py \ --source CCPD2019 \ --output CCPD2019_lprnet_full ``` --- ## 模型权重清单 | 用途 | 权重路径 | 说明 | |:----|:--------|:----| | **检测 + 校正 (推荐) 🏆** | `runs/pose/stage2n/weights/best.pt` | YOLOv8n-pose,2.7× 加速 | | 检测 + 校正 (高精度) | `runs/pose/stage2/weights/best.pt` | YOLOv8s-pose,E2E 98.25% | | **识别 LPRNet (推荐) 🏆** | `runs/rec/stage4_full/weights/best.pt` | LPRNet,35 万全量训练 | | 识别 LPRNet (ONNX) | `runs/rec/stage4_full/model.onnx` | ONNX 导出,~12.5 ms | | 检测 + 校正 (ONNX) | `runs/pose/stage2n/weights/best.onnx` | YOLOv8n-pose ONNX 版本 | | 识别 CRNN (旧版) | `weights/plate_rec_color.pth` | 旧版 CRNN 基线模型 | | LPRNet 小样本 | `runs/rec/stage3/` | 无增强基线 | | LPRNet 4 增强 | `runs/rec/stage3_aug/` | 4 种在线增强 | | LPRNet 6 增强 | `runs/rec/stage4_aug/` | 6 种在线增强 | --- ## 支持的车牌类型 本项目支持中国现行的 **12 种**机动车号牌类型: | 类型 | 示例 | 说明 | |:----|:----|:----| | 🟦 单行蓝牌 | 皖AKT952 | 普通燃油车 | | 🟨 单行黄牌 | 皖A12345 | 大型车辆 | | 🟩 新能源绿牌 | 皖AF12345 | 新能源车(6 位) | | ⬜ 白色警用车牌 | 皖·A0001警 | 警用车辆 | | 🟦 教练车牌 | 皖A1234学 | 教练车 | | ⬜ 武警车牌 | WJ·A12345 | 武警车辆 | | 🟨 双层黄牌 | 皖A12345(双行) | 大型车辆双行 | | ⬜ 双层白牌 | 皖A12345(双行) | 特种车辆 | | 🟦 使馆车牌 | 使123456 | 驻华使馆 | | 🟦 港澳粤Z牌 | 粤Z1234港 | 港澳入出境 | | 🟩 双层绿牌 | 皖AF12345(双行) | 新能源双行 | | ✈️ 民航车牌 | 民航A1234 | 民航专用 | --- ## 训练汇总 ### YOLOv8 训练曲线 | 图表 | 说明 | 路径 | |:----|:----|:----| | Box Loss 对比 | Stage1 detect / Stage2 s-pose / Stage2 n-pose | `docs/training_summary/yolo_box_loss.png` | | mAP50 对比 | 三模型 mAP50 均 >99% | `docs/training_summary/yolo_mAP50.png` | | Pose mAP50-95 | s-pose vs n-pose 顶点定位精度 | `docs/training_summary/yolo_pose_mAP.png` | | Precision & Recall | 三模型均 >99.7% | `docs/training_summary/yolo_precision_recall.png` | ### LPRNet 训练曲线 | 图表 | 说明 | 路径 | |:----|:----|:----| | 损失曲线 | 无增强 vs 增强版训练/验证损失 | `docs/training_summary/lprnet_loss.png` | | 验证准确率 | 无增强 (94.12%) vs 增强 (95.00%) | `docs/training_summary/lprnet_accuracy.png` | | 学习率调度 | StepLR 1e-3 → 0.5× 每 15 epoch | `docs/training_summary/lprnet_lr_schedule.png` | ### 端到端汇总 | 图表 | 说明 | 路径 | |:----|:----|:----| | E2E 准确率对比 | CRNN→Stage3→Stage4 柱状图 | `docs/training_summary/e2e_summary_bar.png` | | 推理速度对比 | v8s vs v8n vs ONNX | `docs/training_summary/inference_speed.png` | | 模型大小对比 | 参数量/文件大小 | `docs/training_summary/model_size.png` | 详情参见 [`Training_Summary.md`](Training_Summary.md) 和 [`docs/答辩问答专题整理.md`](docs/答辩问答专题整理.md)。 --- ## 项目结构 ``` ├── plate_recognition/ # 识别模块(Python 包) │ ├── lprnet.py # LPRNet 网络定义(SmallBasicBlock, CTC Head) │ ├── lpr_rec.py # LPRNet 预处理/CTC解码/模型加载 │ ├── lpr_augment.py # 6 种在线数据增强(亮度/模糊/雨纹/噪声/遮挡/透视) │ ├── ccpd_utils.py # CCPD 文件名解码工具(解析车牌号 + 角点) │ └── plate_rec.py # CRNN 接口(旧版兼容) │ ├── tools/ # 工具脚本 │ ├── build_ccpd_labels.py # Stage 1 YOLO 检测数据集构建 │ ├── build_stage2_dataset.py # Stage 2 透视校正数据集构建 │ ├── build_lprnet_dataset.py # Stage 3 LPRNet 小规模数据集 │ ├── build_lprnet_dataset_full.py # Stage 3 LPRNet 全量数据集 │ ├── sample_ccpd_dataset.py # CCPD 采样工具 │ ├── run_full_pipeline.py # 全量一键流水线 │ ├── eval_final_test.py # 最终测试评估 │ ├── compare_rec_models.py # 识别模型对比 │ ├── compare_pose_models.py # Pose 模型对比 │ ├── compare_stage1_stage2_rec.py # Stage1 vs Stage2 对比 │ ├── eval_stage2_crnn_baseline.py # CRNN 基线评估 │ ├── infer_onnx.py # ONNX 推理脚本 │ ├── export_lprnet_onnx.py # LPRNet ONNX 导出 │ ├── export_all_onnx.py # 全模型 ONNX 批量导出 │ └── plot_training_summary.py # 训练曲线汇总绘图 │ ├── docs/ # 文档 │ ├── 答辩问答专题整理.md # 答辩 Q&A 准备文档 │ └── training_summary/ # 10 张训练汇总曲线图 │ ├── yolo_box_loss.png │ ├── yolo_mAP50.png │ ├── yolo_pose_mAP.png │ ├── yolo_precision_recall.png │ ├── lprnet_loss.png │ ├── lprnet_accuracy.png │ ├── lprnet_lr_schedule.png │ ├── e2e_summary_bar.png │ ├── inference_speed.png │ └── model_size.png │ ├── runs/ # 训练产出 │ ├── detect/stage1/ # Stage 1 检测结果 │ ├── pose/stage2/ # Stage 2 s-pose 校正(最高精度) │ ├── pose/stage2n/ # Stage 2 n-pose 校正(轻量推荐) │ └── rec/ # 识别模型训练记录 │ ├── stage3/ # LPRNet 无增强基线 │ ├── stage3_aug/ # LPRNet + 4 种增强 │ ├── stage4_aug/ # LPRNet + 6 种增强 │ └── stage4_full/ # LPRNet + 全量数据 + 6 种增强 🏆 │ ├── weights/ # CRNN 旧版权重 ├── fonts/ # 渲染用字体文件 ├── imgs/ # 测试输入图片 ├── result/ # 推理输出图片 │ ├── detect_rec_plate.py # 端到端推理(主入口) ├── detect_plate.py # 仅检测(调试用) ├── export_onnx.py # ONNX 导出 │ ├── train.py # Stage 1 检测训练 ├── train_stage2.py # Stage 2 s-pose 训练 ├── train_stage2n.py # Stage 2 n-pose 训练 ├── train_stage3.py # Stage 3 LPRNet 训练 ├── train.sh # 训练启动脚本 │ ├── plate_stage1.yaml # Stage 1 检测训练配置 ├── plate_stage2_pose.yaml # Stage 2 关键点训练配置 ├── .gitignore # Git 白名单模式忽略文件 ├── requirements.txt # Python 依赖 ├── Training_Summary.md # 训练汇总报告(含图表索引) ├── Stage2_process.md # Stage 2 过程文档 ├── Stage2_Training_Progress.md # Stage 2 训练进度 ├── Stage2n_Training_Progress.md # Stage 2n 训练进度 ├── Stage3_Plan.md # Stage 3 计划文档 ├── Stage3_Results.md # Stage 3 结果文档 ├── TEAM_ROLES.md # 团队角色分工 ├── CONTRIBUTING.md # 贡献指南 └── README.md # 本文件 ``` ## 论文引用 ```bibtex @misc{yolov8-plate-2025, title = {基于 YOLOv8 与 LPRNet 的深度学习车牌识别系统}, author = {团队名称}, year = {2025}, howpublished = {计算机视觉实践课程项目} } ``` --- ## References - **YOLOv8**: [Ultralytics YOLOv8](https://github.com/ultralytics/ultralytics) — 实时目标检测与关键点检测框架 - **CCPD Dataset**: [CCPD: Chinese City Parking Dataset](https://github.com/detectRecog/CCPD) — 30 万张中国车牌数据集,文件名编码标注 - **LPRNet**: [LPRNet: License Plate Recognition via Deep Neural Networks](https://arxiv.org/abs/1806.10447) — 轻量 CNN 车牌识别网络 - **CTC Loss**: [Connectionist Temporal Classification](https://www.cs.toronto.edu/~graves/icml_2006.pdf) — 序列识别损失函数 --- > **关键词**:YOLOv8 · LPRNet · 车牌识别 · 透视校正 · CTC · CCPD · 深度学习 · 计算机视觉