openocr-python 0.1.2__tar.gz → 0.1.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. {openocr_python-0.1.2/openocr_python.egg-info → openocr-python-0.1.4}/PKG-INFO +6 -28
  2. {openocr_python-0.1.2 → openocr-python-0.1.4}/QUICKSTART.md +3 -2
  3. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/__init__.py +1 -1
  4. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openocr.py +81 -40
  5. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/infer_det.py +6 -3
  6. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/infer_doc_onnx.py +247 -39
  7. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/infer_rec.py +6 -3
  8. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/infer_unirec_onnx.py +79 -2
  9. openocr-python-0.1.4/openocr/tools/utils/__init__.py +0 -0
  10. {openocr_python-0.1.2 → openocr-python-0.1.4/openocr_python.egg-info}/PKG-INFO +6 -28
  11. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr_python.egg-info/SOURCES.txt +1 -0
  12. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr_python.egg-info/requires.txt +1 -0
  13. {openocr_python-0.1.2 → openocr-python-0.1.4}/pyproject.toml +2 -1
  14. {openocr_python-0.1.2 → openocr-python-0.1.4}/LICENSE +0 -0
  15. {openocr_python-0.1.2 → openocr-python-0.1.4}/MANIFEST.in +0 -0
  16. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/dataset/rec/evaluation.yaml +0 -0
  17. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/dataset/rec/ltb.yaml +0 -0
  18. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/dataset/rec/mjsynth.yaml +0 -0
  19. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/dataset/rec/openvino.yaml +0 -0
  20. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/dataset/rec/ost.yaml +0 -0
  21. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/dataset/rec/synthtext.yaml +0 -0
  22. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/dataset/rec/test.yaml +0 -0
  23. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/dataset/rec/textocr.yaml +0 -0
  24. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/dataset/rec/textocr_horizontal.yaml +0 -0
  25. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/dataset/rec/union14m_b.yaml +0 -0
  26. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/dataset/rec/union14m_l_filtered.yaml +0 -0
  27. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/det/dbnet/repvit_db.yml +0 -0
  28. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/abinet/resnet45_trans_abinet_lang.yml +0 -0
  29. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/abinet/resnet45_trans_abinet_wo_lang.yml +0 -0
  30. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/abinet/svtrv2_abinet_lang.yml +0 -0
  31. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/abinet/svtrv2_abinet_wo_lang.yml +0 -0
  32. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/aster/resnet31_lstm_aster_tps_on.yml +0 -0
  33. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/aster/svtrv2_aster.yml +0 -0
  34. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/aster/svtrv2_aster_tps_on.yml +0 -0
  35. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/autostr/autostr_lstm_aster_tps_on.yml +0 -0
  36. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/busnet/svtrv2_busnet.yml +0 -0
  37. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/busnet/svtrv2_busnet_pretraining.yml +0 -0
  38. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/busnet/vit_busnet.yml +0 -0
  39. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/busnet/vit_busnet_pretraining.yml +0 -0
  40. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/cam/convnextv2_cam_tps_on.yml +0 -0
  41. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/cam/convnextv2_tiny_cam_tps_on.yml +0 -0
  42. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/cam/svtrv2_cam_tps_on.yml +0 -0
  43. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/cdistnet/resnet45_trans_cdistnet.yml +0 -0
  44. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/cdistnet/svtrv2_cdistnet.yml +0 -0
  45. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/cmer/cmer.yml +0 -0
  46. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/cppd/svtr_base_cppd.yml +0 -0
  47. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/cppd/svtr_base_cppd_ch.yml +0 -0
  48. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/cppd/svtr_base_cppd_h8.yml +0 -0
  49. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/cppd/svtr_base_cppd_syn.yml +0 -0
  50. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/cppd/svtrv2_cppd.yml +0 -0
  51. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/dan/resnet45_fpn_dan.yml +0 -0
  52. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/dan/svtrv2_dan.yml +0 -0
  53. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/dptr/dptr_parseq_pretrain.yml +0 -0
  54. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/focalsvtr/focalsvtr_ctc.yml +0 -0
  55. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/gtc/svtrv2_lnconv_nrtr_gtc.yml +0 -0
  56. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/gtc/svtrv2_lnconv_smtr_gtc_long_infer.yml +0 -0
  57. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/gtc/svtrv2_lnconv_smtr_gtc_smtr_long.yml +0 -0
  58. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/gtc/svtrv2_lnconv_smtr_gtc_stream.yml +0 -0
  59. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/igtr/svtr_base_ds_igtr.yml +0 -0
  60. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/lister/focalsvtr_lister_wo_fem_maxratio12.yml +0 -0
  61. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/lister/svtrv2_lister_wo_fem_maxratio12.yml +0 -0
  62. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/lpv/svtr_base_lpv.yml +0 -0
  63. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/lpv/svtr_base_lpv_wo_glrm.yml +0 -0
  64. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/lpv/svtrv2_lpv.yml +0 -0
  65. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/lpv/svtrv2_lpv_wo_glrm.yml +0 -0
  66. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/maerec/vit_nrtr.yml +0 -0
  67. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/matrn/resnet45_trans_matrn.yml +0 -0
  68. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/matrn/svtrv2_matrn.yml +0 -0
  69. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/mdiff4str/svtrv2_mdiffdecoder_base.yml +0 -0
  70. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/mdiff4str/svtrv2_mdiffdecoder_small.yml +0 -0
  71. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/mgpstr/svtrv2_mgpstr_only_char.yml +0 -0
  72. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/mgpstr/vit_base_mgpstr_only_char.yml +0 -0
  73. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/mgpstr/vit_large_mgpstr_only_char.yml +0 -0
  74. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/mgpstr/vit_mgpstr.yml +0 -0
  75. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/mgpstr/vit_mgpstr_only_char.yml +0 -0
  76. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/moran/resnet31_lstm_moran.yml +0 -0
  77. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/nrtr/focalsvtr_nrtr_maxraio12.yml +0 -0
  78. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/nrtr/nrtr.yml +0 -0
  79. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/nrtr/svtr_base_nrtr.yml +0 -0
  80. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/nrtr/svtr_base_nrtr_syn.yml +0 -0
  81. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/nrtr/svtrv2_nrtr.yml +0 -0
  82. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/ote/svtr_base_h8_ote.yml +0 -0
  83. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/ote/svtr_base_ote.yml +0 -0
  84. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/parseq/focalsvtr_parseq_maxratio12.yml +0 -0
  85. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/parseq/svrtv2_parseq.yml +0 -0
  86. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/parseq/vit_parseq.yml +0 -0
  87. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/robustscanner/resnet31_robustscanner.yml +0 -0
  88. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/robustscanner/svtrv2_robustscanner.yml +0 -0
  89. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/sar/resnet31_lstm_sar.yml +0 -0
  90. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/sar/svtrv2_sar.yml +0 -0
  91. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/seed/resnet31_lstm_seed_tps_on.yml +0 -0
  92. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/smtr/focalsvtr_smtr.yml +0 -0
  93. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/smtr/focalsvtr_smtr_long.yml +0 -0
  94. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/smtr/svtrv2_smtr.yml +0 -0
  95. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/smtr/svtrv2_smtr_bi.yml +0 -0
  96. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/srn/resnet50_fpn_srn.yml +0 -0
  97. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/srn/svtrv2_srn.yml +0 -0
  98. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/convnextv2_ctc.yml +0 -0
  99. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/convnextv2_h8_ctc.yml +0 -0
  100. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/convnextv2_h8_rctc.yml +0 -0
  101. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/convnextv2_rctc.yml +0 -0
  102. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/convnextv2_tiny_h8_ctc.yml +0 -0
  103. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/convnextv2_tiny_h8_rctc.yml +0 -0
  104. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/crnn_ctc.yml +0 -0
  105. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/crnn_ctc_long.yml +0 -0
  106. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/focalnet_base_ctc.yml +0 -0
  107. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/focalnet_base_rctc.yml +0 -0
  108. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/focalsvtr_ctc.yml +0 -0
  109. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/focalsvtr_rctc.yml +0 -0
  110. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/resnet45_trans_ctc.yml +0 -0
  111. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/resnet45_trans_rctc.yml +0 -0
  112. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/svtr_base_ctc.yml +0 -0
  113. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/svtr_base_rctc.yml +0 -0
  114. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/svtrnet_ctc_syn.yml +0 -0
  115. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/vit_ctc.yml +0 -0
  116. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrs/vit_rctc.yml +0 -0
  117. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrv2/repsvtr_ch.yml +0 -0
  118. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrv2/svtrv2_ch.yml +0 -0
  119. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrv2/svtrv2_ctc.yml +0 -0
  120. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrv2/svtrv2_rctc.yml +0 -0
  121. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrv2/svtrv2_small_rctc.yml +0 -0
  122. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrv2/svtrv2_smtr_gtc_rctc.yml +0 -0
  123. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrv2/svtrv2_smtr_gtc_rctc_ch.yml +0 -0
  124. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrv2/svtrv2_smtr_gtc_rctc_infer.yml +0 -0
  125. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/svtrv2/svtrv2_tiny_rctc.yml +0 -0
  126. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/unirec/focalsvtr_ardecoder_unirec.yml +0 -0
  127. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/unirec/opendoc_pipeline.yml +0 -0
  128. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/visionlan/resnet45_trans_visionlan_LA.yml +0 -0
  129. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/visionlan/resnet45_trans_visionlan_LF_1.yml +0 -0
  130. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/visionlan/resnet45_trans_visionlan_LF_2.yml +0 -0
  131. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/visionlan/svtrv2_visionlan_LA.yml +0 -0
  132. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/visionlan/svtrv2_visionlan_LF_1.yml +0 -0
  133. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/configs/rec/visionlan/svtrv2_visionlan_LF_2.yml +0 -0
  134. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/demo_gradio.py +0 -0
  135. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/demo_opendoc.py +0 -0
  136. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/demo_unirec.py +0 -0
  137. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/losses/__init__.py +0 -0
  138. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/losses/db_loss.py +0 -0
  139. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/losses/det_basic_loss.py +0 -0
  140. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/metrics/__init__.py +0 -0
  141. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/metrics/det_metric.py +0 -0
  142. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/metrics/eval_det_iou.py +0 -0
  143. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/modeling/__init__.py +0 -0
  144. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/modeling/backbones/__init__.py +0 -0
  145. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/modeling/backbones/repvit.py +0 -0
  146. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/modeling/base_detector.py +0 -0
  147. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/modeling/heads/__init__.py +0 -0
  148. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/modeling/heads/db_head.py +0 -0
  149. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/modeling/necks/__init__.py +0 -0
  150. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/modeling/necks/db_fpn.py +0 -0
  151. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/postprocess/__init__.py +0 -0
  152. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/postprocess/db_postprocess.py +0 -0
  153. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/preprocess/__init__.py +0 -0
  154. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/preprocess/crop_paste.py +0 -0
  155. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/preprocess/crop_resize.py +0 -0
  156. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/preprocess/db_label_encode.py +0 -0
  157. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/preprocess/db_resize_for_test.py +0 -0
  158. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/opendet/preprocess/iaa_augment.py +0 -0
  159. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/__init__.py +0 -0
  160. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/abinet_loss.py +0 -0
  161. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/ar_loss.py +0 -0
  162. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/cam_loss.py +0 -0
  163. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/cdistnet_loss.py +0 -0
  164. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/ce_loss.py +0 -0
  165. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/cmer_loss.py +0 -0
  166. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/cppd_loss.py +0 -0
  167. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/ctc_loss.py +0 -0
  168. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/igtr_loss.py +0 -0
  169. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/lister_loss.py +0 -0
  170. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/lpv_loss.py +0 -0
  171. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/mdiff_loss.py +0 -0
  172. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/mgp_loss.py +0 -0
  173. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/parseq_loss.py +0 -0
  174. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/robustscanner_loss.py +0 -0
  175. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/seed_loss.py +0 -0
  176. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/smtr_loss.py +0 -0
  177. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/srn_loss.py +0 -0
  178. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/unirec_loss.py +0 -0
  179. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/losses/visionlan_loss.py +0 -0
  180. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/metrics/__init__.py +0 -0
  181. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/metrics/rec_metric.py +0 -0
  182. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/metrics/rec_metric_cmer.py +0 -0
  183. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/metrics/rec_metric_gtc.py +0 -0
  184. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/metrics/rec_metric_long.py +0 -0
  185. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/metrics/rec_metric_mgp.py +0 -0
  186. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/__init__.py +0 -0
  187. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/base_recognizer.py +0 -0
  188. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/cmer_modeling/modeling_cmer.py +0 -0
  189. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/common.py +0 -0
  190. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/__init__.py +0 -0
  191. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/abinet_decoder.py +0 -0
  192. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/aster_decoder.py +0 -0
  193. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/bus_decoder.py +0 -0
  194. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/cam_decoder.py +0 -0
  195. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/cdistnet_decoder.py +0 -0
  196. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/cppd_decoder.py +0 -0
  197. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/ctc_decoder.py +0 -0
  198. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/dan_decoder.py +0 -0
  199. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/dptr_parseq_clip_b_decoder.py +0 -0
  200. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/igtr_decoder.py +0 -0
  201. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/lister_decoder.py +0 -0
  202. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/lpv_decoder.py +0 -0
  203. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/matrn_decoder.py +0 -0
  204. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/mdiff_decoder.py +0 -0
  205. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/mgp_decoder.py +0 -0
  206. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/nrtr_decoder.py +0 -0
  207. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/ote_decoder.py +0 -0
  208. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/parseq_decoder.py +0 -0
  209. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/rctc_decoder.py +0 -0
  210. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/robustscanner_decoder.py +0 -0
  211. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/sar_decoder.py +0 -0
  212. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/smtr_decoder.py +0 -0
  213. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/smtr_decoder_nattn.py +0 -0
  214. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/srn_decoder.py +0 -0
  215. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/decoders/visionlan_decoder.py +0 -0
  216. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/__init__.py +0 -0
  217. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/autostr_encoder.py +0 -0
  218. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/cam_encoder.py +0 -0
  219. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/convnextv2.py +0 -0
  220. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/focalsvtr.py +0 -0
  221. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/nrtr_encoder.py +0 -0
  222. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/rec_hgnet.py +0 -0
  223. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/rec_lcnetv3.py +0 -0
  224. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/rec_mobilenet_v3.py +0 -0
  225. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/rec_mv1_enhance.py +0 -0
  226. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/rec_nrtr_mtb.py +0 -0
  227. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/rec_resnet_31.py +0 -0
  228. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/rec_resnet_45.py +0 -0
  229. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/rec_resnet_fpn.py +0 -0
  230. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/rec_resnet_vd.py +0 -0
  231. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/repvit.py +0 -0
  232. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/resnet31_rnn.py +0 -0
  233. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/svtrnet.py +0 -0
  234. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/svtrnet2dpos.py +0 -0
  235. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/svtrv2.py +0 -0
  236. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/svtrv2_lnconv.py +0 -0
  237. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/svtrv2_lnconv_two33.py +0 -0
  238. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/encoders/vit.py +0 -0
  239. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/transforms/__init__.py +0 -0
  240. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/transforms/aster_tps.py +0 -0
  241. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/transforms/moran.py +0 -0
  242. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/transforms/tps.py +0 -0
  243. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/unirec_modeling/configuration_unirec.py +0 -0
  244. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/modeling/unirec_modeling/modeling_unirec.py +0 -0
  245. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/optimizer/__init__.py +0 -0
  246. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/optimizer/lr.py +0 -0
  247. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/__init__.py +0 -0
  248. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/abinet_postprocess.py +0 -0
  249. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/ar_postprocess.py +0 -0
  250. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/ce_postprocess.py +0 -0
  251. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/char_postprocess.py +0 -0
  252. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/cmer_postprocess.py +0 -0
  253. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/cppd_postprocess.py +0 -0
  254. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/ctc_postprocess.py +0 -0
  255. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/igtr_postprocess.py +0 -0
  256. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/lister_postprocess.py +0 -0
  257. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/mgp_postprocess.py +0 -0
  258. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/nrtr_postprocess.py +0 -0
  259. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/smtr_postprocess.py +0 -0
  260. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/srn_postprocess.py +0 -0
  261. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/unirec_postprocess.py +0 -0
  262. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/postprocess/visionlan_postprocess.py +0 -0
  263. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/__init__.py +0 -0
  264. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/abinet_aug.py +0 -0
  265. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/abinet_label_encode.py +0 -0
  266. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/ar_label_encode.py +0 -0
  267. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/auto_augment.py +0 -0
  268. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/cam_label_encode.py +0 -0
  269. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/ce_label_encode.py +0 -0
  270. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/char_label_encode.py +0 -0
  271. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/cmer_label_encode.py +0 -0
  272. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/cppd_label_encode.py +0 -0
  273. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/ctc_label_encode.py +0 -0
  274. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/dptr_label_encode.py +0 -0
  275. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/ep_label_encode.py +0 -0
  276. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/igtr_label_encode.py +0 -0
  277. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/mdiff_label_encode.py +0 -0
  278. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/mgp_label_encode.py +0 -0
  279. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/parseq_aug.py +0 -0
  280. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/rec_aug.py +0 -0
  281. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/resize.py +0 -0
  282. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/smtr_label_encode.py +0 -0
  283. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/srn_label_encode.py +0 -0
  284. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/unirec_label_encode.py +0 -0
  285. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/openrec/preprocess/visionlan_label_encode.py +0 -0
  286. {openocr_python-0.1.2/openocr/tools/utils → openocr-python-0.1.4/openocr/tools}/__init__.py +0 -0
  287. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/create_lmdb_dataset.py +0 -0
  288. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/__init__.py +0 -0
  289. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/cmer_web_dataset.py +0 -0
  290. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/collate_fn.py +0 -0
  291. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/lmdb_dataset.py +0 -0
  292. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/lmdb_dataset_test.py +0 -0
  293. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/multi_scale_sampler.py +0 -0
  294. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/native_size_dataset.py +0 -0
  295. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/native_size_sampler.py +0 -0
  296. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/ratio_dataset.py +0 -0
  297. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/ratio_dataset_test.py +0 -0
  298. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/ratio_dataset_tvresize.py +0 -0
  299. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/ratio_dataset_tvresize_test.py +0 -0
  300. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/ratio_sampler.py +0 -0
  301. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/simple_dataset.py +0 -0
  302. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/strlmdb_dataset.py +0 -0
  303. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/data/text_lmdb_dataset.py +0 -0
  304. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/download/download_dataset.py +0 -0
  305. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/download/utils.py +0 -0
  306. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/download_example_images.py +0 -0
  307. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/engine/config.py +0 -0
  308. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/engine/trainer.py +0 -0
  309. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/eval_det.py +0 -0
  310. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/eval_rec.py +0 -0
  311. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/eval_rec_all_ch.py +0 -0
  312. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/eval_rec_all_en.py +0 -0
  313. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/eval_rec_all_long.py +0 -0
  314. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/eval_rec_all_long_simple.py +0 -0
  315. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/export_rec.py +0 -0
  316. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/infer/onnx_engine.py +0 -0
  317. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/infer/predict_rec.py +0 -0
  318. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/infer/utility.py +0 -0
  319. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/infer_doc.py +0 -0
  320. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/infer_e2e.py +0 -0
  321. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/infer_e2e_parallel.py +0 -0
  322. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/to_markdown.py +0 -0
  323. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/toonnx.py +0 -0
  324. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/train_det.py +0 -0
  325. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/train_rec.py +0 -0
  326. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utility.py +0 -0
  327. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/EN_symbol_dict.txt +0 -0
  328. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/ckpt.py +0 -0
  329. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/ar_dict.txt +0 -0
  330. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/arabic_dict.txt +0 -0
  331. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/be_dict.txt +0 -0
  332. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/bg_dict.txt +0 -0
  333. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/chinese_cht_dict.txt +0 -0
  334. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/cyrillic_dict.txt +0 -0
  335. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/devanagari_dict.txt +0 -0
  336. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/en_dict.txt +0 -0
  337. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/fa_dict.txt +0 -0
  338. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/french_dict.txt +0 -0
  339. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/german_dict.txt +0 -0
  340. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/hi_dict.txt +0 -0
  341. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/it_dict.txt +0 -0
  342. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/japan_dict.txt +0 -0
  343. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/ka_dict.txt +0 -0
  344. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/kie_dict/xfund_class_list.txt +0 -0
  345. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/korean_dict.txt +0 -0
  346. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/latex_symbol_dict.txt +0 -0
  347. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/latin_dict.txt +0 -0
  348. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/layout_dict/layout_cdla_dict.txt +0 -0
  349. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/layout_dict/layout_publaynet_dict.txt +0 -0
  350. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/layout_dict/layout_table_dict.txt +0 -0
  351. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/mr_dict.txt +0 -0
  352. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/ne_dict.txt +0 -0
  353. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/oc_dict.txt +0 -0
  354. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/pu_dict.txt +0 -0
  355. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/rs_dict.txt +0 -0
  356. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/rsc_dict.txt +0 -0
  357. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/ru_dict.txt +0 -0
  358. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/spin_dict.txt +0 -0
  359. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/ta_dict.txt +0 -0
  360. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/table_dict.txt +0 -0
  361. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/table_master_structure_dict.txt +0 -0
  362. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/table_structure_dict.txt +0 -0
  363. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/table_structure_dict_ch.txt +0 -0
  364. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/te_dict.txt +0 -0
  365. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/ug_dict.txt +0 -0
  366. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/uk_dict.txt +0 -0
  367. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/ur_dict.txt +0 -0
  368. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict/xi_dict.txt +0 -0
  369. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/dict90.txt +0 -0
  370. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/e2e_metric/Deteval.py +0 -0
  371. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/e2e_metric/polygon_fast.py +0 -0
  372. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/e2e_utils/extract_batchsize.py +0 -0
  373. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/e2e_utils/extract_textpoint_fast.py +0 -0
  374. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/e2e_utils/extract_textpoint_slow.py +0 -0
  375. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/e2e_utils/pgnet_pp_utils.py +0 -0
  376. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/e2e_utils/visual.py +0 -0
  377. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/en_dict.txt +0 -0
  378. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/gen_label.py +0 -0
  379. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/ic15_dict.txt +0 -0
  380. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/logging.py +0 -0
  381. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/opendoc_onnx_utils/utils.py +0 -0
  382. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/poly_nms.py +0 -0
  383. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/ppocr_keys_v1.txt +0 -0
  384. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/stats.py +0 -0
  385. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/utility.py +0 -0
  386. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr/tools/utils/visual.py +0 -0
  387. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr_python.egg-info/dependency_links.txt +0 -0
  388. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr_python.egg-info/entry_points.txt +0 -0
  389. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr_python.egg-info/not-zip-safe +0 -0
  390. {openocr_python-0.1.2 → openocr-python-0.1.4}/openocr_python.egg-info/top_level.txt +0 -0
  391. {openocr_python-0.1.2 → openocr-python-0.1.4}/setup.cfg +0 -0
  392. {openocr_python-0.1.2 → openocr-python-0.1.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.1
2
2
  Name: openocr-python
3
- Version: 0.1.2
3
+ Version: 0.1.4
4
4
  Summary: Accurate and Efficient General OCR System
5
5
  Home-page: https://github.com/Topdu/OpenOCR
6
6
  Author: OCR Team, FVL Lab
@@ -26,34 +26,11 @@ Classifier: Topic :: Scientific/Engineering :: Image Recognition
26
26
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
27
  Requires-Python: >=3.8
28
28
  Description-Content-Type: text/markdown
29
- License-File: LICENSE
30
- Requires-Dist: numpy
31
- Requires-Dist: opencv-python
32
- Requires-Dist: Pillow
33
- Requires-Dist: pyyaml
34
- Requires-Dist: tqdm
35
- Requires-Dist: rapidfuzz
36
- Requires-Dist: pyclipper
37
- Requires-Dist: pydantic
38
- Requires-Dist: shapely
39
- Requires-Dist: huggingface-hub
40
- Requires-Dist: modelscope
41
- Requires-Dist: onnxruntime
42
29
  Provides-Extra: onnx-gpu
43
- Requires-Dist: onnxruntime-gpu; extra == "onnx-gpu"
44
30
  Provides-Extra: pytorch
45
- Requires-Dist: torch; extra == "pytorch"
46
- Requires-Dist: torchvision; extra == "pytorch"
47
31
  Provides-Extra: gradio
48
- Requires-Dist: gradio; extra == "gradio"
49
32
  Provides-Extra: all
50
- Requires-Dist: torch; extra == "all"
51
- Requires-Dist: torchvision; extra == "all"
52
- Requires-Dist: gradio; extra == "all"
53
- Dynamic: author
54
- Dynamic: home-page
55
- Dynamic: license-file
56
- Dynamic: requires-python
33
+ License-File: LICENSE
57
34
 
58
35
  # OpenOCR: An Open-Source Toolkit for General-OCR Research and Applications
59
36
 
@@ -63,7 +40,8 @@ Visit: https://github.com/Topdu/OpenOCR
63
40
 
64
41
  ## Recent Updates
65
42
 
66
- - **0.1.0**: Use a unified interface for OCR, Document Parsing, and Unirec
43
+ - **0.1.4**: Support the PDF file as an input; Parallel recognition of document elements; Add skill document
44
+ - **0.1.3**: Use a unified interface for OCR, Document Parsing, and Unirec
67
45
  - **0.0.10**: Remove OpenCV version restrictions.
68
46
  - **0.0.9**: Fixing torch inference bug.
69
47
  - **0.0.8**: Automatic Downloading ONNX model.
@@ -75,7 +53,7 @@ Visit: https://github.com/Topdu/OpenOCR
75
53
 
76
54
  ```bash
77
55
  # Install from PyPI (recommended)
78
- pip install openocr-python==0.1.2
56
+ pip install openocr-python==0.1.4
79
57
 
80
58
  # Or install from source
81
59
  git clone https://github.com/Topdu/OpenOCR.git
@@ -6,7 +6,8 @@ Visit: https://github.com/Topdu/OpenOCR
6
6
 
7
7
  ## Recent Updates
8
8
 
9
- - **0.1.0**: Use a unified interface for OCR, Document Parsing, and Unirec
9
+ - **0.1.4**: Support the PDF file as an input; Parallel recognition of document elements; Add skill document
10
+ - **0.1.3**: Use a unified interface for OCR, Document Parsing, and Unirec
10
11
  - **0.0.10**: Remove OpenCV version restrictions.
11
12
  - **0.0.9**: Fixing torch inference bug.
12
13
  - **0.0.8**: Automatic Downloading ONNX model.
@@ -18,7 +19,7 @@ Visit: https://github.com/Topdu/OpenOCR
18
19
 
19
20
  ```bash
20
21
  # Install from PyPI (recommended)
21
- pip install openocr-python==0.1.2
22
+ pip install openocr-python==0.1.4
22
23
 
23
24
  # Or install from source
24
25
  git clone https://github.com/Topdu/OpenOCR.git
@@ -13,7 +13,7 @@ sys.path.insert(0, os.path.abspath(os.path.join(__dir__, '..')))
13
13
  # from .tools.infer_doc_onnx import OpenDocONNX
14
14
  from .openocr import OpenOCR, main
15
15
 
16
- __version__ = '0.1.1'
16
+ __version__ = '0.1.4'
17
17
 
18
18
  # Lazy import for demo interfaces to avoid initialization on import
19
19
  def launch_openocr_demo(*args, **kwargs):
@@ -69,6 +69,7 @@ class OpenOCR:
69
69
  use_layout_detection: bool = True,
70
70
  use_chart_recognition: bool = True,
71
71
  auto_download: bool = True,
72
+ max_parallel_blocks: int = 4,
72
73
  ):
