Mô hình phát hiện đối tượng tương tự như mô hình gắn nhãn hình ảnh, nhưng thay vì chỉ định nhãn cho toàn bộ hình ảnh, mô hình này sẽ chỉ định 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à xác định vị trí của các đối tượng trong một hình ảnh hoặc để theo dõi chuyển động của một đối tượng trên một loạt hình ảnh.
Để huấn luyện một 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. Bạn có thể dùng mô hình này để phát hiện đối tượng trên thiết bị.
Trước khi bắt đầu
Nếu bạn chưa có dự án Firebase, hãy tạo một dự án trong Firebase bảng điều khiển.
Làm quen với các nguyên tắc được trình bày trong Hướng dẫn về ML toàn diện – AutoML.
Nếu bạn chỉ muốn dùng thử AutoML Vision Edge và không có dữ liệu huấn luyện riêng, hãy tải một tập dữ liệu mẫu xuống, chẳng hạn như một trong các tập dữ liệu sau:
- Một trong những tập dữ liệu được đề xuất của TensorFlow.
- Một tập dữ liệu được lưu trữ trên Kaggle.
1. Tập hợp dữ liệu huấn luyệ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 lưu ý các nguyên tắc sau:
Hình ảnh phải có một trong các định dạng sau: JPEG, PNG, GIF, BMP, ICO.
Mỗi hình ảnh phải có kích thước từ 30 MB trở xuống. Xin lưu ý rằng AutoML Vision Edge giảm tỷ lệ hầu hết hình ảnh trong quá trình tiền xử lý, vì vậy, 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 nào về độ chính xác.
Cung cấp ít nhất 10 ví dụ cho mỗi nhãn, tốt nhất là 100 ví dụ trở lên.
Hãy thêm nhiều góc, độ phân giải và phông nền cho mỗi nhãn.
Dữ liệu huấn luyện phải gần với dữ liệu mà bạn muốn dự đoán nhất có thể. Ví dụ: nếu trường hợp sử dụng của bạn liên quan đến hình ảnh bị mờ và có độ phân giải thấp (chẳng hạn như từ camera an ninh), thì dữ liệu huấn luyện của bạn phải bao gồm hình ảnh bị mờ và có độ phân giải thấp.
Các mô hình do AutoML Vision Edge tạo được tối ưu hoá cho ảnh chụp các đối tượng trong thế giới thực. Các tính năng này có thể không hoạt động hiệu quả đối với ảnh chụp X-quang, bản vẽ tay, tài liệu quét, biên nhận, v.v.
Ngoài ra, các mô hình thường không thể dự đoán những nhãn mà con người không thể chỉ định. Vì vậy, nếu con người không thể chỉ định nhãn bằng cách nhìn vào hình ảnh trong 1-2 giây, thì có thể mô hình cũng không được huấn luyện để làm việc đó.
Khi bạn đã chuẩn bị xong hình ảnh huấn luyện, hãy chuẩn bị để nhập vào Google Cloud. Bạn có hai tuỳ chọn:
Cách 1: Cloud Storage có chỉ mục CSV
Tải hình ảnh huấn luyện lên Google Cloud Storage và chuẩn bị một tệp CSV liệt kê URL của từng hình ảnh, cũng như nhãn đối tượng và vùng bao chính xác (không bắt buộc) cho từng hình ảnh. Lựa chọn này sẽ hữu ích khi bạn sử dụng các tập dữ liệu lớn.
Ví dụ: tải hình ảnh lên Cloud Storage và chuẩn bị một 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,,
Khung giới hạn đối tượng được chỉ định dưới dạng toạ độ tương đối trong hình ảnh. Xem phần Định dạng tệp CSV dữ liệu huấn luyện.
Hình ảnh phải được lưu trữ trong một vùng chứa thuộc khu vực us-central1
và là một phần của dự án Google Cloud tương ứng trong dự án Firebase.
Lựa chọn 2: Hình ảnh không có nhãn
Gắn nhãn cho hình ảnh huấn luyện và vẽ ranh giới đối tượng trong bảng điều khiển Google Cloud sau khi bạn tải hình ảnh lên. Bạn chỉ nên sử dụng thuộc tính này cho các tập dữ liệu nhỏ. Xem bước tiếp theo.
2. Huấn luyện mô hình
Tiếp theo, hãy huấn luyện một mô hình bằng cách sử dụng hình ảnh của bạn:
Mở trang Tập dữ liệu về thị giác trong bảng điều khiển Google Cloud. Chọn dự án của bạn khi được nhắc.
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 mà bạn muốn huấn luyện, rồi nhấp vào Tạo tập dữ liệu.
Trên thẻ Nhập của tập dữ liệu, hãy tải hình ảnh huấn luyện, tệp lưu trữ zip chứa hình ảnh huấn luyện hoặc tệp CSV chứa vị trí Cloud Storage mà bạn đã tải hình ảnh huấn luyện lên. Xem phần Tập hợp dữ liệu huấn luyện.
Sau khi hoàn tất tác vụ nhập, hãy sử dụng thẻ Hình ảnh để xác minh dữ liệu huấn luyện.
Nếu bạn không tải tệp CSV lên, thì đối với mỗi hình ảnh, hãy vẽ các khung hình chữ nhật xung quanh những đối tượng bạn muốn nhận dạng và gắn nhãn cho từng đối tượng.
Trên thẻ Huấn luyện, hãy nhấp vào Bắt đầu huấn luyện.
Đặt tên cho mô hình và chọn loại mô hình Edge.
Định cấu hình các chế độ cài đặt huấn luyện sau đây để điều chỉnh hiệu suất của mô hình được tạo:
Tối ưu hoá mô hình cho... Cấu hình mô hình sẽ sử dụng. Bạn có thể huấn luyện các mô hình nhỏ hơn, nhanh hơn khi độ trễ thấp hoặc kích thước gói nhỏ là yếu tố quan trọng, hoặc các mô hình lớn hơn, chậm hơn khi độ chính xác là yếu tố quan trọng nhất. Ngân sách theo giờ của nút Thời gian tối đa (tính bằng giờ tính toán) để dành cho việc huấn luyện mô hình. Thời gian huấn luyện càng dài thì mô hình thường càng chính xác.
Xin lưu ý rằng quá trình huấn luyện có thể hoàn tất trong thời gian ngắn hơn thời gian đã chỉ định nếu hệ thống xác định rằng mô hình đã được tối ưu hoá và việc huấn luyện thêm sẽ không cải thiện độ chính xác. Bạn chỉ phải thanh toán cho số giờ thực tế đã sử dụng.
Thời gian đào tạo thông thường Tập hợp rất nhỏ 1 giờ 500 hình ảnh 2 giờ 1.000 hình ảnh 3 giờ 5.000 hình ảnh 6 giờ 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 huấn luyện hoàn tất, bạn có thể nhấp vào thẻ Đánh giá để xem các chỉ số hiệu suất của mô hình.
Một mục đích quan trọng của trang này là xác định ngưỡng tin cậy phù hợp nhất cho 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ó để chỉ định nhãn cho một hình ảnh. Bằng cách di chuyển thanh trượt Ngưỡng tin cậy, bạn có thể xem 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 lường bằng 2 chỉ số: độ chính xác và khả 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 so với số lượng hình ảnh mà mô hình đã gắn nhãn dựa trên ngưỡng đã chọn. Khi có độ chính xác cao, mô hình sẽ ít khi gán nhãn không chính xác (ít kết quả dương tính giả hơn).
Độ thu hồi là tỷ lệ giữa số lượng hình ảnh được gắn nhãn chính xác so với số lượng hình ảnh có nội dung mà mô hình có thể gắn nhãn. Khi một mô hình có độ thu hồi cao, mô hình đó sẽ ít khi không chỉ định nhãn (ít âm tính giả hơn).
Việc bạn tối ưu hoá cho độ chính xác hay khả năng thu hồi sẽ phụ thuộc vào trường hợp sử dụng của bạn. Hãy xem Hướng dẫn cho người mới bắt đầu sử dụng AutoML Vision và Hướng dẫn về ML toàn diện – AutoML để biết thêm thông tin.
Khi tìm được một ngưỡng tin cậy tạo ra các chỉ số mà bạn cảm thấy thoải mái, hãy ghi lại ngưỡng đó; bạn sẽ dùng ngưỡng tin cậy nà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 cứ lúc nào để nhận được giá trị ngưỡng phù hợp.)
4. Xuất bản hoặc tải mô hình xuống
Nếu hài lòng với hiệu suất của mô hình và muốn sử dụng mô hình đó trong một ứng dụng, bạn có thể chọn kết hợp 3 lựa chọn sau: 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 mô hình xuống và kết hợp với ứng dụng của bạn.
Triển khai mô hình
Trên thẻ Kiểm thử và sử dụng của tập dữ liệu, bạn có thể triển khai mô hình để dự đoán trực tuyến, tức là chạy mô hình của bạn trên đám mây. Lựa chọn này được đề cập trong tài liệu về Cloud AutoML. Tài liệu trên trang web này đề cập đến 2 lựa 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à có thể sử dụng Remote Config và A/B Testing để phân phát linh hoạt các mô hình khác nhau cho các nhóm người dùng khác nhau.
Nếu chỉ cung cấp mô hình bằng cách lưu trữ mô hình đó với Firebase chứ không đi kèm với ứng dụng, 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 lưu ý rằng nếu mô hình không đi kèm với ứng dụng, thì mọi chức năng liên quan đến mô hình sẽ không hoạt động cho đến khi ứng dụng tải mô hình xuống lần đầu tiên.
Để xuất bản mô hình, bạn có thể sử dụng một trong hai phương thức sau:
- Tải mô hình TF Lite xuống từ trang Thử nghiệm và sử dụng của tập dữ liệu trong bảng điều khiển Google Cloud, sau đó tải mô hình lên trang Mô hình tuỳ 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 duy nhất.
- 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 Admin SDK. Bạn có thể sử dụng phương thức 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.
Cách xuất bản mô hình bằng API quản lý mô hình của Admin SDK:
Xuất bản mô hình.
Bạn sẽ cần chỉ định giá trị nhận dạng tài nguyên của mô hình. Đây là một chuỗi có dạ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
Mã nhận dạng của mô hình mà bạn nhận được từ AutoML Cloud API. 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à gói mô hình cùng với ứng dụng của bạn
Bằng cách gói mô hình với ứng dụng, 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 do Firebase lưu trữ không hoạt động.
Nếu bạn vừa xuất bản mô hình vừa gói mô hình đó với ứng dụng, thì ứng dụng sẽ sử dụng phiên bản mới nhất hiện có.
Để tải mô hình xuống, hãy nhấp vào TF Lite trên trang Kiểm thử và sử dụng của tập dữ liệu.
Các bước tiếp theo
Giờ đây, sau khi xuất bản hoặc tải mô hình xuống, hãy tìm hiểu cách sử dụng mô hình này trong các ứng dụng iOS+ và Android của bạn.