Python+Keras+TensorFlow车牌识别

Python 依赖

Anaconda for Python 3.x on Win64
Keras (>2.0.0)
Theano(>0.9) or Tensorflow(>1.1.x)
Numpy (>1.10)
Scipy (0.19.1)
OpenCV(>3.0)
Scikit-image (0.13.0)
PIL

准备工作:安装以下依赖包

pip install pyinstaller -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install Keras
pip install Theano
pip install Numpy
pip install Scipy
pip install opencv-python
pip install scikit-image
pip install pillow
pip install tensorflow

安装过程中可能出现Time out错误如下
raise ReadTimeoutError(self._pool, None, ‘Read timed out.‘)
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org‘, port=443): Read timed out.
不要慌,重新输入一次安装命令。如:pip install pillow

运行

  • 把代码clone下来以后准备在pycharm上运行
  • 我们创建一个LPR的目录,将开源库中的Font和model拷到此目录,创建一个car的目录,放置待识别车牌的车辆照片,命名为1.jpg,2.jpg,3.jpg。
  • 在LRP文件夹中新建一个 Python3的Python文件,输入如下代码:

from hyperlpr import pipline as pp
import cv2
#自行修改文件名
image = cv2.imread("./car/1.jpg")
image,res = pp.SimpleRecognizePlate(image)
print(res)

  • 我的Python环境:

    Python 3.7
    cv2 4.1.0
    Keras 2.3.1
    TensorFlow 2.0.0

解决bug

  • 这里我遇到两个bug:

File "D:\anaconda\lib\hyperlpr\recognizer.py", line 8, in
K.set_image_dim_ordering(‘tf‘)
AttributeError: module ‘keras.backend‘ has no attribute ‘set_image_dim_ordering‘

这个原因是,keras在有些较新的版本中没有set_image_dim_ordering()函数,而是改成了image_data_format()函数。

修改方法是,在所有报这个错的文件中把

K.set_image_dim_ordering(‘tf‘)

改成:

K.image_data_format()

修改后:

如果你使用的是较低版本的keras,那就反着改。若IDE询问是否要修改文件,选是即可。应该有三个文件需要此修改。

File "D:\anaconda\lib\hyperlpr\finemapping.py", line 41, in findContoursAndDrawBoundingBox
imagex, contours, hierarchy = cv2.findContours(binary_niblack.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
ValueError: not enough values to unpack (expected 3, got 2)

这个原因是,在opencv2中cv2.findContours()函数返回两个值:contours,hierarchy。而opencv3及以后会返回三个值,分别是img, countours, hierarchy。
这里直接把报错文件中对应行的imagex,删除,使函数返回值由两个参数接收。
应该有两个文件需要此修改。

修改后:

现在运行程序应该就会惊喜的发现运行成功啦!

原文地址:https://www.cnblogs.com/lxy764139720/p/11784755.html

时间: 2024-10-07 01:58:10

Python+Keras+TensorFlow车牌识别的相关文章

毕业设计 python opencv实现车牌识别 界面

主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuowu 答辩通过了,补完~ 这里主要是用两种方法进行定位识别 # -*- coding: utf-8 -*- __author__ = '樱花落舞' import tkinter as tk from tkinter.filedialog import * from tkinter import ttk

TensorFlow车牌识别实践(2)

http://www.cnblogs.com/jackkwok/p/7228021.html 1,运行准备 按照https://github.com/matthewearl/deep-anpr说明的用法,运行过程分以下4步: (1)准备10万个背景图片 (2)合成1000个测试车牌图像 (3)训练,以取得权重参数 (4)车牌检测 1.1准备背景图片 下载http://vision.princeton.edu/projects/2010/SUN/SUN397.tar.gz,36GB大小.好在服务器

毕业设计 python opencv实现车牌识别 颜色判断

主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuowu 答辩通过了,补完~ 该部分代码还包括缩小边界 def img_color(card_imgs): colors = [] for card_index, card_img in enumerate(card_imgs): green = yello = blue = black = white

毕业设计 python opencv实现车牌识别 矩形矫正

主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuowu 答辩通过了,补完~ 用的是仿射变换 def img_Transform(car_contours,oldimg,pic_width,pic_hight): car_imgs = [] for car_rect in car_contours: if car_rect[2] > -1 and ca

利用百度云接口实现车牌识别·python

一个小需求---实现车牌识别. 目前有两个想法 1. 调云在线的接口或者使用SDK做开发(配置环境和编译第三方库很麻烦,当然使用python可以避免这些问题) 2. 自己实现车牌识别算法(复杂) 一开始准备使用百度云文字识别C++ SDK来做,发现需要准备curl.jsoncpp和OpenCV,并且curl和jsoncpp需要自己编译,很麻烦,所以换用了python来做,真的是顺畅简单. 1. 安装python环境(我用python3.7) python官网下载地址:https://www.py

AttributeError: module 'tensorflow.python.keras.backend' has no attribute 'get_graph'处理办法

原因:安装的tensorflow版本和keras版本不匹配,只需卸载keras,重新安装自己tensorflow对应的版本. Keras与tensorflow版本匹配查询网站 AttributeError: module 'tensorflow.python.keras.backend' has no attribute 'get_graph'处理办法 原文地址:https://www.cnblogs.com/dyc99/p/12538440.html

目标检测---搬砖一个ALPR自动车牌识别的环境

参考License Plate Detection and Recognition in Unconstrained Scenarios@https://www.cnblogs.com/greentomlee/p/10863363.html@https://github.com/sergiomsilva/alpr-unconstrained 环境The current version was tested in an Ubuntu 16.04 machine, with Keras 2.2.4,

基于opencv的车牌识别系统

前言 学习了很长一段时间了,需要沉淀下,而最好的办法就是做一个东西来应用学习的东西,同时也是一个学习的过程. 概述     OpenCV的全称是:Open Source Computer Vision Library.OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python.Ruby.MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算

[AI开发]centOS7.5上基于keras/tensorflow深度学习环境搭建

这篇文章详细介绍在centOS7.5上搭建基于keras/tensorflow的深度学习环境,该环境可用于实际生产.本人现在非常熟练linux(Ubuntu/centOS/openSUSE).windows上该环境的搭建 :) 前面三篇博客代码实现均基于该环境(开发或者测试过): [AI开发]Python+Tensorflow打造自己的计算机视觉API服务 [AI开发]基于深度学习的视频多目标跟踪实现 [AI开发]视频多目标跟踪高级版 运行环境 1) centOS 7.5 ,不要安装GUI桌面: