Skip to main content

Face Recognition API

0.1 - 0.3 ICต่อการเรียกใช้
v1.3.0 ใช้งานอยู่ POST /v3/store/ekyc/face-recognition

ภาพรวม

iApp Face Recognition API เป็นโซลูชันการจดจำใบหน้าแบบครบวงจรที่ให้บริการการตรวจจับใบหน้า การจดจำ การเปรียบเทียบ และความสามารถในการจัดการฐานข้อมูล สร้างขึ้นจากโมเดล Deep Learning ที่ทันสมัย API ของเราให้ความแม่นยำสูงและการประมวลผลที่รวดเร็วสำหรับกรณีการใช้งานที่หลากหลาย รวมถึงความปลอดภัย การยืนยันตัวตน และการตรวจสอบข้อมูลประจำตัว

ทดลองใช้ Demo!

ทดลองใช้ AI Demo

เข้าสู่ระบบหรือสร้างบัญชีฟรีเพื่อใช้งาน AI Demo และสำรวจ API ที่ทรงพลังของเรา

รับ 50 เครดิตฟรี (IC) เมื่อสมัครสมาชิก!

โปรโมชันหมดเขต 31 ธันวาคม 2568

Face Recognition API Demo

Test our face recognition endpoints with real-time results

Endpoint changes based on selected tab

Recognizes the most prominent face in an image and matches it against your company's face database.

Supported: JPG, JPEG, PNG (max 2MB)

คุณสมบัติหลัก

ความสามารถหลัก

  • การตรวจจับใบหน้า (Face Detection): ตรวจจับใบหน้าเดียวหรือหลายใบหน้าในรูปภาพพร้อมพิกัดกรอบสี่เหลี่ยม
  • การจดจำใบหน้า (Face Recognition): ระบุบุคคลที่รู้จักจากฐานข้อมูลใบหน้าแบบกำหนดเองของคุณ
  • การเปรียบเทียบใบหน้า (Face Comparison): เปรียบเทียบใบหน้าสองใบหน้าเพื่อพิจารณาว่าใบหน้าเหล่านั้นเป็นของบุคคลเดียวกันหรือไม่
  • การจัดการฐานข้อมูล (Database Management): เพิ่ม ลบ นำเข้า และส่งออกข้อมูลใบหน้า
  • เกณฑ์ที่ปรับแต่งได้ (Configurable Thresholds): ปรับความไวในการตรวจจับและการจดจำ
  • รองรับหลายใบหน้า (Multi-face Support): ประมวลผลรูปภาพที่มีใบหน้าหลายใบพร้อมกัน

คุณสมบัติทางเทคนิค

  • การตรวจจับใบหน้าที่แม่นยำสูง (99%+ บนใบหน้าด้านหน้า)
  • เวลาประมวลผลรวดเร็ว (ปกติ 0.3-1.0 วินาที)
  • รองรับรูปแบบรูปภาพที่หลากหลาย (JPEG, JPG, PNG)
  • ขนาดไฟล์สูงสุด: 2MB
  • ฐานข้อมูลใบหน้าเฉพาะของบริษัท
  • การจับคู่ตามคะแนนพร้อมเกณฑ์ที่กำหนดค่าได้
  • RESTful API ที่ผสานรวมได้ง่าย

เริ่มต้นใช้งาน

ข้อกำหนดเบื้องต้น

  • API Key: ขอได้จาก iApp API Portal
  • บัญชีบริษัท (Company Account): ลงทะเบียนบริษัทของคุณสำหรับการจัดการฐานข้อมูลใบหน้า
  • ข้อกำหนดรูปภาพ:
    • รูปแบบ: JPEG, JPG, PNG
    • ขนาดสูงสุด: 2MB
    • ความละเอียดขั้นต่ำ: 600x400 พิกเซล
    • ขนาดใบหน้าขั้นต่ำ: 112x112 พิกเซล

ตัวอย่างการใช้งานเบื้องต้น

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/single \
-H "apikey: YOUR_API_KEY" \
-F "file=@photo.jpg" \
-F "company=iApp"
วิธีรับ API Key?

โปรดไปที่หน้า การจัดการ API Key เพื่อดู API Key ที่มีอยู่ของคุณ หรือขอใหม่

API Endpoints

Endpoints การจดจำ (Recognition Endpoints)

EndpointMethodคำอธิบายราคา
/v3/store/ekyc/face-recognition/singlePOSTจดจำใบหน้าที่เด่นที่สุด0.3 IC

| /v3/store/ekyc/face-recognition/multi | POST | จดจำใบหน้าทั้งหมดในรูปภาพ | 0.3 IC | | /v3/store/ekyc/face-recognition/add | POST | เพิ่มใบหน้าใหม่เข้าฐานข้อมูล | 0.1 IC | | /v3/store/ekyc/face-recognition/remove | POST | ลบใบหน้าออกจากฐานข้อมูล | 0 IC | | /v3/store/ekyc/face-recognition/check | POST | ตรวจสอบสถานะฐานข้อมูล | 0.3 IC | | /v3/store/ekyc/face-recognition/import | POST | นำเข้าคุณสมบัติใบหน้า (CSV) | 0 IC | | /v3/store/ekyc/face-recognition/export | POST | ส่งออกคุณสมบัติใบหน้า | 0 IC |

Endpoints การตรวจจับ (Detection Endpoints)

EndpointMethodคำอธิบายราคา
/v3/store/ekyc/face-detection/singlePOSTตรวจจับใบหน้าเดียวพร้อมกรอบสี่เหลี่ยม0.3 IC
/v3/store/ekyc/face-detection/multiPOSTตรวจจับใบหน้าทั้งหมดในรูปภาพ0.3 IC

Endpoint การเปรียบเทียบ (Comparison Endpoint)

EndpointMethodคำอธิบายราคา
/v3/store/ekyc/face-comparisonPOSTเปรียบเทียบใบหน้าสองใบเพื่อความคล้ายคลึงกัน0.3 IC

Endpoints การตั้งค่า (Configuration Endpoints)

EndpointMethodคำอธิบายราคา
/v3/store/ekyc/face-recognition/configPOSTกำหนดค่าเกณฑ์การตรวจจับ/จดจำ0 IC
/v3/store/ekyc/face-recognition/password/changePOSTเปลี่ยนรหัสผ่านบริษัท0 IC

Endpoints ผู้ดูแลระบบ (Admin Endpoints)

EndpointMethodคำอธิบายราคา
/v3/store/ekyc/face-recognition/admin/importPOSTผู้ดูแลระบบ: นำเข้าคุณสมบัติ0 IC
/v3/store/ekyc/face-recognition/admin/exportPOSTผู้ดูแลระบบ: ส่งออกคุณสมบัติ0 IC
/v3/store/ekyc/face-recognition/admin/configPOSTผู้ดูแลระบบ: กำหนดค่าเกณฑ์0 IC
/v3/store/ekyc/face-recognition/admin/checkPOSTผู้ดูแลระบบ: ตรวจสอบฐานข้อมูล0 IC
/v3/store/ekyc/face-recognition/admin/password/changePOSTผู้ดูแลระบบ: เปลี่ยนรหัสผ่าน0 IC

API Reference

Endpoints การจดจำ (Recognition Endpoints)

การจดจำใบหน้าเดียว (Single Face Recognition)

Endpoint: POST /v3/store/ekyc/face-recognition/single

จดจำใบหน้าที่เด่นที่สุดในรูปภาพและจับคู่กับฐานข้อมูลใบหน้าของบริษัทของคุณ

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
fileFileYesไฟล์รูปภาพ (JPEG, JPG, PNG, สูงสุด 2MB)
companyStringYesตัวระบุบริษัทของคุณ

รูปแบบการตอบกลับ (Response Format):

{
"message": "successfully performed",
"company": "YOUR_COMPANY",
"name": "John Doe",
"recognition_score": 0.8523,
"detection_score": 0.9998,
"bbox": {
"xmin": 154.39,
"ymin": 155.49,
"xmax": 255.45,
"ymax": 282.88
},
"process_time": 0.4776
}

