Dán nhãn ảnh trong Flutter cùng Firebase Machine Learning

9 tháng 6, 2021 By DEVERA ACADEMY

Firebase ML là một thư viện sử dụng machine learning để giải quyết các vấn đề điển hình như nhận biết ngôn ngữ, nhận dạng chữ viết, nhận dạng khuôn mặt, hay như tiêu đề phía trên - dán nhãn hình ảnh. Với Firebase ML, chúng ta có thể khai thác được các tiềm năng đến từ machine learning mà không cần trình độ cao siêu về lĩnh vực máy học cũng như hiểu biết sâu về cách mạng lưới nơ-ron hoạt động.

Bài viết này sẽ giới thiệu cho bạn cách dán nhãn dữ liệu hình ảnh thông qua thư viện Firebase ML bằng cách triển khai API bên trong dự án Flutter. Bắt đầu thôi nào!

Ví dụ

Chúng ta sẽ xây dựng một ứng dụng đơn giản, ứng dụng cho phép chọn một hình ảnh từ bộ sưu tập và dán nhãn chúng bằng Firebase ML.


Khi làm việc với Firebase ML, bạn có thể sử dụng cloud API hoặc on-device API. Trong ví dụ này, chúng ta sẽ sử dụng on-device API. Để biết thêm chi tiết hơn bạn có thể xem document.


Cài đặt

Để cài đặt Firebase ML vào Flutter App, chúng ta dùng thư viện firebase_ml_vision. Đầu tiên, hãy thêm nó vào file pubspec.yaml 


Lưu ý: Phiên bản tại thời điểm viết bài này là 0.10.0. Bạn có thể kiểm tra phiên bản hiện tại trên trang web firebase_ml_vision.

Bước tiếp theo là tạo dự án Firebase và thực hiện cấu hình nền tảng cụ thể (dành cho Android và iOS).

Bước cuối cùng là thiết lập để sử dụng trình gắn nhãn hình ảnh trên thiết bị.

Android

Để thiết lập trên Android, hãy thêm đoạn code này vào file build.gradle của bạn trong thư mục android/app:

iOS

Để thiết lập trên iOS, hãy thêm dòng code này vào Podfile trong thư mục ios:
\

Sau đó chạy lệnh cd ios && pod update


Sử dụng

Để sử dụng được tính năng phát hiện và dán nhãn hình ảnh, chúng ta phải tạo đối tượng FirebaseVisionImage từ tệp hình ảnh. Việc lấy tệp hình ảnh có thể thực hiện bằng nhiều thư viện khác nhau, ví dụ như: image_picker.

Sau khi nhận được tệp, bạn có thể sử dụng tệp đó để tạo đối tượng FirebaseVisionImage. Tôi sẽ làm điều đó trong phương thức riêng được gọi khi người dùng nhấn vào một nút:

Với đối tượng này, chúng ta có thể gọi imageLabeler()để lấy nhãn và gọi processImage() để phát hiện các nhãn trong ảnh:

Class ImageLabel  là nơi chứa thông tin về nhãn - tên nhãn và độ tin cậy của kết quả:

Sau đó chúng ta có thể hiển thị kết quả lên màn hình:


Ta-da! Đó chính là cách sử dụng Firebase ML trong Flutter để phát hiện và dán nhãn cho hình ảnh. Bạn có thể xem source code đầy đủ của ví dụ này tại GitHub repository phía dưới này:


Tác giả Paulina Szklarsk

Dịch bởi Devera Academy