🚗 OCR ป้ายทะเบียนรถยนต์ไทย
0.75 ICต่อคำขอ
ยินดีต้อนรับสู่ API OCR ป้ายทะเบียนรถยนต์ไทย เวอร์ชัน 2.0 ซึ่งเป็นผลิตภัณฑ์ AI ที่พัฒนาโดย บริษัท ไอแอพพ์เทคโนโลยี จำกัด API ของเราออกแบบมาเพื่อดึงข้อมูลหมายเลขป้ายทะเบียนและข้อมูลยานพาหนะจากรูปภาพด้วยความแม่นยำและความเร็วสูง API รองรับรูปแบบไฟล์ JPEG, JPG, PNG และสามารถประมวลผลรูปภาพยานพาหนะได้ใน 1-2 วินาที
ลองใช้ Demo!
ทดลองใช้ AI Demo
เข้าสู่ระบบหรือสร้างบัญชีฟรีเพื่อใช้งาน AI Demo และสำรวจ API ที่ทรงพลังของเรา
รับ 50 เครดิตฟรี (IC) เมื่อสมัครสมาชิก!
โปรโมชันหมดเขต 31 ธันวาคม 2568
เริ่มต้นใช้งาน
-
ข้อกำหนดเบื้องต้น
- API Key จาก ไอแอพพ์เทคโนโลยี
- รูปภาพยานพาหนะที่มีป้ายทะเบียน
- รูปแบบไฟล์ที่รองรับ: JPEG, JPG, PNG
- ขนาดไฟล์สูงสุด: 2MB
-
เริ่มต้นใช้งานอย่างรวดเร็ว
- ประมวลผลรวดเร็ว (1-2 วินาทีต่อรูปภาพ)
- การแยกข้อความที่มีความแม่นยำสูง (ความแม่นยำโดยรวม 92.28%)
- รองรับแบรนด์และประเภทรถยนต์หลายยี่ห้อ
-
คุณสมบัติหลัก
- การแยกฟิลด์โดยละเอียดรวมถึง:
- หมายเลขป้ายทะเบียน
- ยี่ห้อรถยนต์
- ประเภทรถยนต์
- สีรถยนต์
- จังหวัดที่จดทะเบียน
- การตรวจจับยานพาหนะ
- การตรวจจับป้ายทะเบียนที่หายไป
- รูปแบบการตอบสนอง JSON ที่ยืดหยุ่น
- การแยกฟิลด์โดยละเอียดรวมถึง:
-
ความปลอดภัยและการปฏิบัติตามข้อกำหนด
- สอดคล้องกับ GDPR และ PDPA
- ไม่มีการเก็บข้อมูลหลังการประมวลผล
จะรับ API Key ได้อย่างไร?
กรุณาไปที่หน้า การจัดการ API Key เพื่อดู API Key ที่มีอยู่ของคุณหรือขอใหม่
API Endpoints
| Endpoint | Method | Description | Cost |
|---|---|---|---|
/v3/store/smart-city/license-plate-ocrLegacy: /iapp_license_plate_recognition_v1_file | POST | แยกข้อมูลป้ายทะเบียนรถยนต์ไทยจากไฟล์รูปภาพ | 0.75 IC ต่อคำขอ |
/v3/store/smart-city/license-plate-ocr/base64Legacy: /iapp_license_plate_recognition_v1_base64 | POST | แยกข้อมูลป้ายทะเบียนรถยนต์ไทยจากรูปภาพ base64 | 0.75 IC ต่อคำขอ |
ตัวอย่าง
1. ตัวอย่างการใช้งานจริงกับยานพาหนะ
ตัวอย่างที่ 1

ตัวอย่างที่ 2

ตัวอย่างที่ 3

2. ตัวอย่างไฟล์ยานพาหนะ

