Trong bài viết này, mình sẽ hướng dẫn cách sử dụng Google Colab để mount Google Drive nhằm lưu trữ và lấy hình ảnh, tải hình ảnh từ URL, hiển thị ảnh với kích thước nhỏ hơn, và dùng Command Line Interface (CLI) của YOLOv8 để làm AI phát hiện đối tượng. Quy trình này đơn giản, không yêu cầu huấn luyện, và phù hợp cho người mới bắt đầu.
YOLO là gì?
YOLO (You Only Look Once) là một thuật toán phát hiện đối tượng thời gian thực, nổi tiếng với tốc độ và độ chính xác cao. Mô hình YOLOv8 pre-trained từ Ultralytics có thể nhận diện 80 lớp đối tượng phổ biến (người, xe, động vật, v.v.) mà không cần huấn luyện thêm.
Sử dụng CLI của YOLOv8 trên Google Colab để làm AI phát hiện đối tượng
1. Thiết lập Google Colab và mount Google Drive
Google Colab cung cấp môi trường miễn phí với GPU, rất phù hợp để chạy YOLOv8. Chúng ta sẽ mount Google Drive để lưu trữ và truy cập hình ảnh.
Bước 1: Tạo notebook trên Google Colab
- Truy cập Google Colab.
- Tạo notebook mới: File > New notebook.
Bước 2: Mount Google Drive
Click vào “+ Code” để thêm Cell:
Thêm đoạn code sau vào cell đầu tiên:
from google.colab import drive
drive.mount('/content/drive')
Chạy cell, nhấp vào liên kết xuất hiện, cấp quyền truy cập Google Drive, sao chép mã xác thực, và dán vào ô input trên Colab.
Sau khi mount, các file trong Google Drive nằm tại /content/drive/MyDrive
.
Bước 3: Tạo thư mục trên Google Drive
Trong Google Drive, tạo thư mục:
YOLO_Project/images
: Lưu ảnh tải về hoặc ảnh cần dùng.YOLO_Project/results
: Lưu ảnh kết quả sau khi dự đoán.
Click phải và chọn “New folder” để thêm 2 thư mục trên.
2. Cài đặt Ultralytics
Chạy cell sau để cài đặt thư viện Ultralytics (hỗ trợ YOLOv8):
!pip install ultralytics
3. Tải hình ảnh từ URL và hiển thị
Sử dụng wget
để tải ảnh từ URL và hiển thị ảnh với kích thước thu nhỏ bằng cách sử dụng cv2.resize
trước khi gọi cv2_imshow
.
Tạo cell sau:
import os
import cv2
from google.colab.patches import cv2_imshow
# Tạo thư mục images nếu chưa có
os.makedirs('/content/drive/MyDrive/YOLO_Project/images', exist_ok=True)
# Tải ảnh từ URL
image_url = "https://ultralytics.com/images/bus.jpg" # Thay bằng URL của bạn
image_path = '/content/drive/MyDrive/YOLO_Project/images/test.jpg'
!wget -O {image_path} {image_url}
# Hiển thị ảnh vừa tải với kích thước nhỏ (ví dụ: 400x300)
img = cv2.imread(image_path)
if img is not None:
print("Ảnh đã tải thành công!")
resized_img = cv2.resize(img, (400, 300)) # Thu nhỏ kích thước
cv2_imshow(resized_img)
else:
print("Lỗi: Không thể tải hoặc đọc ảnh!")
Giải thích:
os.makedirs
: Tạo thư mụcimages
nếu chưa tồn tại.wget -O
: Tải ảnh từimage_url
và lưu với têntest.jpg
.cv2.resize
: Thu nhỏ ảnh về kích thước 400×300 pixel (bạn có thể thay đổi tùy ý).cv2_imshow
: Hiển thị ảnh đã thu nhỏ trên Colab.- Thay
https://ultralytics.com/images/bus.jpg
bằng URL ảnh công khai (phải dẫn trực tiếp đến file ảnh, ví dụ:.jpg
,.png
).
4. Sử dụng CLI của YOLOv8 để dự đoán trên ảnh
Sử dụng CLI để chạy dự đoán với mô hình pre-trained yolov8n.pt
.
Tạo cell mới:
# Chạy lệnh CLI để dự đoán
!yolo predict model=yolov8n.pt source=/content/drive/MyDrive/YOLO_Project/images/test.jpg save=True
- Giải thích:
model=yolov8n.pt
: Mô hình pre-trained, tự động tải nếu chưa có.source
: Đường dẫn đến ảnh trong Google Drive.save=True
: Lưu ảnh kết quả (với bounding box và nhãn) vào/content/runs/detect/predict
.
Sao chép kết quả vào Google Drive
Lưu ảnh kết quả vào thư mục results
:
# Tạo thư mục results nếu chưa có
os.makedirs('/content/drive/MyDrive/YOLO_Project/results', exist_ok=True)
# Sao chép ảnh kết quả
!cp /content/runs/detect/predict/test.jpg /content/drive/MyDrive/YOLO_Project/results/
5. Hiển thị ảnh kết quả với kích thước nhỏ
Hiển thị ảnh kết quả trên Colab:
# Hiển thị ảnh kết quả với kích thước nhỏ (400x300)
result_image_path = '/content/runs/detect/predict/test.jpg'
result_img = cv2.imread(result_image_path)
if result_img is not None:
print("Kết quả dự đoán:")
resized_result_img = cv2.resize(result_img, (400, 300)) # Thu nhỏ kích thước
cv2_imshow(resized_result_img)
else:
print("Lỗi: Không thể đọc ảnh kết quả!")
Kết quả từ ảnh cho thấy mô hình YOLO phát hiện 4 người (confidence: 0.26-0.87, với confidence là độ tin cậy thể hiện mức độ chắc chắn của dự đoán), 1 xe buýt (confidence: 0.87), và 1 biển báo dừng (confidence: 0.26). Các đối tượng được khoanh vùng bằng bounding box, với độ tin cậy cao cho xe buýt và người rõ ràng, trong bối cảnh đô thị.
6. Xem và tải kết quả
Xem kết quả: Ảnh kết quả hiển thị trực tiếp trên Colab với kích thước nhỏ (bước 5) và được lưu tại:
/content/runs/detect/predict/test.jpg
/content/drive/MyDrive/YOLO_Project/results/test.jpg
Tải về máy:
Mở thư mục /content/runs/detect/predict
trong Colab, nhấp chuột phải vào ảnh, chọn “Download”.
Hoặc truy cập Google Drive để lấy ảnh từ YOLO_Project/results
.
Kết luận
Sử dụng CLI của YOLOv8 trên Google Colab với Google Drive, tải ảnh từ URL, và hiển thị ảnh với kích thước nhỏ hơn là cách nhanh chóng để phát hiện đối tượng. Bạn có thể nhận diện các đối tượng phổ biến và lưu kết quả dễ dàng. Hãy thử áp dụng vào các dự án phân tích hình ảnh hoặc ứng dụng sáng tạo!
Tham khảo tài liệu Ultralytics nếu cần. Chúc bạn thành công!