ฟิลด์การตอบกลับ (Response Fields):

  • name: ชื่อบุคคลที่ระบุ (หรือ "unknown" หากไม่พบการจับคู่)
  • recognition_score: คะแนนความมั่นใจในการจดจำ (0-1)
  • detection_score: คะแนนความมั่นใจในการตรวจจับใบหน้า (0-1)
  • bbox: พิกัดกรอบสี่เหลี่ยมของใบหน้า
  • process_time: เวลาประมวลผลเป็นวินาที

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/single \
-H "apikey: YOUR_API_KEY" \
-F "file=@face.jpg" \
-F "company=iApp"

การจดจำหลายใบหน้า (Multi-Face Recognition)

Endpoint: POST /v3/store/ekyc/face-recognition/multi

จดจำใบหน้าทั้งหมดในรูปภาพ โดยส่งคืนรายการผลลัพธ์สำหรับใบหน้าที่ตรวจจับได้แต่ละใบ

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
fileFileYesไฟล์รูปภาพ (JPEG, JPG, PNG, สูงสุด 2MB)
companyStringYesตัวระบุบริษัทของคุณ

รูปแบบการตอบกลับ (Response Format):

{
"message": "successfully performed",
"company": "YOUR_COMPANY",
"faces": [
{
"name": "John Doe",
"recognition_score": 0.8523,
"detection_score": 0.9998,
"bbox": {
"xmin": 154.39,
"ymin": 155.49,
"xmax": 255.45,
"ymax": 282.88
}
},
{
"name": "Jane Smith",
"recognition_score": 0.7891,
"detection_score": 0.9995,
"bbox": {
"xmin": 350.12,
"ymin": 180.34,
"xmax": 450.67,
"ymax": 310.23
}
}
],
"process_time": 0.6234
}

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/multi \
-H "apikey: YOUR_API_KEY" \
-F "file=@group_photo.jpg" \
-F "company=iApp"

เพิ่มใบหน้าเข้าฐานข้อมูล (Add Face to Database)

Endpoint: POST /v3/store/ekyc/face-recognition/add

เพิ่มใบหน้าใหม่เข้าสู่ฐานข้อมูลการจดจำของบริษัทของคุณ เป็นการลงทะเบียนบุคคลสำหรับการจดจำในอนาคต

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
fileFileYesรูปภาพใบหน้าที่ชัดเจน (JPEG, JPG, PNG, สูงสุด 2MB)
companyStringYesตัวระบุบริษัทของคุณ
nameStringYesชื่อบุคคลสำหรับการระบุตัวตน
passwordStringYesรหัสผ่านบริษัทสำหรับการยืนยันตัวตน

รูปแบบการตอบกลับ (Response Format):

{
"message": "successfully performed",
"company": "YOUR_COMPANY",
"name": "John Doe",
"face_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"detection_score": 0.9998
}

ฟิลด์การตอบกลับ (Response Fields):

  • face_id: ตัวระบุเฉพาะสำหรับใบหน้าที่เพิ่ม
  • detection_score: คะแนนคุณภาพของรูปภาพใบหน้า
  • name: ชื่อบุคคลที่ลงทะเบียน

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/add \
-H "apikey: YOUR_API_KEY" \
-F "file=@john_doe.jpg" \
-F "company=iApp" \
-F "name=John Doe" \
-F "password=iApp"
รหัสผ่าน Demo

สำหรับบริษัท Demo "iApp" รหัสผ่านคือ "iApp" คุณสามารถใช้สิ่งนี้เพื่อทดสอบ API Endpoints การจดจำใบหน้า

แนวปฏิบัติที่ดีที่สุด (Best Practices):

  • ใช้รูปภาพใบหน้าด้านหน้าที่ชัดเจน
  • ตรวจสอบให้แน่ใจว่ามีแสงสว่างเพียงพอ
  • หลีกเลี่ยงรูปภาพเบลอหรือคุณภาพต่ำ
  • หนึ่งใบหน้าต่อรูปภาพ
  • บุคคลควรหันหน้าเข้าหากล้อง

ลบใบหน้าออกจากฐานข้อมูล (Remove Face from Database)

Endpoint: POST /v3/store/ekyc/face-recognition/remove

ลบข้อมูลใบหน้าออกจากฐานข้อมูลของบริษัทของคุณ

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
companyStringYesตัวระบุบริษัทของคุณ
nameStringYesชื่อบุคคลที่จะลบ
passwordStringYesรหัสผ่านบริษัทสำหรับการยืนยันตัวตน
face_idStringNoID ใบหน้าเฉพาะที่จะลบ (หากมีหลายรายการ)

รูปแบบการตอบกลับ (Response Format):

{
"message": "face removed successfully",
"company": "YOUR_COMPANY",
"name": "John Doe",
"removed_count": 1
}

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/remove \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "name=John Doe" \
-F "password=iApp"

พร้อม Face ID เฉพาะ:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/remove \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "name=John Doe" \
-F "face_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-F "password=iApp"

ตรวจสอบฐานข้อมูลใบหน้า (Check Face Database)

Endpoint: POST /v3/store/ekyc/face-recognition/check

ตรวจสอบสถานะและเนื้อหาของฐานข้อมูลใบหน้าของบริษัทของคุณ ส่งคืนสถิติและส่งออกไฟล์รายงานตามที่ต้องการ

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
companyStringYesตัวระบุบริษัทของคุณ
passwordStringYesรหัสผ่านบริษัทสำหรับการยืนยันตัวตน
save_fileStringNoตั้งค่าเป็น "True" หรือ "1" เพื่อส่งออกไฟล์รายงาน

รูปแบบการตอบกลับ (เมื่อไม่ส่งออกไฟล์):

{
"message": "successfully performed",
"company": "YOUR_COMPANY",
"total_faces": 145,
"total_persons": 145,
"database_size": "2.3 MB",
"last_updated": "2025-01-15T10:30:00Z"
}

รูปแบบการตอบกลับ (เมื่อส่งออกไฟล์):

ส่งคืนไฟล์ CSV ที่มีรายงานฐานข้อมูลใบหน้า

ตัวอย่าง:

# รับสถิติฐานข้อมูล
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/check \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp"

# ส่งออกรายงานฐานข้อมูล
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/check \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "save_file=True" \
-o database_report.csv

นำเข้าคุณสมบัติใบหน้า (Import Face Features)

Endpoint: POST /v3/store/ekyc/face-recognition/import

นำเข้าคุณสมบัติใบหน้าที่คำนวณไว้ล่วงหน้าจากไฟล์ CSV เข้าสู่ฐานข้อมูลของบริษัทของคุณ เหมาะสำหรับการนำเข้าจำนวนมากหรือการย้ายฐานข้อมูล

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
fileFileYesไฟล์ CSV ที่มีคุณสมบัติใบหน้า
companyStringYesตัวระบุบริษัทของคุณ
passwordStringYesรหัสผ่านบริษัทสำหรับการยืนยันตัวตน

รูปแบบไฟล์ CSV (CSV File Format):

ไฟล์ CSV ควรมีเวกเตอร์คุณสมบัติใบหน้าพร้อมคอลัมน์: name, face_id, feature_vector (ค่าทศนิยมคั่นด้วยจุลภาค)

รูปแบบการตอบกลับ (Response Format):

{
"message": "successfully performed",
"company": "YOUR_COMPANY",
"imported_count": 50,
"failed_count": 0,
"total_processed": 50
}

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/import \
-H "apikey: YOUR_API_KEY" \
-F "file=@face_features.csv" \
-F "company=iApp" \
-F "password=iApp"

หมายเหตุ: การนำเข้าไม่พร้อมใช้งานสำหรับบัญชี Demo


ส่งออกคุณสมบัติใบหน้า (Export Face Features)

Endpoint: POST /v3/store/ekyc/face-recognition/export

ส่งออกคุณสมบัติใบหน้าจากฐานข้อมูลของบริษัทของคุณไปยังไฟล์ รองรับรูปแบบ CSV และ Excel

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
companyStringYesตัวระบุบริษัทของคุณ
passwordStringYesรหัสผ่านบริษัทสำหรับการยืนยันตัวตน
type_fileStringYesรูปแบบการส่งออก: "csv" หรือ "excel"

การตอบกลับ:

ส่งคืนการดาวน์โหลดไฟล์พร้อมคุณสมบัติใบหน้าที่ส่งออก

ตัวอย่าง:

# ส่งออกเป็น CSV
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/export \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "type_file=csv" \
-o face_features.csv

# ส่งออกเป็น Excel
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/export \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "type_file=excel" \
-o face_features.xlsx

