Trả lời cho sự kiện TensorFlow Everywhere tại địa phương của bạn ngay hôm nay!
Trang này được dịch bởi Cloud Translation API.
Switch to English

Phân loại hình ảnh

Nhiệm vụ xác định những gì một hình ảnh đại diện được gọi là phân loại hình ảnh . Một mô hình phân loại hình ảnh được đào tạo để nhận ra các lớp hình ảnh khác nhau. Ví dụ: bạn có thể huấn luyện người mẫu nhận dạng ảnh đại diện cho ba loại động vật khác nhau: thỏ, chuột đồng và chó. TensorFlow Lite cung cấp các mô hình được đào tạo trước được tối ưu hóa mà bạn có thể triển khai trong các ứng dụng di động của mình. Tìm hiểu thêm về phân loại hình ảnh bằng TensorFlow tại đây .

Hình ảnh sau đây cho thấy đầu ra của mô hình phân loại hình ảnh trên Android.

Ảnh chụp màn hình của ví dụ Android

Bắt đầu

Nếu bạn chưa quen với TensorFlow Lite và đang làm việc với Android hoặc iOS, bạn nên khám phá các ứng dụng mẫu sau có thể giúp bạn bắt đầu.

Bạn có thể tận dụng API có sẵn từ Thư viện tác vụ TensorFlow Lite để tích hợp các mô hình phân loại hình ảnh chỉ trong một vài dòng mã. Bạn cũng có thể xây dựng đường dẫn suy luận tùy chỉnh của riêng mình bằng cách sử dụng Thư viện hỗ trợ TensorFlow Lite .

Ví dụ Android bên dưới minh họa cách triển khai cho cả hai phương thức là lib_task_apilib_support .

Xem ví dụ về Android

Xem ví dụ về iOS

Nếu bạn đang sử dụng một nền tảng không phải Android / iOS hoặc nếu bạn đã quen thuộc với các API TensorFlow Lite , hãy tải xuống mô hình khởi động và các tệp hỗ trợ (nếu có).

Tải xuống mô hình khởi động

Mô tả về mô hình

Làm thế nào nó hoạt động

Trong quá trình đào tạo, một mô hình phân loại hình ảnh được cung cấp hình ảnh và các nhãn liên quan của chúng. Mỗi nhãn là tên của một khái niệm hoặc lớp riêng biệt mà mô hình sẽ học cách nhận ra.

Với dữ liệu đào tạo đầy đủ (thường là hàng trăm hoặc hàng nghìn hình ảnh trên mỗi nhãn), mô hình phân loại hình ảnh có thể học cách dự đoán liệu hình ảnh mới có thuộc bất kỳ lớp nào mà nó đã được đào tạo hay không. Quá trình dự đoán này được gọi là suy luận . Lưu ý rằng bạn cũng có thể sử dụng tính năng học chuyển để xác định các lớp hình ảnh mới bằng cách sử dụng mô hình có sẵn. Học chuyển tiếp không yêu cầu một tập dữ liệu đào tạo quá lớn.

Sau đó, khi bạn cung cấp hình ảnh mới làm đầu vào cho mô hình, nó sẽ xuất ra xác suất của hình ảnh đại diện cho từng loại động vật mà nó được huấn luyện. Một ví dụ đầu ra có thể như sau:

Loại động vật Xác suất
Con thỏ 0,07
Chuột đồng 0,02
Chó 0,91

Mỗi số trong đầu ra tương ứng với một nhãn trong dữ liệu huấn luyện. Liên kết đầu ra với ba nhãn mà mô hình đã được đào tạo, bạn có thể thấy rằng mô hình đã dự đoán xác suất cao rằng hình ảnh đại diện cho một con chó.

Bạn có thể nhận thấy rằng tổng của tất cả các xác suất (đối với thỏ, chuột đồng và chó) bằng 1. Đây là loại đầu ra phổ biến cho các mô hình có nhiều lớp (xem Softmax để biết thêm thông tin).

Kết quả mơ hồ

Vì xác suất đầu ra sẽ luôn tổng bằng 1, nếu một hình ảnh không được công nhận một cách tự tin là thuộc bất kỳ lớp nào mà mô hình được đào tạo trên đó, bạn có thể thấy xác suất được phân phối trên khắp các nhãn mà không có bất kỳ giá trị nào lớn hơn đáng kể.

Ví dụ: sau đây có thể cho biết một kết quả không rõ ràng:

Nhãn Xác suất
Con thỏ 0,31
chuột đồng 0,35
chó 0,34
Nếu mô hình của bạn thường xuyên trả về kết quả không rõ ràng, bạn có thể cần một mô hình khác chính xác hơn.

Chọn một kiến ​​trúc mô hình

TensorFlow Lite cung cấp cho bạn nhiều mô hình phân loại hình ảnh, tất cả đều được đào tạo trên tập dữ liệu gốc. Kiến trúc mô hình như MobileNet, Inception và NASNet có sẵn trên trang mô hình được lưu trữ . Để chọn mô hình tốt nhất cho trường hợp sử dụng của mình, bạn cần phải xem xét các kiến ​​trúc riêng lẻ cũng như một số sự cân bằng giữa các mô hình khác nhau. Một số sự cân bằng của mô hình này dựa trên các chỉ số như hiệu suất, độ chính xác và kích thước mô hình. Ví dụ: bạn có thể cần một mô hình nhanh hơn để tạo máy quét mã vạch trong khi bạn có thể thích một mô hình chậm hơn, chính xác hơn cho ứng dụng hình ảnh y tế. Lưu ý rằng các mô hình phân loại hình ảnh được cung cấp chấp nhận các kích thước đầu vào khác nhau. Đối với một số kiểu máy, điều này được chỉ ra trong tên tệp. Ví dụ: kiểu Mobilenet_V1_1.0_224 chấp nhận đầu vào là 224x224 pixel. Tất cả các mô hình yêu cầu ba kênh màu trên mỗi pixel (đỏ, lục và lam). Các mô hình lượng tử hóa yêu cầu 1 byte cho mỗi kênh và mô hình float yêu cầu 4 byte cho mỗi kênh. Các mẫu mã AndroidiOS trình bày cách xử lý hình ảnh máy ảnh có kích thước đầy đủ thành định dạng bắt buộc cho từng kiểu máy.

