就认出在正方体的数字 - 机器人(Trouble recognizing digits in Tes

2019-07-29 00:56发布

我希望能有人告诉我,为什么它是我的Tesseract难以识别与数字某些图像,如果有什么我可以做的。 一切都在按测试工作,并且由于它是唯一的数字,我需要,我想我可以用英文模式管理,直到我不得不开始与7segmented显示以及。

虽然我有很多在所附的图像的麻烦,我想知道我是否应该开始对我自己的识别算法,或者如果我可以做我自己的正方体数据集,然后它会工作的工作,没有人知道在哪里限制在于正方体?

事情尝试:试图设置PSM到one_line,one_word,one_char(和剁碎的图片)。 随着one_line和one_word没有显著变化。 与one_char它确实承认好一点,但有时,由于大间距,它重视的额外数量的它,然后拧它,如果你看看所附图片 那么导致04.我也试图做二值化自己,这导致了较差的识别,非常耗费rescource。 我试图颠倒的图片,这使得在所有的正方体没有区别。

我附上的照片我需要等等,进行处理。

释有关图像:

是的正方体有就认出,虽然它在字已作出建设围绕工作图像的应用程序的便利一个图像。

是现实生活中的形象相匹配的image_seven。 但它不能认识到这一点。

是另一种形象,我想它认识到,是的,我知道它不能被skrewed,我也unskrew(认为skrew是术语在这里==“调直”)测试时它。

Answer 1:

我所知道的一些选项可以帮助你:

  1. 添加图片边框和文字之间的额外空间。 如果图像中的文本位于边缘的Tesseract会工作可怕。
  2. 复制你的形象。 例如,如果你在一个字“foobar的”执行OCR,克隆图像,并发送“foobar的foobar的foobar的foobar的foobar的”以正方体,结果会更好。
  3. 谷歌的font trainingimage binarization的正方体。

请记住,内置摄像头在移动设备大多是生产低质量的图像(所迷离,降噪,偏斜等)OCR本身是一种资源comsuming过程,如果一个值得图像预处理补充,低端和中移动装置(其中可能有机器人)可能面临的意外性能下降,甚至缺乏资源。 这一切都是免费/研究项目确定,但如果你打算商业应用程序 - 可以考虑使用一个更好的SDK。

看看这个问题的详细信息: OCR为Android



Answer 2:

正方体不会为你做分割。 正方体会做之前,实际的Tesseract算法中图像的阈值。 阈值后,可能会有一些边缘,文物仍然存在的形象。

尝试手动修改您的图像为黑色和白色两种颜色,看看正方体的回报作为输出。

尝试阈值(自动),您的图片,看看正方体的回报作为输出。 阈值的输出可能是太差造成的Tesseract给坏输出。

你的第4图像可能会失败,因为阈值(你有3种颜色:黑色的背景,灰色的背景和白色字母),阈值可(黑色背景,灰色背景)之间。

一般的Tesseract想要漂亮的黑白图像。 可能需要获得更好的结果您的图像预处理。

对于你的第一个图像(结果是“04”),试图看到箱子结果(包含公认的字符框的字符+坐标)。 的“0”可以是小的人工制品 - 就像一个4乘4斑点像素。



Answer 3:

你可以给javaocr一试( http://sourceforge.net/projects/javaocr/ ,是的,我是开发者)

Therre没有offocial版本虽然,你将不得不寻找源(好消息:有工作,包括取样器,离线教练和识别应用软件Android样品)

如果你只有一个字体,你可以用它不错的成果(我最多时达到识别率99.96同一字体的数字)

PS:它是纯粹的java和使用不变矩来执行匹配(因此没有与缩放和旋转的问题)。 还有一个非常有效的二值化。

看到它在行动:

https://play.google.com/store/apps/details?id=de.pribluda.android.ocrcall&feature=search_result#?t=W251bGwsMSwxLDEsImRlLnByaWJsdWRhLmFuZHJvaWQub2NyY2FsbCJd



文章来源: Trouble recognizing digits in Tesseract - android