Nhận dạng ảnh mây trên "MÂY" với AutoML Vision
Bài đăng này đã không được cập nhật trong 5 năm
Trong lúc mày mò thí nghiệm công nghệ và đi nghe ngóng khắp nơi để xem có gì hay, tại GDG tháng 12-2018 vừa rồi, mình đã được giới thiệu qua về AutoML Vision và được làm thí nghiệm với nó! Và bài viết này mình sẽ mày mò lại xem sau 1 tháng mình còn nhớ cái gì không ngoài hiệu năng của nó, đồng thời cũng giới thiệu cho các bạn 1 công cụ để tham khảo khi làm Machine Learning.
Chuẩn bị tài khoản qwiklab
Đây là bước làm khá nhanh vì qwiklab có thể đăng nhập với google không cần qua bước nào cả. Sau khi đăng nhập xong các bạn bấm "Start Lab". Hiện ra pop-up thì chỉ cần nhập mã(hoặc mua credit)
Sau khi nhập mã và enter, ở bên tay trái của các bạn sẽ hiện các thông tin tương tự như sau:
Các bạn sẽ đăng nhập vào Google Cloud Platform dựa vào tài khoản được khởi tạo trong bảng trên.
Sau khi đăng kí xong thì hãy click để:
- Chấp nhật các điều khoản.
- KHÔNG đặt lựa chọn khôi phục tài khoản và xác thực 2 lớp(đây là tài khoản ảo được tạo. Sau 1 tiếng sẽ tự động xóa).
- KHÔNG đăng kí thử miễn phí. Làm đúng những bước trên thì tab Console sẽ hiện ra
(Phần khoanh đỏ là các sản phẩm khác của GCP. Nếu có dịp mình sẽ nghịch tiếp sau)
Sử dụng shell
Đây là bước quan trọng thứ 2 vì sắp tới chúng ta sẽ phải dùng rất nhiều các câu lệnh.
Trước hết, ở phía bên phải của toolbar, click vào nút sau:
Sau khi cửa sổ sau bật ra, click vào "Start Cloud Shell":
Khi việc connect đã thành công, bạn sẽ thấy hình ảnh sau đây:
Tên dự án sẽ mặc định là ID project của bạn,
gcloud
đã được tích hợp sẵn ở command-line của GCP. Bạn có thể thử nó với command kiểm tra các tài khoản hoạt động:
gcloud auth list
Kết quả trả về sẽ có dạng sau
Credentialed accounts:
- <myaccount>@<mydomain>.com (active)
Cụ thể hơn:
Credentialed accounts:
- google1623327_student@qwiklabs.net
Cách để kiểm tra ID của project:
gcloud config list project
Dạng của kết quả trả về:
[core]
project = <project_ID>
Ví dụ
[core]
project = qwiklabs-gcp-44776a13dea667a6
Chuẩn bị AutoML Vision
Tại thanh Navigation menu, chọn APIs & Services > Library. Tại phần tìm kiếm gõ "Cloud AutoML API" và enter. Click để lựa chọn và enable.
Khi hiện ra thông báo ở trên là các bạn có thể tới bước tiếp theo.
Mở tab mới và vào AutoML UI. Bạn sẽ được yêu cầu đăng nhập. Hãy dùng account được tạo bởi qwiklab ở bên trên.
Sau đó bạn sẽ được yêu cầu chọn project. Chọn cái tên project của bạn và bấm "Continue".
Sau đó bấm "Set up Now". 1 lúc thôi là sẽ xong
Quay lại cửa sổ console của GCP, hãy sử dụng các command sau, thay thế <PROJECT_ID> và <QWIKLABS_USERNAME> bằng ID project của bạn và tên đăng nhập mà qwiklab đã tạo
gcloud projects add-iam-policy-binding <PROJECT_ID> \
--member="user:<QWIKLABS_USERNAME" \
--role="roles/automl.admin"
gcloud projects add-iam-policy-binding <PROJECT_ID> \
--member="serviceAccount:custom-vision@appspot.gserviceaccount.com" \
--role="roles/ml.admin"
gcloud projects add-iam-policy-binding <PROJECT_ID> \
--member="serviceAccount:custom-vision@appspot.gserviceaccount.com" \
--role="roles/storage.admin"
gsutil mb -p <PROJECT_ID> \
-c regional \
-l us-central1 \
gs://<PROJECT_ID>-vcm/
Nhập ảnh vào Google Cloud Storage
Vì chúng ta chỉ có 1 tiếng thí nghiệm nên chúng ta theo ví dụ này sẽ nhập 1 cái storage khác vào storage của chúng ta. Tính ra hiện tại là còn 30 phút trước khi hết giờ. Thế nên không có thời gian để custom model.
Ở GCP console, mở navigation menu và chọn Storage > Browser:
Và đây sẽ là cái kho ảnh của bạn
Tiếp, tạo 1 biến môi trường
export BUCKET=YOUR_BUCKET_NAME
Với YOUR_BUCKET_NAME
là tên cái kho ảnh
Tiếp tới, dùng lệnh gsutil
để nhập ảnh từ kho
gsutil -m cp -r gs://automl-codelab-clouds/* gs://${BUCKET}
Khi đã sao chép xong, hãy bấm Refresh. Các folder sẽ xuất hiện
Tạo dataset
Thực chất là khởi tạo 1 file CSV.
Chạy các câu lệnh sau:
gsutil cp gs://automl-codelab-metadata/data.csv .
sed -i -e "s/placeholder/${BUCKET}/g" ./data.csv
gsutil cp ./data.csv gs://${BUCKET}
{BUCKET}
là tên cái kho ảnh của các bạn nhé
Quay lại AutoML VisionUL. Giao diện mong đợi sẽ như này
Ở trên cùng của console, click + NEW DATASET. Đặt tên dataset với "clouds". Chọn Select a CSV file on Cloud Storage và điền link file bạn vừa tạo gs://your-project-name-vcm/data.csv
Với ví dụ này thì để ô này trống nhé
Sau đó bấm nốt để tạo
Xem dữ liệu
Vì đây là dữ liệu mây nên chúng ta sẽ có 3 loại mây, mỗi loại có 20 ảnh
Nếu có ảnh nào có cảm giác sai sai, bạn có thể xóa đi
Train model
Làm sao mà gọi là ML khi không có vụ dạy học cho model =)) Hãy chuyển đến tab Train và bấm Start Training
Thôi cũng sắp hết thời gian nên các bạn để model mặc định cho mình nhờ
Vì đây là data nhỏ nên sẽ chỉ mất tầm 5 phút để train xong.
-> HƯ CẤU, TẤT CẢ LÀ HƯ CẤU! Y như lần trước thực hành thì mình còn còn 16 phút để bắt đầu train. Và train xong thì mình còn đúng 1 phút để thử kết quả. Ở DevFest GDG thì người ngồi cạnh mình còn hết thời gian cơ! Cảm giác của các nhân vật của phim In Time là đây(quảng cáo: Justin Timberlake đóng phim cũng hay phết các bạn ạ)!
Đến lúc nhận diện!
Thôi nhé. 1 phút còn lại mình chỉ chơi 1 ảnh thôi. Oải rồi.
Chuyển tới tab Predict và tải ảnh lên
Đây là ảnh thí nghiệm của mình
Và đây là kết quả
Trông có vẻ đúng phết!
À cơ mà lượng dữ liệu này nhỏ nên việc đúng cũng là dễ hiểu.
Kết luận
Như diễn giả hướng dẫn mình đánh giá thì nó khá là lâu. Cộng với qwiklab chỉ cho thí nghiệm trong vòng 1 tiếng thì chúng ta cũng cần vận may để ra được kết quả. Và diễn giả ở GDG cũng đánh giá là dùng MLKit còn hiệu quả hơn. Tuy nhiên công nghệ luôn phát triển nên dù sao đây cũng là cái option đáng cân nhắc.
Bài viết khá là giống dịch vì thực sự hướng dẫn tại trang gốc khá là chi tiết. Với chút tiếng Anh cũng có thể tự thực hành được. Tuy nhiên thì tới GDG mình mới biết đến nó nên cần có hướng dẫn.
Chúc mọi người có trải nghiệm thú vị! Viblo đi muôn nơi!
Tham khảo
https://www.qwiklabs.com/focuses/1779?locale=en&parent=catalog
All rights reserved