

Sự phát triển của Android không chỉ giới hạn ở những ứng dụng nhỏ dễ thương giúp chia hóa đơn trong các nhà hàng (đó dường như là ý tưởng ứng dụng thiên tài của mọi người, hay chỉ có tôi?). Android là một nền tảng mạnh mẽ với sự hậu thuẫn từ một trong những công ty lớn nhất và có ảnh hưởng nhất trên thế giới. Một công ty đi đầu trong lĩnh vực máy học và tự coi mình là AI ưu tiên hàng đầu.
Học TensorFlow Lite dành cho Android cho phép các nhà phát triển triển khai học máy nâng cao vào các sáng tạo của họ. Điều này mở rộng đáng kể khả năng của ứng dụng và giới thiệu vô số trường hợp sử dụng tiềm năng mới. Nó cũng dạy các kỹ năng vô giá mà nhu cầu sẽ tăng lên trong những năm tới.
Đây là phần giới thiệu hoàn hảo về học máy, vì vậy hãy bắt đầu!
TensorFlow là gì?
Hãy bắt đầu với những điều cơ bản: TensorFlow Lite là gì? Để trả lời điều đó, trước tiên chúng ta nên xem TensorFlow chinh no. TensorFlow là một nền tảng mã nguồn mở end-to-end (nghĩa là tất cả trong một) dành cho việc học máy của Nhóm Google Brain. TensorFlow là một thư viện phần mềm mã nguồn mở cho phép thực hiện các tác vụ máy học.
Tác vụ học máy là bất kỳ vấn đề nào yêu cầu nhận dạng mẫu được hỗ trợ bởi các thuật toán và lượng lớn dữ liệu. Đây là AI, nhưng không phải trong Hal từ 2001: A Space Odyssey giác quan.
Trường hợp sử dụng
Một ví dụ về ứng dụng học máy là thị giác máy tính. Nó cho phép máy tính nhận dạng các đối tượng trong một bức ảnh hoặc nguồn cấp dữ liệu camera trực tiếp. Để làm được điều này, trước tiên chương trình phải được huấn luyện bằng cách cho xem hàng nghìn bức ảnh của đối tượng đó. Chương trình không bao giờ hiểu đối tượng nhưng học cách tìm kiếm các mẫu dữ liệu cụ thể (thay đổi về độ tương phản, góc hoặc đường cong cụ thể) có khả năng khớp với đối tượng. Theo thời gian, chương trình ngày càng trở nên chính xác trong việc phát hiện đối tượng đó.

