行驶证OCR识别API实战:自动提取22个车辆信息字段,告别手动录入(附Python/Java/PHP/JS示例)

行驶证OCR识别API实战:自动提取22个车辆信息字段,告别手动录入(附Python/Java/PHP/JS示例)

车辆管理、保险定损、二手车交易、网约车注册......几乎所有涉及车辆的业务场景,都绕不开行驶证信息的录入。一张行驶证上包含号牌号码、车辆类型、所有人、品牌型号、车辆识别代号(VIN码)、发动机号码等22个关键字段------如果全靠人工录入,不仅效率低下,还容易出错。

本文从实战角度,详细讲解行驶证OCR的技术原理、应用场景、多语言接入代码,以及如何通过API实现行驶证信息的全自动结构化提取。

一、行驶证OCR的市场需求到底有多大?

行驶证OCR识别技术的核心价值在于将纸质行驶证图像快速转化为结构化数据,广泛应用于以下场景:

车险理赔:事故现场拍摄行驶证,自动关联保险数据库,生成定损报告,响应时间可控制在15秒以内。

二手车交易:快速提取车辆识别代号(VIN码)、发动机号、注册日期等关键信息,自动生成车辆档案,大幅提升交易效率。

网约车/物流平台:司机注册时通过拍照上传行驶证,系统自动完成信息录入与核验,告别手动填表。

车辆年检与车管业务:年检站、4S店等场景中,自动读取行驶证信息并录入系统,减少人工操作环节。

停车场/门禁系统:绑定车辆时快速添加车辆信息,实现车牌识别与车辆档案的自动关联。

根据行业数据,行驶证识别技术单张处理时间通常不超过2秒,关键字段识别准确率可达99%以上------这意味着原先需要几分钟的人工录入工作,现在只需一次拍照即可完成。

二、行驶证OCR的技术挑战

行驶证OCR看起来只是"拍一张照、读几个字",但实际面临的技术挑战并不少:

2.1 图像质量问题

用户拍照上传的行驶证往往存在倾斜、透视变形、光照不均、模糊、复杂背景等问题。行驶证照片通常是在车内或户外随手拍摄的,光线条件复杂,背景干扰多。

2.2 字段复杂多样

行驶证包含主页和副页共22个字段 ,包括号牌号码、车辆类型、所有人、住址、使用性质、品牌型号、车辆识别代号(VIN码)、发动机号码、注册日期、发证日期、发证单位等。其中VIN码和发动机号码是长字符串 + 数字字母混合的特殊字段,对OCR识别精度要求极高。

2.3 复印件与翻拍伪造

与身份证OCR类似,行驶证同样面临复印件伪造、屏幕翻拍等安全风险,需要系统具备防伪检测能力。

三、石榴智能行驶证OCR:全字段识别 + 防伪检测

石榴智能行驶证OCR识别API基于自研深度学习算法,支持对行驶证正页和副页的全部字段进行结构化识别。

3.1 核心能力

  • 全字段结构化识别:自动提取号牌号码、车辆类型、所有人、品牌型号、车辆识别代号(VIN码)、发动机号码、核定载人数、总质量、整备质量、核定载质量、外廓尺寸、注册日期、发证日期等全部字段。

  • 图像自动预处理 :自动完成裁边、倾斜修正、透视矫正,无需开发者额外调用图片处理API,即使照片拍歪了也能准确识别。

  • 复杂场景鲁棒性 :适应模糊、光照不均、透视畸变、复杂背景等实际应用中存在的各种情况。

  • 复印件检测:支持对复印件、翻拍等伪造情况进行智能检测,保障业务安全。

  • 高准确率:依托石榴智能自研算法与深度学习检测识别模型,OCR识别产品识别准确率高达99.7%。

  • 高性价比:单价仅¥0.008/次,远低于行业平均水平。

四、石榴智能行驶证OCR API接入实战

4.1 准备工作

  1. 访问石榴智能API网站注册账号(即送500积分)

  2. 获取API Key和Secret Key

  3. 查看行驶证OCR接入文档API

4.2 Python 接入代码

python 复制代码
# ==============================================================================
# 免费在线体验:https://market.shiliuai.com/tools/vehicle-license-ocr
# API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/vehicle-license-ocr
# 支持免费在线体验
# API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
# ==============================================================================

# -*- coding: utf-8 -*-
import requests
import base64
import json

# 请求接口
URL = "https://ocr-api.shiliuai.com/api/vehicle_license_ocr/v1"

# 文件转base64
def get_base64(file_path):
    with open(file_path, 'rb') as f:
        data = f.read()
    return base64.b64encode(data).decode('utf8')

def demo(appcode, file_path):
    # 请求头
    headers = {
        'Authorization': 'APPCODE %s' % appcode,
        'Content-Type': 'application/json'
    }
    # 请求体
    b64 = get_base64(file_path)
    data = {"file_base64": b64}
    # 请求
    response = requests.post(url=URL, headers=headers, json=data)
    content = json.loads(response.content)
    print(content)

if __name__=="__main__":
    appcode = "你的APPCODE"
    file_path = "本地文件路径"
    demo(appcode, file_path)

4.3 Java 接入代码

java 复制代码
// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/vehicle-license-ocr
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/vehicle-license-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
// ==============================================================================

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Base64;

