Back to Paddleocr

多语言模型

docs/version2.x/ppocr/blog/multi_languages.md

3.5.08.9 KB
Original Source

多语言模型

近期更新

  • 2022.5.8 更新PP-OCRv3版 多语言检测和识别模型,平均识别准确率提升5%以上。
  • 2021.4.9 支持80种语言的检测和识别
  • 2021.4.9 支持轻量高精度英文模型检测识别

PaddleOCR 旨在打造一套丰富、领先、且实用的OCR工具库,不仅提供了通用场景下的中英文模型,也提供了专门在英文场景下训练的模型, 和覆盖80个语言的小语种模型。

其中英文模型支持,大小写字母和常见标点的检测识别,并优化了空格字符的识别:

小语种模型覆盖了拉丁语系、阿拉伯语系、中文繁体、韩语、日语等等:

本文档将简要介绍小语种模型的使用方法。

1 安装

1.1 paddle 安装

bash
# cpu
pip install "paddlepaddle<=2.6"

# gpu
pip install "paddlepaddle-gpu<=2.6"

1.2 paddleocr package 安装

pip 安装

bash
pip install "paddleocr<3.0"

本地构建并安装

bash
python3 -m build
pip3 install dist/paddleocr-x.x.x-py3-none-any.whl # x.x.x是paddleocr的版本号

2 快速使用

2.1 命令行运行

查看帮助信息

bash
paddleocr -h
  • 整图预测(检测+识别)

Paddleocr目前支持80个语种,可以通过修改--lang参数进行切换,具体支持的语种可查看表格。

bash
paddleocr --image_dir doc/imgs_en/254.jpg --lang=en

结果是一个list,每个item包含了文本框,文字和识别置信度

text
[('PHO CAPITAL', 0.95723116), [[66.0, 50.0], [327.0, 44.0], [327.0, 76.0], [67.0, 82.0]]]
[('107 State Street', 0.96311164), [[72.0, 90.0], [451.0, 84.0], [452.0, 116.0], [73.0, 121.0]]]
[('Montpelier Vermont', 0.97389287), [[69.0, 132.0], [501.0, 126.0], [501.0, 158.0], [70.0, 164.0]]]
[('8022256183', 0.99810505), [[71.0, 175.0], [363.0, 170.0], [364.0, 202.0], [72.0, 207.0]]]
[('REG 07-24-201706:59 PM', 0.93537045), [[73.0, 299.0], [653.0, 281.0], [654.0, 318.0], [74.0, 336.0]]]
[('045555', 0.99346405), [[509.0, 331.0], [651.0, 325.0], [652.0, 356.0], [511.0, 362.0]]]
[('CT1', 0.9988654), [[535.0, 367.0], [654.0, 367.0], [654.0, 406.0], [535.0, 406.0]]]
......
  • 识别预测
bash
paddleocr --image_dir doc/imgs_words_en/word_308.png --det false --lang=en

结果是一个tuple,返回识别结果和识别置信度

text
(0.99879867, 'LITTLE')
  • 检测预测
bash
paddleocr --image_dir PaddleOCR/doc/imgs/11.jpg --rec false

结果是一个list,每个item只包含文本框

bash
[[26.0, 457.0], [137.0, 457.0], [137.0, 477.0], [26.0, 477.0]]
[[25.0, 425.0], [372.0, 425.0], [372.0, 448.0], [25.0, 448.0]]
[[128.0, 397.0], [273.0, 397.0], [273.0, 414.0], [128.0, 414.0]]
......

2.2 python 脚本运行

ppocr 也支持在python脚本中运行,便于嵌入到您自己的代码中 :

  • 整图预测(检测+识别)
python
from paddleocr import PaddleOCR, draw_ocr

# 同样也是通过修改 lang 参数切换语种
ocr = PaddleOCR(lang="korean") # 首次执行会自动下载模型文件
img_path = 'doc/imgs/korean_1.jpg '
result = ocr.ocr(img_path)
# 可通过参数控制单独执行识别、检测
# result = ocr.ocr(img_path, det=False) 只执行识别
# result = ocr.ocr(img_path, rec=False) 只执行检测
# 打印检测框和识别结果
for line in result:
    print(line)

# 可视化
from PIL import Image
image = Image.open(img_path).convert('RGB')
boxes = [line[0] for line in result]
txts = [line[1][0] for line in result]
scores = [line[1][1] for line in result]
im_show = draw_ocr(image, boxes, txts, scores, font_path='/path/to/PaddleOCR/doc/fonts/korean.ttf')
im_show = Image.fromarray(im_show)
im_show.save('result.jpg')

结果可视化:

ppocr 还支持方向分类, 更多使用方式请参考:whl包使用说明

3 自定义训练

