🚗 OCR ใบขับขี่ไทย
ข้ามขั้นตอนการจัดการกล้อง — eKYC SDK แบบโอเพนซอร์สฟรีของเรา (Web, Flutter, iOS, Android & React Native) จะจับภาพเอกสารและใบหน้าโดยอัตโนมัติ และเรียก API นี้ให้คุณ ดูบน GitHub
ยินดีต้อนรับสู่ API OCR ใบขับขี่ไทย เวอร์ชัน 1.1 ซึ่งเป็นผลิตภัณฑ์ AI ที่พัฒนาโดย บริษัท ไอแอพพ์เทคโนโลยี จำกัด API ของเราออกแบบมาเพื่อแยกข้อมูลข้อความจากด้านหน้าของภาพบัตรใบขับขี่ไทยด้วยความแม่นยำและรวดเร็ว API ของเราสนับสนุนรูปแบบไฟล์ JPEG, JPG, PNG และสามารถประมวลผลภาพใบขับขี่ได้ภายใน 1-2 วินาที
ลองใช้ Demo!
ทดลองใช้ AI Demo
เข้าสู่ระบบหรือสร้างบัญชีฟรีเพื่อใช้งาน AI Demo และสำรวจ API ที่ทรงพลังของเรา
รับ 50 เครดิตฟรี (IC) เมื่อสมัครสมาชิก!
โปรโมชันหมดเขต 31 ธันวาคม 2568
ลองใช้ SDK (กล้องสด)
ไม่อยากอัปโหลดไฟล์ใช่ไหม? iApp eKYC Web SDK แบบโอเพนซอร์สฟรีของเราจะจับภาพใบขับขี่โดยอัตโนมัติจากกล้องของคุณ — โดยจะตรวจจับขอบเขตของบัตร รอเฟรมที่คมชัดและเสถียร แก้ไขมุมมองของภาพ และส่งไปยัง API นี้ ดูขั้นตอนอื่นๆ ได้ที่ หน้าสาธิตสด SDK ฉบับเต็ม
Loading live demo…
การเริ่มต้นใช้งาน
-
ข้อกำหนดเบื้องต้น
- คีย์ API จาก ไอแอพพ์เทคโนโลยี
- รูปภาพใบขับขี่ไทย (ด้านหน้า)
- รูปแบบไฟล์ที่รองรับ: JPEG, JPG, PNG
- ขนาดไฟล์สูงสุด: 10MB
-
เริ่มต้นอย่างรวดเร็ว
- ประมวลผลรวดเร็ ว (1-2 วินาทีต่อใบ)
- การแยกข้อความความแม่นยำสูง (95.14% ที่ระดับอักขระ)
- รองรับรูปแบบไฟล์หลากหลาย
-
คุณสมบัติหลัก
- การแยกฟิลด์โดยละเอียดรวมถึง:
- หมายเลขใบอนุญาต
- ชื่อ-นามสกุล (ไทยและอังกฤษ)
- วันเกิด
- วันที่ออกและวันหมดอายุ
- หมายเลขบัตรประชาชน
- ข้อมูลนายทะเบียน
- รองรับด้านหน้าของใบขับขี่
- ตัวเลือกในการส่งคืนรูปถ่ายใบหน้าในรูปแบบ base64
- รูปแบบการตอบกลับ JSON ที่ยืดหยุ่น
- การแยกฟิลด์โดยละเอียดรวมถึง:
-
ความปลอดภัยและการปฏิบัติตามกฎระเบียบ
- เป็นไปตาม GDPR และ PDPA
- ไม่มีข้อมูลเก็บรักษาหลังการประมวลผล
โปรดไปที่หน้า การจัดการ API Key เพื่อดู API Key ที่มีอยู่ของคุณ หรือขอ API Key ใหม่
ตัวอย่าง
คำขอ:
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 Endpoints
| Endpoint | Method | คำอธิบาย | ค่าใช้จ่าย |
|---|---|---|---|
POST /v3/store/ekyc/thai-driver-licenseLegacy: /thai-driver-license-ocr | POST | แยกข้อมูลจากใบขับขี่ไทย | 1.25 IC ต่อหน้า |
API Reference
Thai Driver License Endpoints
1. Thai Driver License OCR
POST /v3/store/ekyc/thai-driver-license
แยกข้อมูลโดยละเอียดจากภาพใบขับขี่ไทย และส่งคืนข้อมูลที่แยกออกมาในรูปแบบที่มีโครงสร้าง
Request Headers
| ชื่อ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
| apikey | string | ใช่ | API key ของคุณ |
Request Body (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
- ด้านหน้าเท่านั้น