Là một nhà phát triển Android, thị giác máy tính tạo ra nhiều khả năng: cho dù bạn muốn sử dụng nhận dạng khuôn mặt như một tính năng bảo mật, tạo một chương trình AR có thể làm nổi bật các yếu tố trong môi trường hoặc xây dựng ứng dụng Giao diện tiếp theo. Đây là trước khi chúng ta xem xét vô số cách sử dụng khác cho các mô hình học máy: nhận dạng giọng nói, OCR, AI của đối phương, v.v.
Tạo và triển khai các loại mô hình này từ đầu sẽ là một nhiệm vụ cực kỳ khó khăn đối với một nhà phát triển, đó là lý do tại sao việc truy cập vào các thư viện làm sẵn lại rất hữu ích.
TensorFlow có khả năng chạy trên nhiều loại CPU và GPU nhưng hoạt động đặc biệt tốt với các Bộ xử lý Tensor (TPU) của Google. Các nhà phát triển cũng có thể tận dụng sức mạnh của Google Cloud Platform bằng cách thuê ngoài các hoạt động học máy cho các máy chủ của Google.
TensorFlow Lite là gì?
TensorFlow Lite mang trên tàu (điều này có nghĩa là nó chạy trên chính thiết bị di động) Tensor Flow đến thiết bị di động. Được công bố vào năm 2017, ngăn xếp phần mềm TFLite được thiết kế đặc biệt cho phát triển di động. Mặt khác, TensorFlow Lite Micro là một phiên bản dành riêng cho Vi điều khiển, gần đây đã hợp nhất với uTensor của ARM.
Một số nhà phát triển hiện có thể hỏi sự khác biệt giữa Bộ ML và TensorFlow Lite là. Mặc dù chắc chắn có một số chồng chéo, nhưng TensorFlow Lite ở mức thấp và cởi mở hơn. Quan trọng hơn: TensorFlow Lite tự chạy khỏi thiết bị, trong khi ML Kit yêu cầu Firebase đăng ký và kết nối internet đang hoạt động. Bất chấp danh pháp khó hiểu của Google, hãy lưu ý rằng ML Kit vẫn sử dụng TensorFlow ẩn. Tương tự như vậy, Firebase chỉ là một loại dự án khác của Google Cloud Platform.
TensorFlow Lite có sẵn trên Android và iOS thông qua API C ++ và trình bao bọc Java cho các nhà phát triển Android. Trên các thiết bị hỗ trợ nó, thư viện cũng có thể tận dụng API mạng thần kinh Android để tăng tốc phần cứng.
Bạn nên sử dụng cái nào cho các dự án của mình? Điều đó phụ thuộc rất nhiều vào mục tiêu của bạn. Nếu bạn không ngại dựa vào dịch vụ đám mây bên ngoài, ML Kit có thể giúp cuộc sống của bạn dễ dàng hơn một chút. Nếu bạn muốn mã chạy nguyên bản hoặc nếu bạn yêu cầu tùy chỉnh và linh hoạt hơn một chút, hãy sử dụng TensorFlow Lite.
Cách sử dụng TensorFlow Lite
Khi giải quyết một vấn đề với học máy, các nhà phát triển dựa vào mô hình. Mô hình ML là các tệp chứa thống kê các mô hình. Các tệp này được đào tạo để nhận ra các mẫu cụ thể. Đào tạo về cơ bản có nghĩa là cung cấp cho mô hình các mẫu dữ liệu để nó có thể cải thiện tỷ lệ thành công bằng cách tinh chỉnh các mẫu mà nó sử dụng.
Vì vậy, một mô hình thị giác máy tính có thể bắt đầu với một vài giả định cơ bản về một vật thể trông như thế nào. Khi bạn hiển thị nó càng nhiều hình ảnh, nó sẽ ngày càng chính xác đồng thời mở rộng phạm vi những gì nó đang tìm kiếm.

