热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PaddleOCR二次全流程——4.使用PPOCRLabel标注数据

在PaddleOCR的FAQ集合中没有看到一个与PPOCRLabel相关的问题,同时这个工具发布时间也很新,2020年12月左右发布的,尝

在PaddleOCR的FAQ集合中没有看到一个与PPOCRLabel相关的问题,同时这个工具发布时间也很新,2020年12月左右发布的,尝试一下新事物,但是不要抱太大的希望。

1. 安装

官方说明文档网站:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.0/PPOCRLabel/README_ch.md

不对安装详细过程作说明,只说遇到的两个坑



1.1 报错:ImportError: cannot import name 'inference' from 'paddle'

按照官方文档的安装一遍之后,报错:ImportError: cannot import name 'inference' from 'paddle',根据以下回答:

  • https://github.com/PaddlePaddle/PaddleOCR/issues/1592
    在这里插入图片描述
  • paddle 下没有 inference方法
    在这里插入图片描述
    我之前用的是以前的PaddlePaddle1.8.5版本,需要升级到2.0rc1版本,代码

python -m pip install paddlepaddle==2.0.1 -i https://mirror.baidu.com/pypi/simple

在这里插入图片描述

1.2 OSError: [WinError 126] 找不到指定的模块。

这个错误见过很多次了,由于shapely库导致的,去这里直接下载wheel文件手动安装。先卸载之前安装的,再安装新的就好了
在这里插入图片描述

2. 使用

切换到ppocrlabel文件夹中,运行

cd ./PPOCRLabel # 将目录切换到PPOCRLabel文件夹下
conda activate rl37 # (换成自己配置好的那个环境)
python PPOCRLabel.py --lang ch

在这里插入图片描述
可以看到运行的时候,其实会下载一些之前的预训练模型。然后就可以看到界面
在这里插入图片描述

  • 点击自动标注,等一会,图片界面就会出现标记框(会直接标记当前打开目录下的所有图片),右侧就会出现识别的结果和检测框位置。
  • 虽然界面好像丑了点,但是效果确实8错,(๑•̀ㅂ•́)و✧,👍👍👍👍,早知道就早点用了,哈哈。
  • 然后就自己手动调整不太对的框,然后重新编辑一下识别结果。
  • 可以在图片所在的文件夹(不是ppocrlabel程序所在的文件夹),看到自动标注后,产生了两个文件(除了Cache.cach),fileState.txt,Label.txt文件,根据下面注意中的说明,可以知道这些文件的用途。

注意:

  1. PPOCRLabel不支持对中文文件名的图片进行自动标注
  2. PPOCRLabel以文件夹为基本标记单位,打开待标记的图片文件夹后,不会在窗口栏中显示图片,而是在点击 “选择文件夹” 之后直接将文件夹下的图片导入到程序中。
  3. 图片状态表示本张图片用户是否手动保存过,未手动保存过即为 “X”,手动保存过为 “√”。点击 “自动标注”按钮后,PPOCRLabel不会对状态为 “√” 的图片重新标注。
  4. 点击“重新识别”后,模型会对图片中的识别结果进行覆盖。因此如果在此之前手动更改过识别结果,有可能在重新识别后产生变动。
  5. PPOCRLabel产生的文件放置于标记图片文件夹下,包括以下几种,请勿手动更改其中内容,否则会引起程序出现异常。

在这里插入图片描述
另外,标注完之后,可以ctrl+S,然后就会提示要不要报错,或者关闭程序界面的时候也会提示,也可以自己每标注完一张,点击右下角的确认
在这里插入图片描述
点击过确认后,这张图像在文件列表中的图像名前面的符号就会变成√(绿色的对勾)。

3. 关于标签文件

我的真实数据目前很少,只有6张图,但是每张图中的文字信息很密集,很多,所以标记文件内容也还是比较丰富,大致如下:
在这里插入图片描述

先是文件名称,然后是一个列表,列表中包括多个文本字典,字典的第一项是文字识别的结果(transcription),第二项是列表,矩形框四个顶点的位置,第三项是识别难度的分级结果。

所以如果单纯像进行识别任务的训练,可以在文件保存识别结果,然后会提示保存到了哪里,一般是当前选定的图片目录下新建一个叫crop_img的文件夹。
在这里插入图片描述
大致如下:
在这里插入图片描述
同时,还是在当前选定的图片目录下(不是crop_img目录中),会新产生一个rec_gt.txt的文件,这就是识别的标签文件,大致如下:
在这里插入图片描述
完全符合PaddleOCR模型训练的要求(可能文件名这些需要修改一下,直接python文件处理一下就好。)

4. 关于PPOCRLabel的主观评价
  • 之前一直是使用LabelImg或者是LabelMe的,这个PPOCRLabel没有ctrl+Z返回上一步,也没有ctrl+Y下一步
  • 界面丑了点
  • 自动识别挺好的,哈哈