public class Main {
    public static String get_base64(String path) {
        try {
            // 使用Commons IO简化文件读取
            byte[] content = FileUtils.readFileToByteArray(new File(path));
            // 使用JDK自带的Base64
            return Base64.getEncoder().encodeToString(content);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return b64;
    }

    public static void main(String[] args) {
        String url = "https://ocr-api.shiliuai.com/api/vehicle_license_ocr/v1";
        String appcode = "你的APPCODE";
        String file_path = "本地文件路径";

        Map headers = new HashMap<>();
        headers.put("Authorization", "APPCODE " + appcode);
        headers.put("Content-Type", "application/json");

        JSONObject requestObj = new JSONObject();
        requestObj.put("file_base64", get_base64(file_path));
        String bodys = requestObj.toString();

        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
            HttpPost httpPost = new HttpPost(url);

            for (Map.Entry entry : headers.entrySet()) {
                httpPost.addHeader(entry.getKey(), entry.getValue());
            }

            StringEntity entity = new StringEntity(bodys, "UTF-8");
            httpPost.setEntity(entity);
            
            HttpResponse response = httpClient.execute(httpPost);

            int stat = response.getStatusLine().getStatusCode();
            if (stat != 200) { 
                System.out.println("Http code: " + stat); 
                return; 
            }
            String res = EntityUtils.toString(response.getEntity());
            JSONObject res_obj = JSON.parseObject(res);
            System.out.println(res_obj.toJSONString());
        } catch (Exception e) { 
            e.printStackTrace(); 
        }
    }
}

4.4 PHP 接入代码

php 复制代码
// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/vehicle-license-ocr
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/vehicle-license-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
// ==============================================================================

function get_base64($path){
    if($fp = fopen($path, "rb", 0)) {
        $binary = fread($fp, filesize($path));// 文件读取
        fclose($fp);
        return base64_encode($binary);// 转base64
    }
    return "";
}

$url = "https://ocr-api.shiliuai.com/api/vehicle_license_ocr/v1";
$appcode = "你的appcode";
$file_path = "文件路径";
$method = "POST";

//请求头
$headers = array();
array_push($headers, "Authorization:APPCODE " . $appcode);
array_push($headers, "Content-Type:application/json");
//请求体
$b64 = get_base64($file_path);
$data = array(
    "file_base64" => $b64
);
$post_data = json_encode($data);

//请求
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($curl);
var_dump($result);

4.5 JavaScript 接入代码(Node.js)

javascript 复制代码
// ==============================================================================
// 免费在线体验:https://market.shiliuai.com/tools/vehicle-license-ocr
// API文档完整开发文档和代码示例:https://market.shiliuai.com/doc/vehicle-license-ocr
// 支持免费在线体验
// API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)
// ==============================================================================


// 需 Node.js 18+(内置 fetch)
const fs = require('fs');

const apiUrl = 'https://ocr-api.shiliuai.com/api/vehicle_license_ocr/v1';
const appcode = '你的APPCODE';
const filePath = '本地文件路径';

async function main() {
  const fileBase64 = fs.readFileSync(filePath).toString('base64');

  const res = await fetch(apiUrl, {
    method: 'POST',
    headers: {
      Authorization: 'APPCODE ' + appcode,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ file_base64: fileBase64 })
  });

  const text = await res.text();
  if (!res.ok) {
    console.error('Http code:', res.status, text);
    return;
  }
  console.log(JSON.stringify(JSON.parse(text), null, 2));
}

main().catch(console.error);

五、行驶证OCR的应用架构建议

5.1 典型业务流程

复制代码
用户拍照上传 → 图像预处理(自动裁边/倾斜矫正)→ 行驶证OCR识别 
→ 结构化数据输出 → 业务系统自动录入 → 数据校验(VIN码校验等)

5.2 VIN码智能校验

车辆识别代号(VIN码)由17位字符组成,包含制造商、车型、年份、生产序列号等信息。石榴智能行驶证OCR在识别出VIN码后,可通过校验位算法初步验证其正确性,有效过滤识别错误。

5.3 批量识别场景

对于车险理赔、车辆年检等需要处理大量行驶证的场景,石榴智能支持异步批量识别接口,可一次性提交多张图片,后台异步处理完成后通过回调地址通知结果。

六、常见问题

Q1:行驶证正页和副页都能识别吗?

能。石榴智能行驶证OCR支持行驶证主页和副页全部字段的结构化识别,包括主页的号牌号码、车辆类型、所有人、品牌型号、VIN码、发动机号码、注册日期,以及副页的核定载人数、总质量、整备质量、外廓尺寸、检验记录等。

Q2:照片拍歪了/光线不好怎么办?

石榴智能行驶证OCR内置自动裁边、倾斜修正、透视矫正功能,即使照片存在透视变形、光照不均等问题,系统也能在识别前自动完成图像预处理,无需开发者额外处理。

Q3:支持识别复印件吗?

支持。石榴智能行驶证OCR内置复印件检测能力,可智能判断图像是否为复印件或翻拍,帮助业务方防范伪造风险。

Q4:识别准确率有多高?

石榴智能OCR识别产品整体识别准确率高达99.7%,行驶证关键字段在高质量图像下同样可达到99%以上的识别准确率。

Q5:如何计费?

石榴智能行驶证OCR单价仅**¥0.008/次**,注册即送免费测试额度。用量越大单价越低,无隐藏费用。

七、立即体验

  • 🆓 注册即送免费测试额度500次

  • 📘 完整开发文档(含Python/Java/PHP/Node.js):API文档清晰,提供多种接入语言示例(如python、js、C#、java、php等),以及自动化脚本语言(如天诺、懒人精灵、按键精灵、易语言、EasyClick、触动精灵等)

  • 🛠️ 在线免费工具(无需代码,上传即识别):支持免费在线体验

相关阅读推荐

#行驶证OCR #车辆识别 #OCR识别 #API接入 #VIN码识别 #石榴智能 #车辆管理 #Python教程