文字识别。使用tesseract识别里程表

OCR. Using tesseract to recognize odometer

我想识别里程表的数字。我找到了 iOS 的教程。 https://www.raywenderlich.com/93276/implementing-tesseract-ocr-ios

我的 tesseract 属性:

func performImageRecognition(image: UIImage) {

    let tesseract = G8Tesseract()
    tesseract.language = "eng"
    tesseract.engineMode = .TesseractCubeCombined
    tesseract.pageSegmentationMode = .Auto
    tesseract.maximumRecognitionTime = 60.0
    tesseract.setVariableValue("0123456789", forKey: "tessedit_char_whitelist")
    tesseract.image = image.g8_blackAndWhite()
    tesseract.recognize()
  }

应用成功识别标准文本。 但应用程序无法识别里程表中的数字。 是否可以调整一个超正方体来扫描里程表?

我试过这张图片:

如果我是你,我会尝试从里程表图像中剪下数字,拉直它们,做阈值(手动操作)并查看 tesseract 是否正确扫描处理过的图像,结果有多清晰。 如果它 确实 正确扫描,您应该使算法以编程方式处理图像(使用 openCV 可能是最好的)。如果,你应该尝试用里程表上常见的这些数字训练你的tesseract,然后看看tesseract是如何工作的(我没有亲自尝试训练,也许this 会有帮助)。

你的图像应该是这样的,但问题是,例如,最后一个数字肯定不会被识别为 1,即使你将你的 tesseract 字符白名单减少到“0123456789”,它也会被扫描作为 1 和 1(因为有两个部分)。如果您想使用 tesseract,我认为 tesseract 培训在您的情况下是强制性的。对了,你前两张图的情况应该会好一些。

OCR for Seven-segment display numbers in objective C.