车牌识别降本实战:PHP 开发者如何用 HyperLPR 实现免费车牌识别

背景:客户说"太贵了"

“我这个系统里的百度车牌识别每个月费用太高了,能不能找个免费方案?”

这是近期我接手的一个停车场管理系统(PHP项目)遇到的真实需求。

作为以 PHP 为主力开发语言的程序员,面对这个看似简单的需求却陷入了沉思:PHP 生态中应该是没有成熟的车牌识别方案。所以只能从其他开发语言中寻找一套成熟的替代方案。

技术选型

客户提出需求后,我们开始在网上到处搜索,最终在多方对比后,决定使用 Python 生态中的 HyperLPR 作为最终选择。

HyperLPR 介绍

HyperLPR 是一个开源的中文车牌识别(License Plate Recognition)库,专注于高效、准确地识别中国大陆的车牌。最重要的是支持一键部署。

https://github.com/szad670401/HyperLPR
https://gitee.com/mirrors/HyperLPR

HyperLPR 安装部署

快速安装
python -m pip install hyperlpr3

注意:OpenCV 最新版可能存在兼容问题,最终单独安装了一下 opencv-python==4.2.0.32,再执行上面的命令才成功。

快速测试
lpr3 sample -src 669916bb5769ffeb07aa92877c9c0656.jpg

测试结果如下,车牌识别成功:

image-20250520170758227

启动 WebApi 服务

因为需要部署到服务器上去调用,所以需要用到 HyperLPR3 中内置的 WebApi 服务

lpr3 rest --port 8715 --host 0.0.0.0

ApiPost 测试

image-20250520171212084

PHP项目封装接口请求

function lpr3PlateOcr($filePath) {
   
   
    // 检查文件是否存在
    if (!file_exists($filePath) || !is_readable($filePath)) {
   
   
        return false;
    }

    // 初始化 cURL
    $ch = curl_init();
    $postData = [
        'file' => new \CURLFile($filePath)
    ];

    // 设置 cURL 选项
    curl_setopt_array($ch, [
        CURLOPT_URL => 'http://127.0.0.1:8715/api/v1/rec',
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $postData,
        CURLOPT_RETURNTRANSFER => tru
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值