Huấn luyện mô hình phát hiện đối tượng với AutoML Vision Edge

Mô hình phát hiện đối tượng tương tự như mô hình ghi nhãn hình ảnh, nhưng thay vì gán nhãn cho toàn bộ hình ảnh, nó gán nhãn cho các vùng của hình ảnh. Bạn có thể sử dụng các mô hình phát hiện đối tượng để nhận dạng và định vị các đối tượng trong ảnh hoặc để theo dõi chuyển động của đối tượng trên một loạt hình ảnh.

Để huấn luyện mô hình phát hiện đối tượng, bạn cung cấp cho AutoML Vision Edge một tập hợp hình ảnh có nhãn đối tượng và ranh giới đối tượng tương ứng. AutoML Vision Edge sử dụng tập dữ liệu này để huấn luyện một mô hình mới trên đám mây mà bạn có thể sử dụng để phát hiện đối tượng trên thiết bị.

Trước khi bắt đầu

1. Tập hợp dữ liệu đào tạo của bạn

Trước tiên, bạn cần tập hợp một tập dữ liệu huấn luyện gồm các hình ảnh được gắn nhãn. Hãy ghi nhớ những hướng dẫn sau:

  • Hình ảnh phải ở một trong các định dạng sau: JPEG, PNG, GIF, BMP, ICO.

  • Mỗi hình ảnh phải có dung lượng từ 30MB trở xuống. Lưu ý rằng AutoML Vision Edge giảm tỷ lệ hầu hết các hình ảnh trong quá trình tiền xử lý, do đó, việc cung cấp hình ảnh có độ phân giải rất cao thường không mang lại lợi ích gì về độ chính xác.

  • Bao gồm ít nhất 10, và tốt nhất là 100 hoặc nhiều hơn, ví dụ về mỗi nhãn.

  • Bao gồm nhiều góc độ, độ phân giải và hình nền cho mỗi nhãn.

  • Dữ liệu huấn luyện phải càng gần với dữ liệu dự đoán sẽ được thực hiện càng tốt. Ví dụ: nếu trường hợp sử dụng của bạn liên quan đến hình ảnh mờ và độ phân giải thấp (chẳng hạn như từ camera an ninh), dữ liệu đào tạo của bạn phải bao gồm các hình ảnh mờ, độ phân giải thấp.

  • Các mô hình do AutoML Vision Edge tạo ra được tối ưu hóa cho ảnh chụp các đối tượng trong thế giới thực. Chúng có thể không hoạt động tốt đối với ảnh chụp X-quang, bản vẽ tay, tài liệu được quét, biên lai, v.v.

    Ngoài ra, các mô hình nói chung không thể dự đoán các nhãn mà con người không thể gán. Vì vậy, nếu con người không thể gán nhãn bằng cách nhìn vào hình ảnh trong 1-2 giây, thì mô hình cũng có thể không được đào tạo để làm điều đó.

Khi bạn đã chuẩn bị sẵn hình ảnh đào tạo, hãy chuẩn bị nhập chúng vào Google Cloud. Bạn có hai lựa chọn:

Tùy chọn 1: Lưu trữ đám mây với chỉ mục CSV

Tải hình ảnh đào tạo của bạn lên Google Cloud Storage và chuẩn bị tệp CSV liệt kê URL của từng hình ảnh và (tùy chọn) nhãn đối tượng chính xác và vùng giới hạn cho mỗi hình ảnh. Tùy chọn này hữu ích khi sử dụng bộ dữ liệu lớn.

Ví dụ: tải hình ảnh của bạn lên Cloud Storage và chuẩn bị tệp CSV như sau:

gs://your-training-data-bucket/001.jpg,accordion,0.2,0.4,,,0.3,0.5,,
gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,,
gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,

Các hộp giới hạn đối tượng được chỉ định làm tọa độ tương đối trong ảnh. Xem Định dạng CSV dữ liệu đào tạo .

Hình ảnh phải được lưu trữ trong vùng lưu trữ ở khu vực us-central1 và là một phần của dự án Google Cloud tương ứng trong dự án Firebase của bạn.

Tùy chọn 2: Hình ảnh không được gắn nhãn

Gắn nhãn cho hình ảnh đào tạo của bạn và vẽ ranh giới đối tượng trong bảng điều khiển Google Cloud sau khi bạn tải chúng lên. Điều này chỉ được khuyến nghị cho các tập dữ liệu nhỏ. Xem bước tiếp theo.

2. Huấn luyện mô hình của bạn

