车牌字符识别OCR算法评估.pdfVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
车牌字符识别OCR算法评估 最近学习了《Mastering Opencv with Pratical Computer Vision Projects》中第五章:基于SVM和神经⽹络的车牌识别系统。原⽂最 后提到:当训练OCR这样的机器学习算法时,需要知道所使⽤的最佳参数和特征,以及如何修正项⽬中出现的分类、识别和检测错误。⽂ 中给出的⽅法是直接读取保存样本特征的XML⽂件,将所有样本分为测试组(100个)和训练组,最后通过UNIX脚本来批量不同参数下误 差率的计算,并使⽤gnuplot绘图显⽰。因为本⼈对UNIX脚本语⾔没有接触,这⾥提供⼀种⽣成.m⽂件,导⼊matlab实现误差率与所取特 征可视化⽅法。 1.OCR算法评估类 class evalOCR { public: OCR ocr; static const int TRAIN_DATA_TYPE_NUM=4; public: //随机选取100个样本 void generateRandom(int n,int min,int max,vectorint *samples); //对样本进⾏测试并求出误差率 float test(Mat samples,Mat classes); //⽣成可视化.m⽂件 void evaluate(const char* xml_file_path, const string resName); void evaluate(const char* xml_file_path,vectorvectordouble prec); int PrintVector(FILE *f, const vectordouble v, const string name, int maxNum); }; 2.OCR算法类的具体实现 #include evalOCR.h char* data_type[4]={TrainingDataF5,TrainingDataF10,TrainingDataF15,TrainingDataF20}; // 随机抽取100个样本 void evalOCR::generateRandom(int n,int min,int max,vectorint *samples) { int range=max-min; int r=rand()%range+min; if(samples-at(r)==0) { samples-at(r)=1; n++; } if(n100) { generateRandom(n,min,max,samples); } } //通过训练模型分类结果与原始类别进⾏对⽐,求出错误率 float evalOCR::test(Mat samples,Mat classes) { float errors=0; for(int i=0;isamples.rows;i++) { int result=ocr.classify(samples.row(i)); if(result != classes.atint(i)) errors++; } return errors/samples.rows; } void evalOCR::evaluate(const char* xml_file_path, const string resName) { vectorvectordouble prec(TRAIN_DATA_TYPE_NUM); int NUM_MLP; static const int SHOW_COLOR_NUM = 7; static const char* colorShow[SHOW_COLOR_NUM] = {k, b, g, r, c, m, y}; FILE* f = fopen(resName.c_str(), w); FILE* f = fopen(resName.c_str(), w); CV_Assert(f != NULL); fprintf(f, clear;\nclose all;\nclc;\nhold on;\nfigure(1);\n

文档评论(0)

千帆起航 + 关注
实名认证
文档贡献者

走过路过,不要错过!

1亿VIP精品文档

相关文档