หมายเหตุ: การส่งออกไม่พร้อมใช้งานสำหรับบัญชี Demo


Endpoints การตรวจจับ (Detection Endpoints)

การตรวจจับใบหน้าเดียว (Single Face Detection)

Endpoint: POST /v3/store/ekyc/face-detection/single

ตรวจจับใบหน้าที่เด่นที่สุดในรูปภาพและส่งคืนพิกัดกรอบสี่เหลี่ยมโดยไม่ต้องทำการจดจำ

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
fileFileYesไฟล์รูปภาพ (JPEG, JPG, PNG, สูงสุด 2MB)
companyStringNoตัวระบุบริษัท (ไม่จำเป็น)

รูปแบบการตอบกลับ (Response Format):

{
"message": "successfully performed",
"detection_score": 0.9998,
"bbox": {
"xmin": 154.39,
"ymin": 155.49,
"xmax": 255.45,
"ymax": 282.88
},
"process_time": 0.2134
}

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-detection/single \
-H "apikey: YOUR_API_KEY" \
-F "file=@photo.jpg"

การตรวจจับหลายใบหน้า (Multi-Face Detection)

Endpoint: POST /v3/store/ekyc/face-detection/multi

ตรวจจับใบหน้าทั้งหมดในรูปภาพและส่งคืนพิกัดกรอบสี่เหลี่ยมสำหรับใบหน้าแต่ละใบโดยไม่ต้องทำการจดจำ

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
fileFileYesไฟล์รูปภาพ (JPEG, JPG, PNG, สูงสุด 2MB)
companyStringNoตัวระบุบริษัท (ไม่จำเป็น)

รูปแบบการตอบกลับ (Response Format):

{
"message": "successfully performed",
"faces": [
{
"detection_score": 0.9998,
"bbox": {
"xmin": 154.39,
"ymin": 155.49,
"xmax": 255.45,
"ymax": 282.88
}
},
{
"detection_score": 0.9995,
"bbox": {
"xmin": 350.12,
"ymin": 180.34,
"xmax": 450.67,
"ymax": 310.23
}
}
],
"total_faces": 2,
"process_time": 0.3567
}

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-detection/multi \
-H "apikey: YOUR_API_KEY" \
-F "file=@group_photo.jpg"

Endpoint การเปรียบเทียบ (Comparison Endpoint)

เปรียบเทียบใบหน้าสองใบ (Compare Two Faces)

Endpoint: POST /v3/store/ekyc/face-comparison

เปรียบเทียบรูปภาพใบหน้าสองรูปเพื่อพิจารณาว่าใบหน้าเหล่านั้นเป็นของบุคคลเดียวกันหรือไม่ ส่งคืนคะแนนความคล้ายคลึง

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
file1FileYesรูปภาพใบหน้าแรก (JPEG, JPG, PNG, สูงสุด 2MB)
file2FileYesรูปภาพใบหน้าสอง (JPEG, JPG, PNG, สูงสุด 2MB)
companyStringNoตัวระบุบริษัท (ไม่จำเป็น)
min_scoreFloatNoเกณฑ์ความคล้ายคลึงขั้นต่ำ (0-1)

รูปแบบการตอบกลับ (Response Format):

{
"message": "successfully performed",
"status": {
"face1_detected": true,
"face2_detected": true,
"match": true
},
"similarity_score": 0.8734,
"comparison_score": 0.8734,
"face1_bbox": {
"xmin": 154.39,
"ymin": 155.49,
"xmax": 255.45,
"ymax": 282.88
},
"face2_bbox": {
"xmin": 180.23,
"ymin": 170.12,
"xmax": 280.56,
"ymax": 295.34
},
"process_time": 0.5423
}

ฟิลด์การตอบกลับ (Response Fields):

  • match: Boolean บ่งชี้ว่าใบหน้าตรงกันหรือไม่ (ตามเกณฑ์)
  • similarity_score: คะแนนความคล้ายคลึงระหว่างใบหน้า (0-1)
  • status: สถานะการตรวจจับสำหรับใบหน้าทั้งสอง
  • face1_bbox, face2_bbox: กรอบสี่เหลี่ยมของใบหน้าที่ตรวจจับได้

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-comparison \
-H "apikey: YOUR_API_KEY" \
-F "file1=@person1.jpg" \
-F "file2=@person2.jpg"

พร้อมเกณฑ์คะแนนขั้นต่ำ:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-comparison \
-H "apikey: YOUR_API_KEY" \
-F "file1=@person1.jpg" \
-F "file2=@person2.jpg" \
-F "min_score=0.8"

Endpoints การตั้งค่า (Configuration Endpoints)

กำหนดค่าเกณฑ์ (Configure Thresholds)

Endpoint: POST /v3/store/ekyc/face-recognition/config

กำหนดค่าเกณฑ์คะแนนการตรวจจับและการจดจำสำหรับบริษัทของคุณ เกณฑ์เหล่านี้จะกำหนดคะแนนความมั่นใจขั้นต่ำที่จำเป็นสำหรับการตรวจจับและการจดจำใบหน้าที่สำเร็จ

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
companyStringYesตัวระบุบริษัทของคุณ
passwordStringYesรหัสผ่านบริษัทสำหรับการยืนยันตัวตน
detectionFloatNoเกณฑ์การตรวจจับ (0-100 หรือ 0-1)
comparisonFloatNoเกณฑ์การเปรียบเทียบ (0-100 หรือ 0-1)
recognitionFloatNoเกณฑ์การจดจำ (0-100 หรือ 0-1)

รูปแบบการตอบกลับ (Response Format):

{
"message": "the minimum score of detection, comparison and recognition has been successfully configured.",
"company": "YOUR_COMPANY",
"detection_score": 0.75,
"comparison_score": 0.80,
"recognition_score": 0.85
}

ตัวอย่าง:

# ตั้งค่าเกณฑ์ทั้งหมด
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/config \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "detection=75" \
-F "comparison=80" \
-F "recognition=85"

# รับเกณฑ์ปัจจุบัน (ละเว้นพารามิเตอร์คะแนน)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/config \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp"

# ตั้งค่าเกณฑ์การจดจำเท่านั้น
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/config \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "recognition=90"

แนวทางการกำหนดเกณฑ์ (Threshold Guidelines):

  • การตรวจจับ (Detection) (ค่าเริ่มต้น ~0.75): ความมั่นใจขั้นต่ำสำหรับการตรวจจับใบหน้า

    • ต่ำลง: ตรวจจับใบหน้าได้มากขึ้น (อาจมีผลบวกลวง)
    • สูงขึ้น: ตรวจจับเฉพาะใบหน้าที่ชัดเจน (อาจพลาดบางใบหน้า)
  • การเปรียบเทียบ (Comparison) (ค่าเริ่มต้น ~0.80): ความคล้ายคลึงขั้นต่ำสำหรับการจับคู่ใบหน้า

    • ต่ำลง: การจับคู่ที่ผ่อนปรนมากขึ้น (อาจจับคู่กับบุคคลอื่น)
    • สูงขึ้น: การจับคู่ที่เข้มงวดมากขึ้น (อาจปฏิเสธบุคคลเดียวกัน)
  • การจดจำ (Recognition) (ค่าเริ่มต้น ~0.85): ความมั่นใจขั้นต่ำสำหรับการระบุตัวตนบุคคล

    • ต่ำลง: การจดจำที่อนุญาตมากขึ้น (อาจระบุตัวตนผิดพลาด)
    • สูงขึ้น: การจดจำที่เข้มงวดมากขึ้น (อาจไม่สามารถจดจำได้)

หมายเหตุ: การกำหนดค่าไม่พร้อมใช้งานสำหรับบัญชี Demo


เปลี่ยนรหัสผ่าน (Change Password)

Endpoint: POST /v3/store/ekyc/face-recognition/password/change

เปลี่ยนรหัสผ่านของบริษัทของคุณสำหรับการยืนยันตัวตน API

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
companyStringYesตัวระบุบริษัทของคุณ
old_passwordStringYesรหัสผ่านปัจจุบัน
new_passwordStringYesรหัสผ่านใหม่ (ต้องแตกต่าง)

รูปแบบการตอบกลับ (Response Format):

{
"message": "Setting new password completed."
}

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/password/change \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "old_password=current_password" \
-F "new_password=new_secure_password"

