Theo mặc định, các API của Bộ công cụ học máy sẽ sử dụng các mô hình học máy do Google đào tạo. Các mô hình này được thiết kế để xử lý 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 nhắm mục tiêu nhiều hơn. Đó là lý do giờ đây, một số API của Bộ công cụ học máy cho phép bạn thay thế mô hình mặc định bằng mô hình TensorFlow Lite tuỳ chỉnh.
Cả API Gắn nhãn hình ảnh và API 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 mô hình này tương thích với một số mô hình luyện sẵn 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, AutoML Vision Edge hoặc TensorFlow Lite Model Maker.
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 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 dành cho công nghệ học máy trên thiết bị.
Lợi ích của việc sử dụng Bộ công cụ học máy với mô hình tuỳ chỉnh
Lợi ích của việc sử dụng mô hình phân loại hình ảnh tuỳ chỉnh bằng Bộ công cụ học máy:
- API cấp cao dễ sử dụng – Không cần xử lý dữ liệu đầu vào/đầu ra của mô hình cấp thấp, xử lý trước/sau khi xử lý hình ảnh hay xây dựng quy trình xử lý.
- Bạn không cần phải lo lắng về việc liên kết nhãn, Bộ công cụ học máy sẽ trích xuất các nhãn từ siêu dữ liệu mô hình TFLite và thực hiện việc liên kết cho bạn.
- Hỗ trợ các mô hình tuỳ chỉnh từ nhiều nguồn, từ các mô hình luyện sẵn được phát hành trên TensorFlow Hub cho đến các mô hình mới được huấn luyện bằng TensorFlow, AutoML Vision Edge hoặc TensorFlow Lite Model Maker.
- Hỗ trợ các mô hình do Firebase lưu trữ. Giảm kích thước tệp APK bằng cách tải các mô hình theo yêu cầu xuống. Cập nhật mô hình đẩy mà không cần phát hành lại ứng dụng và thực hiện thử nghiệm A/B dễ dàng bằng Cấu hình từ xa Firebase.
- Được tối ưu hoá để tích hợp với API Máy ảnh của Android.
Đặc biệt là đối với tính năng Phát hiện và theo dõi đối tượng:
- Cải thiện độ chính xác của hoạt động 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 thuật toán phân loại trên khu vực 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 gửi cho người dùng ý kiến phản hồi ngay lập tức về các đối tượng khi chúng đang được phát hiện và phân loại.
Sử dụng mô hình phân loại hình ảnh luyện sẵn
Bạn có thể sử dụng các mô hình TensorFlow Lite đã 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 đang cung cấp một nhóm mô hình đã được xét duyệt kỹ lưỡng (của Google hoặc các nhà sáng tạo mô hình khác) đáp ứng các 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 đã huấn luyện trước (của nhiều nhà sáng tạo mô hình) có thể sử dụng cùng với các API Gắn nhãn hình ảnh cũng như 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 Bộ công cụ học máy.
- Tải tệp mô hình .tflite xuống từ trang 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ề API Gắn nhãn hình ảnh hoặc API Theo dõi và phát hiện đối tượng để biết cách nhóm tệp mô hình với dự án và sử dụng tệp đó trong ứng dụng Android hoặc iOS của bạn.
Đào tạo 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 luyện sẵn 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 TensorFlow Lite của riêng bạn. Một số cách trong số đó sẽ được trình bày và thảo luận chi tiết hơn ở bên dưới.
Các tuỳ chọn để huấn luyện mô hình phân loại hình ảnh của riêng bạn | |
---|---|
AutoML Vision Edge |
|
Trình tạo mô hình TensorFlow Lite |
|
Chuyển đổi mô hình TensorFlow sang TensorFlow Lite |
|
AutoML Vision Edge
Các mô hình phân loại hình ảnh được huấn luyện bằng AutoML Vision Edge được các mô hình tuỳ chỉnh hỗ trợ trong các Gắn nhãn hình ảnh và API Theo dõi và Phát hiện đối tượng API. Các API này cũng hỗ trợ tải các mô hình được lưu trữ bằng tính năng triển khai mô hình Firebase.
Để tìm hiểu thêm về cách sử dụng mô hình được huấn luyện bằng AutoML Vision Edge trong ứ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.
Trình tạo mô hình TensorFlow Lite
Thư viện TFLite Model Maker giúp đơn giản hoá quá trình thích ứng và chuyển đổi mô hình mạng nơron TensorFlow thành dữ liệu đầu vào cụ thể khi triển khai mô hình này cho các ứng dụng học máy trên thiết bị. Bạn có thể làm theo bài viết Phân loại Colab cho hình ảnh bằng TensorFlow Lite Model Maker.
Để tìm hiểu thêm về cách sử dụng mô hình được huấn luyện bằng Model Maker 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 Theo dõi và phát hiện đối tượng, 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 trình chuyển đổi TensorFlow Lite
Nếu đã có mô hình phân loại hình ảnh TensorFlow, bạn có thể chuyển đổi mô hình đó bằng trình chuyển đổi TensorFlow Lite. Vui lòng đảm bảo rằng mô hình đã tạo đáp ứng các yêu cầu về khả năng tương thích dưới đây.
Để tìm hiểu thêm về cách sử dụng mô hình TensorFlow Lite 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 Theo dõi và phát hiện đố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 TensorFlow Lite
Bạn có thể sử dụng bất kỳ mô hình phân loại hình ảnh TensorFlow Lite nào đã huấn luyện trước, 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 quy tắ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 Siêu dữ liệu.
- Tensor có 4 chiều : BxHxWxC, trong đó:
- B là kích thước lô. Giá trị này phải là 1 (không hỗ trợ suy luận cho các lô lớn hơn).
- W và H là chiều rộng và chiều cao của dữ liệu đầu vào.
- C là số lượng kênh dự kiến. Phải là 3.
- Mô hình phải có ít nhất một tensor đầu ra với lớp N và có 2 hoặc 4 kích thước:
- (1xN)
- (1x1x1xN)
- Hiện tại, chỉ các mô hình một đầu mới được hỗ trợ đầy đủ. Mô hình nhiều đầu có thể đưa 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 TensorFlow Lite như đã giải thích trong bài viết Thêm siêu dữ liệu vào mô hình TensorFlow Lite.
Để sử dụng một mô hình với 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 TensorMetadata đầu ra:
- Bản đồ nhãn chỉ định tên của từng lớp đầu ra dưới dạng AssociatedFile với loại TENSOR_AXIS_LABELS (nếu không, hệ thống chỉ có thể trả về các chỉ mục của lớp đầu ra bằng số)
- Ngưỡng điểm số mặc định bị coi là có độ tin cậy quá thấp nên được trả về dưới dạng ProcessUnit với ScoreThresholdingOptions