OCR 的最小字符大小

Posted

技术标签:

【中文标题】OCR 的最小字符大小【英文标题】:Minimum character size for OCR 【发布时间】:2015-02-13 21:14:16 【问题描述】:

我正在规划计算机视觉系统所需的相机属性。 我必须检测图像中的一些字母数字区域,然后使用 Tesseract 和 OpenCV 将它们转换为 OCR。 一个典型的例子是高速公路上的车牌识别(但在我的项目中,速度不是问题)。

为了估计相机分辨率、镜头的距离和焦距,我需要知道哪个可能是文本像素的最小高度,以便获得可靠的 OCR 转换。

通过薄透镜方程,我得到了以毫米为单位的文本高度和以像素为单位的文本高度之间的关系。 更改相机距离或焦距,我的文本像素高度不同(从 10 像素到 40 像素)

当然我更喜欢 40 像素的字符高度,但这也是最昂贵的解决方案。

出于这个原因,我想知道 OpenCV 和 Tesseract 库是否为文本的最小可靠大小设置了一些约束,以实现良好的识别。我读过不同的商业 OCR 建议字符大小在 25 到 40 像素之间。 这个范围是否也适用于 Tesseract/OpenCV?

我也用较小的字符大小(15 px)进行了几次测试,OCR 工作得很好,但当然有理想的光线、对比度和背景颜色条件。

【问题讨论】:

【参考方案1】:

大多数车牌读取 (ALPR) 算法使用边缘信息和分类来确定特定符号(字母数字或其他语言符号)。鉴于此,边缘需要很好地定义厚度并具有足够的对比度。

正如 OP 商业 ALPR 算法所提到的,建议字符高度至少为 20 像素。这将确保用于车牌的大多数标准字体类型的边缘至少为 x 像素。这是一个字符高度约为 25 像素的车牌示例 - 边缘至少 3 像素宽。具有良好定义的边缘将有助于大多数 ALPR 算法。尽管过度锐度不一定有助于提高 ALPR 性能,因为在检测到边缘和连接组件之前,无论如何都会进行一些模糊以消除噪声。

更高的对比度(改善照明条件)和图像的最佳分辨率(字符大小至少为 20 像素但不要太高)将有助于提高 ALPR 算法的速度。

【讨论】:

以上是关于OCR 的最小字符大小的主要内容,如果未能解决你的问题,请参考以下文章

注册填写密码,最小长度为6个字符是啥

java题目是这样的,输入几个字符,以#结束,比较它们的字典序大小并输出字典序最小的那个字符

把数组排成最小的数-剑指Offer

Laravel 验证检查数组大小的最小值和最大值

python面试题-输入一个由n个大小写字母组成的字符,按Ascii码值从小到大排序,查找字符串中第k个最小Ascii码值的字母

用javascript(js)写正则表达式.最小7位,大小写字母数字特殊字符至少包含两种的组合