背景:客户说"太贵了"
“我这个系统里的百度车牌识别每个月费用太高了,能不能找个免费方案?”
这是近期我接手的一个停车场管理系统(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
测试结果如下,车牌识别成功:

启动 WebApi 服务
因为需要部署到服务器上去调用,所以需要用到 HyperLPR3 中内置的 WebApi 服务
lpr3 rest --port 8715 --host 0.0.0.0
ApiPost 测试

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


1万+

被折叠的 条评论
为什么被折叠?