73
74
  """
74
75
  Initialize OpenOCR unified interface.
@@ -99,6 +100,7 @@ class OpenOCR:
99
100
  use_layout_detection: Whether to use layout detection
100
101
  use_chart_recognition: Whether to recognize charts
101
102
  auto_download: Whether to auto-download missing models
103
+ max_parallel_blocks: Maximum number of blocks to process in parallel for VLM recognition (doc task only, default: 4)
102
104
  """
103
105
  self.task = task.lower()
104
106
  self.model = None
@@ -157,7 +159,8 @@ class OpenOCR:
157
159
  layout_threshold=layout_threshold,
158
160
  use_layout_detection=use_layout_detection,
159
161
  use_chart_recognition=use_chart_recognition,
160
- auto_download=auto_download
162
+ auto_download=auto_download,
163
+ max_parallel_blocks=max_parallel_blocks,
161
164
  )
162
165
 
163
166
  logger.info(f"✅ OpenOCR initialized successfully for task: {self.task}")
@@ -211,12 +214,12 @@ class OpenOCR:
211
214
 
212
215
  For 'unirec' task:
213
216
  Args:
214
- image_path: Path to image
217
+ image_path: Path to image or PDF file
215
218
  max_length: Maximum generation length
216
219
 
217
220
  For 'doc' task:
