YOLO+PaddleOCR实现车牌检测识别
本篇文章将会使用Keras-YOLOV3来训练自己的车牌检测的模型,结合PaddleOCR来识别车牌,最终使用OpenCV将其整体进行串联。
技术简介
Keras
Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK, 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。
Keras中文网
YOLOV3
YOLO是“You Only Look Once”的简称,它虽然不是最精确的算法,但在精确度和速度之间选择的折中,效果也是相当不错。YOLOv3借鉴了YOLOv1和YOLOv2,虽然没有太多的创新点,但在保持YOLO家族速度的优势的同时,提升了检测精度,尤其对于小物体的检测能力。YOLOv3算法使用一个单独神经网络作用在图像上,将图像划分多个区域并且预测边界框和每个区域的概率。
Keras-YOLOV3 GitHub地址
PaddleOCR
PaddleOCR是百度飞桨下的一款OCR工具库,使用简单,识别率高。
飞桨PaddleOCR官网地址
实现过程
整体的实现过程大致为,克隆Keras-YOLOV3源代码–>下载YOLOV3预训练权重–>将YOLOV3预训练权重转为Keras所需要的.h5类型的模型文件–>标注数据集–>训练模型–>测试模型。以下将为大家详细介绍实现过程。
环境搭建
Python环境
我这里使用的是Anaconda3,Python3.6的版本,可以在Anaconda官网上根据不同的系统环境,下载相应的软件版本。基本上都是一键安装,所以安装过程就不在这里赘述了。
安装完成后,可以使用
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
添加清华源,方便后面下载依赖使用。
克隆Keras-YOLOV3
Keras-YOLOV3 GitHub地址如果无法使用Github克隆的话,这里我已经将完整的Keras-YOLOV3的代码拷贝到了Gitee上,方便大家克隆:Keras-YOLOV3 Gitee地址
git clone https://github.com/qqwweee/keras-yolo3.git
安装所需依赖
首先我们需要进入到上一步克隆下来的keras-yolo3目录中:
cd keras-yolo3
使用conda创建虚拟环境
conda create -n keras-yolov3 python==3.7
# 激活虚拟环境
conda activate keras-yolov3
安装所需依赖
如果有GPU的同学请下载tensorflow-gpu的版本
pip install tensorflow==1.13.1 keras==2.2 pillow opencv-python==3.4.2.17 matplotlib==2.2.2 numpy==1.16.4 pyparsing==2.4.7 'h5py<3.0.0' -i https://pypi.douban.com/simple
下载yolov3权重,转换成.h5文件
wget https://pjreddie.com/media/files/yolov3.weights
# 下载完后执行,将yolov3文件转换成.h5文件
python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5
转换完成后,会在model_data/下生成一个yolo.h5的文件
使用PyCharm打开
配置项目的Interpreter

选择刚刚创建的虚拟环境,一般情况下会在anaconda3/envs目录下,根据实际情况进行配置。

目前的目录结构,且没有任何报错,如果依赖报错,请查验以上步骤

环境测试
在keras-yolo3跟目录下创建一个img目录,并放上一张自己的图片,yolov3,目前已有检测的对象包括:
飞机,自行车,汽车,马,牛等等。
在这里,我放了一张马的图片,进行环境的测试。

在根目录下编写一个测试文件:yolo_test.py
from yolo import YOLO
from PIL import Image
yolo

本文详细介绍了如何利用Keras-YOLOV3训练车牌检测模型,配合PaddleOCR进行车牌识别,并整合OpenCV进行全流程实践。从环境配置到数据预处理,模型训练与测试,再到车牌识别的具体步骤都有详尽说明。
最低0.47元/天 解锁文章
3026

被折叠的 条评论
为什么被折叠?



