验证码识别最佳实践
Best Practice in Captcha Recognition
我正在做一个基于文本的验证码识别的真实项目。
图片处理步骤大致设计为
对灰度图像进行预处理(膨胀、腐蚀或模糊等),以去除微小的噪声。
如果内容周围有任何边框填充则裁剪
根据横轴计算直方图,尝试垂直破解文字
使用 tesseract 等工具识别单个字符。
目前我在Python+Opencv中编码,得到的结果如下:
现在我得到了直方图,如果我在数字中填充一些空洞,每个文本将很好地显示为直方图中的正态分布。
但是我怎样才能真正找出这张图片中的每个局部最大值呢?目前直方图是离散的并且不是那么平滑。我现在卡在这个阶段了。
而且,那些噪音带无法删除。因为文字有不同的颜色。那么我是否需要将颜色 space 转换为 HSV 或其他任何东西?
如果您能给我一些建议,我将不胜感激。
谢谢!
是的.. 尝试查看图像在不同 HSV 层中的外观。对值层、阈值应用直方图equalization/contrast归一化,看看是否有差异。
我正在做一个基于文本的验证码识别的真实项目。
图片处理步骤大致设计为
对灰度图像进行预处理(膨胀、腐蚀或模糊等),以去除微小的噪声。
如果内容周围有任何边框填充则裁剪
根据横轴计算直方图,尝试垂直破解文字
使用 tesseract 等工具识别单个字符。
目前我在Python+Opencv中编码,得到的结果如下:
现在我得到了直方图,如果我在数字中填充一些空洞,每个文本将很好地显示为直方图中的正态分布。
但是我怎样才能真正找出这张图片中的每个局部最大值呢?目前直方图是离散的并且不是那么平滑。我现在卡在这个阶段了。
而且,那些噪音带无法删除。因为文字有不同的颜色。那么我是否需要将颜色 space 转换为 HSV 或其他任何东西?
如果您能给我一些建议,我将不胜感激。
谢谢!
是的.. 尝试查看图像在不同 HSV 层中的外观。对值层、阈值应用直方图equalization/contrast归一化,看看是否有差异。