218
221
  Args:
219
- image_path: Path to image
222
+ image_path: Path to image or PDF file
220
223
  layout_threshold: Layout detection threshold
221
224
  max_length: Maximum generation length
222
225
  merge_layout_blocks: Whether to merge layout blocks
@@ -239,44 +242,59 @@ class OpenOCR:
239
242
  elif self.task == 'doc':
240
243
  return self._call_doc(*args, **kwargs)
241
244
 
242
- def _call_det(self, image_path, **kwargs):
245
+ def _call_det(self, image_path=None, **kwargs):
243
246
  """Call detection task"""
244
247
  return self.model(img_path=image_path, **kwargs)
245
248
 
246
- def _call_rec(self, image_path, batch_num=1, **kwargs):
249
+ def _call_rec(self, image_path=None, batch_num=1, **kwargs):
247
250
  """Call recognition task"""
248
251
  return self.model(img_path=image_path, batch_num=batch_num, **kwargs)
249
252
 
250
- def _call_ocr(self, image_path, **kwargs):
253
+ def _call_ocr(self, image_path=None, **kwargs):
251
254
  """Call OCR task"""
252
255
  return self.model(img_path=image_path, **kwargs)
253
256
 
254
- def _call_unirec(self, image_path, max_length=2048, **kwargs):
255
- """Call UniRec task"""
257
+ def _call_unirec(self, image_path=None, max_length=2048, **kwargs):
258
+ """Call UniRec task (supports image and PDF input)"""
256
259
  return self.model(img_path=image_path, max_length=max_length, **kwargs)
