NHANWEB

How to: Xác định đối tượng với 15 dòng code trong PHP

Xác định đối tượng(Object Detection) trong ảnh dễ dàng với thư viên API và thêm 15 dòng code nữa là xong. Bạn đã chuẩn bị viết code chưa ? Nếu đã sẵn sàng rồi thì xin mời bạn đọc code nhé.

Xác định đối tượng(Object Detection) là một ứng dụng chuyên sâu được ứng dụng nhiều trong đời sống như dùng trong hệ thống camera (để xác định người/phát hiện chuyển động), giao thông…Có rất nhiều quy trình, thuật toán để xác định một đối tượng, vật thể khác nhau. Vì vậy, cần rất nhiều thuật toán, rất nhiều đoạn mã để xác định những đối tượng khác nhau trong những tình huống cụ thể khác nhau và dĩ nhiên là phải có một vài yếu tố mang khuynh hướng công nghệ 4.0 như AI chẳng hạn.

Vậy thì làm sao để detect object với 15 dòng mã ? Chém gió !

Không, chúng ta có thể làm điều đó mà không phải chém gió đâu.

Tại thời điểm này, PHP là một ngôn ngữ rất phù hợp để học và thực hành Machine Learning. Mình sắp giới thiệu với bạn một thư viện API Machine Learning cung cấp cho bạn API để phát hiện đối tượng cũng như nhiều mục đích Machine Learning khác mà có thể bạn sẽ quan tâm. Sử dụng API của họ, bạn có thể dễ dàng detect object chỉ với 15 dòng mã như đã nói ở tiêu đề.

Object Detection in PHP

Object Detection trong PHP sử dụng NanoNets API

Trước tiên hãy xem đoạn mã mình đã dùng để phát hiện đối tượng trong một tấm ảnh. Dĩ nhiên: nó dài 15 dòng :))


Vâng, đó là tổng cộng 15 dòng mã mà mình đã nói đến ở tiêu đề bài viết.

Để thực thi nó, bạn cần phải có NANONETS_API_KEY và MODEL_ID, ngoài ra hình ảnh phải là ảnh public trên internet để tư viện có thể truy cập được.

nếu mọi thứ đều đúng, bạn sẽ nhận được kết quả trả về dạng như sau:

{
  "message": "Success",
  "result": [
    {
      "message": "Success",
      "input": "https://site.com/path-to-image.jpg",
      "prediction": [
        {
          "label": "People",
          "xmin": 716,
          "ymin": 353,
          "xmax": 1023,
          "ymax": 791,
          "score": 0.9691711
        }
      ]
    }
  ]
}

Trên đây là đoạn mã khi chỉ một đối tượng được tìm thấy trong ảnh. Còn nếu có nhiều hơn 1 đối tượng được tìm thấy rtong ảnh bạn sẽ nhận được kết quả như sau:


{
  "message": "Success",
  "result": [
    {
      "message": "Success",
      "input": "https://site.com/path-to-image.jpg",
      "prediction": [
        {
          "label": "People",
          "xmin": 212,
          "ymin": 20,
          "xmax": 399,
          "ymax": 630,
          "score": 0.99909675
        },
        {
          "label": "People",
          "xmin": 402,
          "ymin": 42,
          "xmax": 614,
          "ymax": 630,
          "score": 0.9973943
        },
        {
          "label": "People",
          "xmin": 637,
          "ymin": 52,
          "xmax": 798,
          "ymax": 630,
          "score": 0.99497247
        },
        {
          "label": "People",
          "xmin": 775,
          "ymin": 33,
          "xmax": 989,
          "ymax": 630,
          "score": 0.9945598
        }
      ]
    }
  ]
}

Trong nội dung phản hồi trả về dạng JSON, bạn có thể nhận được thông tin chi tiết về đối tượng, label về đối tượng được gán nhãn, vị trí 4 điểm xung quanh đối tượng trên trục X và Y để từ đó bạn có thể vẽ một hình ảnh xugn quanh đối tượng.

NanoNets có đầy đủ các thuật toán cần thiết về các đối tượng cho bạn nên bạn có thể yên tâm sử dụng.

Exit mobile version