FlanChanXwO commited on
Commit
b7fe650
·
verified ·
1 Parent(s): f3fa724

Upload scripts/ocr.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. scripts/ocr.py +51 -0
scripts/ocr.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """批量验证码识别器(准确性测试用)。
3
+ 加载 old / beta 两个 ddddocr 模型,各跑一次完整字符集和一次字母数字限定字符集,
4
+ 对每个输入图片输出 4 个变体的识别结果 JSON。
5
+ 用法: ocr.py file.png ... > result.json
6
+ """
7
+ import json
8
+ import sys
9
+
10
+ import ddddocr
11
+
12
+ ALNUM = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
13
+
14
+ _VARIANTS = {}
15
+
16
+
17
+ def _make(**kwargs):
18
+ ocr = ddddocr.DdddOcr(show_ad=False, **kwargs)
19
+ ocr.set_ranges(ALNUM)
20
+ return ocr
21
+
22
+
23
+ def _load():
24
+ if _VARIANTS:
25
+ return _VARIANTS
26
+ _VARIANTS["old"] = _make(old=True)
27
+ _VARIANTS["old_r"] = _make(old=True)
28
+ _VARIANTS["beta"] = _make(beta=True)
29
+ _VARIANTS["beta_r"] = _make(beta=True)
30
+ return _VARIANTS
31
+
32
+
33
+ def main():
34
+ files = sys.argv[1:]
35
+ if not files:
36
+ print("usage: ocr.py file.png ... > result.json", file=sys.stderr)
37
+ sys.exit(2)
38
+ variants = _load()
39
+ out = {}
40
+ for f in files:
41
+ try:
42
+ data = open(f, "rb").read()
43
+ row = {k: variants[k].classification(data) for k in variants}
44
+ except Exception as e: # noqa: BLE001
45
+ row = {"err": str(e)}
46
+ out[f] = row
47
+ print(json.dumps(out, ensure_ascii=False))
48
+
49
+
50
+ if __name__ == "__main__":
51
+ main()