
ddddocr的定位很明确就是专攻验证码识别这个垂直场景。官方资料显示它对数字、英文、中文以及部分特殊字符都具备识别能力。不过在具体使用时有几处关键细节可以了解一下。内置基础识别能力基础字符集ddddocr的模型主要覆盖了小写字母 a-z、大写字母 A-Z 和数字 0-9的组合这是它最擅长的场景。中文和特殊字符它也支持识别中文和部分特殊字符但训练数据可能不如英数丰富识别准确率可能会低一些。有资料指出对中文的支持更多是“能够识别”但实际效果比较玄学。进阶技巧如何针对性地提高识别率如果你发现默认识别效果不够精准可以通过set_ranges()方法来限制输出范围强制模型只在你需要的字符集里做选择。这通常会显著提升准确率。使用方法如下import ddddocr ocr ddddocr.DdddOcr() # 1. 强制只识别纯数字 ocr.set_ranges(0) # 0 对应纯整数 0-9 # 2. 强制只识别大小写英文字母 ocr.set_ranges(3) # 3 对应大小写英文 a-z A-Z # 3. 自定义字符集例如只识别数字和特定的数学符号 ocr.set_ranges(0123456789-x/) # 然后正常调用识别即可 with open(captcha.jpg, rb) as f: img_bytes f.read() result ocr.classification(img_bytes) print(result)set_ranges()支持的内置参数值详见下表参数值含义0纯整数0-91纯小写英文a-z2纯大写英文A-Z3大小写英文a-zA-Z4小写英文a-z 整数0-95大写英文A-Z 整数0-96大小写英文 整数所有英数7默认字符集同6需要注意set_ranges()功能可能存在一些实现上的小问题在极少数情况下仍可能输出非预期的字符。对于要求极高的场景建议对识别结果再加一道后处理校验。