基于PaddleOCR史上最全车牌号识别实现(三)

 前言

        基于PaddleOCR史上最全车牌号识别实现(一)

        基于PaddleOCR史上最全车牌号识别实现(二)

        前两篇文章讲了检测模型和识别模型的实现,这一篇文章姗姗来迟,将讲解下两个模型的串联应用和PaddleOCR的源码精简,下面我们来看看如何实现,文章最后有全源码下载。

车牌号识别源码分析

1、添加预测代码

新建deploy目录,加入预测py文件

核心代码如下:

    def predict(self, image=None, path="", **kwargs):
        if image is not None:
            predicted_data = image
        elif path != "":
            predicted_data = self.read_image(path)
        else:
            raise TypeError("The input data is inconsistent with expectations.")

        dt_boxes, rec_res, _ = self.text_sys(predicted_data)
        dt_num = len(dt_boxes)

        if dt_num > 0:
            rec_res_final = dict()
            text, score = rec_res[0]
            rec_res_final.update({
                'bank_card_number': text,
                'score': float(score),
                'location': dt_boxes[0].astype(np.int32).tolist()
            })

            return rec_res_final
        else:
            return ""
2、模型存放位置

det为检测模型,rec为识别模型

3、参数说明

目前的识别模型是在PP-OCRv2的基础上训练出来的,如何是v3或v4训练的,需要将这里的re_image_shape改成“3,48,320”

4、预测

ocr_license_plate.py文件中添加main方法:

if __name__ == '__main__':
    args = {
        "use_gpu": False,
        "enable_mkldnn": True
    }
    ocr_license_plate = OCRLicensePlate(args=args)
    print(ocr_license_plate.predict(None, "1.jpg"))

python .\deploy\ocr_license_plate.py

结果:

[2023/12/13 19:28:37] ppocr DEBUG: dt_boxes num : 1, elapsed : 0.9797043800354004
[2023/12/13 19:28:37] ppocr DEBUG: rec_res num  : 1, elapsed : 0.09100174903869629
{'bank_card_number': '蒙H0070警', 'score': 0.9834597706794739, 'location': [[219, 354], [371, 358], [370, 411], [218, 407]]}
5、命令行检测模型预测

python tools/infer/predict_det.py --det_algorithm="DB" --det_model_dir="./inference/det/" --image_dir="1.jpg" --use_gpu=False --det_db_unclip_ratio=2.0

保存图片到inference_results目录下:

完毕

        以上就是车牌号识别的整个流程,精简后可直观的进行部署,这里只是做了第一步精简,在infer中和后处理中,还有部分代码可以进一步精简。

精简后源码下载:

基于PaddleOCR车牌号识别源码

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
基于PaddleOCR车牌号识别模型是一种使用PaddlePaddle深度学习框架开发的算法模型,用于识别图像中的车牌号码。该模型经过训练,能够识别各种位置和角度的车牌,并将其转化为文本形式的车牌号码。 这个模型是基于深度卷积神经网络(CNN)和循环神经网络(RNN)等技术进行构建的。首先,通过卷积层提取图像中的特征,并利用长短时记忆网络(LSTM)等循环神经网络模型对这些特征进行序列建模。接下来,使用CTC(Connectionist Temporal Classification)算法对序列进行解码,以得到最终的车牌号码结果。 这种模型设计能够在不同条件下的车牌图片上进行高效的识别PaddleOCR车牌号识别模型具有较高的准确性和鲁棒性。由于其采用了深度学习算法,并且基于大规模的车牌数据集进行训练,使得模型能够学习到丰富的车牌号特征,并能够在复杂的背景、光照和扭曲变换等情况下进行准确的识别。 此外,PaddleOCR车牌号识别模型还具有一定的可扩展性和灵活性。它可以根据具体需求进行模型的优化和定制化,适应不同场景下的车牌识别应用。模型可以在不同的硬件平台上运行,包括服务器和移动设备,可以满足各种实时性要求。同时,PaddleOCR车牌号识别模型还可以与其他图像处理和车牌识别系统结合,实现更为复杂的应用场景。 总之,基于PaddleOCR车牌号识别模型是一种经过训练的深度学习模型,具有高准确性、鲁棒性和可扩展性,能够有效地实现车牌号码的识别任务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番茄小能手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值