OCR字符精度测量测试方法

时间:2015-02-19 03:35:27

标签: c++ algorithm ocr

我需要分析应用程序中OCR库处理的结果的OCR准确性。根据应用程序的上下文,我更喜欢使用字符精度测量而不是单词。

因此我认为总错误计数应该是在特定字符串中添加插入的字符,替换的字符和删除的字符。然后可以根据字符串中正确字符的总数来计算准确度百分比。

是否有人建议使用算法或线索来计算此准确度。

1 个答案:

答案 0 :(得分:2)

您可以查看这些链接,其中包含有关准确性到OCR算法的科学论文。

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.42.5435&rep=rep1&type=pdf http://www.dlib.org/dlib/march09/holley/03holley.html

通常情况下,您对OCR算法的置信率也很高。例如,如果你检查python-tesseract(基于C ++),那么函数的置信率

的Python:

`api.MeanTextConf()`

C ++:

`
Pix *image = pixRead("/usr/src/tesseract-3.02/phototest.tif");
  tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
  api->Init(NULL, "eng");
  api->SetImage(image);
  Boxa* boxes = api->GetComponentImages(tesseract::RIL_TEXTLINE, true, NULL, NULL);
  printf("Found %d textline image components.\n", boxes->n);
  for (int i = 0; i < boxes->n; i++) {
    BOX* box = boxaGetBox(boxes, i, L_CLONE);
    api->SetRectangle(box->x, box->y, box->w, box->h);
    char* ocrResult = api->GetUTF8Text();
    ***//CONFIDENCE RATE
    int conf = api->MeanTextConf();***
    fprintf(stdout, "Box[%d]: x=%d, y=%d, w=%d, h=%d, confidence: %d, text: %s",
                    i, box->x, box->y, box->w, box->h, conf, ocrResult);
  }`

这对你有用。

祝福