网上很少关于java版本的车牌识别,于是本人决定将自己的项目开放出来共大家使用和研究,项目纯采用java语言实现,底层深度学习采用djl框架实现,前段时间我开源过一个java+opencv dnn的版本,那个只是给大家玩玩而已,精度还达不到商业级别。本次开源主要数据集来源于网络搜集,所以部分车牌也很难识别,如果您有足够的车牌数据集,希望能@我,我会用来继续训练模型,使算法更加精准,最后共享给网友。
下面说明算法执行步骤:
1.车辆检测。从整张图中检测车辆位置,并截取车辆区域。
2.车牌定位。从1中得出rect输入给unet网络,检测出车牌位置,并做矫正,得出id-rect。
3.字符识别。从2中得出的车牌截图id-rect输入给lpr-net,得出字符顺序列表,如:浙F79W39
窗口测试识别效果
1.运行 LprUI.java,如图:
2.选择自己想要测试的图片
整体蓝牌识别效果较好,晋和皖车牌精度0.98,其他地方的数据集有限精度不够,在实际项目中尽量保证车牌清晰和正,这样可以提高识别精度。
内置测试图片位置:lmgs/*
项目源码地址:java-lpr: java版本深度学习车牌识别
如果有nvidia系列显卡的话,可以安装cuda10.2或者11.1,这两个版本都是djl支持的,其他版本djl不支持:
最后谢谢大家使用并提供宝贵的车牌数据,仅平我个人是无法搜集这么庞大的数据集的,为每一位贡献数据的朋友点赞。