Skip to content

Phát hiện thẻ ID ​

Định vị mọi thẻ ID (ID card) bên trong một ảnh và trả về tọa độ các góc cùng nhãn thẻ. Dùng nó để xác nhận một thẻ có mặt và được lấy khung đúng trước khi chạy OCR hoặc kiểm tra giả mạo.

Endpoint ​

http
POST /v1/detect_id_cards_sync
Content-Type: application/json
json
{
  "card_type": "vn.national_id",
  "image": {
    "id": "a4facba3-334b-41fb-97e3-4766cb70ae29",
    "base64": "",
    "label": "id_card.vn.national_id.front",
    "metadata": "{}"
  }
}

Tham số:

Tham sốKiểuBắt buộcMặc địnhMô tả
card_typestringCó—Loại thẻ định danh. Xem Khuyến nghị sử dụng.
imageImageDataCó—Ảnh mặt trước của thẻ định danh.

ImageData ​

typescript
interface ImageData {
  id?: string;
  base64?: string;
  label?: string;
  metadata?: string; // Chuỗi JSON
}
Tham sốKiểuBắt buộcMặc địnhMô tả
idstringKhông—ID của ảnh được trả về bởi Tải ảnh lên.
base64stringKhông—Văn bản dữ liệu ảnh mã hóa Base64.
labelstringKhông—Nhãn của ảnh, như mô tả trong Khuyến nghị sử dụng.
metadatastring_jsonKhông—Chuỗi JSON key/value. Ví dụ: {"id":"<ID>","type":1}

Chỉ cung cấp id hoặc base64. Nếu bạn dùng base64, hãy gửi thêm label và metadata và bỏ qua id. Nếu bạn dùng id, hãy bỏ qua ba trường còn lại.

Ví dụ request ​

bash
curl -X POST \
  '<BASE_URL>/v1/detect_id_cards_sync' \
  -H 'Authorization: ATV <ACCESS_ID>:<SIGNATURE>' \
  -H 'X-TV-Timestamp: <TIMESTAMP>' \
  -H 'Content-Type: application/json' \
  -d '{
    "card_type": "vn.national_id",
    "image": {
      "id": "a4facba3-334b-41fb-97e3-4766cb70ae29"
    }
  }'

Response ​

json
{
  "data": {
    "request_id": "f77bf948-fce3-48f3-b61c-396e4cd9a89b",
    "status": "success",
    "image": {
      "id": "854322f0-eb49-4bd6-b870-050fcc088d10",
      "cards": [
        {
          "card_box": {
            "top_left": { "x": 90.52290163561702, "y": 110.761657032324 },
            "top_right": { "x": 981.4022462964058, "y": 101.39770825190935 },
            "bottom_left": { "x": 102.62150720786303, "y": 679.5154545297846 },
            "bottom_right": { "x": 996.863339483738, "y": 661.6368409626185 }
          },
          "card_label": "vn.cccd_new.front",
          "transformed_image_id": ""
        }
      ]
    }
  },
  "errors": []
}
TrườngKiểuMô tả
data.request_idstringRequest ID; cung cấp cho CAKE Support khi cần kiểm tra log.
data.statusstringsuccess hoặc failure.
data.image.idstringID của ảnh đã phân tích.
data.image.cardsarrayMột phần tử cho mỗi thẻ được phát hiện trong ảnh.
data.image.cards[].card_labelstringNhãn thẻ được phát hiện, ví dụ vn.cccd_new.front.
data.image.cards[].transformed_image_idstringID của ảnh thẻ đã được chỉnh nghiêng/cắt. Chỉ có mặt khi cấu hình tenant enable_create_image là true.
data.image.cards[].card_boxCardBoxTọa độ các góc của thẻ được phát hiện.

CardBox ​

TrườngKiểuMô tả
top_leftPointGóc trên-trái, { "x": float, "y": float }.
top_rightPointGóc trên-phải.
bottom_leftPointGóc dưới-trái.
bottom_rightPointGóc dưới-phải.

Lỗi ​

MãThông báo
2001010Không tìm thấy Access ID.
401100Bạn không được phép thực hiện hành động này.
4001000Tham số đầu vào vi phạm một ràng buộc.
4001001Header X-TV-Timestamp đã hết hạn, cần một cái mới hơn.
5001000Xảy ra lỗi không mong đợi trong quá trình xử lý request.
MãMô tả
access_denied_exceptionBạn không được phép thực hiện hành động này.
invalid_parameter_exceptionTham số đầu vào vi phạm một ràng buộc.
request_time_too_skewedHeader X-TV-Timestamp đã hết hạn, cần một cái mới hơn.
image_not_found_exceptionKhông tìm thấy image ID trong DB.
request_not_found_exceptionKhông tìm thấy request ID khi poll kết quả theo id.
rate_limit_exceptionSố lượng request vượt quá giới hạn throughput của bạn.
internal_server_errorXảy ra lỗi không mong đợi trong quá trình xử lý request.

Bước tiếp theo ​

Developers