failed09's picture
Initial public release of BashkirTrOCR v3 (ONNX FP16 CUDA & INT8 CPU)
c8cdee4 verified
Raw History Blame Contribute Delete
842 Bytes
"""Recognize one image locally and write UTF-8 text and JSON."""
import argparse
import json
from pathlib import Path
from PIL import Image
from runtime.engine import OCR
def main():
p=argparse.ArgumentParser(description=__doc__)
p.add_argument('image',type=Path)
p.add_argument('--backend',choices=['cpu','gpu','auto'],default='cpu')
p.add_argument('--output',type=Path,default=Path('result.txt'))
args=p.parse_args()
with Image.open(args.image) as image:r=OCR(backend=args.backend).recognize(image,include_images=False)
args.output.write_text(r['full_text']+'\n',encoding='utf-8')
args.output.with_suffix('.json').write_text(json.dumps(r,ensure_ascii=False,indent=2)+'\n',encoding='utf-8')
print(f'Saved {args.output}; backend={r["backend"]}; lines={len(r["lines"])}')
if __name__=='__main__':main()