# 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 · 深度学习 · 计算机视觉