ppocr 支持使用自己的数据进行自定义训练或finetune, 其中识别模型可以参考法语配置文件 修改训练数据路径、字典等参数。

详细数据准备、训练过程可参考:文本识别文本检测

假设已经准备好了训练数据,可根据以下步骤快速启动训练:

  • 修改配置文件

rec_french_lite_train.yml 为例:

yaml
Global:
  ...
  # 添加自定义字典,如修改字典请将路径指向新字典
  character_dict_path: ./ppocr/utils/dict/french_dict.txt
  ...
  # 识别空格
  use_space_char: True

...

Train:
  dataset:
    # 数据集格式,支持LMDBDataSet以及SimpleDataSet
    name: SimpleDataSet
    # 数据集路径
    data_dir: ./train_data/
    # 训练集标签文件
    label_file_list: ["./train_data/french_train.txt"]
    ...

Eval:
  dataset:
    # 数据集格式,支持LMDBDataSet以及SimpleDataSet
    name: SimpleDataSet
    # 数据集路径
    data_dir: ./train_data
    # 验证集标签文件
    label_file_list: ["./train_data/french_val.txt"]
    ...
  • 启动训练:
bash
# 下载预训练模型
wget https://paddleocr.bj.bcebos.com/dygraph_v2.0/multilingual/french_mobile_v2.0_rec_train.tar
tar -xf french_mobile_v2.0_rec_train.tar

#加载预训练模型 单卡训练
python3 tools/train.py -c configs/rec/rec_french_lite_train.yml -o Global.pretrained_model=french_mobile_v2.0_rec_train/best_accuracy

#加载预训练模型  多卡训练,通过--gpus参数指定卡号
python3 -m paddle.distributed.launch --gpus '0,1,2,3'  tools/train.py -c configs/rec/rec_french_lite_train.yml -o Global.pretrained_model=french_mobile_v2.0_rec_train/best_accuracy

更多功能如预测部署、数据标注等功能可以阅读完整的文档教程

4 预测部署

除了安装whl包进行快速预测,ppocr 也提供了多种预测部署方式,如有需求可阅读相关文档:

5 支持语种及缩写

语种描述缩写语种描述缩写
中文Chinese & Englishch保加利亚文Bulgarianbg
英文Englishen乌克兰文Ukranianuk
法文Frenchfr白俄罗斯文Belarusianbe
德文Germangerman泰卢固文Telugute
日文Japanesejapan阿巴扎文Abazaabq
韩文Koreankorean泰米尔文Tamilta
中文繁体Chinese Traditionalchinese_cht南非荷兰文Afrikaansaf
意大利文Italianit阿塞拜疆文Azerbaijaniaz
西班牙文Spanishes波斯尼亚文Bosnianbs
葡萄牙文Portuguesept捷克文Czechcs
俄罗斯文Russianru威尔士文Welshcy
阿拉伯文Arabicar丹麦文Danishda
印地文Hindihi爱沙尼亚文Estonianet
维吾尔Uyghurug爱尔兰文Irishga
波斯文Persianfa克罗地亚文Croatianhr
乌尔都文Urduur匈牙利文Hungarianhu
塞尔维亚文(latin)Serbian(latin)rs_latin印尼文Indonesianid
欧西坦文Occitanoc冰岛文Icelandicis
马拉地文Marathimr库尔德文Kurdishku
尼泊尔文Nepaline立陶宛文Lithuanianlt
塞尔维亚文(cyrillic)Serbian(cyrillic)rs_cyrillic拉脱维亚文Latvianlv
毛利文Maorimi达尔瓦文Dargwadar
马来文Malayms因古什文Ingushinh
马耳他文Maltesemt拉克文Laklbe
荷兰文Dutchnl莱兹甘文Lezghianlez
挪威文Norwegianno塔巴萨兰文Tabassarantab
波兰文Polishpl比尔哈文Biharibh
罗马尼亚文Romanianro迈蒂利文Maithilimai
斯洛伐克文Slovaksk昂加文Angikaang
斯洛文尼亚文Sloveniansl孟加拉文Bhojpuribho
阿尔巴尼亚文Albaniansq摩揭陀文Magahimah
瑞典文Swedishsv那格浦尔文Nagpursck
西瓦希里文Swahilisw尼瓦尔文Newarinew
塔加洛文Tagalogtl保加利亚文Goan Konkanigom
土耳其文Turkishtr梵文Sanskritsa
乌兹别克文Uzbekuz阿瓦尔文Avarava
越南文Vietnamesevi阿瓦尔文Avarava
蒙古文Mongolianmn阿迪赫文Adygheady
车臣文Chechenche巴利文Palipi
哈里亚纳语Haryanvibgc拉丁文Latinla