หมายเหตุ: การเปลี่ยนรหัสผ่านไม่พร้อมใช้งานสำหรับบัญชี Demo


Endpoints ผู้ดูแลระบบ (Admin Endpoints)

Endpoints ผู้ดูแลระบบต้องใช้สิทธิ์ของผู้ดูแลระบบพิเศษและไม่พร้อมใช้งานสำหรับผู้ใช้ทั่วไป

ผู้ดูแลระบบ: นำเข้าคุณสมบัติ (Admin: Import Features)

Endpoint: POST /v3/store/ekyc/face-recognition/admin/import

นำเข้าคุณสมบัติใบหน้าเข้าสู่ฐานข้อมูล Demo (สำหรับผู้ดูแลระบบเท่านั้น)

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
companyStringYesต้องเป็น "admin"
passwordStringYesรหัสผ่านผู้ดูแลระบบ
fileFileYesไฟล์ CSV พร้อมคุณสมบัติใบหน้า

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/admin/import \
-H "apikey: YOUR_API_KEY" \
-F "company=admin" \
-F "password=admin_password" \
-F "file=@features.csv"

ผู้ดูแลระบบ: ส่งออกคุณสมบัติ (Admin: Export Features)

Endpoint: POST /v3/store/ekyc/face-recognition/admin/export

ส่งออกคุณสมบัติใบหน้าจากฐานข้อมูล Demo หรือสร้างการสำรองข้อมูล (สำหรับผู้ดูแลระบบเท่านั้น)

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
companyStringYesต้องเป็น "admin"
passwordStringYesรหัสผ่านผู้ดูแลระบบ
type_fileStringYesรูปแบบการส่งออก: "csv", "excel", หรือ "backup"

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/admin/export \
-H "apikey: YOUR_API_KEY" \
-F "company=admin" \
-F "password=admin_password" \
-F "type_file=backup" \
-o backup.csv

ผู้ดูแลระบบ: กำหนดค่าเกณฑ์ (Admin: Configure Thresholds)

Endpoint: POST /v3/store/ekyc/face-recognition/admin/config

กำหนดค่าเกณฑ์คะแนนสำหรับบัญชีผู้ดูแลระบบหรือบัญชี Demo (สำหรับผู้ดูแลระบบเท่านั้น)

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
companyStringYes"admin" หรือ "demo"
passwordStringYesรหัสผ่านผู้ดูแลระบบ
detectionFloatNoเกณฑ์การตรวจจับ (0-100 หรือ 0-1)
comparisonFloatNoเกณฑ์การเปรียบเทียบ (0-100 หรือ 0-1)
recognitionFloatNoเกณฑ์การจดจำ (0-100 หรือ 0-1)

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/admin/config \
-H "apikey: YOUR_API_KEY" \
-F "company=demo" \
-F "password=admin_password" \
-F "detection=70" \
-F "recognition=80"

ผู้ดูแลระบบ: ตรวจสอบฐานข้อมูล (Admin: Check Database)

Endpoint: POST /v3/store/ekyc/face-recognition/admin/check

ตรวจสอบสถานะฐานข้อมูลของผู้ดูแลระบบหรือ Demo (สำหรับผู้ดูแลระบบเท่านั้น)

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
companyStringYes"admin" หรือ "demo"
passwordStringYesรหัสผ่านผู้ดูแลระบบ
save_fileStringNoตั้งค่าเป็น "True" หรือ "1" เพื่อส่งออกรายงาน

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/admin/check \
-H "apikey: YOUR_API_KEY" \
-F "company=demo" \
-F "password=admin_password"

ผู้ดูแลระบบ: เปลี่ยนรหัสผ่าน (Admin: Change Password)

Endpoint: POST /v3/store/ekyc/face-recognition/admin/password/change

เปลี่ยนรหัสผ่านสำหรับบัญชีผู้ดูแลระบบหรือ Demo (สำหรับผู้ดูแลระบบเท่านั้น)

พารามิเตอร์คำขอ (Request Parameters):

ParameterTypeRequiredคำอธิบาย
companyStringYes"admin" หรือ "demo"
old_passwordStringYesรหัสผ่านผู้ดูแลระบบปัจจุบัน
new_passwordStringYesรหัสผ่านใหม่ (ต้องแตกต่าง)

ตัวอย่าง:

curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/admin/password/change \
-H "apikey: YOUR_API_KEY" \
-F "company=demo" \
-F "old_password=current_admin_password" \
-F "new_password=new_admin_password"

รหัสข้อผิดพลาด (Error Codes)

API ใช้รหัสสถานะ HTTP มาตรฐานและส่งคืนข้อความแสดงข้อผิดพลาดโดยละเอียด

รหัสสถานะ HTTP (HTTP Status Codes)

Status Codeคำอธิบาย
200สำเร็จ
404Endpoint ไม่พบ
405ไม่อนุญาตวิธีการ (ใช้ POST)
413เอนทิตีคำขอใหญ่เกินไป (ไฟล์ > 2MB)
415ประเภทสื่อไม่รองรับ (ใช้ JPEG, JPG, PNG)
420พารามิเตอร์ที่จำเป็นขาดหายไป
421ค่าพารามิเตอร์ไม่ถูกต้อง
422รูปแบบพารามิเตอร์ไม่ถูกต้อง
423ตรวจไม่พบใบหน้าในรูปภาพ
424ตรวจพบใบหน้าหลายใบ (ใช้ endpoint /multi)
425รหัสผ่านใหม่เหมือนรหัสผ่านเดิม
426ต้องมีสิทธิ์ผู้ดูแลระบบ
427การดำเนินการไม่อนุญาตสำหรับบัญชี Demo
428การส่งออกฐานข้อมูลล้มเหลว
429การนำเข้าล้มเหลว

รูปแบบการตอบกลับข้อผิดพลาด (Error Response Format)

{
"message": "Error description",
"error_code": 421,
"parameter": "company"
}

ข้อผิดพลาดทั่วไป (Common Errors)

420 - พารามิเตอร์ที่จำเป็นขาดหายไป (Missing Required Parameter)

{
"message": "Missing required parameter: company",
"error_code": 420,
"parameter": "company"
}

421 - พารามิเตอร์ไม่ถูกต้อง (Invalid Parameter)

{
"message": "Invalid value for parameter: password",
"error_code": 421,
"parameter": "password"
}

423 - ตรวจไม่พบใบหน้า (Face Not Detected)

{
"message": "No face detected in the image",
"error_code": 423
}

424 - ตรวจพบใบหน้าหลายใบ (Multiple Faces Detected)

{
"message": "Multiple faces detected. Please use /recog/multi endpoint",
"error_code": 424
}

ตัวอย่างโค้ด (Code Examples)

Python

import requests

def recognize_face(image_path, api_key, company):
"""Recognize face in image"""
url = "https://api.iapp.co.th/v3/store/ekyc/face-recognition/single"

files = {
'file': open(image_path, 'rb')
}
data = {
'company': company
}
headers = {
'apikey': api_key
}

response = requests.post(url, headers=headers, data=data, files=files)
return response.json()

def add_face_to_database(image_path, api_key, company, name, password):
"""Add new face to database"""
url = "https://api.iapp.co.th/v3/store/ekyc/face-recognition/add"

files = {
'file': open(image_path, 'rb')
}
data = {
'company': company,
'name': name,
'password': password
}
headers = {
'apikey': api_key
}

response = requests.post(url, headers=headers, data=data, files=files)
return response.json()

def compare_faces(image1_path, image2_path, api_key):
"""Compare two faces"""
url = "https://api.iapp.co.th/v3/store/ekyc/face-comparison"

files = {
'file1': open(image1_path, 'rb'),
'file2': open(image2_path, 'rb')
}
headers = {
'apikey': api_key
}

response = requests.post(url, headers=headers, files=files)
return response.json()

# Usage examples
if __name__ == "__main__":
API_KEY = "your_api_key"
COMPANY = "your_company"

# Recognize face
result = recognize_face("photo.jpg", API_KEY, COMPANY)
print(f"Recognized: {result['name']}")
print(f"Confidence: {result['recognition_score']:.2%}")

# Add face to database
result = add_face_to_database(
"john_doe.jpg",
API_KEY,
COMPANY,
"John Doe",
"your_password"
)
print(f"Added: {result['name']}")

