opencv 车牌字符分割 ANN网络识别字符
2017-10-05 22:59
471 查看
最近在复习OPENCV的知识,学习caffe的深度神经网络,正好想起以前做过的车牌识别项目,可以拿出来研究下
以前的环境是VS2013和OpenCV2.4.9,感觉OpenCV2.4.9是个经典版本啊!不过要使用caffe模型的话,还是要最新的OpenCV3.3更合适!
一、车牌图片库
以前也是网上下的,如果找不到的小伙伴可以从我这儿下: 链接:http://pan.baidu.com/s/1hrQF92G 密码:43jl
里面有数字 “0-9”,字母“A-Z”的训练图片各50张。
测试车牌图片当时是从他人得到已经定位到车牌的图片,类似如下:
predictann
predictann函数就是调用ann10函数生成的网络模型文件,进行预测分类的功能。
上述车牌的单字符识别效果如下:
可以看到有的相似度很高,有的却很低,也有一些识别错误的,我不再显示。。。
相比之前使用的caffe mnist识别率真的是差距有点大,以后有机会将mnist的模型来识别车牌字符试试~~
以前的环境是VS2013和OpenCV2.4.9,感觉OpenCV2.4.9是个经典版本啊!不过要使用caffe模型的话,还是要最新的OpenCV3.3更合适!
一、车牌图片库
以前也是网上下的,如果找不到的小伙伴可以从我这儿下: 链接:http://pan.baidu.com/s/1hrQF92G 密码:43jl
里面有数字 “0-9”,字母“A-Z”的训练图片各50张。
测试车牌图片当时是从他人得到已经定位到车牌的图片,类似如下:
void predictann(Mat testroi) { //测试神经网络 CvANN_MLP bp; bp.load("E:\\vswork\\CarNumRecog\\bpcharModel.xml"); const int image_cols = 8; const int image_rows = 16; cout << "测试:" << endl; //Mat test_image = imread("E:\\vswork\\charSamples\\3.png", CV_LOAD_IMAGE_GRAYSCALE); Mat test_temp; resize(testroi, test_temp, Size(image_cols, image_rows), (0, 0), (0, 0), CV_INTER_AREA);//使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现 threshold(test_temp, test_temp, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU); Mat_<float>sampleMat(1, image_rows*image_cols); for (int i = 0; i<image_rows*image_cols; ++i) { sampleMat.at<float>(0, i) = (float)test_temp.at<uchar>(i / 8, i % 8); } Mat responseMat; bp.predict(sampleMat, responseMat); Point maxLoc; double maxVal = 0; minMaxLoc(responseMat, NULL, &maxVal, NULL, &maxLoc); char temp[256]; if (maxLoc.x <= 9)//0-9 { sprintf(temp, "%d", maxLoc.x); //printf("%d\n", i); } else//A-Z { sprintf(temp, "%c", maxLoc.x + 55); //printf("%c\n", i+55); } cout << "识别结果:" << temp << " 相似度:" << maxVal * 100 << "%" << endl; imshow("test_image", testroi); waitKey(0); return; }
predictann
predictann函数就是调用ann10函数生成的网络模型文件,进行预测分类的功能。
上述车牌的单字符识别效果如下:
可以看到有的相似度很高,有的却很低,也有一些识别错误的,我不再显示。。。
相比之前使用的caffe mnist识别率真的是差距有点大,以后有机会将mnist的模型来识别车牌字符试试~~
相关文章推荐
- OpenCV实现车牌识别,OCR分割,ANN神经网络
- OpenCV实现车牌识别,OCR分割,ANN神经网络
- 基于opencv的车牌识别(三)车牌ROI提取,字符分割及识别
- OpenCV进阶之路:神经网络识别车牌字符
- OpenCV进阶之路:神经网络识别车牌字符
- OpenCV进阶之路:神经网络识别车牌字符
- 基于OpenCV的车牌识别系统之三 ——字符分割与识别(川字分割)
- OpenCV进阶之路:神经网络识别车牌字符
- OpenCV进阶之路:神经网络识别车牌字符
- opencv实现车牌识别之字符分割
- OpenCV进阶之路:神经网络识别车牌字符
- OpenCV+Python车牌字符分割和识别入门
- OpenCV进阶之路:神经网络识别车牌字符
- opencv实现车牌识别之字符分割
- OpenCV进阶之路:神经网络识别车牌字符
- OpenCV进阶之路:神经网络识别车牌字符
- OpenCV进阶之路:神经网络识别车牌字符
- Python+OpenCV实现车牌字符分割和识别
- OpenCV进阶之路:神经网络识别车牌字符
- OpenCV进阶之路:神经网络识别车牌字符