使用PaddleOCR识别CCPD数据集中的车牌图片

1. 简介

  CCPD(Curated Car-Plate Detection)是一个用于车牌检测和识别的大型数据集,包含超过20万张图像和70万个车牌实例。

  PaddleOCR是百度开源的一款实用的多语种OCR工具,支持中英文数字组合识别、竖排文字识别等多种场景。它基于百度自研的深度学习模型开发,在多个公开数据集上取得了业界领先的识别效果。PaddleOCR具有快速高效、准确率高、支持多种语种、可配置化程度高等优点,可广泛应用于网络图像识别、文字识别、自动驾驶等多个领域。

2. 环境准备

2.1 下载CCPD数据集

可以从GitHub上下载CCPD数据集,地址为GitHub - detectRecog/CCPD: [ECCV 2018] CCPD: a diverse and well-annotated dataset for license plate detection and recognition 。下载后解压缩即可获得数据集图片。

2.2 安装PaddleOCR

使用以下pip命令直接安装PaddleOCR:

pip install paddleocr

3. 代码

下面的代码解析一个CCPD图片,截取出其中的车牌局部,交给PaddleOCR去进行识别:

import cv2
import os
import re
from paddleocr import PaddleOCR

def extract_and_recognize_plate(image_path, ocr):
    # 读取图像
    img = cv2.imread(image_path)
    
    # 获取文件名中的坐标信息
    filename = os.path.basename(image_path)
    coords = re.findall(r'\d+&\d+', filename)
    
    # 解析坐标信息
    plate_coords = []
    for coord in coords[:2]:
        x, y = map(int, coord.split('&'))
        plate_coords.append((x, y))
    
    # 计算矩形区域
    x1, y1 = plate_coords[0]
    x2, y2 = plate_coords[1]
    plate_region = img[y1:y2, x1:x2]
    
    # 使用PaddleOCR识别车牌
    result = ocr.ocr(plate_region, cls=True)
    
    # 提取识别结果
    plate_number = result[0][1][0]
    
    return plate_number

# 初始化PaddleOCR
ocr = PaddleOCR(use_angle_cls=True, lang='ch')  # 使用中文识别模型

# 示例用法
image_path = '00205459770115-90_85-352&516_448&547-444&547_368&549_364&517_440&515-0_0_22_10_26_29_24-128-7.jpg'
plate_number = extract_and_recognize_plate(image_path, ocr)
print(f'识别结果: {plate_number}')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值