# Compare two faces
result = compare_faces("face1.jpg", "face2.jpg", API_KEY)
print(f"Match: {result['status']['match']}")
print(f"Similarity: {result['similarity_score']:.2%}")

JavaScript (Node.js)

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

async function recognizeFace(imagePath, apiKey, company) {
const formData = new FormData();
formData.append('file', fs.createReadStream(imagePath));
formData.append('company', company);

try {
const response = await axios.post(
'https://api.iapp.co.th/v3/store/ekyc/face-recognition/single',
formData,
{
headers: {
'apikey': apiKey,
...formData.getHeaders()
}
}
);
return response.data;
} catch (error) {
console.error('Error:', error.response?.data || error.message);
throw error;
}
}

async function addFaceToDatabase(imagePath, apiKey, company, name, password) {
const formData = new FormData();
formData.append('file', fs.createReadStream(imagePath));
formData.append('company', company);
formData.append('name', name);
formData.append('password', password);

try {
const response = await axios.post(
'https://api.iapp.co.th/v3/store/ekyc/face-recognition/add',
formData,
{
headers: {
'apikey': apiKey,
...formData.getHeaders()
}
}
);
return response.data;
} catch (error) {
console.error('Error:', error.response?.data || error.message);
throw error;
}
}

async function compareFaces(image1Path, image2Path, apiKey) {
const formData = new FormData();
formData.append('file1', fs.createReadStream(image1Path));
formData.append('file2', fs.createReadStream(image2Path));

try {
const response = await axios.post(
'https://api.iapp.co.th/v3/store/ekyc/face-comparison',
formData,
{
headers: {
'apikey': apiKey,
...formData.getHeaders()
}
}
);
return response.data;
} catch (error) {
console.error('Error:', error.response?.data || error.message);
throw error;
}
}

// Usage examples
(async () => {
const API_KEY = 'your_api_key';
const COMPANY = 'your_company';

try {
// Recognize face
const result = await recognizeFace('photo.jpg', API_KEY, COMPANY);
console.log('Recognized:', result.name);
console.log('Confidence:', result.recognition_score);

// Add face to database
const addResult = await addFaceToDatabase(
'john_doe.jpg',
API_KEY,
COMPANY,
'John Doe',
'your_password'
);
console.log('Added:', addResult.name);

// Compare two faces
const compareResult = await compareFaces('face1.jpg', 'face2.jpg', API_KEY);
console.log('Match:', compareResult.status.match);
console.log('Similarity:', compareResult.similarity_score);
} catch (error) {
console.error('Error:', error);
}
})();

JavaScript (Browser)

// Face Recognition Function
async function recognizeFace(fileInput, apiKey, company) {
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('company', company);

try {
const response = await fetch('https://api.iapp.co.th/v3/store/ekyc/face-recognition/single', {
method: 'POST',
headers: {
'apikey': apiKey
},
body: formData
});

const data = await response.json();
return data;
} catch (error) {
console.error('Error:', error);
throw error;
}
}

// Add Face to Database
async function addFaceToDatabase(fileInput, apiKey, company, name, password) {
const formData = new FormData();
formData.append('file', fileInput.files[0]);
formData.append('company', company);
formData.append('name', name);
formData.append('password', password);

try {
const response = await fetch('https://api.iapp.co.th/v3/store/ekyc/face-recognition/add', {
method: 'POST',
headers: {
'apikey': apiKey
},
body: formData
});

const data = await response.json();
return data;
} catch (error) {
console.error('Error:', error);
throw error;
}
}

// Compare Two Faces
async function compareFaces(fileInput1, fileInput2, apiKey) {
const formData = new FormData();
formData.append('file1', fileInput1.files[0]);
formData.append('file2', fileInput2.files[0]);

try {
const response = await fetch('https://api.iapp.co.th/v3/store/ekyc/face-comparison', {
method: 'POST',
headers: {
'apikey': apiKey
},
body: formData
});

const data = await response.json();
return data;
} catch (error) {
console.error('Error:', error);
throw error;
}
}

// HTML Example
/*
<input type="file" id="faceImage" accept="image/*">
<input type="text" id="company" placeholder="Company">
<button onclick="handleRecognize()">Recognize Face</button>

<script>
async function handleRecognize() {
const fileInput = document.getElementById('faceImage');
const company = document.getElementById('company').value;
const apiKey = 'your_api_key';

const result = await recognizeFace(fileInput, apiKey, company);
console.log('Result:', result);
alert(`Recognized: ${result.name}\nConfidence: ${result.recognition_score}`);
}
</script>
*/

PHP

<?php

class FaceRecognitionAPI {
private $apiKey;
private $baseUrl = 'https://api.iapp.co.th';

public function __construct($apiKey) {
$this->apiKey = $apiKey;
}

public function recognizeFace($imagePath, $company) {
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $this->baseUrl . '/v3/store/ekyc/face-recognition/single',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'file' => new CURLFile($imagePath),
'company' => $company
),
CURLOPT_HTTPHEADER => array(
'apikey: ' . $this->apiKey
),
));

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

if ($httpCode !== 200) {
throw new Exception("API request failed with code: $httpCode");
}

return json_decode($response, true);
}

public function addFaceToDatabase($imagePath, $company, $name, $password) {
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $this->baseUrl . '/v3/store/ekyc/face-recognition/add',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'file' => new CURLFile($imagePath),
'company' => $company,
'name' => $name,
'password' => $password
),
CURLOPT_HTTPHEADER => array(
'apikey: ' . $this->apiKey
),
));

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

if ($httpCode !== 200) {
throw new Exception("API request failed with code: $httpCode");
}

return json_decode($response, true);
}

public function compareFaces($image1Path, $image2Path) {
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $this->baseUrl . '/v3/store/ekyc/face-comparison',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'file1' => new CURLFile($image1Path),
'file2' => new CURLFile($image2Path)
),
CURLOPT_HTTPHEADER => array(
'apikey: ' . $this->apiKey
),
));

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

if ($httpCode !== 200) {
throw new Exception("API request failed with code: $httpCode");
}

return json_decode($response, true);
}

public function detectFaces($imagePath, $multiplefaces = false) {
$endpoint = $multiplefaces ? '/v3/store/ekyc/face-detection/multi' : '/v3/store/ekyc/face-detection/single';
$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => $this->baseUrl . $endpoint,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'file' => new CURLFile($imagePath)
),
CURLOPT_HTTPHEADER => array(
'apikey: ' . $this->apiKey
),
));

$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);

if ($httpCode !== 200) {
throw new Exception("API request failed with code: $httpCode");
}

return json_decode($response, true);
}
}

// Usage example
$api = new FaceRecognitionAPI('your_api_key');

try {
// Recognize face
$result = $api->recognizeFace('photo.jpg', 'your_company');
echo "Recognized: " . $result['name'] . "\n";
echo "Confidence: " . ($result['recognition_score'] * 100) . "%\n";

// Add face to database
$result = $api->addFaceToDatabase('john_doe.jpg', 'your_company', 'John Doe', 'your_password');
echo "Added: " . $result['name'] . "\n";

// Compare two faces
$result = $api->compareFaces('face1.jpg', 'face2.jpg');
echo "Match: " . ($result['status']['match'] ? 'Yes' : 'No') . "\n";
echo "Similarity: " . ($result['similarity_score'] * 100) . "%\n";

// Detect faces
$result = $api->detectFaces('group_photo.jpg', true);
echo "Total faces detected: " . $result['total_faces'] . "\n";

} catch (Exception $e) {
echo "Error: " . $e->getMessage() . "\n";
}
?>

ตัวอย่าง cURL (cURL Examples)

# การจดจำใบหน้าเดียว (Single Face Recognition)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/single \
-H "apikey: YOUR_API_KEY" \
-F "file=@photo.jpg" \
-F "company=YOUR_COMPANY"

# การจดจำหลายใบหน้า (Multi-Face Recognition)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/multi \
-H "apikey: YOUR_API_KEY" \
-F "file=@group_photo.jpg" \
-F "company=YOUR_COMPANY"

# เพิ่มใบหน้าเข้าฐานข้อมูล (Add Face to Database)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/add \
-H "apikey: YOUR_API_KEY" \
-F "file=@john_doe.jpg" \
-F "company=iApp" \
-F "name=John Doe" \
-F "password=iApp"

# ลบใบหน้าออกจากฐานข้อมูล (Remove Face from Database)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/remove \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "name=John Doe" \
-F "password=iApp"