257
260
 
258
- def _call_doc(self, image_path, **kwargs):
259
- """Call Doc task"""
261
+ def _call_doc(self, image_path=None, **kwargs):
262
+ """Call Doc task (supports image and PDF input)"""
260
263
  return self.model(img_path=image_path, **kwargs)
261
264
 
262
265
  # Additional methods for doc task
263
- def save_to_json(self, result: Dict, output_path: str):
264
- """Save doc task results to JSON (only for doc task)"""
266
+ def save_to_json(self, result, output_path: str):
267
+ """Save doc task results to JSON (only for doc task).
268
+ Supports both single result dict and list of results (from PDF)."""
265
269
  if self.task != 'doc':
266
270
  raise RuntimeError("save_to_json is only available for 'doc' task")
267
- return self.model.save_to_json(result, output_path)
268
-
269
- def save_to_markdown(self, result: Dict, output_path: str):
270
- """Save doc task results to Markdown (only for doc task)"""
271
+ if isinstance(result, list):
272
+ for page_result in result:
273
+ self.model.save_to_json(page_result, output_path)
274
+ else:
275
+ return self.model.save_to_json(result, output_path)
276
+
277
+ def save_to_markdown(self, result, output_path: str):
278
+ """Save doc task results to Markdown (only for doc task).
279
+ Supports both single result dict and list of results (from PDF)."""
271
280
  if self.task != 'doc':
