Phân loại hình ảnh với Tensorflow – Bài 1 thử nghiệm độ chính xác

Đây là bài đầu tiên trong chuỗi bài viết về Image Classification với thư viện Tensorflow. Để có hào hứng học tập nghiên cứu chúng ta cần biết thuật toán đó có hiệu quả không? Nếu hiệu quả, ứng dụng được thì chúng ta mới học để tránh tình trạng “học mổ rồng” (học thứ không dùng được).

Bài viết này lấy cảm hứng từ https://www.tensorflow.org/tutorials/images/classification. Đây là 1 bài tutorial phân biệt 5 loại bông hoa phổ biến là Tulip, hoa Hồng, Cúc Họa Mi, Hướng Dương và Bồ Công Anh. Code này có ưu điểm là dễ hiểu, độ chính xác cao và khả năng ứng dụng lớn.

Tất cả code được viết trong 1 file gọi là Notebook, Notebook thì chứa cả text lẫn code và thực thi code ngay trên đó.

Để chạy thử nghiệm chúng ta không cần cài đặt gì cả, chỉ cần chạy trên Google Colab là ra kết quả.

Google Colab là 1 công cụ miễn phí chạy trên nền web giúp cho sinh viên/nhà nghiên cứu dễ dàng thử nghiệm thuật toán. Google cung cấp cấu hình rất mạnh để các bạn sử dụng thoải mái trong 12 tiếng.

Cách run code Image Classification trên Colab

Các bạn truy cập vào link Colab Image Classification để chạy code example.

Với mỗi đoạn code khi đưa chuột vào sẽ có nút Play ở góc trái, ấn nút Play để thực thi đoạn code.

Sau khi chạy xong thì đoạn code đó sẽ hiển thị tổng thời gian để chạy đoạn code đó, đoạn vừa rồi là 2 giây

Tiếp theo các bạn ấn nút play ở tuần tự từng đoạn code, đến đoạn cuối cùng sẽ cho ra kết quả phân loại ảnh.

Tuy nhiên khi predict hình ảnh bằng URL thì ảnh được save với tên là Red_sunflower, cho dù bạn thay URL thì kết quả vẫn không đổi. Do đó cần phải làm 1 trong 2 cách sau:

  • Cách 1: đổi tên Red_sunflower thành tên khác bất kỳ
  • Cách 2: xóa file sau khi predict xong, thêm 1 dòng code Python vào cuối đoạn: os.remove(sunflower_path)

Thử với ảnh bên dưới

Cho ra kết quả là hoa Tulip với kết quả là 85% confident, thời gian predict tốn 0.05s (50ms)

Giải thích

Notebook này huấn luyện model phân lớp hình ảnh sử dụng mạng Nơ ron tích chập (Convolution Neural Network). Dữ liệu được training thành 1 model và dùng model đó để phân lớp hình ảnh.

Trong rất nhiều các tutorial ngoài kia thì bài này giới thiệu thuật toán có nhiều ưu điểm:

  • Không cần phải tiền xử lý ảnh
  • Bộ dữ liệu có sự đa dạng rất cao vẫn training tốt
  • Khai thác khả năng của GPU để predict
  • Dễ chạy dễ cài đặt

Bài tiếp theo sẽ hướng dẫn chi tiết về source code và cách thực thi trên PC chạy Windows. Chúc các bạn thành công.

Các lưu ý khác

Lưu ý 1: trong bộ ảnh mẫu có nhiều ảnh không đúng, các bạn cứ kệ nó, ví dụ như ảnh Rose

Lưu ý 2: Google Colab cung cấp GPU rất mạnh nên tốc độ xử lý rất nhanh

Và Google Colab có giới hạn thời gian là 12 giờ, nếu cần training model lâu hơn thì cần phải thuê gói lớn hơn. Mà đã training hơn 12 giờ thì 1 là model đó khó mà ứng dụng được, 2 là quy mô doanh nghiệp mới cần cỡ đó, lúc đó đầu tư build máy cho dễ sử dụng.

Bài tiếp theo

Phân loại hình ảnh với Tensorflow – Bài 2 chạy code Python trên Windows 10

Leave a Reply