车牌识别 该工程车牌检测技术参考YOLOv3,识别技术参考HyperLPR
基于Retinaface的车牌检测及关键点检测项目可参考Plate-Landmarks-detection
工程基于HyperLPR/prj-Linux修改:
1.修改车牌检测方法,改为yolov3实现;
2.源工程使用opencv-dnn模块对模型进行部署运行,改为caffe+tensorRT部署,可调用GPU进行加速
- caffe
- OpenCV 3.4.2
- TensorRT 6.0.1.5
1.tensorRTWrapper:用于部署YOLOv3等模型;
2.darknet:YOLOv3车牌检测模型训练;
3.darkner2caffe:darknet模型转为caffe模型。
-
yolov3对象检测模型百度(提取码:vm66 )
-
车牌垂直边界回归模型
-
e2e车牌识别模型
yolo对象检测模型可使用darknet自行训练,数据集参考CCPD
部署时需要使用darkner2caffe将darknet模型转换为caffe模型(注意工程中yolov3输入尺寸为416)
车牌边界回归以及识别模型来自HyperLPR/prj-Linux
git clone git@github.com:Fanghc95/TensorRT-LPR.git
#编辑CMakeList.txt配置CUDA,tensorRT,opencv等
mkdir build&&cd build
cmake ../
make -j8
#构建对象检测模型engine
./testPlate 0
#构建车牌识别模型engine
./testPlate 1
#部署并测试单张图片
./testPlate 2 [img_path]
-
垂直边界回归没能用到tensorRT,我在部署时没能跑通,大佬们可以继续改进
-
字符识别部分我用的是开源模型,效果较好但称不上100%完美,因为没接触过OCR没有进行改进(其实也莫得数据)
-
公开数据集CCPD虽数据量大但是场景单一,检测部分训练还需要额外数据进行优化