Sử dụng và hạn chế

Các mô hình phân loại hình ảnh TensorFlow Lite hữu ích cho việc phân loại nhãn đơn; nghĩa là, dự đoán nhãn đơn nào mà hình ảnh có khả năng đại diện nhất. Họ được đào tạo để nhận ra 1000 lớp hình ảnh. Để có danh sách đầy đủ các lớp, hãy xem tệp nhãn trong zip mô hình . Nếu bạn muốn đào tạo một mô hình để nhận ra các lớp mới, hãy xem Tùy chỉnh mô hình . Đối với các trường hợp sử dụng sau, bạn nên sử dụng một loại mô hình khác:
  • Dự đoán loại và vị trí của một hoặc nhiều đối tượng trong hình ảnh (xem phần Phát hiện đối tượng )
  • Dự đoán bố cục của hình ảnh, ví dụ chủ thể so với hậu cảnh (xem Phân đoạn )
Sau khi có mô hình khởi động chạy trên thiết bị mục tiêu của mình, bạn có thể thử nghiệm với các mô hình khác nhau để tìm ra sự cân bằng tối ưu giữa hiệu suất, độ chính xác và kích thước mô hình.

Tùy chỉnh mô hình

Các mô hình được đào tạo trước được cung cấp được đào tạo để nhận dạng 1000 lớp hình ảnh. Để có danh sách đầy đủ các lớp, hãy xem tệp nhãn trong zip mô hình . Bạn cũng có thể sử dụng tính năng học chuyển giao để đào tạo lại một mô hình nhằm nhận ra các lớp không có trong tập hợp ban đầu. Ví dụ: bạn có thể đào tạo lại mô hình để phân biệt giữa các loài cây khác nhau, mặc dù không có cây nào trong dữ liệu đào tạo ban đầu. Để làm điều này, bạn sẽ cần một bộ hình ảnh đào tạo cho mỗi nhãn mới mà bạn muốn đào tạo. Tìm hiểu cách thực hiện quá trình học chuyển giao trong bộ mã hóa Nhận dạng hoa với TensorFlow hoặc với thư viện Trình tạo mô hình .

Điểm chuẩn hiệu suất

Hiệu suất mô hình được đo bằng lượng thời gian cần thiết để một mô hình chạy suy luận trên một phần cứng nhất định. Thời gian càng thấp, mô hình càng nhanh. Hiệu suất bạn yêu cầu phụ thuộc vào ứng dụng của bạn. Hiệu suất có thể quan trọng đối với các ứng dụng như video thời gian thực, trong đó điều quan trọng là phải phân tích từng khung hình trong thời gian trước khi khung hình tiếp theo được vẽ (ví dụ: suy luận phải nhanh hơn 33ms để thực hiện suy luận thời gian thực trên luồng video 30 khung hình / giây) . Phạm vi hiệu suất của các mô hình MobileNet được lượng tử hóa của TensorFlow Lite từ 3,7 mili giây đến 80,3 mili giây. Số điểm chuẩn hiệu suất được tạo bằng công cụ đo điểm chuẩn .
Tên Model Kích thước mô hình Thiết bị NNAPI CPU
Mobilenet_V1_1.0_224_quant 4,3 Mb Pixel 3 (Android 10) 6ms 13ms *
Pixel 4 (Android 10) 3,3ms 5ms *
iPhone XS (iOS 12.4.1) 11ms **

* 4 chủ đề được sử dụng.

** 2 luồng được sử dụng trên iPhone để có kết quả hoạt động tốt nhất.

Độ chính xác của mô hình

Độ chính xác được đo bằng tần suất mô hình phân loại chính xác hình ảnh. Ví dụ, một mô hình có độ chính xác đã nêu là 60% có thể được kỳ vọng sẽ phân loại hình ảnh chính xác trung bình 60% thời gian.

Danh sách các mô hình được lưu trữ cung cấp thống kê độ chính xác Top-1 và Top-5. Top-1 đề cập đến tần suất nhãn chính xác xuất hiện dưới dạng nhãn có xác suất cao nhất trong đầu ra của mô hình. Top-5 đề cập đến tần suất nhãn chính xác xuất hiện trong 5 xác suất cao nhất trong đầu ra của mô hình.

Độ chính xác Top-5 của mô hình MobileNet được lượng tử hóa của TensorFlow Lite nằm trong khoảng từ 64,4 đến 89,9%.

Kích thước mô hình

Kích thước của mô hình trên đĩa thay đổi theo hiệu suất và độ chính xác của nó. Kích thước có thể quan trọng đối với sự phát triển của thiết bị di động (nơi nó có thể ảnh hưởng đến kích thước tải xuống ứng dụng) hoặc khi làm việc với phần cứng (nơi bộ nhớ khả dụng có thể bị hạn chế).

Kích thước của các mô hình MobileNet được lượng tử hóa của TensorFlow Lite nằm trong khoảng từ 0,5 đến 3,4 MB.

Đọc thêm và tài nguyên

Sử dụng các tài nguyên sau để tìm hiểu thêm về các khái niệm liên quan đến phân loại hình ảnh: