🚰🔌 ระบบอ่านตัวเลขบนมิเตอร์ไฟฟ้าและมิเตอร์น้ำ (Power / Water Meter OCR)
🚰🔌 ระบบสำหรับอ่านตัวเลขบนมิเตอร์ไฟฟ้าและมิเตอร์น้ำ
Water Meter OCR คือบริการ AI ของไอแอพพ์เทคโนโลยีที่อ่านและแปลงข้อมูลตัวเลขบนมิเตอร์น้ำและมิเตอร์ไฟฟ้าโดยอัตโนมัติ บริการนี้สามารถตรวจจับและดึงตัวเลขจากมิเตอร์แบบกลมและแบบสี่เหลี่ยมได้
ทดลองใช้เลย!
Example Images (Click to try)

Demo key is limited to 10 requests per day per IP
Click here to get your API key
เริ่มต้นใช้งาน
-
ข้อกำหนดเบื้องต้น
- API key จากไอแอพพ์เทคโนโลยี
- รูปภาพมิเตอร์น้ำ/มิเตอร์ไฟฟ้าที่ชัดเจน
- การเชื่อมต่ออินเทอร์เน็ต
-
เริ่มต้นอย่างรวดเร็ว
- การจดจำตัวเลขมิเตอร์อย่างรวดเร็ว
- รองรับมิเตอร์หลายประเภท
- อินเทอร์เฟซ API REST ที่ใช้งานง่าย
-
คุณสมบัติหลัก
- การตรวจจับการอ่านมิเตอร์อัตโนมัติ
- การจดจำตัวเลขที่มีความแม่นยำสูง
- เวลาตอบสนองที่รวดเร็ว
- การผสานรวมที่ง่ายดาย
-
ความปลอดภัยและการปฏิบัติตามกฎระเบียบ
- ปฏิบัติตาม GDPR และ PDPA
- ไม่มีการเก็บรักษาข้อมูลหลังจากการประมวลผล
วิธีการขอ API Key?
กรุณาเยี่ยมชม iApp AI Portal เพื่อดู API key ที่มีอยู่หรือขอ API key ใหม่
ตัวอย่าง
มิเตอร์ไฟฟ้าและมิเตอร์น้ำในการใช้งานจริง
1. มิเตอร์น้ำแบบกลม
ตัวอย่างที่ 1

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

2. มิเตอร์น้ำแบบสี่เหลี่ยม

คำขอ
curl --location --request POST 'https://api.iapp.co.th/meter-number-ocr/file' \
--header 'apikey: ----Your API Key----' \
--form 'file=@"/Users/id_1016_value_367_003.jpg"'
การตอบสนอง
{
"infer_time": 0.16,
"label": "024963",
"message": "success",
"status": 200
}
คุณสมบัติและความสามารถ
คุณสมบัติหลัก
- การตรวจจับหน้ามิเตอร์อัตโนมัติ (แบบกลมและแบบสี่เหลี่ยม)
- การจดจำตัวเลขที่มีความแม่นยำสูง
- เวลาในการประมวลผลที่ รวดเร็ว
- รองรับรูปแบบภาพหลายรูปแบบ
ฟิลด์ที่รองรับ
- ตัวเลขการอ่านมิเตอร์
- การตรวจจับประเภทหน้ามิเตอร์
ข้อมูลอ้างอิง API
จุดสิ้นสุด
POST https://api.iapp.co.th/meter-number-ocr/file
ส่วนหัว
| ชื่อ | ประเภท | คำอธิบาย |
|---|---|---|
| apikey | string | API key ของคุณ |
ข้อความร้องขอ
| ชื่อ | ประเภท | คำอธิบาย |
|---|---|---|
| file | image | รูปภาพมิเตอร์ที่ชัดเจน |
ตัวอย่างโค้ด
Python
import requests
url = "https://api.iapp.co.th/meter-number-ocr/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/meter-number-ocr/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/meter-number-ocr/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/meter-number-ocr/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/meter-number-ocr/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/meter-number-ocr/file")
.method("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/meter-number-ocr/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);
}
ความแม่นยำและประสิทธิภาพ
การประเมินผลดำเนินการโดยใช้ข้อมูลภา พมิเตอร์น้ำทั้งแบบสี่เหลี่ยมและแบบกลม (107 ภาพ)
การประเมินแบบจำลอง
| แบบจำลอง | คำอธิบาย | ความแม่นยำ (%) |
|---|---|---|
| แบบจำลองการตรวจจับมิเตอร์น้ำ | ตรวจจับมิเตอร์น้ำจากภาพป้อนเข้า | 96.22 |
| แบบจำลอง OCR | จดจำตัวเลข | 76.47 |
| ความแม่นยำโดยรวม | ความแม่นยำโดยรวมของระบบ | 73.58 |
การประเมินอักขระ
| ตัวเลข | จำนวนทั้งหมด | จำนวนที่ถูกต้อง | ความแม่นยำ (%) |
|---|---|---|---|
| 0 | 197 | 188 | 95.43 |
| 1 | 85 | 80 | 94.12 |
| 2 | 58 | 53 | 91.38 |
| 3 | 69 | 63 | 91.3 |
| 4 | 65 | 62 | 95.38 |
| 5 | 57 | 50 | 87.72 |
| 6 | 51 | 43 | 84.31 |
| 7 | 52 | 48 | 92.31 |
| 8 | 48 | 40 | 83.33 |
| 9 | 59 | 50 | 84.75 |
ความแม่นยำโดยรวมโดยอิงจากการตรวจจับตัวเลขที่ถูกต้อง = 90 %
ประวัติ/บันทึกการเปลี่ยนแปลง
เวอร์ชัน 1.0 - 2021-10-05
เพิ่ม
- เปิดตัวระบบ OCR มิเตอร์น้ำของไอแอพพ์
- รองรับมิเตอร์น้ำทุกประเภท
เวอร์ชัน 1.1 - 2021-12-02
แก้ไข
- การตรว จจับ 2 หลักในพิกัด x เดียวกัน
- เพิ่มความแม่นยำจาก 62.26 เป็น 73.58
ราคา
| ชื่อบริการ AI API | IC ต่อคำขอ | On-Premise |
|---|---|---|
| Power and Meter OCR | 1 IC/Request | ติดต่อเรา |