Tiếp theo, huấn luyện mô hình bằng hình ảnh của bạn:

  1. Mở trang Bộ dữ liệu Tầm nhìn trong bảng điều khiển Google Cloud. Chọn dự án của bạn khi được nhắc.

  2. Nhấp vào Tập dữ liệu mới , đặt tên cho tập dữ liệu, chọn loại mô hình bạn muốn đào tạo và nhấp vào Tạo tập dữ liệu .

  3. Trên tab Nhập của tập dữ liệu, hãy tải lên hình ảnh đào tạo của bạn, kho lưu trữ zip của hình ảnh đào tạo hoặc tệp CSV chứa các vị trí Cloud Storage mà bạn đã tải chúng lên. Xem Tập hợp dữ liệu đào tạo của bạn .

  4. Sau khi tác vụ nhập hoàn tất, hãy sử dụng tab Hình ảnh để xác minh dữ liệu đào tạo.

  5. Nếu bạn không tải tệp CSV lên, đối với mỗi hình ảnh, hãy vẽ các hộp giới hạn xung quanh đối tượng bạn muốn nhận dạng và gắn nhãn cho từng đối tượng.

  6. Trên tab Đào tạo , nhấp vào Bắt đầu đào tạo .

    1. Đặt tên cho mô hình và chọn loại mô hình Edge .

    2. Định cấu hình các cài đặt đào tạo sau, chi phối hiệu suất của mô hình được tạo:

      Tối ưu hóa mô hình cho... Cấu hình mô hình sẽ sử dụng. Bạn có thể đào tạo các mô hình nhanh hơn, nhỏ hơn khi độ trễ thấp hoặc kích thước gói nhỏ là quan trọng hoặc các mô hình chậm hơn, lớn hơn khi độ chính xác là quan trọng nhất.
      Ngân sách giờ nút

      Thời gian tối đa tính theo giờ tính toán để đào tạo mô hình. Thời gian đào tạo nhiều hơn thường dẫn đến một mô hình chính xác hơn.

      Lưu ý rằng việc đào tạo có thể được hoàn thành trong thời gian ít hơn thời gian quy định nếu hệ thống xác định rằng mô hình đã được tối ưu hóa và việc đào tạo bổ sung sẽ không cải thiện độ chính xác. Bạn chỉ bị tính phí cho số giờ thực sự sử dụng.

      Thời gian đào tạo điển hình
      Bộ rất nhỏ 1 giờ
      500 hình ảnh 2 giờ
      1.000 hình ảnh 3 giờ
      5.000 hình ảnh 6 tiếng
      10.000 hình ảnh 7 giờ
      50.000 hình ảnh 11 giờ
      100.000 hình ảnh 13 giờ
      1.000.000 hình ảnh 18 giờ

3. Đánh giá mô hình của bạn

Khi quá trình đào tạo hoàn tất, bạn có thể nhấp vào tab Đánh giá để xem số liệu hiệu suất của mô hình.

Một công dụng quan trọng của trang này là xác định ngưỡng tin cậy phù hợp nhất với mô hình của bạn. Ngưỡng tin cậy là độ tin cậy tối thiểu mà mô hình phải có để gán nhãn cho hình ảnh. Bằng cách di chuyển thanh trượt Ngưỡng tin cậy , bạn có thể thấy các ngưỡng khác nhau ảnh hưởng như thế nào đến hiệu suất của mô hình. Hiệu suất của mô hình được đo bằng hai số liệu: độ chính xáckhả năng thu hồi .

Trong bối cảnh phân loại hình ảnh, độ chính xác là tỷ lệ giữa số lượng hình ảnh được gắn nhãn chính xác với số lượng hình ảnh mà mô hình được gắn nhãn cho ngưỡng đã chọn. Khi một mô hình có độ chính xác cao, nó sẽ ít gán nhãn sai hơn (ít sai sót hơn).

Khả năng thu hồi là tỷ lệ giữa số lượng hình ảnh được gắn nhãn chính xác với số lượng hình ảnh có nội dung mà lẽ ra mô hình có thể gắn nhãn. Khi một mô hình có khả năng thu hồi cao, nó không thường xuyên gán bất kỳ nhãn nào (ít phủ định sai hơn).

Việc bạn tối ưu hóa độ chính xác hay thu hồi sẽ tùy thuộc vào trường hợp sử dụng của bạn. Xem hướng dẫn dành cho người mới bắt đầu AutoML Visionhướng dẫn Inclusive ML - AutoML để biết thêm thông tin.

Khi bạn tìm thấy ngưỡng tin cậy tạo ra số liệu mà bạn thấy thoải mái, hãy ghi lại ngưỡng đó; bạn sẽ sử dụng ngưỡng tin cậy để định cấu hình mô hình trong ứng dụng của mình. (Bạn có thể sử dụng công cụ này bất kỳ lúc nào để có được giá trị ngưỡng thích hợp.)

4. Xuất bản hoặc tải xuống mô hình của bạn

Nếu bạn hài lòng với hiệu suất của mô hình và muốn sử dụng nó trong một ứng dụng, bạn có ba tùy chọn, từ đó bạn có thể chọn bất kỳ kết hợp nào: triển khai mô hình để dự đoán trực tuyến, xuất bản mô hình lên Firebase hoặc tải xuống mô hình và gói nó với ứng dụng của bạn.

