车牌识别(源码&教程)"/>
Python基于OpenCV的实时视频流车牌识别(源码&教程)
1.研究背景
近年来,智能交通系统(ITS)在我国应用日益广泛。作为ITS重要组成部分的自动车牌识别系统在交通流量检测、交通诱导控制、违章车辆监控等方面有着广泛的应用,是确保道路安全畅通的重要手段,也为统计有关资料,为管理者决策提供有效数字依据的重要途径。由于一般的识别系统单幅图像的检测时间较长,达不到实时的要求,从而限制了这种系统在某些方面的应用,比如不停车监控、收费等。而且,即使在固定的地方使用,也必须埋设地感线圈等触发装置,施工及维护都有一定的困难。因此,发展基于视频图像的快速准确的车牌识别系统,具有广阔的发展前景和巨大的经济价值。
2.支持图片识别:
3.支持视频识别:
4.支持实时识别:
5.视频演示:
Python基于OpenCV的视频车牌识别(源码&教程)上半篇_哔哩哔哩_bilibili
实时视频流车牌识别(源码)下半篇_哔哩哔哩_bilibili
6.实现原理:
参考博客提出的如下可调用函数
入口文件 demo.py(部分):
import HyperLPRLite as pr
import cv2
import numpy as np
grr = cv2.imread("images_rec/2_.jpg")
model = pr.LPR("model/cascade.xml","model/model12.h5","model/ocr_plate_all_gru.h5")
for pstr,confidence,rect in model.SimpleRecognizePlateByE2E(grr):if confidence>0.7:image = drawRectBox(grr, rect, pstr+" "+str(round(confidence,3)))print "plate_str:"print pstrprint "plate_confidence"print confidencecv2.imshow("image",image)
cv2.waitKey(0)
(1) opencv2的imread函数导入图片, 返回的是Mat类型。
(2) HyperLPRLiite.py中的LPR类构造函数导入model, 参数就是训练好的三个模型文件,名字分别是:
- model/cascade.xml
- model/model12.h5
- model/ocr_plate_all_gru.h5
HyperLPRLite.py:
class LPR():def __init__(self,model_detection,model_finemapping,model_seq_rec):self.watch_cascade = cv2.CascadeClassifier(model_detection)self.modelFineMapping = self.model_finemapping()self.modelFineMapping.load_weights(model_finemapping)self.modelSeqRec = self.model_seq_rec(model_seq_rec)
(3)参数 model_detection 就是文件 model/cascade.xml
用到了 opencv2的CascadeClassifier()函数
cv2.CascadeClassifier()
参数输入.xml或者.yaml文件,表示加载模型
一种基于Haar特征的级联分类器用于物体检测的模型
model.SImpleRecognizePlateByE2E()函数:
for pstr,confidence,rect
更多推荐
Python基于OpenCV的实时视频流车牌识别(源码&教程)
发布评论