车牌识别Hyperlpr


HyperLPR是一个使用深度学习针对对中文车牌识别的实现,开源地址:https://github.com/zeusees/HyperLPR,在windows下,使用vs2013编译成功,编译前需要修改opencv340的include和lib路径。
资源截图
代码片段和文件信息
#include “Pipeline.h“
std::vector CH_PLATE_CODE{ “京“ “沪“ “津“ “渝“ “冀“ “晋“ “蒙“ “辽“ “吉“ “黑“ “苏“ “浙“ “皖“ “闽“ “赣“ “鲁“ “豫“ “鄂“ “湘“ “粤“ “桂“
                                       “琼“ “川“ “贵“ “云“ “藏“ “陕“ “甘“ “青“ “宁“ “新“ “0“ “1“ “2“ “3“ “4“ “5“ “6“ “7“ “8“ “9“ “A“
                                      “B“ “C“ “D“ “E“ “F“ “G“ “H“ “J“ “K“ “L“ “M“ “N“ “P“ “Q“ “R“ “S“ “T“ “U“ “V“ “W“ “X“
                                   “Y“ “Z““港““学““使““警““澳““挂““军““北““南““广““沈““兰““成““济““海““民““航““空“};



using namespace std;

template
static unsigned int levenshtein_distance(const T &s1 const T &s2) {
const size_t len1 = s1.size() len2 = s2.size();
std::vector col(len2 + 1) prevCol(len2 + 1);

for (unsigned int i = 0; i < prevCol.size(); i++) prevCol[i] = i;
for (unsigned int i = 0; i < len1; i++) {
col[0] = i + 1;
for (unsigned int j = 0; j < len2; j++)
col[j + 1] = min(
min(prevCol[1 + j] + 1 col[j] + 1)
prevCol[j] + (s1[i] == s2[j] ? 0 : 1));
col.swap(prevCol);
}
return prevCol[len2];
}




void TEST_ACC(){

pr::PipelinePR prc(“model/cascade.xml“
“model/HorizonalFinemapping.prototxt“ “model/HorizonalFinemapping.caffemodel“
“model/Segmentation.prototxt“ “model/Segmentation.caffemodel“
“model/CharacterRecognization.prototxt“ “model/CharacterRecognization.caffemodel“
“model/SegmentationFree.prototxt“ “model/SegmentationFree.caffemodel“
);

ifstream file;
string imagename;
int n = 0 correct = 0 j = 0 sum = 0;
char filename[] = “E:\general_test\1.txt“;
string pathh = “E:\general_test\“;
file.open(filename ios::in);
// cout << filename << endl;
while (!file.eof())
{
file >> imagename;
string imgpath = pathh + imagename;
// cout << imgpath << endl;
std::cout << “------------------------------------------------“ << endl;
cout << “图片名:“ << imagename << endl;
cv::Mat image = cv::imread(imgpath);
// cv::imshow(“image“ image);
// cv::waitKey(0);

std::vector res = prc.RunPiplineAsImage(image pr::SEGMENTATION_FREE_METHOD);

float conf = 0;
vector con;
vector name;
for (auto st : res) {
if (st.confidence > 0.1) {
//std::cout << st.getPlateName() << “ “ << st.confidence << std::endl;
con.push_back(st.confidence);
name.push_back(st.getPlateName());
//conf += st.confidence;
}
else
cout << “no string“ << endl;
}
// std::cout << conf << std::endl;
int num = con.size();
float max = 0;
string platestr chpr ch;
int diff = 0 dif = 0;
for (int i = 0; i < num; i++) {

if (con.at(i) > max)
{
max = con.at(i);
platestr = name.at(i);
}

}
// cout << “max:“< cout << “string:“ << platestr << endl;
chpr = platestr.substr(0 2);
ch = imagename.substr(0 2);
diff = levenshtein_distance(imagename platestr);
dif = diff - 4;
cout << “差距:“ << dif << endl;
sum += dif;
if (ch != chpr

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      43912  2017-11-15 04:56  lpre2eA88888.jpg

     文件        492  2018-01-30 11:00  lpre2eincludeCNNRecognizer.h

     文件        326  2018-01-30 11:00  lpre2eincludeFastDeskew.h

     文件        630  2018-01-30 11:00  lpre2eincludeFineMapping.h

     文件       3983  2018-01-30 11:00  lpre2einclude
iBlackThreshold.h

     文件       2107  2018-01-31 08:27  lpre2eincludePipeline.h

     文件        812  2018-01-30 11:00  lpre2eincludePlateDetection.h

     文件       3847  2018-01-30 11:00  lpre2eincludePlateInfo.h

     文件       1211  2018-01-30 11:00  lpre2eincludePlateSegmentation.h

     文件        581  2018-01-30 11:00  lpre2eincludeRecognizer.h

     文件        637  2018-01-30 11:00  lpre2eincludeSegmentationFreeRecognizer.h

     文件       5583  2018-01-31 10:59  lpre2elpre2ee2e.cpp

     文件       7401  2018-01-31 10:36  lpre2elpre2elpre2e.vcxproj

     文件       2969  2018-01-31 08:12  lpre2elpre2elpre2e.vcxproj.filters

     文件        165  2018-01-31 10:29  lpre2elpre2elpre2e.vcxproj.user

     文件     356611  2018-01-30 11:00  lpre2elpre2emodelcascade.xml

     文件     930906  2018-01-30 11:00  lpre2elpre2emodelCharacterRecognization.caffemodel

     文件       1830  2018-01-30 11:00  lpre2elpre2emodelCharacterRecognization.prototxt

     文件      47608  2018-01-30 11:00  lpre2elpre2emodelHorizonalFinemapping.caffemodel

     文件       1337  2018-01-30 11:00  lpre2elpre2emodelHorizonalFinemapping.prototxt

     文件     276969  2018-01-30 11:00  lpre2elpre2emodelSegmentation.caffemodel

     文件       1719  2018-01-30 11:00  lpre2elpre2emodelSegmentation.prototxt

     文件    9415241  2018-01-30 11:00  lpre2elpre2emodelSegmentationFree.caffemodel

     文件       4935  2018-01-30 11:00  lpre2elpre2emodelSegmentationFree.prototxt

     文件    3542646  2018-02-01 08:17  lpre2elpre2ex64ReleaseCNNRecognizer.obj

     文件    3708681  2018-02-01 08:17  lpre2elpre2ex64Releasee2e.obj

     文件    3425153  2018-02-01 08:17  lpre2elpre2ex64ReleaseFastDeskew.obj

     文件    3572362  2018-02-01 08:17  lpre2elpre2ex64ReleaseFineMapping.obj

     文件        993  2018-02-01 08:17  lpre2elpre2ex64Releaselpre2e.Build.CppClean.log

     文件      12219  2018-02-01 08:17  lpre2elpre2ex64Releaselpre2e.log

............此处省略45个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)