272
281
  raise RuntimeError("save_to_markdown is only available for 'doc' task")
273
- return self.model.save_to_markdown(result, output_path)
274
-
275
- def save_visualization(self, result: Dict, output_path: str):
276
- """Save doc task visualization (only for doc task)"""
282
+ if isinstance(result, list):
283
+ for page_result in result:
284
+ self.model.save_to_markdown(page_result, output_path)
285
+ else:
286
+ return self.model.save_to_markdown(result, output_path)
287
+
288
+ def save_visualization(self, result, output_path: str):
289
+ """Save doc task visualization (only for doc task).
290
+ Supports both single result dict and list of results (from PDF)."""
277
291
  if self.task != 'doc':
278
292
  raise RuntimeError("save_visualization is only available for 'doc' task")
279
- return self.model.save_visualization(result, output_path)
293
+ if isinstance(result, list):
294
+ for page_result in result:
295
+ self.model.save_visualization(page_result, output_path)
296
+ else:
297
+ return self.model.save_visualization(result, output_path)
280
298
 
281
299
 
282
300
  def main():
@@ -314,14 +332,14 @@ Examples:
314
332
  openocr --task unirec --input_path image.jpg --max_length 2048
315
333
 
316
334
  # Doc task (document OCR with layout)
317
- openocr --task doc --input_path document.jpg --save_markdown --save_json
335
+ openocr --task doc --input_path document.jpg --use_layout_detection --save_vis --save_json --save_markdown
318
336
 
