文字识别后返回单字识别坐标
shiyutang opened this issue · 15 comments
任务已经完成
@shiyutang 此功能,如何使用?有对应的说明文档不?谢谢
-- 刚找到了 --return_word_box true,只是需安装最新2.6.1版本
paddleocr --image_dir ./11.jpg --use_angle_cls true --use_gpu false --return_word_box true
@shiyutang 此功能,如何使用?有对应的说明文档不?谢谢
-- 刚找到了 --return_word_box true,只是需安装最新2.6.1版本 paddleocr --image_dir ./11.jpg --use_angle_cls true --use_gpu false --return_word_box true
请问在 2.6.1 哪个子版本,试了都没看到 --return_word_box 这个参数
@shiyutang 此功能,如何使用?有对应的说明文档不?谢谢
-- 刚找到了 --return_word_box true,只是需安装最新2.6.1版本 paddleocr --image_dir ./11.jpg --use_angle_cls true --use_gpu false --return_word_box true请问在 2.6.1 哪个子版本,试了都没看到 --return_word_box 这个参数
你好 请问有办法了嘛 我也是想识别单个字符位置 请问老哥你实现了嘛
没有找到这个:unrecognized arguments: --return_word_box true
@gongdj 试试 main 分支的最新版本 pip install -e git+https://github.com/PaddlePaddle/PaddleOCR.git
,
paddleocr --image_dir=338306764-525d60c9-9383-4525-b707-dda104919b78.jpg --return_word_box=true
@GreatV 试了不行,我的依赖是:
(paddle_env) PS F:\github\PaddleOCR> pip list
Package Version
anyio 4.4.0
astor 0.8.1
attrdict 2.0.1
Babel 2.15.0
bce-python-sdk 0.9.14
beautifulsoup4 4.12.3
blinker 1.8.2
cachetools 5.3.3
certifi 2024.6.2
charset-normalizer 3.3.2
click 8.1.7
colorama 0.4.6
contourpy 1.1.1
cssselect 1.2.0
cssutils 2.11.1
cycler 0.12.1
Cython 3.0.10
decorator 5.1.1
et-xmlfile 1.1.0
exceptiongroup 1.2.1
fire 0.6.0
Flask 3.0.3
flask-babel 4.0.0
fonttools 4.53.0
future 1.0.0
h11 0.14.0
httpcore 1.0.5
httpx 0.27.0
idna 3.7
imageio 2.34.1
imgaug 0.4.0
importlib_metadata 7.1.0
importlib_resources 6.4.0
itsdangerous 2.2.0
Jinja2 3.1.4
kiwisolver 1.4.5
lazy_loader 0.4
lmdb 1.4.1
lxml 5.2.2
MarkupSafe 2.1.5
matplotlib 3.7.5
more-itertools 10.2.0
networkx 3.1
numpy 1.24.4
opencv-contrib-python 4.6.0.66
opencv-python 4.6.0.66
opencv-python-headless 4.10.0.82
openpyxl 3.1.3
opt-einsum 3.3.0
packaging 24.0
paddleocr 2.7.3
paddlepaddle 2.6.1
pandas 2.0.3
pdf2docx 0.5.8
pillow 10.3.0
pip 24.0
premailer 3.10.0
protobuf 3.20.2
psutil 5.9.8
pyclipper 1.3.0.post5
pycryptodome 3.20.0
PyMuPDF 1.24.5
PyMuPDFb 1.24.3
pyparsing 3.1.2
python-dateutil 2.9.0.post0
python-docx 1.1.2
pytz 2024.1
PyWavelets 1.4.1
PyYAML 6.0.1
rapidfuzz 3.9.3
rarfile 4.2
requests 2.32.3
scikit-image 0.21.0
scipy 1.10.1
setuptools 69.5.1
shapely 2.0.4
six 1.16.0
sniffio 1.3.1
soupsieve 2.5
termcolor 2.4.0
tifffile 2023.7.10
tqdm 4.66.4
typing_extensions 4.12.2
tzdata 2024.1
urllib3 2.2.1
visualdl 2.5.3
Werkzeug 3.0.3
wheel 0.43.0
zipp 3.19.2
@GreatV
命令是:
paddleocr --image_dir="D:\ocr\scan-1.png" --det_model_dir="F:\github\ocr_model\ch_PP-OCRv4_det_server_infer" --return_word_box=true --lang=ch
报错:paddleocr: error: unrecognized arguments: --return_word_box=true
报错:paddleocr: error: unrecognized arguments: --return_word_box=true
我用的代码也许你可以参考一下,2.8.0 现在2024-6-14的master分支。
from paddleocr import PaddleOCR, draw_ocr
ocr = PaddleOCR(use_angle_cls=False, lang="ch", return_word_box=True, use_gpu=False) # need to run only once to download and load model into memory
img_path = r'D:\projectTest\PaddleOCR\doc\imgs\11.jpg'
result = ocr.ocr(img_path, cls=True)
# ocr返回每个字的坐标和文本信息
for idx in range(len(result)):
res = result[idx]
for line in res:
print(line)
[[[26.0, 37.0], [304.0, 37.0], [304.0, 73.0], [26.0, 73.0]], ('纯臻营养护发素', 0.9946897625923157, [46.085826210826205, [['纯', '臻', '营', '养', '护', '发', '素']], [[3, 10, 16, 23, 30, 36, 43]], ['cn']])]
这个东西应该就是文字的偏移量[[3, 10, 16, 23, 30, 36, 43]],找了挺久才在这里看到。
话说PaddleOCR这个对象有哪些参数可以传啊,哪里有说明?
报错:paddleocr: error: unrecognized arguments: --return_word_box=true
我用的代码也许你可以参考一下,2.8.0 现在2024-6-14的master分支。
from paddleocr import PaddleOCR, draw_ocr ocr = PaddleOCR(use_angle_cls=False, lang="ch", return_word_box=True, use_gpu=False) # need to run only once to download and load model into memory img_path = r'D:\projectTest\PaddleOCR\doc\imgs\11.jpg' result = ocr.ocr(img_path, cls=True) # ocr返回每个字的坐标和文本信息 for idx in range(len(result)): res = result[idx] for line in res: print(line)
[[[26.0, 37.0], [304.0, 37.0], [304.0, 73.0], [26.0, 73.0]], ('纯臻营养护发素', 0.9946897625923157, [46.085826210826205, [['纯', '臻', '营', '养', '护', '发', '素']], [[3, 10, 16, 23, 30, 36, 43]], ['cn']])] 这个东西应该就是文字的偏移量[[3, 10, 16, 23, 30, 36, 43]],找了挺久才在这里看到。 话说PaddleOCR这个对象有哪些参数可以传啊,哪里有说明?
对着图片看了下,[[3, 10, 16, 23, 30, 36, 43]]这个不像偏移量,位置对不上
@Alanhzl 你好,你了解到这个数值代表的含义了吗?不知道这个怎么对应到像素的位置坐标
@Alanhzl 你好,你了解到这个数值代表的含义了吗?不知道这个怎么对应到像素的位置坐标
这个数值是CTC切片后的识别内容的位置,字符大概的位置:每个切片的宽度是(图片总宽width/46.085826210826205),然后乘[[3, 10, 16, 23, 30, 36, 43]]这里面的值,就是每一个字符相对文本行的位置。这个位置不是特别准确,如果要精确框出每一个字符的话是不行的,只能有个大概的位置。
还有这个46.085826210826205我不怎么能理解,这个是切片数* (wh_ratio / max_wh_ratio),为什么要乘这个值我不清楚。
@Alanhzl 你好,你了解到这个数值代表的含义了吗?不知道这个怎么对应到像素的位置坐标
这个数值是CTC切片后的识别内容的位置,字符大概的位置:每个切片的宽度是(图片总宽width/46.085826210826205),然后乘[[3, 10, 16, 23, 30, 36, 43]]这里面的值,就是每一个字符相对文本行的位置。这个位置不是特别准确,如果要精确框出每一个字符的话是不行的,只能有个大概的位置。 还有这个46.085826210826205我不怎么能理解,这个是切片数* (wh_ratio / max_wh_ratio),为什么要乘这个值我不清楚。
因为多batch处理时,会把图片按照max_wh_ratio进行pad,所以* (wh_ratio / max_wh_ratio)就相当于对应回原始图片宽度,这样用图片总宽width/46.085826210826205,就可以得到每个cell的宽度
细节:根据源码分析,这里提到的坐标,中文是中心坐标,而英文是左侧坐标。