给你的树莓派部署一个车牌识别系统
代码仓库
1、码云Gitee:https://gitee.com/yangkun_monster/raspberrypi-License-Plate-Recognition
2、Github:https://github.com/pifan-open-source-community/raspberrypi-License-Plate-Recognition
视频教程地址:
哔哩哔哩bilibili:树莓派爱好者基地
一、项目概述
该项目主要用车牌识别算法对图像或视频中的车牌进行识别。首先进行车牌区域检测,然后将检测后的图像区域进行文本识别操作,反馈车牌的识别结果的同时将车牌区域进行框选,并将识别结果显示在对应车辆上方,后期移植在树莓派上进行实时视频流的车牌检测和识别。
前期:主要考虑PC端性能,并尽可能优化模型大小,训练可采用GPU,但调用模型测试的时候用CPU运行,测试帧率和准确性(测试10张左右图像的运行时间取平均值或实时视频流的帧率)。
后期:部署在树莓派端,在本地进行USB摄像头实时视频流的车牌识别。
编程语言: python。
Demo展示:输入单张图像或USB摄像头实时视频流,在显示器上显示出识别的结果(区域框选+识别结果)。
二、车牌识别系统简介
EasyPR是一个中文的开源车牌识别系统,其目标是成为一个简单、灵活、准确的车牌识别引擎。
相比于其他的车牌识别系统,EasyPR有如下特点:
- 它基于openCV这个开源库,这意味着所有它的代码都可以轻易的获取。
- 它能够识别中文,例如车牌为苏EUK722的图片,它可以准确地输出std:string类型的"苏EUK722"的结果。
- 它的识别率较高。目前情况下,字符识别已经可以达到90%以上的精度。
三、树莓派端部署
1、烧录系统
下载树莓派官方镜像
http://raspberrypi.org/software/operating-systems/
版本Raspberry Pi OS with desktop and recommended software
下载后并解压缩
然后烧录镜像烧录系统。这里如果不会可以查看树莓派爱好者基地之前的视频教程,哈哈哈哈哈。
2、树莓派换源
输入命令
sudo nano /etc/apt/sources.list
将其他源 前面加上 # 注释掉
下面粘贴科大源
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
输入 ctrl+o 回车保存,再ctrl+x 退出
输入命令
sudo apt-get update
3、安装cmake
sudo apt-get install cmake
检查版本
cmake -version
出现版本信息则安装成功!
下载pkg-config
wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
解压
tar -zxvf pkg-config-0.29.2.tar.gz
进入解压目录
cd pkg-config-0.29.2
依次执行下面的命令
./configure --with-internal-glib
make
make check
sudo make install
如果第三条报错,把路径改为全英文并且重新解压执行,并在第三条命令前加上sudo再执行。)
4、安装其它依赖
通过软件源安装libopenexr-dev
sudo apt-get install libopenexr-dev
5、配置opencv
下载OpenCV - 3.2.0
wget https://github.com/Itseez/opencv/archive/3.2.0.zip
使用unzip解压,没有unzip的先安装unzip。
sudo apt-get install unzip
解压
unzip 3.2.0.zip
进入opencv目录
cd opencv-3.2.0
创建release目录
mkdir release
进入release目录,安装OpenCV时,所有的文件都会被放到这个release目录下
cd release
使用cmake编译OpenCV的源码,安装到/usr/local/目录下
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/ ..
编译安装
make
sudo make install
如果出现此错误:
make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:180:modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:6687:modules/python3/CMakeFiles/opencv_python3.dir/all] 错误 2
make: *** [Makefile:163:all] 错误 2
解决方法:
编辑 opencv-3.2.0/modules/python/src2/cv2.cpp 文件,更改第730行:
bool pyopencv_to(PyObject* obj, String& value, const char* name)
{ (void)name; if(!obj || obj == Py_None) return true; char* str = (char *)PyString_AsString(obj);//这是文件的第730行,更改这行,在=后面加(char *)if(!str) return false; value = String(str); return true;
再重新编译安装就好了。
6、EasyPR安装
在树莓派爱好者基地微信公众号发送【EasyPR】就可以获得压缩包。
解压后上传到/home/pi目录下。
进入到EasyPR的目录:
cd EasyPR
直接执行命令:
./build.sh
如果出现此错误:
make[2]: *** [CMakeFiles/easypr.dir/build.make:141:CMakeFiles/easypr.dir/src/core/plate_judge.cpp.o] 错误 1
make[1]: *** [CMakeFiles/Makefile2:73:CMakeFiles/easypr.dir/all] 错误 2
make[1]: *** 正在等待未完成的任务....
[ 48%] Linking CXX static library libthirdparty.a
[ 48%] Built target thirdparty
make: *** [Makefile:84:all] 错误 2
解决方法:
修改EasyPR/include/easypr/config.h文件的第四行:
#ifndef EASYPR_CONFIG_H_
#define EASYPR_CONFIG_H_ #define CV_VERSION_THREE_TWO//修改这一行,将#define CV_VERSION_THREE_ZERO改为#define CV_VERSION_THREE_TWO
再编译,出现[100%] Built target demo之后即编译成功!
测试直接运行dome
./demo
输出以下信息:
EasyPR Option:
1. 测试;
2. 批量测试(推荐);
3. SVM训练;
4. ANN训练;
5. 中文字符训练;
6. 生成字符;
7. 感谢名单;
8. 退出;
请选择一项操作:
选择“2批量测试”,可进行多张照片识别。
可以在EasyPR/resources/image目录下对general_test和native_test这两个文件夹中的照片进行替换,换成自己的车牌照片。
给你的树莓派部署一个车牌识别系统相关推荐
- 手动搭建一个车牌识别系统 | 附源码
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 车牌识别是一种图像处理技术,用于识别不同车辆.这项技术被广泛用于各 ...
- 用python做一个车牌识别_如何用 Python 识别车牌
车牌识别在高速公路中有着广泛的应用,比如我们常见的电子收费(ETC)系统和交通违章车辆的检测,除此之外像小区或地下车库门禁也会用到,基本上凡是需要对车辆进行身份检测的地方都会用到. 简介 车牌识别系统 ...
- 你不知道的车牌识别系统
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 有小伙伴后台和小白说,能不能推荐几个适合入门的开源视觉项目,因为根 ...
- EasyPR中文开源车牌识别系统 开发详解
在上篇文档中作者已经简单的介绍了EasyPR,现在在本文档中详细的介绍EasyPR的开发过程. 正如淘宝诞生于一个购买来的LAMP系统,EasyPR也有它诞生的原型,起源于CSDN的taotao ...
- 【深度学习】你不知道的车牌识别系统
有小伙伴后台和小白说,能不能推荐几个适合入门的开源视觉项目,因为根据实际项目和代码学起来相对来说比较快.小白收集了一些比较简单的开源的项目,会陆陆续续的分享给大家,文末有源码地址. 今天首先带来的是一 ...
- python车牌识别系统开源代码_汽车牌照识别系统【YOLO+MLP】
车牌识别系统可以自动检测并识别图像中的车辆牌照,其算法主要包括牌照定位.牌照分割.字符识别等步骤.本文将给出一种基于深度学习的车牌识别系统方案. 要快速掌握开发人工智能系统的技能,推荐汇智网的 机器学 ...
- EasyPR--中文车牌识别系统 开发详解(开源)
人工智能AI与大数据技术实战 公众号: weic2c 一个开源的中文车牌识别系统, Git地址为:https://github.com/liuruoze/EasyPR. 我给它取的名字为EasyPR ...
- 【毕设】车牌识别系统的设计与实现
车牌识别系统的设计与实现_毕设记录 1 前言[源码见评论区] 2 开发环境 3 VS2017配置OpenCV运行第一个小程序(19.12.27) 3.1 第一个小程序 3.2 参考链接汇总 4 车牌定 ...
- 车牌识别存储云服务器,车牌识别系统大显神威,实现智慧交通的“最强利器”。...
随着人们生活水平提高,私家车的数量逐年增加,截至2017年底全国机动车保有量已达3.10亿辆.交通压力越来越严峻,智能化交通管理已成为交通发展的大方向.其中车牌识别系统的大力发展可以说是解决拥堵问题, ...
最新文章
- 前端面试题笔记 2021.8.26
- springmvc+mybatis+html 下将查询数据以excell形式上传到ftp(下)
- GCD介绍(三): Dispatch Sources
- 拆半查找的递归和非递归算法
- 谷歌Chrome浏览器正式上新Android版黑暗模式
- Devc++编译系统分配给int多少字节
- java 8 localdatetime_java8 时间 LocalDateTime常用方法
- 华为关联公司哈勃投资晟芯网络 持股10%
- Java Spring全家桶详解——Spring简介
- 541页《利用Python进行数据分析》分享(附源码下载)
- 面试中的字符串问题 (1)
- win10系统word软件变英文各类解决方法
- 上帝掷骰子吗:量子物理史话
- C++ Source Flowchart 自动生成C++程序流程图
- 云计算大数据:Xen、KVM、VMware、hyper-v等虚拟化技术的比较
- a href点击无效_a标签失效的问题
- linux cp改文件名,更改Linux `cp`命令以复制文件组
- 【记录】螺纹连接与螺旋传动
- 也跟风玩一玩CH552
- Android性能优化典范(五)