Bạn sẽ bắt gặp các mô hình được đào tạo trước đã được cung cấp tất cả dữ liệu này để tinh chỉnh các thuật toán của họ. Do đó, loại mô hình này là sẵn sàng hoạt động. Nó có thể tự động thực hiện một nhiệm vụ như xác định cảm xúc dựa trên nét mặt hoặc di chuyển cánh tay robot trong không gian.
Trong TensorFlow Lite, các tệp này được gọi là Tệp mô hình TensorFlow Lite và có phần mở rộng là .tflite hoặc .lite. Tệp nhãn bao gồm các nhãn mà tệp được đào tạo (ví dụ: vui hoặc buồn cho các mô hình nhận dạng khuôn mặt.)
Đào tạo mô hình ML
Bạn cũng có thể gặp một số loại tệp khác được sử dụng trong quá trình đào tạo. Tệp GraphDef (.pb hoặc .pbtxt) mô tả biểu đồ của bạn và có thể được đọc bởi các quy trình khác. Phiên bản TXT cũng được thiết kế để con người có thể đọc được. Bạn cũng có thể xây dựng chúng bằng cách sử dụng TensorFlow.
Tệp Checkpoint hiển thị cho bạn quá trình học tập bằng cách liệt kê các biến được tuần tự hóa cho phép bạn xem các giá trị thay đổi như thế nào theo thời gian. Sau đó, Frozen Graph Def chuyển đổi các giá trị này thành các hằng số và đọc chúng từ các điểm kiểm tra đã đặt qua biểu đồ. Mô hình TFlite sau đó được xây dựng từ đồ thị cố định bằng TOCO (Công cụ chuyển đổi tối ưu hóa dòng chảy căng thẳng). Điều này cung cấp cho chúng tôi một tệp được đào tạo trước đẹp mắt mà sau đó chúng tôi có thể triển khai trong ứng dụng của mình.
Các thư viện này có thể xử lý tất cả các loại tác vụ thông thường, chẳng hạn như trả lời câu hỏi, nhận dạng khuôn mặt, v.v.
Thảo luận về cách đào tạo và nhập mô hình nằm ngoài phạm vi của bài đăng này, mặc dù bạn có thể tìm thấy hướng dẫn tuyệt vời ở đây.
Tin tốt là Thư viện Tác vụ TensorFlow chứa nhiều thư viện mạnh mẽ và đơn giản dựa trên các mô hình được đào tạo trước. Chúng có thể xử lý tất cả các loại tác vụ thông thường, chẳng hạn như trả lời câu hỏi, nhận dạng khuôn mặt, v.v. Điều này có nghĩa là những người mới bắt đầu không phải lo lắng về Tệp Checkpoint hoặc đào tạo!
Sử dụng tệp TFLite
Có nhiều cách để bạn có thể nắm giữ Tệp mô hình TensorFlow Lite đã được đào tạo trước cho ứng dụng của mình. Tôi khuyên bạn nên bắt đầu với trang TensorFlow chính thức.
Theo liên kết này, chẳng hạn, và bạn sẽ có thể tải xuống mô hình khởi động có khả năng phân loại hình ảnh cơ bản. Trang này cũng bao gồm một số chi tiết về cách sử dụng nó qua Thư viện tác vụ TensorFlow Lite. Bạn có thể sử dụng cách khác Thư viện hỗ trợ TensorFlow Lite nếu bạn muốn thêm đường dẫn suy luận của riêng mình (tức là tìm kiếm nội dung mới).
Khi bạn đã tải xuống tệp, bạn sẽ đặt nó vào thư mục nội dung của mình. Bạn phải chỉ định rằng tệp không nên được nén. Để thực hiện việc này, bạn thêm phần sau vào module build.gradle của mình:
android { // Other settings // Specify tflite file should not be compressed for the app apk aaptOptions { noCompress "tflite" } }Thiết lập dự án Android Studio của bạn
Để sử dụng TensorFlow Lite trong ứng dụng của mình, bạn sẽ cần thêm phần phụ thuộc sau vào tệp build.gradle của mình:
compile org.tensorflow:tensorflow-lite:+Tiếp theo, bạn cần nhập thông dịch viên của mình. Đây là mã thực sự sẽ tải mô hình và cho phép bạn chạy nó.
Bên trong tệp Java của bạn, sau đó bạn sẽ tạo một phiên bản của Trình thông dịch và sử dụng nó để phân tích dữ liệu bạn cần. Ví dụ: bạn có thể nhập hình ảnh và điều này sẽ trả về kết quả.
Kết quả sẽ được cung cấp dưới dạng xác suất đầu ra. Mô hình không bao giờ có thể nói một cách chắc chắn vật thể là gì. Vì vậy, một bức tranh của một con mèo có thể là 0,75 con chó và 0,25 con mèo. Mã của bạn cần
Ngoài ra, nhập Thư viện hỗ trợ TensorFlow và chuyển đổi hình ảnh sang định dạng tensor.
Những mô hình được đào tạo trước này có khả năng nhận dạng hàng nghìn lớp hình ảnh. Tuy nhiên, tồn tại nhiều kiến trúc mô hình khác nhau làm thay đổi cách mô hình xác định các lớp liên quan đến chu trình học tập, cũng như các bước được thực hiện để chuyển đổi dữ liệu thô thành dữ liệu huấn luyện.
Các kiến trúc mô hình phổ biến bao gồm MobileNet và Inception. Nhiệm vụ của bạn là chọn giải pháp tối ưu cho công việc. Ví dụ: MobileNet được thiết kế để ưu tiên các mô hình nhẹ và nhanh hơn các mô hình sâu và phức tạp. Các mô hình phức tạp có độ chính xác cao hơn nhưng phải trả giá bằng kích thước và tốc độ.
Học nhiều hơn nữa
Mặc dù đây là một chủ đề phức tạp cho người mới bắt đầu, nhưng tôi hy vọng rằng bài đăng này đã cho bạn ý tưởng về những điều cơ bản, để bạn có thể hiểu rõ hơn về các hướng dẫn trong tương lai. Cách tốt nhất để học bất kỳ kỹ năng mới nào là chọn một dự án và sau đó tìm hiểu các bước cần thiết để hoàn thành nhiệm vụ đó.

Để hiểu sâu hơn, chúng tôi khuyên bạn nên Học máy với TensorFlow. Khóa học này bao gồm 19 bài học sẽ chỉ cho bạn cách triển khai các giải pháp thương mại thông thường. Cơ quan Android độc giả được giảm giá 91% ngay bây giờ, giảm giá từ $ 124 xuống $ 10.
Nguồn AndroidAuthority