# เปรียบเทียบใบหน้าสองใบ (Compare Two Faces)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-comparison \
-H "apikey: YOUR_API_KEY" \
-F "file1=@face1.jpg" \
-F "file2=@face2.jpg" \
-F "min_score=0.8"

# ตรวจจับใบหน้าเดียว (Detect Single Face)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-detection/single \
-H "apikey: YOUR_API_KEY" \
-F "file=@photo.jpg"

# ตรวจจับหลายใบหน้า (Detect Multiple Faces)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-detection/multi \
-H "apikey: YOUR_API_KEY" \
-F "file=@group_photo.jpg"

# กำหนดค่าเกณฑ์ (Configure Thresholds)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/config \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "detection=75" \
-F "recognition=85"

# ตรวจสอบฐานข้อมูล (Check Database)
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/check \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp"

# ส่งออกฐานข้อมูล (CSV) (Export Database (CSV))
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/export \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "type_file=csv" \
-o face_database.csv

# ส่งออกฐานข้อมูล (Excel) (Export Database (Excel))
curl -X POST https://api.iapp.co.th/v3/store/ekyc/face-recognition/export \
-H "apikey: YOUR_API_KEY" \
-F "company=iApp" \
-F "password=iApp" \
-F "type_file=excel" \
-o face_database.xlsx

แนวปฏิบัติที่ดีที่สุด (Best Practices)

แนวทางการคุณภาพรูปภาพ (Image Quality Guidelines)

เพื่อความแม่นยำในการจดจำใบหน้าที่ดีที่สุด:

  1. ความละเอียดรูปภาพ (Image Resolution)

    • ขั้นต่ำ: 600x400 พิกเซล
    • แนะนำ: 1024x768 พิกเซล หรือสูงกว่า
    • ใบหน้าควรครอบคลุมพื้นที่อย่างน้อย 15-20% ของรูปภาพ
  2. สภาพแสง (Lighting Conditions)

    • ใช้ใบหน้าที่สว่างและมีแสงสม่ำเสมอ
    • หลีกเลี่ยงเงาจัดหรือแสงย้อน
    • แสงธรรมชาติหรือแสงสีขาวมาตรฐานทำงานได้ดีที่สุด
    • หลีกเลี่ยงสภาพแสงที่รุนแรง
  3. ตำแหน่งใบหน้า (Face Position)

    • แนะนำมุมมองด้านหน้า (±15 องศา)
    • ควรเห็นดวงตาทั้งสองข้าง
    • ใบหน้าควรตั้งตรง
    • หลีกเลี่ยงมุมเอียงหรือหมุนสุดขั้ว
  4. คุณภาพรูปภาพ (Image Quality)

    • ใช้รูปภาพที่คมชัด
    • หลีกเลี่ยงภาพเบลอจากการเคลื่อนไหว
    • ลดสิ่งแปลกปลอมจากการบีบอัดให้เหลือน้อยที่สุด
    • ห้ามใช้ฟิลเตอร์หรือการแก้ไขหนักๆ
  5. การครอบคลุมใบหน้า (Face Coverage)

    • หลีกเลี่ยงแว่นกันแดด หน้ากาก หรือสิ่งกีดขวาง
    • ผมไม่ควรบดบังดวงตา
    • เครื่องประดับบนใบหน้าให้น้อยที่สุด
    • มองเห็นลักษณะใบหน้าได้ชัดเจน

การจัดการฐานข้อมูล (Database Management)

  1. การเพิ่มใบหน้า (Adding Faces)

    • ใช้รูปภาพหลายรูปต่อบุคคล (แนะนำ 3-5 รูป) เพื่อความแม่นยำที่ดีขึ้น
    • รวมรูปภาพที่มีความแตกต่างเล็กน้อย (การแสดงออกต่างกัน, แสงต่างกัน)
    • ตรวจสอบให้แน่ใจว่ารูปภาพที่ลงทะเบียนมีคุณภาพสูง
    • ใช้ชื่อที่สื่อความหมายและไม่ซ้ำกัน
  2. การบำรุงรักษาประจำ (Regular Maintenance)

    • ตรวจสอบและล้างฐานข้อมูลเป็นประจำ
    • ลบรายการที่ล้าสมัยหรือซ้ำซ้อน
    • สำรองฐานข้อมูลเป็นประจำโดยใช้คุณสมบัติการส่งออก
    • ตรวจสอบขนาดและประสิทธิภาพของฐานข้อมูล
  3. ความปลอดภัย (Security)

    • ใช้รหัสผ่านที่แข็งแกร่ง
    • เปลี่ยนรหัสผ่านเป็นประจำ
    • จำกัดการเข้าถึงการดำเนินการที่ละเอียดอ่อน
    • รักษา API keys ให้ปลอดภัย

การปรับปรุงประสิทธิภาพ (Performance Optimization)

  1. การประมวลผลรูปภาพล่วงหน้า (Image Preprocessing)

    • ปรับขนาดรูปภาพขนาดใหญ่ก่อนอัปโหลด
    • บีบอัดรูปภาพโดยไม่สูญเสียคุณภาพ
    • ครอบตัดเพื่อเน้นบริเวณใบหน้า
    • แปลงเป็นรูปแบบ RGB
  2. การดำเนินการแบบกลุ่ม (Batch Operations)

    • ใช้การนำเข้า/ส่งออกสำหรับการดำเนินการจำนวนมาก
    • ใช้ระบบการลองใหม่ (retry logic) สำหรับคำขอที่ล้มเหลว
    • จัดการการหมดเวลา (timeouts) อย่างเหมาะสม
    • ตรวจสอบอัตราการเรียกใช้ API (rate limits)
  3. การจัดการข้อผิดพลาด (Error Handling)

    • ใช้การจัดการข้อผิดพลาดที่เหมาะสม
    • บันทึกข้อผิดพลาดเพื่อการดีบัก
    • แจ้งให้ผู้ใช้ทราบเมื่อเกิดความล้มเหลว
    • ลองใหม่สำหรับข้อผิดพลาดชั่วคราว (transient errors)

การกำหนดค่าเกณฑ์ (Threshold Configuration)

  1. เกณฑ์การตรวจจับ (Detection Threshold)

    • เริ่มต้นด้วยค่าเริ่มต้น (0.75)
    • เพิ่มขึ้นหากมีผลบวกลวงมากเกินไป
    • ลดลงหากพลาดใบหน้าที่ถูกต้อง
    • ทดสอบกับคุณภาพรูปภาพทั่วไปของคุณ
  2. เกณฑ์การจดจำ (Recognition Threshold)

    • เริ่มต้นด้วยค่าเริ่มต้น (0.85)
    • เพิ่มขึ้นเพื่อความปลอดภัยที่สูงขึ้น (การจับคู่ที่เข้มงวดขึ้น)
    • ลดลงสำหรับการจับคู่ที่ผ่อนปรนมากขึ้น
    • สร้างสมดุลระหว่างการยอมรับผิดพลาด (false accepts) และการปฏิเสธผิดพลาด (false rejects)
  3. เกณฑ์การเปรียบเทียบ (Comparison Threshold)

    • ใช้เกณฑ์ที่สูงขึ้น (0.80-0.90) สำหรับการยืนยัน
    • ใช้เกณฑ์ที่ต่ำลง (0.70-0.80) สำหรับการระบุตัวตน
    • ทดสอบด้วยคู่ที่ตรงกัน/ไม่ตรงกันที่ทราบ
    • ปรับตามความต้องการของกรณีการใช้งาน

กรณีการใช้งาน (Use Cases)

1. ระบบควบคุมการเข้าออก (Access Control Systems)

ใช้การจดจำใบหน้าเพื่อควบคุมการเข้าออกทางกายภาพหรือดิจิทัล:

  • การติดตามเวลาและพนักงานเข้า-ออก
  • การจัดการการเข้าถึงอาคาร
  • การยืนยันตัวตนในพื้นที่ปลอดภัย
  • ระบบจัดการผู้มาเยือน

การนำไปใช้:

  1. ลงทะเบียนใบหน้าพนักงานโดยใช้ /recog/add
  2. ใช้ /recog/single สำหรับการจดจำแบบเรียลไทม์ที่ทางเข้า
  3. กำหนดเกณฑ์การจดจำสูง (0.90+) เพื่อความปลอดภัย
  4. บันทึกเหตุการณ์การเข้าออกพร้อมเวลา