319
337
  # Doc task with PDF input
320
- openocr --task doc --input_path document.pdf --save_markdown --save_json
338
+ openocr --task doc --input_path document.pdf --use_layout_detection --save_vis --save_json --save_markdown
321
339
 
322
340
  # Doc task with custom models
323
341
  openocr --task doc --input_path doc.jpg --layout_model path/to/layout.onnx \\
324
- --encoder_model path/to/encoder.onnx --decoder_model path/to/decoder.onnx
342
+ --encoder_model path/to/encoder.onnx --decoder_model path/to/decoder.onnx --use_layout_detection --save_vis --save_json --save_markdown
325
343
 
326
344
  # Launch OpenOCR Gradio demo
327
345
  openocr --task launch_openocr_demo --share
@@ -388,6 +406,7 @@ For more information, visit: https://github.com/Topdu/OpenOCR
388
406
  parser.add_argument('--use_layout_detection', action='store_true', help='[Doc] Use layout detection')
389
407
  parser.add_argument('--no_layout_detection', dest='use_layout_detection', action='store_false', help='[Doc] Disable layout detection')
390
408
  parser.add_argument('--use_chart_recognition', action='store_true', help='[Doc] Recognize charts')
409
+ parser.add_argument('--max_parallel_blocks', type=int, default=4, help='[Doc] Max parallel blocks for VLM recognition (default: 4)')
391
410
  parser.add_argument('--save_vis', action='store_true', help='[Doc] Save visualization')
