Skip to content

在服务端成功部署RPC,但是客户端调用OCR识别就会报错 #148

Description

@Lewis456

服务端环境:

  •     Ubuntu 22.04
    
  •     python3.10
    
  •     paddleocr 2.6
    
  •     paddlepaddle 2.6.1
    
  •     numpy 1.23
    

报错如下:
xmlrpc.client.Fault: <Fault 1: "<class 'AssertionError'>:ocr_version must in ['PP-OCR', 'PP-OCRv2', 'PP-OCRv3'], but get PP-OCRv4">

发现 /site-packages/pylinuxauto/ocr/server.py 中
def paddle_ocr(pic_path, lang):
ocr = PaddleOCR(use_angle_cls=True, lang=lang, ocr_version="PP-OCRv4")
result = ocr.ocr(pic_path, cls=True)
return result

修改为:
def paddle_ocr(pic_path, lang):
from paddleocr import PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang=lang, ocr_version="PP-OCRv3")
result = ocr.ocr(pic_path, cls=True)

# 修正结构:把 [box, (text, score)] 封装成 tuple
cleaned = []
for line in result:
    one_line = []
    for i in range(0, len(line), 2):
        box = line[i]
        info = line[i + 1]
        text, score = info[:2]
        one_line.append([box, [text, score]])
    cleaned.append(one_line)
return cleaned

这段修改是为了把 PaddleOCR 返回的扁平 [box, info] 数据结构,转换成 pylinuxauto 能正确解析的嵌套 [[box, [text, score]]] 格式,避免解包错误。客户端成功识别文字,并返回坐标。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions