Android tess-two车牌识别

4 篇文章 0 订阅

Android tess-two车牌识别

 

 

案例下载 github地址

image.png

一、下载

1.tess-two源码 下载链接

因为Tesseract使用C++实现的,在Android中不能直接使用,需要封装JavaAPI才能在Android平台中进行调用,这里我们直接使用TessTwo项目,tess-two是TesseraToolsForAndroid的一个git分支,使用简单,切集成了leptonica,在使用之前需要先从git上下载源码进行ndk编译。

2.tessdata语言数据文件 下载链接

下载后需要导入到手机根目录下,这里只是作车牌识别,所以只要英文的语言数据eng.traineddata就够了。

image.png

二、编译tess-two

  • 第一步 下载好tess-two源文件后,终端进入tess-two文件夹

     

    image.png

  • 第二步 编译生成.so文件,过程可能有点慢大概20分钟 ,如果没有安装ndk请参考这里
    <查看MacOS ndk配置>

ndk-build

image.png

  • 第三步 查看tess-two里的libs文件,里面就是我们所需要的不同框架so文件

image.png

三、项目搭建

1.新建一个空项目,把生成的so文件放入到lisb文件里

 

image.png


2.找到源文件tess-two里src文件里的com文件,复制到项目里

 

 

image.png


3.代码其实很简单,如果只用于车牌识别有一个技巧,就是设置白名单和黑名单

 

TessBaseAPI baseApi = new TessBaseAPI();  
baseApi.init(getSDPath(), language);//设置语言和获取路径
baseApi.setVariable(TessBaseAPI.VAR_CHAR_WHITELIST, "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); // 识别白名单
baseApi.setVariable(TessBaseAPI.VAR_CHAR_BLACKLIST, "!@#$%^&*()_+=-[]}{;:'\"\\|~`,./<>?"); // 识别黑名单

4.配置build.gradle

android {
    ndk {
            abiFilters "armeabi-v7a", "x86", "armeabi"
        }

        sourceSets { main { jniLibs.srcDirs = ['libs']
        }}
   }

5.最后别忘记添加读写权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

image.png

四、把训练语言数据放入到根目录

1.在根目录下创建一个文件夹名字必须为tessdata(必须根目录和tessdata命名)
2.把 eng.traineddata放入tessdata里

image.png

 

总结:

介绍的可能有点粗糙,源码放在了github 点击查看 ,有不清楚的地方可以留言,此项目对于生活中车牌识别成功率很低,后边文章会介绍和OpenCV一起使用。先用OpenCV处理二值化后再进行识别!

伴随着我国社会经济水平的不断提升,物联网这一产业日益发挥着其巨大的影响力。作为其融入日常生活的前沿应用之一,智能交通给我们带来了前所未有的便利。车牌识别的技术研究一直是智能交通领域的热门方向,已经在固定终端平台上得到了全面的发展。而随着智能手机的逐渐普及,车牌识别系统的便携化、多功能化也将成为其下一步的发展趋势。 本文对车牌识别系统中的图像预处理、车牌定位、字符分割以及字符识别等相关操作过程进行了深入的探讨和研究,继而提出了一套完整的基于Android平台移动终端的车牌识别系统。相关主要内容如下: (1)车牌的预处理及定位 首先对我国车牌的特征作了细致的研究分析,为定位部分能够设定合理的阈值从而准确地定位提供了足够的先验知识基础。预处理阶段主要介绍了相应灰度处理以及二值化采用的方法。根据实际拍摄环境的影响会造成车牌图像光照不均匀和光线过暗等现象,本文提出了一种合理的改进方法,即在进行Otsu二值化处理之前加入基于离散余弦变换的光照补偿校正处理,实验证明能够很好的改善上述现象。在对常用的定位方法进行整理和分析之后,结合移动平台硬件限制的特点,本文提出了一种基于边缘检测和形态学处理结合投影分析的有效快速的定位方法。该方法通过sobel垂直算子对图像边缘进行检测,通过形态学一系列处理运算和合适的筛选将车牌连通区域分离出,达到初步定位的效果,最后结合水平和初值投影的分析,准确地于车牌上下左右边缘处进行切割,从而准确定位出车牌。最后,本文针对手机拍摄车牌照片时存在远近不一,拍摄的照片质量低影响定位效果的情况,实现了基于高斯尺度变换的改进方法。 (2)车牌字符的分割操作 该部分主要是对定位输出的车牌区域图像进行实际意义上的分析是否存在倾斜,根据结果决定是否进行相应的校正工作,然后再逐个分割该区域的众字符。这里本文使用的是一种根据相应字符的边界情况进行倾斜校正的方法,该方法通过提取字符边界划定连线,以计算车牌图像的倾斜角度,对于定位后车牌边框残缺不全的情况有很好的性能。最后,在分析常见的字符分割方法的优缺点基础上,本文研究了一种结合先验知识与垂直投影的字符分割处理方法,该方法通过初步分割与精确分割两步处理,能够达到准确分割七个车牌字符的目的,对字符粘连的现象也有很好的改进。 (3)车牌字符的识别 通过对常用字符识别算法的分析和比较,本文结合了模版匹配简单快速的特点,提出了一种基于使用改进的模版匹配进行字符识别的方法。通过给相应模版加高斯噪声的方法模拟现实拍摄环境中出现的照片模糊等现象,使用多模版进行匹配计算,提高了识别算法的鲁棒性,实验证明,该算法能够有效实时地识别出相应车牌的字符,可行性高。对于相似字符易于造成识别错误的情况,本文又针对相似字符进行差异区域扫描分析,并取得了良好的效果。 (4)基于Android平台的LPRS系统软件的设计 在对Android平台的基础知识以的探究之下,根据前几章所提出的一系列车牌识别的系统步骤,本章将其移植到移动终端上来,实现了一个基于Android平台的车牌识别系统,通过对软件进行了功能测试和分析证明了该系统的有效性,满足一定的实际应用需要。 本文设计完成的车牌识别系统应用于移动终端平台,应用环境有交通警察的日常执法如违章车辆信息的登记上传和非法车辆的稽查,路边人工停车的信息管理,普通市民对违章停车的举证和自助通知移车等,相对于传统固定终端的车牌识别系统节约了硬件成本,促进了物联网技术在智能交通中的发展。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值