2. การยืนยันตัวตน (Identity Verification)

ยืนยันตัวตนผู้ใช้สำหรับกระบวนการ KYC (Know Your Customer):

  • การเปิดบัญชีบริการทางการเงิน
  • การยืนยันตัวตนบริการภาครัฐ
  • การยืนยันอายุ
  • การยืนยันเอกสาร (เปรียบเทียบรูปถ่ายบัตรประจำตัวกับเซลฟี่)

การนำไปใช้:

  1. ดึงใบหน้าจากเอกสารประจำตัว
  2. ถ่ายเซลฟี่สด
  3. ใช้ endpoint /compare เพื่อจับคู่ใบหน้า
  4. ตั้งเกณฑ์การเปรียบเทียบตามระดับความเสี่ยงที่ยอมรับได้
  5. จัดเก็บผลการยืนยันเพื่อการตรวจสอบ

3. การจัดระเบียบรูปภาพ (Photo Organization)

จัดระเบียบและติดแท็กรูปภาพโดยอัตโนมัติตามใบหน้า:

  • การจัดการคลังรูปภาพส่วนตัว
  • การจัดหมวดหมู่รูปภาพงานอีเวนต์
  • อัลบั้มรูปครอบครัว
  • แอปพลิเคชันโซเชียลมีเดีย

การนำไปใช้:

  1. ใช้ /detect/multi เพื่อค้นหาใบหน้าทั้งหมดในรูปภาพ
  2. ใช้ /recog/multi เพื่อระบุบุคคลที่รู้จัก
  3. จัดกลุ่มรูปภาพตามบุคคลที่ตรวจจับได้
  4. ติดแท็กใบหน้าที่ไม่รู้จักเพื่อการระบุตัวตนด้วยตนเอง

4. ความปลอดภัยและการเฝ้าระวัง (Security and Surveillance)

เฝ้าติดตามและระบุตัวบุคคลในฟุตเทจการรักษาความปลอดภัย:

  • การป้องกันการสูญเสียในร้านค้าปลีก
  • การเฝ้าระวังความปลอดภัยสาธารณะ
  • การระบุตัวตนบุคคลสำคัญ (VIP)
  • การคัดกรองบัญชีดำ

การนำไปใช้:

  1. ดึงเฟรมจากฟีดวิดีโอ
  2. ใช้ /detect/multi เพื่อค้นหาใบหน้า
  3. ใช้ /recog/multi เพื่อระบุบุคคลที่น่าสนใจ
  4. แจ้งเตือนเมื่อพบการจับคู่ที่มีความมั่นใจสูง
  5. จัดเก็บประวัติการตรวจจับเพื่อการตรวจสอบ

5. ประสบการณ์ลูกค้า (Customer Experience)

ปรับปรุงการบริการลูกค้าด้วยการจดจำใบหน้า:

  • การระบุตัวตนลูกค้า VIP
  • ประสบการณ์การช็อปปิ้งที่เป็นส่วนตัว
  • การรวมระบบโปรแกรมสะสมแต้ม
  • การจดจำลูกค้าที่กลับมาใช้บริการ

การนำไปใช้:

  1. ลงทะเบียนใบหน้าลูกค้าโดยได้รับความยินยอม
  2. ใช้ /recog/single เพื่อระบุตัวตนเมื่อเข้าร้าน
  3. ดึงข้อมูลความชอบและประวัติลูกค้า
  4. ให้บริการที่เป็นส่วนตัว
  5. เคารพกฎหมายความเป็นส่วนตัวและข้อบังคับเกี่ยวกับการปกป้องข้อมูล

ข้อจำกัดและข้อควรพิจารณา (Limitations and Considerations)

ข้อจำกัดทางเทคนิค (Technical Limitations)

  1. ขนาดรูปภาพ (Image Size)

    • ขนาดไฟล์สูงสุด: 2MB
    • ไฟล์ที่เกินขีดจำกัดจะส่งคืนข้อผิดพลาด HTTP 413
  2. ขนาดใบหน้า (Face Size)

    • ขั้นต่ำ: 112x112 พิกเซล
    • ใบหน้าที่เล็กกว่าขั้นต่ำอาจตรวจไม่พบ
  3. มุมใบหน้า (Face Angle)

    • เหมาะสมที่สุด: มุมมองด้านหน้า (±15 องศา)
    • ความแม่นยำลดลงเมื่อมุมเอียงสุดขั้ว
  4. คุณภาพรูปภาพ (Image Quality)

    • รูปภาพคุณภาพต่ำอาจส่งผลให้ตรวจจับล้มเหลว
    • ภาพเบลอจากการเคลื่อนไหวลดความแม่นยำในการจดจำ
  5. ขนาดฐานข้อมูล (Database Size)

    • ฐานข้อมูลขนาดใหญ่อาจส่งผลต่อความเร็วในการจดจำ
    • แนะนำให้บำรุงรักษาเป็นประจำ

ข้อควรพิจารณาด้านประสิทธิภาพ (Performance Considerations)

  1. เวลาประมวลผล (Processing Time)

    • ปกติ: 0.3-1.0 วินาทีต่อคำขอ
    • อาจเพิ่มขึ้นเมื่อเซิร์ฟเวอร์มีภาระงานสูง
    • การตรวจจับหลายใบหน้าใช้เวลานานกว่าใบหน้าเดียว
  2. ปัจจัยด้านความแม่นยำ (Accuracy Factors)

    • คุณภาพรูปภาพ
    • สภาพแสง
    • มุมใบหน้าและการแสดงออก
    • การเปลี่ยนแปลงตามวัย
    • เครื่องประดับบนใบหน้า
  3. อัตราการเรียกใช้ (Rate Limits)

    • มีการจำกัดอัตราการเรียกใช้ API
    • ระบบคิวจัดการปริมาณการใช้งานสูง
    • ติดต่อฝ่ายสนับสนุนสำหรับขีดจำกัดที่สูงขึ้น

ความเป็นส่วนตัวและการปฏิบัติตามกฎระเบียบ (Privacy and Compliance)

  1. การปกป้องข้อมูล (Data Protection)

    • ไม่มีการจัดเก็บรูปภาพหลังจากการประมวลผล
    • คุณสมบัติใบหน้าถูกเข้ารหัสในฐานข้อมูล
    • เป็นไปตาม GDPR และ PDPA
    • ขอความยินยอมจากผู้ใช้สำหรับการรวบรวมใบหน้า
  2. การใช้งานอย่างมีจริยธรรม (Ethical Use)

    • ใช้เพื่อวัตถุประสงค์ที่ถูกต้องตามกฎหมายเท่านั้น
    • เคารพสิทธิความเป็นส่วนตัว
    • ใช้กลไกการยกเลิก (opt-out mechanisms)
    • มีความโปร่งใสเกี่ยวกับการใช้การจดจำใบหน้า
  3. ความปลอดภัย (Security)

    • ปกป้อง API keys
    • ใช้ HTTPS สำหรับทุกคำขอ
    • รักษาความปลอดภัยการเข้าถึงฐานข้อมูลใบหน้า
    • ตรวจสอบความปลอดภัยเป็นประจำ

การปฏิบัติตามกฎหมาย (Regulatory Compliance)

  1. GDPR (ยุโรป)

    • ข้อมูลชีวมิติเป็นข้อมูลประเภทพิเศษ
    • ต้องได้รับความยินยอมอย่างชัดแจ้ง
    • มีสิทธิ์ในการลบข้อมูล
    • ต้องมีการประเมินผลกระทบด้านการคุ้มครองข้อมูล (DPIA)
  2. PDPA (ประเทศไทย)

    • ข้อมูลชีวมิติต้องได้รับความยินยอม
    • แจ้งผู้ที่ข้อมูลเป็นของตนเกี่ยวกับวัตถุประสงค์
    • ใช้มาตรการรักษาความปลอดภัย
    • อนุญาตสิทธิ์ของเจ้าของข้อมูล
  3. กฎหมายอื่นๆ (Other Regulations)

    • ตรวจสอบกฎหมายและข้อบังคับในท้องถิ่น
    • ขอใบอนุญาตที่จำเป็น
    • ใช้มาตรการป้องกันที่จำเป็น
    • บันทึกมาตรการการปฏิบัติตามกฎหมาย

