我是靠谱客的博主 眼睛大玫瑰,这篇文章主要介绍记录:百度3天AI进阶实战营——车牌识别Day0Day01Day02Day03,现在分享给大家,希望可以做个参考。

Day0

**step1:**进入BML主页,点击立即使用

????:https://ai.baidu.com/bml/

图片

**step2:**点击Notebook,创建“通用任务”

图片

**step3:**填写任务信息

图片

Day01

第一步:配置Notebook

1.找到昨天创建的Notebook任务,点击配置

  • 开发语言:Python3.7
  • AI框架:PaddlePaddle2.0.0
  • 资源规格:GPU V100

图片**
**

2.打开Notebook

图片

3.创建一个Notebook,选择Python3

图片

第二步:上传数据集至Notebook

1.下载数据集至本地

https://aistudio.baidu.com/aistudio/datasetdetail/123686

图片

2.上传数据集至Notebook并解压

在这里插入图片描述

复制代码
1
2
!unzip -q /home/work/chepaishibie.zip

3.生成标签文档

  • 本次使用的数据集为CCPD2019车牌数据集
  • 该数据集在合肥市的停车场采集得来,采集时间早上7:30到晚上10:00。停车场采集人员手持Android POS机对停车场的车辆拍照并手工标注车牌位置。拍摄的车牌照片涉及多种复杂环境,包括模糊、倾斜、阴雨天、雪天等等。CCPD数据集一共包含将近30万张图片,每种图片大小720x1160x3。一共包含8项,具体如下:

图片

  • CCPD数据集没有专门的标注文件,每张图像的文件名就是对应的数据标注(label)

    • 例如:025-95_113-154&383_386&473-386&473_177&454_154&383_363&402-0_0_22_27_27_33_16-37-15.jpg 由分隔符’-'分为几个部分:
    1. 025为区域
    2. 95_113 对应两个角度, 水平95°, 竖直113°
    3. 154&383_386&473对应边界框坐标:左上(154, 383), 右下(386, 473)
    4. 386&473_177&454_154&383_363&402对应四个角点坐标
    5. 0_0_22_27_27_33_16为车牌号码 映射关系如下: 第一个为省份0 对应省份字典皖, 后面的为字母和文字, 查看ads字典.如0为A, 22为Y…
  • 仅使用到数据集中正常车牌即ccpd_base的数据

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import os, cv2 import random words_list = [ "A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ] con_list = [ "皖", "沪", "津", "渝", "冀", "晋", "蒙", "辽", "吉", "黑", "苏", "浙", "京", "闽", "赣", "鲁", "豫", "鄂", "湘", "粤", "桂", "琼", "川", "贵", "云", "西", "陕", "甘", "青", "宁", "新"] count = 0 total = [] paths = os.listdir('/home/work/chepaishibie')#真实数据集路径 #for path in paths: for item in os.listdir(os.path.join('/home/work/chepaishibie')):#真实数据集路径 if item[-3:] =='jpg': new_path = os.path.join('/home/work/chepaishibie', item) #训练图片路径的路径 _, _, bbox, points, label, _, _ = item.split('-') points = points.split('_') points = [_.split('&') for _ in points] tmp = points[-2:]+points[:2] points = [] for point in tmp: points.append([int(_) for _ in point]) label = label.split('_') con = con_list[int(label[0])] words = [words_list[int(_)] for _ in label[1:]] label = con+''.join(words) line = new_path+'t'+'[{"transcription": "%s", "points": %s}]' % (' ', str(points)) line = line[:]+'n' total.append(line) random.shuffle(total) with open('/home/work/data/train.txt', 'w', encoding='UTF-8') as f: for line in total[:-200]: f.write(line) with open('/home/work/data/dev.txt', 'w', encoding='UTF-8') as f: for line in total[-200:]: f.write(line)

检查data下的两个txt文件

图片

第三步:配置环境

1.升级PaddlePaddle

复制代码
1
2
!pip install paddlepaddle-gpu==2.2.1.post101 -f https://www.paddlepaddle.org.cn/whl/linux/mkl/avx/stable.html

2.下载PaddleOCR

复制代码
1
2
!git clone https://gitee.com/PaddlePaddle/PaddleOCR.git

3.下载预训练模型

复制代码
1
2
cd /home/work/PaddleOCR
复制代码
1
2
!wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/ch_models/ch_det_mv3_db.tar!wget -P ./pretrain_models/ https://paddleocr.bj.bcebos.com/rec_mv3_tps_bilstm_attn.tar
复制代码
1
2
cd pretrain_models
复制代码
1
2
!tar -xf ch_det_mv3_db.tar && rm -rf ch_det_mv3_db.tar!tar -xf rec_mv3_tps_bilstm_attn.tar && rm -rf rec_mv3_tps_bilstm_attn.tar

第四步:保存Notebook并关闭、停止运行

图片

图片

Day02

第一步:重新安装环境

1.启动Notebook并打开

图片

2.重新执行以下安装命令

图片

图片

第二步:安装PaddleOCR相关依赖文件

1.修改requirements文件

图片

删除opencv-contrib-python==4.4.0.46

图片

2.执行以下两个安装命令

复制代码
1
2
cd /home/work/PaddleOCR
复制代码
1
2
!pip install -r requirements.txt
复制代码
1
2
!pip install opencv-contrib-python==4.2.0.32

第三步:修改模型训练的yml文件

进入路径PaddleOCR/configs/det/

打开det_mv3_db.yml

图片

1.修改模型路径和保存路径

图片

2.修改训练数据的路径

训练集:

图片

验证集:

图片

3.设置训练参数

epoch数:

图片

batch_size:

图片

第四步:模型训练

复制代码
1
2
CUDA_VISIBLE_DEVICES=0!python3 tools/train.py -c configs/det/det_mv3_db.yml

第五步:保存Notebook并关闭、停止运行

图片

Day03

第一步:重新安装环境

1.启动Notebook并打开

图片

2.重新执行以下安装命令

升级PaddlePaddle

图片

安装相关依赖

图片

图片

第二步:导出文字检测模型

复制代码
1
2
!python3 /home/work/PaddleOCR/tools/export_model.py -c /home/work/PaddleOCR/configs/det/det_mv3_db.yml -o Global.checkpoints=/home/work/PaddleOCR/output/db_mv3/best_accuracy Global.save_inference_dir=/home/work/PaddleOCR/inference/

图片

第三步:下载安装文字识别模型

复制代码
1
2
!wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/ch/ch_ppocr_server_v2.0_rec_infer.tar!tar -xf ch_ppocr_server_v2.0_rec_infer.tar -C inference

图片

第四步:模型预测

1.上传一张车牌图片作为预测图片

图片

上传至home/work根目录,命名为test.jpg

图片

2.执行预测命令

复制代码
1
2
3
!python /home/work/PaddleOCR/tools/infer/predict_system.py --image_dir="/home/work/test.jpg" --det_model_dir="/home/work/PaddleOCR/inference/" --rec_model_dir="/home/work/PaddleOCR/inference/ch_ppocr_server_v2.0_rec_infer/" --use_gpu False

图片

最后

以上就是眼睛大玫瑰最近收集整理的关于记录:百度3天AI进阶实战营——车牌识别Day0Day01Day02Day03的全部内容,更多相关记录内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部