mirror of
https://github.com/RapidAI/RapidOCR.git
synced 2026-11-12 05:50:49 +08:00
[python] Update API name and return value
This commit is contained in:
1 parent
d48923a199
commit
9f35c60bc1
19 files changed
+149
-117
No files matched your search
+18
-12
@@ -42,10 +42,10 @@
|
||||
- onnxruntime和openvino调用方式如下:
|
||||
```python
|
||||
# 基于onnxruntime引擎推理
|
||||
from rapidocr_onnxruntime import TextSystem
|
||||
from rapidocr_onnxruntime import RapidOCR
|
||||
|
||||
# 基于openvino引擎推理
|
||||
from rapidocr_openvino import TextSystem
|
||||
from rapidocr_openvino import RapidOCR
|
||||
```
|
||||
- 关于openvino详细的使用方法,参见[openvino_readme](./rapidocr_openvino/README.md)。
|
||||
- 关于选择哪个推理引擎(onnxruntime 或者 openvino)?
|
||||
@@ -100,15 +100,18 @@
|
||||
3. 推理使用
|
||||
```python
|
||||
import cv2
|
||||
from rapidocr_onnxruntime import TextSystem
|
||||
# from rapidocr_openvino import TextSystem
|
||||
from rapidocr_onnxruntime import RapidOCR
|
||||
# from rapidocr_openvino import RapidOCR
|
||||
|
||||
text_sys = TextSystem('config.yaml')
|
||||
text_sys = RapidOCR('config.yaml')
|
||||
|
||||
img = cv2.imread('test_images/ch_en_num.jpg')
|
||||
|
||||
dt_boxes, rec_res = text_sys(img)
|
||||
print(rec_res)
|
||||
result = text_sys(img)
|
||||
print(result)
|
||||
|
||||
# result: [[文本框坐标], 文本内容, 置信度]
|
||||
# 示例:[[左上, 右上, 右下, 左下], '小明', '0.99']
|
||||
```
|
||||
|
||||
### 源码使用步骤
|
||||
@@ -182,18 +185,21 @@ print(rec_res)
|
||||
import cv2
|
||||
|
||||
# 基于onnxruntime引擎推理
|
||||
from rapidocr_onnxruntime import TextSystem
|
||||
from rapidocr_onnxruntime import RapidOCR
|
||||
|
||||
# 基于openvino引擎推理
|
||||
# from rapidocr_openvino import TextSystem
|
||||
# from rapidocr_openvino import RapidOCR
|
||||
|
||||
text_sys = TextSystem('config.yaml')
|
||||
text_sys = RapidOCR('config.yaml')
|
||||
|
||||
image_path = r'test_images/det_images/ch_en_num.jpg'
|
||||
img = cv2.imread(image_path)
|
||||
|
||||
dt_boxes, rec_res = text_sys(img)
|
||||
print(rec_res)
|
||||
result = text_sys(img)
|
||||
print(result)
|
||||
|
||||
# result: [[文本框坐标], 文本内容, 置信度]
|
||||
# 示例:[[左上, 右上, 右下, 左下], '小明', '0.99']
|
||||
```
|
||||
- 直接运行`test_demo.py`,可直接可视化查看结果。
|
||||
```bash
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# @Author: SWHL
|
||||
# @Contact: liekkaskono@163.com
|
||||
from .rapid_ocr_api import TextSystem
|
||||
from .rapid_ocr_api import RapidOCR
|
||||
@@ -14,9 +14,9 @@ root_dir = Path(__file__).resolve().parent
|
||||
sys.path.append(str(root_dir))
|
||||
|
||||
|
||||
class TextSystem(object):
|
||||
class RapidOCR(object):
|
||||
def __init__(self, config_path):
|
||||
super(TextSystem).__init__()
|
||||
super(RapidOCR).__init__()
|
||||
if not Path(config_path).exists():
|
||||
raise FileExistsError(f'{config_path} does not exist!')
|
||||
|
||||
@@ -72,7 +72,9 @@ class TextSystem(object):
|
||||
|
||||
filter_boxes, filter_rec_res = self.filter_boxes_rec_by_score(dt_boxes,
|
||||
rec_res)
|
||||
return filter_boxes, filter_rec_res
|
||||
fina_result = [[dt.tolist(), rec[0], str(rec[1])]
|
||||
for dt, rec in zip(filter_boxes, filter_rec_res)]
|
||||
return fina_result
|
||||
|
||||
@staticmethod
|
||||
def read_yaml(yaml_path):
|
||||
@@ -155,7 +157,7 @@ class TextSystem(object):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
text_sys = TextSystem('config.yaml')
|
||||
text_sys = RapidOCR('config.yaml')
|
||||
|
||||
import cv2
|
||||
img = cv2.imread('resources/test_images/det_images/ch_en_num.jpg')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# @Author: SWHL
|
||||
# @Contact: liekkaskono@163.com
|
||||
from .rapid_ocr_api import TextSystem
|
||||
from .rapid_ocr_api import RapidOCR
|
||||
@@ -1,5 +1,6 @@
|
||||
# !/usr/bin/env python
|
||||
# -*- encoding: utf-8 -*-
|
||||
# @Author: SWHL
|
||||
# @Contact: liekkaskono@163.com
|
||||
import copy
|
||||
import importlib
|
||||
import sys
|
||||
@@ -13,11 +14,12 @@ root_dir = Path(__file__).resolve().parent
|
||||
sys.path.append(str(root_dir))
|
||||
|
||||
|
||||
class TextSystem(object):
|
||||
class RapidOCR(object):
|
||||
def __init__(self, config_path):
|
||||
super(TextSystem).__init__()
|
||||
super(RapidOCR).__init__()
|
||||
if not Path(config_path).exists():
|
||||
raise FileExistsError(f'{config_path} does not exist!')
|
||||
|
||||
config = self.read_yaml(config_path)
|
||||
|
||||
global_config = config['Global']
|
||||
@@ -60,7 +62,7 @@ class TextSystem(object):
|
||||
img_crop_list = self.get_crop_img_list(img, dt_boxes)
|
||||
|
||||
if self.use_angle_cls:
|
||||
img_crop_list, angle_list, elapse = self.text_cls(img_crop_list)
|
||||
img_crop_list, _, elapse = self.text_cls(img_crop_list)
|
||||
if self.print_verbose:
|
||||
print(f'cls num: {len(img_crop_list)}, elapse: {elapse}')
|
||||
|
||||
@@ -70,7 +72,9 @@ class TextSystem(object):
|
||||
|
||||
filter_boxes, filter_rec_res = self.filter_boxes_rec_by_score(dt_boxes,
|
||||
rec_res)
|
||||
return filter_boxes, filter_rec_res
|
||||
fina_result = [[dt.tolist(), rec[0], str(rec[1])]
|
||||
for dt, rec in zip(filter_boxes, filter_rec_res)]
|
||||
return fina_result
|
||||
|
||||
@staticmethod
|
||||
def read_yaml(yaml_path):
|
||||
@@ -153,7 +157,7 @@ class TextSystem(object):
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
text_sys = TextSystem('config.yaml')
|
||||
text_sys = RapidOCR('config.yaml')
|
||||
|
||||
import cv2
|
||||
img = cv2.imread('resources/test_images/det_images/ch_en_num.jpg')
|
||||
|
||||
@@ -45,7 +45,7 @@ version_num = version_add_one(latest_version)
|
||||
setuptools.setup(
|
||||
name=module_name,
|
||||
version=version_num,
|
||||
platforms="Windows & Linux & Mac",
|
||||
platforms="Any",
|
||||
description="RapidOCR",
|
||||
long_description=get_readme(),
|
||||
long_description_content_type='text/markdown',
|
||||
@@ -54,7 +54,7 @@ setuptools.setup(
|
||||
url="https://github.com/RapidAI/RapidOCR",
|
||||
license='Apache-2.0',
|
||||
include_package_data=True,
|
||||
install_requires=["pyclipper>=1.2.1", "onnxruntime",
|
||||
install_requires=["pyclipper>=1.2.1", "onnxruntime>=1.7.0",
|
||||
"opencv_python>=4.5.1.48", "numpy>=1.19.3",
|
||||
"six>=1.15.0", "Shapely>=1.7.1"],
|
||||
package_dir={'': module_name},
|
||||
@@ -62,4 +62,10 @@ setuptools.setup(
|
||||
keywords=[
|
||||
'ocr text_detection text_recognition db onnxruntime paddleocr openvino'
|
||||
],
|
||||
classifiers=[
|
||||
'Programming Language :: Python :: 3.6',
|
||||
'Programming Language :: Python :: 3.7',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
]
|
||||
)
|
||||
@@ -45,7 +45,7 @@ version_num = version_add_one(latest_version)
|
||||
setuptools.setup(
|
||||
name=module_name,
|
||||
version=version_num,
|
||||
platforms="Windows & Linux & Mac",
|
||||
platforms="Any",
|
||||
description="RapidOCR",
|
||||
long_description=get_readme(),
|
||||
long_description_content_type='text/markdown',
|
||||
@@ -63,4 +63,10 @@ setuptools.setup(
|
||||
keywords=[
|
||||
'ocr text_detection text_recognition db onnxruntime paddleocr openvino'
|
||||
],
|
||||
classifiers=[
|
||||
'Programming Language :: Python :: 3.6',
|
||||
'Programming Language :: Python :: 3.7',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: 3.9',
|
||||
]
|
||||
)
|
||||
+10
-12
@@ -9,8 +9,8 @@ import cv2
|
||||
import numpy as np
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
|
||||
from rapidocr_onnxruntime import TextSystem
|
||||
# from rapidocr_openvino import TextSystem
|
||||
from rapidocr_onnxruntime import RapidOCR
|
||||
# from rapidocr_openvino import RapidOCR
|
||||
|
||||
|
||||
def draw_ocr_box_txt(image, boxes, txts, font_path,
|
||||
@@ -27,7 +27,7 @@ def draw_ocr_box_txt(image, boxes, txts, font_path,
|
||||
draw_left = ImageDraw.Draw(img_left)
|
||||
draw_right = ImageDraw.Draw(img_right)
|
||||
for idx, (box, txt) in enumerate(zip(boxes, txts)):
|
||||
if scores is not None and scores[idx] < text_score:
|
||||
if scores is not None and float(scores[idx]) < text_score:
|
||||
continue
|
||||
|
||||
color = (random.randint(0, 255),
|
||||
@@ -69,12 +69,11 @@ def draw_ocr_box_txt(image, boxes, txts, font_path,
|
||||
return np.array(img_show)
|
||||
|
||||
|
||||
def visualize(image_path, boxes, rec_res, font_path="resources/fonts/FZYTK.TTF"):
|
||||
def visualize(image_path, result, font_path="resources/fonts/FZYTK.TTF"):
|
||||
image = Image.open(image_path)
|
||||
txts = [rec_res[i][0] for i in range(len(rec_res))]
|
||||
scores = [rec_res[i][1] for i in range(len(rec_res))]
|
||||
boxes, txts, scores = list(zip(*result))
|
||||
|
||||
draw_img = draw_ocr_box_txt(image, boxes,
|
||||
draw_img = draw_ocr_box_txt(image, np.array(boxes),
|
||||
txts, font_path,
|
||||
scores,
|
||||
text_score=0.5)
|
||||
@@ -89,12 +88,11 @@ def visualize(image_path, boxes, rec_res, font_path="resources/fonts/FZYTK.TTF")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
text_sys = TextSystem('config.yaml')
|
||||
text_sys = RapidOCR('config.yaml')
|
||||
|
||||
image_path = 'test_images/ch_en_num.jpg'
|
||||
img = cv2.imread(image_path)
|
||||
dt_boxes, rec_res = text_sys(img)
|
||||
print(rec_res)
|
||||
result = text_sys(img)
|
||||
print(result)
|
||||
|
||||
visualize(image_path, dt_boxes, rec_res,
|
||||
font_path='resources/fonts/FZYTK.TTF')
|
||||
visualize(image_path, result, font_path='resources/fonts/FZYTK.TTF')
|
||||
@@ -11,7 +11,7 @@ cur_dir = Path(__file__).resolve().parent
|
||||
sys.path.append(str(cur_dir.parent.parent))
|
||||
|
||||
import cv2
|
||||
from rapidocr_onnxruntime import TextSystem
|
||||
from rapidocr_onnxruntime import RapidOCR
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
@@ -20,7 +20,7 @@ if __name__ == '__main__':
|
||||
args = parser.parse_args()
|
||||
|
||||
yaml_path = cur_dir / args.yaml_path
|
||||
text_sys = TextSystem(yaml_path)
|
||||
text_sys = RapidOCR(yaml_path)
|
||||
|
||||
image_dir = cur_dir / 'test_images_benchmark'
|
||||
if not image_dir.exists():
|
||||
@@ -33,7 +33,7 @@ if __name__ == '__main__':
|
||||
img = cv2.imread(str(image_path))
|
||||
|
||||
start_time = time.time()
|
||||
dt_boxes, rec_res = text_sys(img)
|
||||
result = text_sys(img)
|
||||
elapse = time.time() - start_time
|
||||
|
||||
cost_time_list.append(elapse)
|
||||
|
||||
Reference in new issue
Block a user