paddleocr自定义数据集标注图片 识别部分的图片自动裁剪

1.问题

PaddleOCR大体分为两部分,文本检测和文本识别。由于是自定义的数据集,因此不得不对样本图片进行标注。去年楼主采用的的是labelme,然后把labelme标注的json格式转化为paddle文本检测需要的标注格式。
在这里插入图片描述
下面是去年的帖子:
https://blog.csdn.net/weixin_44996884/article/details/107781747

今年发现paddleocr2.0增加了好多功能,开发出了半自动标注工具,可以直接转化为txt,就省去了之间的步骤。瞬间感觉对开发者,都是满满的爱。

图像标注完成,但是识别部分需要把识别的字符图片给提取出来,如果手动剪切的话,实在是太麻烦了,因此,自己写了一个脚本,根据之前标注的Lable.txt中的信息,把那些需要识别的文字给自动剪切出来,方便进行文本识别训练。

2.解决方法

import os
from PIL import Image
import json

list01 = []
with open("Label.txt", 'r', encoding="utf-8") as f:
    data = f.readlines()
    for item in data:
        pic_name = item.strip().split("\t")[0].split("/")[1]
        json_info = item.strip().split("\t")[1]
        # print(pic_name)
        # ok = json.dumps(pic_name)
        ok = json.loads(json_info)
        points_1 = ok[0]["points"]
        transcription_1 = ok[0]["transcription"]
        points_2 = ok[1]["points"]
        transcription_2 = ok[1]["transcription"]
        box01 = (round(points_1[0][0], 0), round(points_1[0][1], 0), round(points_1[1][0], 0), round(points_1[2][1], 0))
        # print(box01)
        box02 = (round(points_2[0][0], 0), round(points_2[0][1], 0), round(points_2[1][0], 0), round(points_2[2][1], 0))
        # print(box02)
        list01.append((pic_name, box01, box02, transcription_1, transcription_2))

pic_path = r"D:\handle_problem\dataset\train"
save_path = r"D:\handle_problem\dataset\recognition"
for dirpath, dirnames, filenames in os.walk(pic_path):
    for filename in filenames:
        print(filename)
        for item in list01:
            if item[0] == filename:
                img = Image.open(os.path.join(pic_path, filename))
                box01 = item[1]
                box02 = item[2]
                img01 = img.crop(box01)
                img02 = img.crop(box02)
                img01.save(os.path.join(save_path, filename.split(".")[0] + "_0_" + item[3] + ".jpg"))
                img02.save(os.path.join(save_path, filename.split(".")[1] + "_1_" + item[4] + ".jpg"))

其中代码第一段主要是根据之前的标注信息,进行了相关的信息的整理。代码的第二段主要利用PIL库,对图片进行剪切,算法没有进行优化,复杂度很高,如果有好的意见,欢迎提出。

结果展示:
在这里插入图片描述

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值