392
411
  parser.add_argument('--save_json', action='store_true', help='[Doc] Save JSON results')
393
412
  parser.add_argument('--save_markdown', action='store_true', help='[Doc] Save Markdown results')
@@ -588,7 +607,7 @@ For more information, visit: https://github.com/Topdu/OpenOCR
588
607
  from tools.utils.utility import get_image_file_list
589
608
  img_list = get_image_file_list(args.input_path)
590
609
 
591
- logger.info(f'\nFound {len(img_list)} images in {args.input_path}')
610
+ logger.info(f'\nFound {len(img_list)} images/PDFs in {args.input_path}')
592
611
  logger.info(f'Output will be saved to: {args.output_path}')
593
612
  logger.info('=' * 80)
594
613
 
@@ -600,17 +619,29 @@ For more information, visit: https://github.com/Topdu/OpenOCR
600
619
  logger.info(f"\n[{idx + 1}/{len(img_list)}] Processing: {os.path.basename(img_path)}")
601
620
 
602
621
  try:
603
- result_text, generated_ids = openocr(
622
+ result = openocr(
604
623
  image_path=img_path,
605
624
  max_length=args.max_length
606
625
  )
607
626
 
608
- logger.info(f" Generated {len(generated_ids)} tokens")
609
- logger.info(f" Text: {result_text[:100]}..." if len(result_text) > 100 else f" Text: {result_text}")
610
-
611
627
  image_name = os.path.basename(img_path)
612
- result_dict = {'text': result_text}
613
- fout.write(f"{image_name}\t{json.dumps(result_dict, ensure_ascii=False)}\n")
628
+
629
+ # Handle PDF results (list of tuples) vs image results (single tuple)
630
+ if isinstance(result, list):
631
+ # PDF input: result is a list of (text, ids) tuples
632
+ logger.info(f" PDF with {len(result)} pages")
633
+ for page_idx, (page_text, page_ids) in enumerate(result):
634
+ logger.info(f" Page {page_idx + 1}: Generated {len(page_ids)} tokens")
635
+ logger.info(f" Text: {page_text[:100]}..." if len(page_text) > 100 else f" Text: {page_text}")
636
+ result_dict = {'text': page_text, 'page': page_idx + 1}
637
+ fout.write(f"{image_name}_page{page_idx + 1}\t{json.dumps(result_dict, ensure_ascii=False)}\n")
638
+ else:
639
+ # Image input: result is a single (text, ids) tuple
640
+ result_text, generated_ids = result
641
+ logger.info(f" Generated {len(generated_ids)} tokens")
642
+ logger.info(f" Text: {result_text[:100]}..." if len(result_text) > 100 else f" Text: {result_text}")
643
+ result_dict = {'text': result_text}
644
+ fout.write(f"{image_name}\t{json.dumps(result_dict, ensure_ascii=False)}\n")
614
645
 
615
646
  except Exception as e:
616
647
  logger.error(f"Error processing {img_path}: {str(e)}")
@@ -633,7 +664,8 @@ For more information, visit: https://github.com/Topdu/OpenOCR
633
664
  layout_threshold=args.layout_threshold,
634
665
  use_layout_detection=args.use_layout_detection,
635
666
  use_chart_recognition=args.use_chart_recognition,
636
- auto_download=not args.no_auto_download
667
+ auto_download=not args.no_auto_download,
668
+ max_parallel_blocks=args.max_parallel_blocks,
637
669
  )
