V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
shiyuu
V2EX  ›  Python

求推荐 Python 好用的 ocr

  •  
  •   shiyuu · 9 天前 · 2151 次点击

    我每天都会用 python 脚本下载 cacti 的流量图进行保存 现在有额外的需求,就是要把所有的流量值都用文字记录起来。 试过 EasyOCR 、PaddleOCR 、百度的 baidu-aip 效果都不太理想 用同样的 ocr 同时试过连续识别 10 张,不是缺少数值,就是想要的关键字和值不在同一个元组里。 也就是 ORC 的结果比较乱,不在一个元组还能处理判断一下,但是缺少数值是最致命的

    24 条回复    2024-06-11 14:03:25 +08:00
    NoOneNoBody
        1
    NoOneNoBody  
       9 天前
    纯英文的不要用混合或者中文识别,直接用英文模组效果更好
    paopjian
        2
    paopjian  
       9 天前
    是不是你图太大了,直接裁切目标区域试试
    liewstar
        4
    liewstar  
       9 天前 via iPhone
    我用 CnOcr 帮你试了一下,就这张图来说,没有丢数值,识别出来的数值也是有规律的
    f165af34d4830eeb
        5
    f165af34d4830eeb  
       9 天前 via iPhone
    换个思路,python 调用 openai 的 api (
    shiyuu
        6
    shiyuu  
    OP
       8 天前
    重新用 easyocr 只导入英文获取了一遍,主要是 433 坐标左右的值我最重要的,6 月 7 日那天就都不出来。
    requests 下载到图片的大小分辨率都是统一的


    shiyuu
        7
    shiyuu  
    OP
       8 天前
    @liewstar 我试试 CnOcr 这个看看
    Hconk
        8
    Hconk  
       8 天前 via iPhone
    像这种固定位置的图裁切一下再识别就不需要考虑结构化的问题了,识别效果应该也有提升
    whileFalse
        9
    whileFalse  
       8 天前
    不能直接获取 cacti 的请求吗
    Sawyerhou
        10
    Sawyerhou  
       8 天前
    楼上说的有道理,只用英文,加裁剪,理论上这个图片识别难度不高。
    anubu
        11
    anubu  
       8 天前
    感觉有点像前两天在站里看到的 XY 问题,cacti 把数据画成图片,python 脚本从图片里读取数据,这种基于图片的数据传递方式似乎有点抽象。当然也有可能是有具体的业务场景需要,或者可以尝试抛一个更深的问题出来看看。
    shiyuu
        12
    shiyuu  
    OP
       8 天前
    @whileFalse 普通账号,只能看图,而且我试了没法下载图上的 csv ,需求就类似下面链接里的这样,只能通过 orc 来识别了
    https://www.cnblogs.com/choujin/p/11794163.html
    shiyuu
        13
    shiyuu  
    OP
       8 天前
    @anubu https://www.cnblogs.com/choujin/p/11794163.html
    其实就像链接里的这样,但是是普通账号只能看图,也没法下载 csv 表格,我就只能通过普通账户的 cookies ,用 response 专门下载那一张图进行保存
    shiyuu
        14
    shiyuu  
    OP
       8 天前
    我都已经把彩色转换成灰度图像了,但是图上 MAX 最大值的 7.34T 却没有识别出来,其他的倒是都识别了
    ZekeChin
        15
    ZekeChin  
       8 天前
    试试 paddleOCR ?
    kenvix
        16
    kenvix  
       8 天前
    这种专用任务可以考虑自己训练一个基于 YOLO 的专用识别模型。脚本都是现成的,很容易就搭起来了
    ZekeChin
        17
    ZekeChin  
       8 天前
    @ZekeChin 抱歉原文没看清,可以试试 MiniCPM-Llama3-V ,如果有 GPU 的话 q4 llama.cpp 部署 效率应该也不会太差。帮忙试了 OP 关注的值
    ZekeChin
        18
    ZekeChin  
       8 天前
    @kenvix YOLO 是做目标检测的吧?现在都可以做文本识别了吗,进化这么快
    lairdnote
        19
    lairdnote  
       8 天前
    这个是环形数据库 为什么不直接读数据库 要用 ocr 去识别呢
    shiyuu
        20
    shiyuu  
    OP
       8 天前
    我现在只能用最笨的办法,把图片裁剪到只剩下一个我需要的值,再进行 ocr ,目前已经 100%识别了。


    kenvix
        21
    kenvix  
       8 天前
    @ZekeChin #18 实际上你把文本也当作目标就行了。我在 19 年做过这样的事情。用 YOLO 的目的只是因为 YOLO 封装的好,基本不用写多少代码
    coolfan
        22
    coolfan  
       7 天前
    @shiyuu #20 我赞同
    HasanSabbah
        23
    HasanSabbah  
       7 天前
    paddle 都不稳定的话,那就 gpt4o 吧
    EndlessMemory
        24
    EndlessMemory  
       7 天前
    你这个肯定要裁剪后识别啊,如果识别效果还是不理想就考虑二值化
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3012 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:59 · PVG 19:59 · LAX 04:59 · JFK 07:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.