# hyperlpr-train
**Repository Path**: caixiaohui/hyperlpr-train
## Basic Information
- **Project Name**: hyperlpr-train
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-09-12
- **Last Updated**: 2024-09-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
注意
====
由于本人不再从事相关工作,所以这个脚本我不再维护。提的 Issue 我也不再处理。
Hyperlpr端到端车牌识别训练脚本
=====
该脚本用于训练[HyperLPR](https://github.com/zeusees/HyperLPR)的端到端识别模型。
依赖
-----
Python3.5+
+ keras
+ tensorflow
+ opencv-python
+ h5py
+ numpy
使用方法
-----
**显示帮助文档**:
```
python main.py --help
```
**将模型导出为h5文件**:
```
python main.py [-num_channels 3] export -m model.h5
```
**训练**:
```
usage: main.py train [-h] -ti TI -tl TL -vi VI -vl VL -b B -img-size IMG_SIZE
IMG_SIZE [-pre PRE] [-start-epoch START_EPOCH] -n N
[-label-len LABEL_LEN] -c C [-log LOG]
optional arguments:
-h, --help show this help message and exit
-ti TI 训练图片目录
-tl TL 训练标签文件
-vi VI 验证图片目录
-vl VL 验证标签文件
-b B batch size
-img-size IMG_SIZE IMG_SIZE
训练图片宽和高
-pre PRE pre trained weight file
-start-epoch START_EPOCH
-n N number of epochs
-label-len LABEL_LEN 标签长度
-c C checkpoints format string
-log LOG tensorboard 日志目录, 默认为空
```
**训练用法示例**:
```
python main.py train -ti train_imgs -tl train_labels.txt -vi val_imgs -vl val_labels.txt -b 16 -img-size 250 40 -n 100 -c checkpoints/'weights.{epoch:02d}-{val_loss:.2f}.h5' -log log
```
表示训练图片位于`train_imgs`目录下, 训练标签在`train_labels.txt`中。
验证图片位于`val_imgs`目录下, 训练标签在`val_labels.txt`中。
Batch size为16, 图片尺寸为250x40, 到100个epochs时结束训练。
Cehckpoints在`checkpoints`目录下, tensorboard的log目录为`log`。
**注意**: 如果没有修改CNN结构和参数,
训练图片的高度(也就是命令行参数`-img-size`中的第二个参数)必须是40.
如果修改了,需要给出相应高度。
训练数据格式
-------
训练需要准备训练数据集和验证数据集, 每种数据集都包括图片和标签两部分。
### 图片
图片为包含真实车牌的图片(如下图),
所有图片大小必须与命令行参数中指定的相同。

**注意**:1. 车牌不必恰好包含在图片中,最好左右留出一些区域,如上图所示;左右留出区域长度不必相同。
2. 实际上在***一定范围内***,任意放置(只要倾斜角不太大,长度差异不是过大)的车牌都可以识别,但前提是训练数据集要准备得当。
### 标签
标签为UTF-8编码的纯文本文件, 每行的格式如下
```
filename:label
```
其中`filename`是图片名称, 不包含顶级目录[1](#myfootnote1);
label是真实车牌号, 英文字母***必须大写***,label的长度必须与命令行中的参数`-label-len`相同。
1 顶级目录在命令行参数中以`-ti`给出