ความแม่นยำและประสิทธิภาพ (Accuracy & Performance)

ความแม่นยำในการจดจำ (Recognition Accuracy)

  • ใบหน้าด้านหน้า: ความแม่นยำ 98-99%
  • ใบหน้าทำมุม (±15°): ความแม่นยำ 95-97%
  • ใบหน้าทำมุม (±30°): ความแม่นยำ 85-90%
  • มุมมองด้านข้าง: ความแม่นยำจำกัด (ไม่แนะนำ)

ความเร็วในการประมวลผล (Processing Speed)

  • การตรวจจับใบหน้าเดียว: 0.2-0.3 วินาที
  • การจดจำใบหน้าเดียว: 0.4-0.6 วินาที
  • การตรวจจับหลายใบหน้า: 0.3-0.5 วินาที
  • การจดจำหลายใบหน้า: 0.5-1.0 วินาที
  • การเปรียบเทียบใบหน้า: 0.4-0.6 วินาที

หมายเหตุ: เวลาเป็นค่าทั่วไปและอาจแตกต่างกันไปขึ้นอยู่กับขนาดรูปภาพ ภาระงานของเซิร์ฟเวอร์ และความหน่วงของเครือข่าย

ปัจจัยที่มีผลต่อประสิทธิภาพ (Factors Affecting Performance)

  1. คุณภาพรูปภาพ (Image Quality)

    • ความละเอียดสูง = ความแม่นยำดีขึ้น, ประมวลผลนานขึ้น
    • สิ่งแปลกปลอมจากการบีบอัดลดความแม่นยำ
    • แสงที่เหมาะสมมีความสำคัญต่อความแม่นยำ
  2. ขนาดฐานข้อมูลใบหน้า (Face Database Size)

    • ฐานข้อมูลขนาดใหญ่ = เวลาในการจดจำนานขึ้นเล็กน้อย
    • สูงสุด 10,000 ใบหน้า: ผลกระทบเล็กน้อย
    • มากกว่า 10,000 ใบหน้า: พิจารณาการปรับฐานข้อมูลให้เหมาะสม
  3. สภาพเครือข่าย (Network Conditions)

    • เวลาในการอัปโหลดไฟล์ส่งผลต่อเวลาตอบสนองทั้งหมด
    • ใช้การหมดเวลาที่เหมาะสม
    • ใช้ตรรกะการลองใหม่สำหรับความล้มเหลวของเครือข่าย
  4. ภาระงานของเซิร์ฟเวอร์ (Server Load)

    • ช่วงเวลาที่มีปริมาณการใช้งานสูงอาจมีเวลาคอยนานขึ้น
    • ระบบคิวทำให้การประมวลผลเป็นไปอย่างยุติธรรม
    • ติดต่อฝ่ายสนับสนุนสำหรับทรัพยากรเฉพาะ

ราคา (Pricing)

ราคา API Endpoints (API Endpoints Pricing)

การดำเนินการEndpointราคา ICหน่วย
การจดจำใบหน้าเดียว/v3/store/ekyc/face-recognition/single0.3 ICต่อการเรียกใช้
การจดจำหลายใบหน้า/v3/store/ekyc/face-recognition/multi0.3 ICต่อการเรียกใช้
เพิ่มใบหน้าเข้าฐานข้อมูล/v3/store/ekyc/face-recognition/add0.1 ICต่อการเรียกใช้
ตรวจสอบฐานข้อมูล/v3/store/ekyc/face-recognition/check0.3 ICต่อการเรียกใช้
การตรวจจับใบหน้าเดียว/v3/store/ekyc/face-detection/single0.3 ICต่อการเรียกใช้
การตรวจจับหลายใบหน้า/v3/store/ekyc/face-detection/multi0.3 ICต่อการเรียกใช้
เปรียบเทียบใบหน้า/v3/store/ekyc/face-comparison0.3 ICต่อการเรียกใช้
ลบใบหน้า/v3/store/ekyc/face-recognition/remove0 ICต่อการเรียกใช้
นำเข้าคุณสมบัติ/v3/store/ekyc/face-recognition/import0 ICต่อการเรียกใช้
ส่งออกคุณสมบัติ/v3/store/ekyc/face-recognition/export0 ICต่อการเรียกใช้
กำหนดค่าเกณฑ์/v3/store/ekyc/face-recognition/config0 ICต่อการเรียกใช้
เปลี่ยนรหัสผ่าน/v3/store/ekyc/face-recognition/password/change0 ICต่อการเรียกใช้

การติดตั้งภายในองค์กร (On-Premise Deployment)

สำหรับการใช้งานปริมาณสูงหรือข้อกำหนดด้านข้อมูลที่ละเอียดอ่อน โปรดพิจารณาการติดตั้งภายในองค์กร:

  • การเรียกใช้ API ไม่จำกัด
  • ไม่มีข้อมูลออกจากโครงสร้างพื้นฐานของคุณ
  • การสนับสนุนการผสานรวมแบบกำหนดเอง
  • การสนับสนุนด้านเทคนิคเฉพาะ
  • การกำหนดค่าเกณฑ์แบบกำหนดเอง
  • การจัดการฐานข้อมูลแบบกำหนดเอง

ติดต่อเรา สำหรับการออกใบอนุญาตและราคาภายในองค์กร


การสนับสนุน (Support)

เอกสาร (Documentation)

  • API Reference: เอกสาร endpoint ฉบับสมบูรณ์ (หน้าปัจจุบัน)
  • Integration Guides: คู่มือการผสานรวมตามภาษา
  • Code Examples: ตัวอย่างโค้ดพร้อมใช้งาน
  • Best Practices: แนวทางการปรับปรุงและรักษาความปลอดภัย

การสนับสนุนด้านเทคนิค (Technical Support)

การสอบถามทางธุรกิจ (Business Inquiries)

สำหรับโซลูชันระดับองค์กร การผสานรวมแบบกำหนดเอง หรือการติดตั้งภายในองค์กร:


บันทึกการเปลี่ยนแปลง (Changelog)

เวอร์ชัน 1.3.0 (ปัจจุบัน)

  • ปรับปรุงความแม่นยำในการจดจำหลายใบหน้า
  • ปรับปรุงการตรวจจับสำหรับใบหน้าทำมุม
  • เพิ่ม endpoints ผู้ดูแลระบบสำหรับการจัดการฐานข้อมูล
  • ปรับปรุงความเร็วในการประมวลผล
  • ปรับปรุงการจัดการข้อผิดพลาดและการรายงาน
  • เพิ่มเอกสาร API ฉบับสมบูรณ์

เวอร์ชัน 1.2.0

  • เพิ่ม endpoint การเปรียบเทียบใบหน้า
  • ปรับปรุงการกำหนดค่าเกณฑ์การจดจำ
  • ปรับปรุงฟังก์ชันการนำเข้า/ส่งออกฐานข้อมูล
  • เพิ่มฟังก์ชันการจัดการรหัสผ่าน
  • การปรับปรุงประสิทธิภาพ

เวอร์ชัน 1.1.0

  • เพิ่มการตรวจจับและการจดจำหลายใบหน้า
  • แนะนำเกณฑ์คะแนนที่กำหนดค่าได้
  • ปรับปรุงข้อความแสดงข้อผิดพลาด
  • เพิ่มฟังก์ชันการจัดการฐานข้อมูล
  • การปรับปรุงประสิทธิภาพ

เวอร์ชัน 1.0.0

  • รุ่นแรก
  • การจดจำใบหน้าเดียว
  • การตรวจจับใบหน้า
  • การจัดการฐานข้อมูลพื้นฐาน

  • Thai ID Card OCR: ดึงข้อมูลจากบัตรประจำตัวประชาชนไทย
  • Face Liveness Detection: ตรวจจับใบหน้าจริงเทียบกับรูปถ่าย
  • Document OCR: ดึงข้อความจากเอกสาร
  • Passport OCR: ดึงข้อมูลจากหนังสือเดินทาง

© 2025 บริษัท ไอแอพพ์เทคโนโลยี จำกัด สงวนลิขสิทธิ์ทุกประการ

API นี้ได้รับการปรับปรุงอย่างต่อเนื่องตามความคิดเห็นของผู้ใช้และความก้าวหน้าทางเทคโนโลยี โปรดตรวจสอบการอัปเดตเป็นประจำ