Theo mặc định, các API của ML Kit sử dụng các mô hình học máy do Google huấn luyện. Các mô hình này được thiết kế để bao gồm nhiều ứng dụng. Tuy nhiên, một số trường hợp sử dụng yêu cầu các mô hình có mục tiêu cụ thể hơn. Đó là lý do một số API của Bộ công cụ học máy hiện cho phép bạn thay thế các mô hình mặc định bằng các mô hình LiteRT tuỳ chỉnh.
Cả API Gắn nhãn hình ảnh và Phát hiện và theo dõi đối tượng đều hỗ trợ các mô hình phân loại hình ảnh tuỳ chỉnh. Các API này tương thích với một số mô hình được huấn luyện trước có chất lượng cao trên TensorFlow Hub hoặc mô hình tuỳ chỉnh của riêng bạn được huấn luyện bằng TensorFlow hoặc AutoML.
Nếu bạn cần một giải pháp tuỳ chỉnh cho các miền hoặc trường hợp sử dụng khác, hãy truy cập vào trang Học máy trên thiết bị để xem hướng dẫn về tất cả các giải pháp và công cụ của Google cho công nghệ học máy trên thiết bị.
Lợi ích khi sử dụng Bộ công cụ học máy với các mô hình tuỳ chỉnh
Sau đây là những lợi ích khi sử dụng mô hình phân loại hình ảnh tuỳ chỉnh với Bộ công cụ học máy:
- API cấp cao dễ sử dụng – Không cần xử lý đầu vào/đầu ra của mô hình cấp thấp, xử lý trước/sau hình ảnh hoặc xây dựng quy trình xử lý.
- Bạn không cần lo lắng về việc tự ánh xạ nhãn, Bộ công cụ học máy sẽ trích xuất nhãn từ siêu dữ liệu mô hình LiteRT và thực hiện việc ánh xạ cho bạn.
- Hỗ trợ các mô hình tuỳ chỉnh từ nhiều nguồn, từ các mô hình được huấn luyện trước được xuất bản trên TensorFlow Hub cho đến các mô hình mới được huấn luyện bằng TensorFlow hoặc AutoML.
- Được tối ưu hoá để tích hợp với API Camera của Android.
Và cụ thể đối với Phát hiện và theo dõi đối tượng:
- Cải thiện độ chính xác của việc phân loại bằng cách xác định vị trí của các đối tượng trước và chỉ chạy trình phân loại trên vùng hình ảnh có liên quan.
- Cung cấp trải nghiệm tương tác theo thời gian thực bằng cách cung cấp cho người dùng thông tin phản hồi ngay lập tức về các đối tượng khi chúng được phát hiện và phân loại.
Sử dụng mô hình phân loại hình ảnh được huấn luyện trước
Bạn có thể sử dụng các mô hình LiteRT được huấn luyện trước, miễn là các mô hình đó đáp ứng một bộ tiêu chí. Thông qua TensorFlow Hub, chúng tôi cung cấp một bộ mô hình đã được kiểm duyệt (của Google hoặc các nhà sáng tạo mô hình khác) đáp ứng những tiêu chí này.
Sử dụng mô hình được xuất bản trên TensorFlow Hub
TensorFlow Hub cung cấp nhiều mô hình phân loại hình ảnh được huấn luyện trước (từ nhiều nhà sáng tạo mô hình) có thể dùng với API Gắn nhãn hình ảnh và API Phát hiện và theo dõi đối tượng. Hãy làm theo các bước sau.
- Chọn một mô hình trong bộ sưu tập các mô hình tương thích với ML Kit.
- Tải tệp mô hình .tflite xuống từ trang thông tin chi tiết về mô hình. Nếu có thể, hãy chọn một định dạng mô hình có siêu dữ liệu.
- Hãy làm theo hướng dẫn của chúng tôi về Image Labeling API hoặc Object Detection and Tracking API để biết cách kết hợp tệp mô hình với dự án của bạn và sử dụng tệp đó trong ứng dụng Android hoặc iOS.
Huấn luyện mô hình phân loại hình ảnh của riêng bạn
Nếu không có mô hình phân loại hình ảnh được huấn luyện trước nào phù hợp với nhu cầu của bạn, thì có nhiều cách để huấn luyện mô hình LiteRT của riêng bạn. Một số cách được trình bày và thảo luận chi tiết hơn trong phần sau.
| Các lựa chọn để huấn luyện mô hình phân loại hình ảnh của riêng bạn | |
|---|---|
| AutoML |
|
| Chuyển đổi mô hình TensorFlow sang LiteRT |
|
AutoML
Các mô hình phân loại hình ảnh được huấn luyện bằng AutoML được các mô hình tuỳ chỉnh hỗ trợ trong API Gắn nhãn hình ảnh và Phát hiện và theo dõi đối tượng. Các API này cũng hỗ trợ tải mô hình được lưu trữ bằng Cloud Storage xuống.
Để tìm hiểu thêm về cách sử dụng một mô hình được huấn luyện bằng AutoML trong các ứng dụng Android và iOS, hãy làm theo hướng dẫn về mô hình tuỳ chỉnh cho từng API, tuỳ thuộc vào trường hợp sử dụng của bạn.
Các mô hình được tạo bằng bộ chuyển đổi LiteRT
Nếu có mô hình phân loại hình ảnh TensorFlow hiện có, bạn có thể chuyển đổi mô hình đó bằng trình chuyển đổi LiteRT. Đảm bảo rằng mô hình bạn tạo đáp ứng các yêu cầu sau về khả năng tương thích.
Để tìm hiểu thêm về cách sử dụng mô hình LiteRT trong ứng dụng Android và iOS, hãy làm theo hướng dẫn của chúng tôi về API Gán nhãn hình ảnh hoặc API Phát hiện và theo dõi đối tượng, tuỳ thuộc vào trường hợp sử dụng của bạn.
Khả năng tương thích của mô hình LiteRT
Bạn có thể sử dụng bất kỳ mô hình phân loại hình ảnh LiteRT được huấn luyện trước nào, miễn là mô hình đó đáp ứng các yêu cầu sau:
Tensor
- Mô hình chỉ được có một tensor đầu vào với các ràng buộc sau:
- Dữ liệu ở định dạng pixel RGB.
- Dữ liệu thuộc loại UINT8 hoặc FLOAT32. Nếu loại tensor đầu vào là FLOAT32, thì bạn phải chỉ định NormalizationOptions bằng cách đính kèm Metadata.
- Tensor có 4 phương diện : BxHxWxC, trong đó:
- B là kích thước lô. Giá trị này phải là 1 (không được hỗ trợ suy luận trên các lô lớn hơn).
- W và H là chiều rộng và chiều cao đầu vào.
- C là số lượng kênh dự kiến. Giá trị này phải là 3.
- Mô hình phải có ít nhất một tensor đầu ra với N lớp và 2 hoặc 4 phương diện:
- (1xN)
- (1x1x1xN)
- Hệ thống chỉ hỗ trợ đầy đủ các mô hình một đầu. Các mô hình nhiều đầu có thể xuất ra kết quả không mong muốn.
Metadata
Bạn có thể thêm siêu dữ liệu vào tệp LiteRT như được giải thích trong phần Thêm siêu dữ liệu vào mô hình LiteRT.
Để sử dụng một mô hình có tensor đầu vào FLOAT32, bạn phải chỉ định NormalizationOptions trong siêu dữ liệu.
Bạn cũng nên đính kèm siêu dữ liệu này vào tensor đầu ra TensorMetadata:
- Một bản đồ nhãn chỉ định tên của từng lớp đầu ra, dưới dạng AssociatedFile có loại TENSOR_AXIS_LABELS (nếu không, chỉ có thể trả về các chỉ mục lớp đầu ra bằng số)
- Ngưỡng điểm mặc định mà theo đó, kết quả được coi là có độ tin cậy quá thấp để được trả về, dưới dạng một ProcessUnit có ScoreThresholdingOptions