🚗 泰国驾照 OCR
1.25 IC每页
欢迎使用泰国驾照 OCR API,版本 1.1,这是由艾艾普科技有限公司开发的一款人工智能产品。我们的 API 旨在高精度、高速度地从泰国驾照卡图像的正面提取文本信息。我们的 API 支持 JPEG、JPG、PNG 文件格式,并能在 1-2 秒内处理驾照图像。
试用演示!
入门指南
-
先决条件
- 艾艾普科技的 API 密钥
- 泰国驾照图像(正面)
- 支持的文件格式:JPEG、JPG、PNG
- 最大文件大小:10MB
-
快速入门
- 快速处理(每张卡 1-2 秒)
- 高精度文本提取(字符级别准确率 95.14%)
- 支持多种文件格式
-
主要功能
- 详细字段提取,包括:
- 驾照号码
- 全名(泰语和英语)
- 出生日期
- 签发和到期日期
- 身份证号码
- 注册官信息
- 支持驾照正面
- 可选以 base64 格式返回面部照片
- 灵活的 JSON 响应格式
- 详细字段提取,包括:
-
安全与合规
- 符合 GDPR 和 PDPA 标准
- 处理后不保留数据
如何获取 API 密钥?
请访问 API 密钥管理 页面查看您现有的 API 密钥或申请新密钥。
示例
请求:
curl -X POST https://api.iapp.co.th/v3/store/ekyc/thai-driver-license \
-H "apikey: YOUR_API_KEY" \
-F "file=@/path/to/driver_license.jpg"
响应:
{
"driving_license_type2": "Detected",
"driving_license_type6": "Detected",
"en_country": "Kingdom of Thailand",
"en_dob": "1 March 1987",
"en_expiry": "26 March 2024",
"en_issue": "18 May 2006",
"en_license_no": "00000000",
"en_name": "Mr. iApp Technology",
"en_type": "Private Car Driving License",
"face": "Detected",
"file_name": "thai-driver-license-ocr-example.png",
"flag": "Detected",
"id_no": "1111111111111",
"inference": "0.523",
"message": "Success",
"registrar": "นายทะเบียนจังหวัด กรุงเทพมหานคร Bangkok",
"sign": "Detected",
"status_code": 200,
"text_is_white": "Detected",
"th_country": "ประเทศไทย",
"th_dob": "1 มีนาคม 2530",
"th_expiry": "26 มีนาคม 2567",
"th_issue": "1 มกราคม 2562",
"th_license_no": "000000000",
"th_name": "นาย ไอแอพพ์ เทคโนโลยี",
"th_type": "ใบอนุญาติขับรถยนต์ส่วนบุคคล"
}
功能与能力
核心功能
- 高精度文本提取(字符级别准确率 95.14%)
- 快速处理时间(每张卡 1-2 秒)
- 支持多种文件格式(JPEG、JPG、PNG)
- 自动卡片检测
- 可选以 base64 格式提取面部照片
- 支持泰语和英语文本提取
支持的字段
| 字段 | 类型 | 描述 |
|---|---|---|
| en_country | String | 国家名称(英文) |
| en_expiry | String | 到期日期(英文) |
| en_issue | String | 签发日期(英文) |
| en_name | String | 全名(英文) |
| en_license_no | String | 驾照号码(英文) |
| en_type | String | 驾照类型(英文) |
| face | String | 面部检测状态 |
| id_no | String | 身份证号码 |
| th_country | String | 国家名称(泰语) |
| th_expiry | String | 到期日期(泰语) |
| th_issue | String | 签发日期(泰语) |
| th_name | String | 全名(泰语) |
| th_license_no | String | 驾照号码(泰语) |
| th_type | String | 驾照类型(泰语) |
| registrar | String | 注册官信息 |
API 端点
| 端点 | 方法 | 描述 | 费用 |
|---|---|---|---|
POST /v3/store/ekyc/thai-driver-license旧版: /thai-driver-license-ocr | POST | 从泰国驾照提取信息 | 1.25 IC/页 |
API 参考
泰国驾照端点
1. 泰国驾照 OCR
POST /v3/store/ekyc/thai-driver-license
从泰国驾照图像中提取详细信息,并以结构化格式返回提取的数据。
请求头
| 名称 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| apikey | string | 是 | 您的 API 密钥 |
请求正文 (multipart/form-data)
| 参数 | 类型 | 是否必需 | 描述 |
|---|---|---|---|
| file | File | 是 | 驾照图像的二进制数据 |
| fields | String | 否 | 可选字段(例如,“photo”用于面部照片) |
代码示例
Curl
curl -X POST https://api.iapp.co.th/v3/store/ekyc/thai-driver-license \
-H "apikey: YOUR_API_KEY" \
-F "file=@/path/to/file.jpg"
Python
import requests
url = "https://api.iapp.co.th/v3/store/ekyc/thai-driver-license"
payload = {
'fields': 'photo'
}
files = [
('file',('driver_license.jpg',open('path/to/driver_license.jpg','rb'),'image/jpeg'))
]
headers = {
'apikey': 'YOUR_API_KEY'
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.json())
JavaScript
const axios = require("axios")
const FormData = require("form-data")
const fs = require("fs")
const form = new FormData()
form.append("file", fs.createReadStream("path/to/driver_license.jpg"))
form.append("fields", "photo")
const config = {
method: "post",
url: "https://api.iapp.co.th/v3/store/ekyc/thai-driver-license",
headers: {
apikey: "YOUR_API_KEY",
...form.getHeaders(),
},
data: form,
}
axios(config)
.then((response) => console.log(JSON.stringify(response.data)))
.catch((error) => console.log(error))
PHP
<?php
$curl = curl_init();
$post_data = array(
'file'=> new CURLFile('path/to/driver_license.jpg'),
'fields' => 'photo'
);
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/v3/store/ekyc/thai-driver-license',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $post_data,
CURLOPT_HTTPHEADER => array(
'apikey: YOUR_API_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>
Swift
import Foundation
let headers = [
"apikey": "YOUR_API_KEY"
]
let parameters = [
[
"name": "file",
"fileName": "path/to/driver_license.jpg"
],
[
"name": "fields",
"value": "photo"
]
]
let boundary = "Boundary-\(UUID().uuidString)"
var body = ""
var error: Error? = nil
for param in parameters {
if let fileName = param["fileName"] {
let fileContent = try? String(contentsOfFile: fileName, encoding: .utf8)
body += "--\(boundary)\r\n"
body += "Content-Disposition:form-data; name=\"\(param["name"] ?? "")\""
body += "; filename=\"\(fileName)\"\r\n"
body += "Content-Type: image/jpeg\r\n\r\n"
body += fileContent ?? ""
} else {
body += "--\(boundary)\r\n"
body += "Content-Disposition:form-data; name=\"\(param["name"] ?? "")\"\r\n\r\n"
body += param["value"] ?? ""
}
}
let postData = body.data(using: .utf8)
var request = URLRequest(url: URL(string: "https://api.iapp.co.th/v3/store/ekyc/thai-driver-license")!,timeoutInterval: Double.infinity)
request.addValue("YOUR_API_KEY", forHTTPHeaderField: "apikey")
request.httpMethod = "POST"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Kotlin
import okhttp3.*
import java.io.File
val client = OkHttpClient()
val mediaType = MediaType.parse("image/jpeg")
val file = File("path/to/driver_license.jpg")
val body = MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file", file.name, RequestBody.create(mediaType, file))
.addFormDataPart("fields", "photo")
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/v3/store/ekyc/thai-driver-license")
.addHeader("apikey", "YOUR_API_KEY")
.post(body)
.build()
client.newCall(request).execute().use { response ->
println(response.body()?.string())
}
Java
import java.io.File;
import okhttp3.*;
public class Main {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("image/jpeg");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file", "driver_license.jpg",
RequestBody.create(mediaType, new File("path/to/driver_license.jpg")))
.addFormDataPart("fields", "photo")
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/v3/store/ekyc/thai-driver-license")
.method("POST", body)
.addHeader("apikey", "YOUR_API_KEY")
.build();
try {
Response response = client.newCall(request).execute();
System.out.println(response.body().string());
} catch(Exception e) {
e.printStackTrace();
}
}
}
Dart
import 'package:http/http.dart' as http;
void main() async {
var request = http.MultipartRequest('POST',
Uri.parse('https://api.iapp.co.th/v3/store/ekyc/thai-driver-license'));
request.files.add(await http.MultipartFile.fromPath(
'file', 'path/to/driver_license.jpg'));
request.fields['fields'] = 'photo';
request.headers.addAll({
'apikey': 'YOUR_API_KEY'
});
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
} else {
print(response.reasonPhrase);
}
}
限制与最佳实践
限制
- 最大文件大小:10MB
- 支持的格式:JPEG、JPG、PNG
- 仅支持正面
最佳实践
- 确保图像质量良好
- 检查响应中的置信度分数
- 妥善处理错误消息
- 验证驾照号码格式
- 考虑为特定需求使用
fields参数
准确性与性能
总体准确性
- 字符级别准确率:95.14%
- 特定字段准确率:
- 面部检测:100%
- 驾照号码:97.37%
- 英文姓名:99.13%
- 泰语姓名:95.62%
处理速度
- 平均:1-2 秒
- 可能因图像大小和质量而异
影响准确性的因素
- 图像质量
- 分辨率
- 光照
- 对焦
- 卡片状况
- 物理损坏
- 反光
- 文本清晰度
历史记录
| 版本 | 发布日期 | 准确性 | 主要改进 |
|---|---|---|---|
| 1.1 | 2023 年 1 月 | 95.14% | 添加了面部照片提取,提高了准确性 |
| 1.0 | 2022 年 12 月 | 90% | 首次发布 |
定价
| 操作 | 生产路径 | 旧版路径 | IC 费用 | 单位 | 本地部署 |
|---|---|---|---|---|---|
| 泰国驾照 OCR | /v3/store/ekyc/thai-driver-license | /thai-driver-license-ocr | 1.25 IC | 每次请求 | 联系我们 |