Triển khai mô hình

Trên tab Kiểm tra và sử dụng của tập dữ liệu, bạn có thể triển khai mô hình của mình để dự đoán trực tuyến, mô hình này sẽ chạy mô hình của bạn trên đám mây. Tùy chọn này được đề cập trong tài liệu Cloud AutoML . Các tài liệu trên trang này giải quyết hai tùy chọn còn lại.

Xuất bản mô hình

Bằng cách xuất bản mô hình lên Firebase, bạn có thể cập nhật mô hình mà không cần phát hành phiên bản ứng dụng mới và bạn có thể sử dụng Cấu hình từ xa và Thử nghiệm A/B để phân phát động các mô hình khác nhau cho các nhóm người dùng khác nhau.

Nếu bạn chọn chỉ cung cấp mô hình bằng cách lưu trữ mô hình đó với Firebase chứ không kết hợp mô hình đó với ứng dụng của mình thì bạn có thể giảm kích thước tải xuống ban đầu của ứng dụng. Tuy nhiên, hãy nhớ rằng nếu mô hình không đi kèm với ứng dụng của bạn thì mọi chức năng liên quan đến mô hình sẽ không khả dụng cho đến khi ứng dụng của bạn tải mô hình xuống lần đầu tiên.

Để xuất bản mô hình của mình, bạn có thể sử dụng một trong hai phương pháp:

  • Tải xuống mô hình TF Lite từ trang Kiểm tra và sử dụng tập dữ liệu của bạn trong bảng điều khiển Google Cloud, sau đó tải mô hình lên trang Mô hình tùy chỉnh của bảng điều khiển Firebase. Đây thường là cách dễ nhất để xuất bản một mô hình.
  • Xuất bản mô hình trực tiếp từ dự án Google Cloud của bạn lên Firebase bằng SDK quản trị. Bạn có thể sử dụng phương pháp này để xuất bản hàng loạt một số mô hình hoặc để giúp tạo quy trình xuất bản tự động.

Để xuất bản mô hình bằng API quản lý mô hình SDK quản trị:

  1. Cài đặt và khởi tạo SDK .

  2. Xuất bản mô hình.

    Bạn sẽ cần chỉ định mã định danh tài nguyên của mô hình, đây là một chuỗi trông giống như ví dụ sau:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER Số dự án của nhóm Cloud Storage chứa mô hình. Đây có thể là dự án Firebase của bạn hoặc một dự án Google Cloud khác. Bạn có thể tìm thấy giá trị này trên trang Cài đặt của bảng điều khiển Firebase hoặc trang tổng quan bảng điều khiển Google Cloud.
    MODEL_ID ID của mô hình mà bạn nhận được từ API đám mây AutoML.

    Python

    # First, import and initialize the SDK.
    
    # Get a reference to the AutoML model
    source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format(
        # See above for information on these values.
        project_number,
        model_id
    ))
    
    # Create the model object
    tflite_format = ml.TFLiteFormat(model_source=source)
    model = ml.Model(
        display_name="example_model",  # This is the name you will use from your app to load the model.
        tags=["examples"],             # Optional tags for easier management.
        model_format=tflite_format)
    
    # Add the model to your Firebase project and publish it
    new_model = ml.create_model(model)
    new_model.wait_for_unlocked()
    ml.publish_model(new_model.model_id)
    

    Node.js

    // First, import and initialize the SDK.
    
    (async () => {
      // Get a reference to the AutoML model. See above for information on these
      // values.
      const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`;
    
      // Create the model object and add the model to your Firebase project.
      const model = await ml.createModel({
        displayName: 'example_model',  // This is the name you use from your app to load the model.
        tags: ['examples'],  // Optional tags for easier management.
        tfliteModel: { automlModel: automlModel },
      });
    
      // Wait for the model to be ready.
      await model.waitForUnlocked();
    
      // Publish the model.
      await ml.publishModel(model.modelId);
    
      process.exit();
    })().catch(console.error);
    

Tải xuống và đóng gói mô hình với ứng dụng của bạn

Bằng cách kết hợp mô hình với ứng dụng của bạn, bạn có thể đảm bảo các tính năng ML của ứng dụng vẫn hoạt động khi mô hình được lưu trữ trên Firebase không khả dụng.

Nếu cả hai bạn đều xuất bản mô hình và gói nó cùng với ứng dụng của mình thì ứng dụng sẽ sử dụng phiên bản mới nhất hiện có.

Để tải xuống mô hình của bạn, hãy nhấp vào TF Lite trên trang Kiểm tra và sử dụng tập dữ liệu của bạn.

Bước tiếp theo

Bây giờ bạn đã xuất bản hoặc tải xuống mô hình, hãy tìm hiểu cách sử dụng mô hình trong ứng dụng iOS+Android của bạn.