PaddleOCR文字检测模型训练

PaddleOCR文字检测模型训练本文档主要介绍PaddleOCR中文字检测模型的训练、评估及测试。数据准备自标注数据将所有训练图片放在icdar_c4_train_imgs文件夹下,所有测试图片放在ch4_test_images目录下,以免多次标注产生多次修改代码问题。将所有图片格式统一改成.jpg或者统一改成.png,目标为图片保持统一格式。将标注生成的XML文件放在一个目录中,训练数据XML和测试数据XML分开。然后执行下面的代码,把其中的xml_dir、train_file_nam
摘要由CSDN通过智能技术生成

PaddleOCR文字检测模型训练

本文档主要介绍PaddleOCR中文字检测模型的训练、评估及测试。

训练环境

  • CentOS 7
  • python3.7
  • paddlepaddle-gpu 2.0.0rc0

数据准备

自标注数据

  1. 将所有训练图片放在icdar_c4_train_imgs文件夹下,所有测试图片放在ch4_test_images目录下,以免多次标注产生多次修改代码问题。
  2. 将所有图片格式统一改成.jpg或者统一改成.png,目标为图片保持统一格式。
  3. 将标注生成的XML文件放在一个目录中,训练数据XML和测试数据XML分开。

然后执行下面的代码,把其中的xml_dir、train_file_name、train_file_label_name替换成自己的参数,执行完后会在train_file_name目录下生成一个train_file_label_name的txt文件,即为label文件。label文件与图片一起组成paddleOCR数据集。

#!/usr/local/env python3
# -*- coding: utf-8 -*-
"""
Auther: BurningSilence
date: 2020/11/16 下午5:13

DESC:
"""
import os
import xml.etree.ElementTree as et
import math


def edit_xml(xml_file, train_file_name):
    """
    VOC转换为PaddleOCR label
    :param xml_file:xml文件的路径
    :return: xml文件对应的label
    """
    x0 = y0 = x1 = y1 = x2 = y2 = x3 = y3 = 0
    tree = et.parse(xml_file)
    root = tree.getroot()
    root.attrib = None
    img_name = root.find("path").text.split("/")[-1]
    objs = root.findall('object')
    transcription_arr = []
    for obj in objs:
        dict_bak = {}
        points_arr = []
        obj_type = obj.find('type')
        name = obj.find('name')
        type = obj_type.text
        if type == 'bndbox':
            obj_bnd = obj.find('bndbox')
            xmin = int(float(obj_bnd.find('xmin').text))
            ymin = int(float(obj_bnd.find('ymin').text))
            xmax = int(float(obj_bnd.find('xmax').text))
            ymax = int(float(obj_bnd.find('ymax').text))

            x0, y0 = xmin, ymin
            x1, y1 = xmax, ymin
            x2, y2 = xmin, ymax
            x3, y3 = xmax, ymax
        elif type == 'robndbox':
            obj_bnd = obj.find('robndbox')
            cx = float(obj_bnd.find('cx').text)
            cy = float(obj_bnd.find('cy').text)
            w = float(obj_bnd.find('w').text)
            h = float(obj_bnd.find('h').text)
            angle = float
  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值