推荐阅读
  • 深入解析Wget CVE-2016-4971漏洞的利用方法与安全防范措施
    ### 摘要Wget 是一个广泛使用的命令行工具,用于从 Web 服务器下载文件。CVE-2016-4971 漏洞涉及 Wget 在处理特定 HTTP 响应头时的缺陷,可能导致远程代码执行。本文详细分析了该漏洞的成因、利用方法以及相应的安全防范措施,包括更新 Wget 版本、配置防火墙规则和使用安全的 HTTP 头。通过这些措施,可以有效防止潜在的安全威胁。 ... [详细]
  • voc生成xml 代码
    目录 lxmlwindows安装 读取示例 可视化 生成示例 上面是代码,下面有调用示例 api调用代码,其实只有几行:这个生成代码也很简 ... [详细]
  • Android目录遍历工具 | AppCrawler自动化测试进阶(第二部分):个性化配置详解
    终于迎来了“足不出户也能为社会贡献力量”的时刻,但有追求的测试工程师绝不会让自己的生活变得乏味。与其在家消磨时光,不如利用这段时间深入研究和提升自己的技术能力,特别是对AppCrawler自动化测试工具的个性化配置进行详细探索。这不仅能够提高测试效率,还能为项目带来更多的价值。 ... [详细]
  • 求助高手:下载的压缩包中包含CMake文件,如何在Windows环境下使用已安装的CMake GUI进行运行?
    从GitHub仓库 `https://github.com/vonmax007/RobotSimulation` 下载的代码包含多种算法,其中算法1的文件目录中包含了CMake文件。为了在Windows环境下使用已安装的CMake GUI运行这些文件,需要先确保CMake已正确安装,并按照以下步骤操作:打开CMake GUI,设置源代码路径和构建路径,点击“Configure”配置项目,然后点击“Generate”生成构建文件。最后,在生成的构建目录中使用命令行或IDE进行编译和运行。 ... [详细]
  • 使用 Python 中的 Matplotlib Axes 获取标签方法详解 ... [详细]
  • jQuery Flot 数据可视化插件:高效绘制图表的专业工具
    jQuery Flot 是一款高效的数据可视化插件,专为绘制各种图表而设计。该工具支持丰富的图表类型和自定义选项,适用于多种应用场景。用户可以通过其官方网站获取示例代码和下载资源,以便快速上手和使用。 ... [详细]
  • 从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南
    从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南 ... [详细]
  • 本项目在Java Maven框架下,利用POI库实现了Excel数据的高效导入与导出功能。通过优化数据处理流程,提升了数据操作的性能和稳定性。项目已发布至GitHub,当前最新版本为0.0.5。该项目不仅适用于小型应用,也可扩展用于大型企业级系统,提供了灵活的数据管理解决方案。GitHub地址:https://github.com/83945105/holygrail,Maven坐标:`com.github.83945105:holygrail:0.0.5`。 ... [详细]
  • 本文介绍了如何通过掌握 IScroll 技巧来实现流畅的上拉加载和下拉刷新功能。首先,需要按正确的顺序引入相关文件:1. Zepto;2. iScroll.js;3. scroll-probe.js。此外,还提供了完整的代码示例,可在 GitHub 仓库中查看。通过这些步骤,开发者可以轻松实现高效、流畅的滚动效果,提升用户体验。 ... [详细]
  • 掌握PHP框架开发与应用的核心知识点:构建高效PHP框架所需的技术与能力综述
    掌握PHP框架开发与应用的核心知识点对于构建高效PHP框架至关重要。本文综述了开发PHP框架所需的关键技术和能力,包括但不限于对PHP语言的深入理解、设计模式的应用、数据库操作、安全性措施以及性能优化等方面。对于初学者而言,熟悉主流框架如Laravel、Symfony等的实际应用场景,有助于更好地理解和掌握自定义框架开发的精髓。 ... [详细]
  • 深入解析:使用C++实现Python字节数组(struct)的高效处理方法 ... [详细]
  • 本文详细介绍了如何在Linux系统中搭建51单片机的开发与编程环境,重点讲解了使用Makefile进行项目管理的方法。首先,文章指导读者安装SDCC(Small Device C Compiler),这是一个专为小型设备设计的C语言编译器,适合用于51单片机的开发。随后,通过具体的实例演示了如何配置Makefile文件,以实现代码的自动化编译与链接过程,从而提高开发效率。此外,还提供了常见问题的解决方案及优化建议,帮助开发者快速上手并解决实际开发中可能遇到的技术难题。 ... [详细]
  • 【前端开发】深入探讨 RequireJS 与性能优化策略
    随着前端技术的迅速发展,RequireJS虽然不再像以往那样吸引关注,但其在模块化加载方面的优势仍然值得深入探讨。本文将详细介绍RequireJS的基本概念及其作为模块加载工具的核心功能,并重点分析其性能优化策略,帮助开发者更好地理解和应用这一工具,提升前端项目的加载速度和整体性能。 ... [详细]
  • 利用PaddleSharp模块在C#中实现图像文字识别功能测试
    PaddleSharp 是 PaddleInferenceCAPI 的 C# 封装库,适用于 Windows (x64)、NVIDIA GPU 和 Linux (Ubuntu 20.04) 等平台。本文详细介绍了如何使用 PaddleSharp 在 C# 环境中实现图像文字识别功能,并进行了全面的功能测试,验证了其在多种硬件配置下的稳定性和准确性。 ... [详细]
  • 表面缺陷检测数据集综述及GitHub开源项目推荐
    本文综述了表面缺陷检测领域的数据集,并推荐了多个GitHub上的开源项目。通过对现有文献和数据集的系统整理,为研究人员提供了全面的资源参考,有助于推动该领域的发展和技术进步。 ... [详细]
author-avatar
淑圣承琦9_416
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有