[python] Update API name and return value

This commit is contained in:
SWHL committed 2022-11-14 22:30:17 +08:00
1 parent d48923a199
commit 9f35c60bc1
19 files changed
+149 -117

No files matched your search

+18 -12
View File
@@ -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 -1
View File
@@ -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
+6 -4
View File
@@ -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 -1
View File
@@ -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
+10 -6
View File
@@ -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')
+8 -2
View File
@@ -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',
]
)
+7 -1
View File
@@ -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
View File
@@ -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')
+3 -3
View File
@@ -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)