638
670
 
639
671
  from tools.utils.utility import get_image_file_list
@@ -655,14 +687,23 @@ For more information, visit: https://github.com/Topdu/OpenOCR
655
687
  max_length=args.max_length
656
688
  )
657
689
 
658
- if args.save_vis:
659
- openocr.save_visualization(result, args.output_path)
660
-
661
- if args.save_json:
662
- openocr.save_to_json(result, args.output_path)
663
-
664
- if args.save_markdown:
665
- openocr.save_to_markdown(result, args.output_path)
690
+ # Handle PDF results (list of dicts) vs image results (single dict)
691
+ if isinstance(result, list):
692
+ logger.info(f" PDF with {len(result)} pages")
693
+ for page_result in result:
694
+ if args.save_vis:
695
+ openocr.save_visualization(page_result, args.output_path)
696
+ if args.save_json:
697
+ openocr.save_to_json(page_result, args.output_path)
698
+ if args.save_markdown:
699
+ openocr.save_to_markdown(page_result, args.output_path)
700
+ else:
701
+ if args.save_vis:
702
+ openocr.save_visualization(result, args.output_path)
703
+ if args.save_json:
704
+ openocr.save_to_json(result, args.output_path)
705
+ if args.save_markdown:
706
+ openocr.save_to_markdown(result, args.output_path)
666
707
 
667
708
  except Exception as e:
668
709
  logger.error(f"Error processing {img_path}: {str(e)}")
@@ -48,9 +48,12 @@ def check_and_download_model(model_name: str, url: str):
48
48
  if os.path.exists(model_name):
49
49
  return model_name
50
50
 
51
+ # Strip leading './' from model_name to get a clean filename
52
+ clean_name = model_name.lstrip('./')
53
+
51
54
  # 固定缓存路径为用户主目录下的 ".cache/openocr"
52
55
  cache_dir = Path.home() / '.cache' / 'openocr'
53
- model_path = cache_dir / model_name
56
+ model_path = cache_dir / clean_name
54
57
 
55
58
  # 如果模型文件已存在,直接返回路径
56
59
  if model_path.exists():
@@ -71,7 +74,7 @@ def check_and_download_model(model_name: str, url: str):
71
74
  import shutil
72
75
  downloaded_path = model_file_download(
73
76
  model_id=modelscope_repo,
74
- file_path=model_name,
77
+ file_path=clean_name,
75
78
  cache_dir=str(cache_dir.parent)
76
79
  )
77
80
  # 复制文件到目标位置(处理符号链接)
@@ -90,7 +93,7 @@ def check_and_download_model(model_name: str, url: str):
90
93
  import shutil
91
94
  downloaded_path = hf_hub_download(
92
95
  repo_id=huggingface_repo,
93
- filename=model_name,
96
+ filename=clean_name,
94
97
  cache_dir=str(cache_dir.parent)
95
98
  )
96
99
  # 复制文件到目标位置(HuggingFace 返回的可能是符号链接)