คำขอ
curl --location 'https://api.iapp.co.th/license-plate-recognition/file' \
--header 'apikey: {YOUR API KEY}' \
--form 'file=@"{YOUR UPLOADED FILE}"'
การตอบสนอง
{
"conf": 93.30192566,
"country": "th",
"infer_time(s)": 0.18,
"is_missing_plate": "no",
"is_vehicle": "yes",
"lp_number": "กร5539",
"message": "success",
"province": "th-14:Phra Nakhon Si Ayutthaya (พระนครศรีอยุธยา)",
"status": 200,
"vehicle_body_type": "tractor-trailer",
"vehicle_brand": "honda",
"vehicle_color": "white",
"vehicle_model": "honda_jazz",
"vehicle_orientation": "135",
"vehicle_year": "2010-2014"
}
คุณสมบัติและความสามารถ
คุณสมบัติหลัก
- การรู้จำป้ายทะเบียน: แยกและอ่านหมายเลขป้ายทะเบียนรถยนต์ไทยจากรูปภาพได้อย่างแม่นยำ
- ข้อมูลยานพาหนะที่ครอบคลุม: ระบุและให้รายละเอียด เช่น:
- หมายเลขป้ายทะเบียน
- จังหวัดที่จดทะเบียน
- ยี่ห้อรถยนต์
- รุ่นรถยนต์
- ปีที่ผลิต
- ทิศทางของยานพาหนะ (หน้า, ข้าง, หลัง)
- ประเภทของยานพาหนะ (เช่ น รถเก๋ง, SUV, รถบรรทุก)
- ความแม่นยำสูง: ใช้อัลกอริทึมคอมพิวเตอร์วิทัศน์ขั้นสูงเพื่อมอบการรู้จำที่แม่นยำแม้ในสภาพแสงและสภาพแวดล้อมที่ท้าทาย
ความสามารถที่รองรับ
- การประมวลผลแบบเรียลไทม์: เหมาะสำหรับแอปพลิเคชันที่ต้องการเวลา เช่น การเก็บค่าผ่านทางและการติดตามยานพาหนะ
- การประมวลผลแบบแบทช์: จัดการรูปภาพหลายภาพได้อย่างมีประสิทธิภาพสำหรับแอปพลิเคชันขนาดใหญ่
- การปรับตัวตามสภาพแวดล้อม: ทำงานได้อย่างน่าเชื่อถือในสถานการณ์ต่างๆ รวมถึงสภาพแสงน้อยและแสงสะท้อนสูง
กรณีการใช้งาน
- การเก็บค่าผ่านทางอัตโนมัติ: ปรับปรุงกระบวนการชำระค่าผ่านทางโดยการรู้จำยานพาหนะและป้ายทะเบียนแบบเรียลไทม์
- ระบบจัดการที่จอดรถ: บันทึกการเข้า-ออกยานพาหนะในลานจอดรถโดยอัตโนมัติ
- การติดตามยานพาหนะ: เพิ่มประสิทธิภาพการจัดการโลจิสติกส์และยานพาหนะโดยการรวมการรู้จำป้ายทะเบียนสำหรับการระบุยานพาหนะ
- ความปลอดภัยและการเฝ้าระวัง: ปรับปรุงระบบรักษาความปลอดภัยด้วยการติดตามและระบุยานพาหนะ
ความสามารถเพิ่มเติม
- การผสานรวมที่ง่าย: ให้ API แบบ RESTful สำหรับการผสานรวมเข้ากับแอปพลิเคชันที่มีอยู่ได้ อย่างราบรื่น
- รวดเร็วและเชื่อถือได้: มอบเวลาตอบสนองที่รวดเร็วและประสิทธิภาพที่สม่ำเสมอสำหรับการใช้งานจริง
- ขยายได้และปรับขนาดได้: รองรับคุณสมบัติและการขยายเพิ่มเติมตามความต้องการของผู้ใช้ที่เปลี่ยนแปลงไป
ข้อมูลอ้างอิง API
Endpoint
POST https://api.iapp.co.th/license-plate-recognition/file
Headers
| Name | Type | Description |
|---|---|---|
| apikey | String | API Key |
Parameters
| Name | Type | In | Required | Description |
|---|---|---|---|---|
| vehicle_image | object | body | Yes | รูปภาพประกอบด้วยยานพาหนะ |
คำอธิบายการตอบสนอง
| Parameters | คำอธิบาย |
|---|---|
| conf | คะแนนความมั่นใจของการรู้จำป้ายทะเบียนเป็นเปอร์เซ็นต์ |
| infer_time(s) | เวลาที่ใช้ในการอนุมานเป็นวินาที |
| is_missing_plate | บ่งชี้ว่ามีป้ายทะเบียนหายไปในรูปภาพหรือไม่ ค่าที่เป็นไปได้: "yes" หรือ "no" |
| is_vehicle | บ่งชี้ว่ามียานพาหนะอยู่ในรูปภาพหรือไม่ ค่าที่เป็นไปได้: "yes" หรือ "no" |
| lp_number | หมายเลขป้ายทะเบียนที่รู้จำได้จากรูปภาพ |
| message | ข้อความตอบกลับ API ค่าที่เป็นไปได้: "success" หรือ "error" |
| province | จังหวัดของยานพาหนะที่จดทะเบียนตามที่ระบุโดยป้ายทะเบียน |
| status | รหัสสถา นะ HTTP ของการตอบกลับ API |
| vehicle_body_type | ประเภทตัวถังของยานพาหนะที่รู้จำได้ |
| vehicle_brand | ยี่ห้อของยานพาหนะที่รู้จำได้ |
| vehicle_color | สีของยานพาหนะที่รู้จำได้ |
| vehicle_model | รุ่นของยานพาหนะที่รู้จำได้ |
| vehicle_orientation | ทิศทางของยานพาหนะที่รู้จำได้ในรูปภาพ |
| vehicle_year | ช่วงปีของรุ่นยานพาหนะที่รู้จำได้ |
ตัวอย่างโค้ด
Python
import requests
url = "https://api.iapp.co.th/license-plate-recognition/file"
payload = {}
files=[
('file',('{YOUR UPLOADED FILE NAME}',open('{YOUR UPLOADED FILE PATH}','rb'),'image/png'))
]
headers = {
'apikey': {YOUR API KEY}
}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
JavaScript
const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');
let data = new FormData();
data.append('file', fs.createReadStream('{YOUR UPLOADED FILE PATH}'));
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api.iapp.co.th/license-plate-recognition/file',
headers: {
'apikey': '{YOUR API KEY}',
...data.getHeaders()
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/license-plate-recognition/file',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file'=> new CURLFILE('{YOUR UPLOADED FILE PATH}')),
CURLOPT_HTTPHEADER => array(
'apikey: {YOUR API KEY}'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Swift
let parameters = [
[
"key": "file",
"src": "{YOUR UPLOADED FILE PATH}",
"type": "file"
]] as [[String: Any]]
let boundary = "Boundary-\(UUID().uuidString)"
var body = Data()
var error: Error? = nil
for param in parameters {
if param["disabled"] != nil { continue }
let paramName = param["key"]!
body += Data("--\(boundary)\r\n".utf8)
body += Data("Content-Disposition:form-data; name=\"\(paramName)\"".utf8)
if param["contentType"] != nil {
body += Data("\r\nContent-Type: \(param["contentType"] as! String)".utf8)
}
let paramType = param["type"] as! String
if paramType == "text" {
let paramValue = param["value"] as! String
body += Data("\r\n\r\n\(paramValue)\r\n".utf8)
} else {
let paramSrc = param["src"] as! String
let fileURL = URL(fileURLWithPath: paramSrc)
if let fileContent = try? Data(contentsOf: fileURL) {
body += Data("; filename=\"\(paramSrc)\"\r\n".utf8)
body += Data("Content-Type: \"content-type header\"\r\n".utf8)
body += Data("\r\n".utf8)
body += fileContent
body += Data("\r\n".utf8)
}
}
}
body += Data("--\(boundary)--\r\n".utf8);
let postData = body
var request = URLRequest(url: URL(string: "https://api.iapp.co.th/license-plate-recognition/file")!,timeoutInterval: Double.infinity)
request.addValue("{YOUR API KEY}", forHTTPHeaderField: "apikey")
request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
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
val client = OkHttpClient()
val mediaType = "text/plain".toMediaType()
val body = MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","{YOUR UPLOADED FILE NAME}",
File("{YOUR UPLOADED FILE PATH}").asRequestBody("application/octet-stream".toMediaType()))
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/license-plate-recognition/file")
.post(body)
.addHeader("apikey", "{YOUR API KEY}")
.build()
val response = client.newCall(request).execute()
Java
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","{YOUR UPLOADED FILE NAME}",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("{YOUR UPLOADED FILE PATH}")))
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/license-plate-recognition/file")
.post(body)
.addHeader("apikey", "{YOUR API KEY}")
.build();
Response response = client.newCall(request).execute();
Dart
var headers = {
'apikey': '{YOUR API KEY}'
};
var request = http.MultipartRequest('POST', Uri.parse('https://api.iapp.co.th/license-plate-recognition/file'));
request.files.add(await http.MultipartFile.fromPath('file', '{YOUR UPLOADED FILE PATH}'));
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}

