Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Hướng dẫn sử dụng YOLOv8 để nhận diện đối tượng
Hướng Dẫn Đồ ÁnLập Trình AI

Hướng dẫn sử dụng YOLOv8 để nhận diện đối tượng

Chia sẻ
Chia sẻ

Nhận diện đối tượng là một ứng dụng cốt lõi trong lĩnh vực thị giác máy tính, cho phép xác định vị trí và loại của các vật thể trong ảnh hoặc video. Với nhu cầu thực tế ngày càng cao trong giám sát, giao thông, y tế và công nghiệp, các mô hình như YOLO trở nên đặc biệt quan trọng.

YOLOv8 là phiên bản mới nhất của dòng mô hình YOLO, do Ultralytics phát triển. Bài viết này sẽ hướng dẫn bạn từ A-Z cách sử dụng YOLOv8 để nhận diện đối tượng, từ cài đặt, xử lý dữ liệu, huấn luyện, đánh giá đến triển khai mô hình. Nếu bạn quan tâm đến các ứng dụng thực tiễn, hãy xem thêm Tự động phát hiện biển số xe từ ảnh bằng YOLO, Những ứng dụng học sâu trong phân tích camera giao thông, hoặc Hướng dẫn xử lý video để phát hiện chuyển động.

Cài đặt môi trường làm việc với YOLOv8

Để triển khai YOLOv8, bạn có thể chọn giữa hai môi trường: Google Colab (trực tuyến) và máy cá nhân (local). Mỗi lựa chọn có ưu, nhược riêng:

Google Colab

Google Colab là lựa chọn lý tưởng nếu bạn không có GPU. Bạn có thể bắt đầu ngay mà không cần cài đặt gì phức tạp.

# Trên Colab
!pip install ultralytics
!pip install opencv-python

Nếu bạn muốn lưu dữ liệu, hãy kết nối với Google Drive:

from google.colab import drive
drive.mount('/content/drive')

Máy tính cá nhân

Nếu máy bạn có GPU (NVIDIA), nên cài đặt môi trường ảo để tránh xung đột:

python -m venv yolov8-env
source yolov8-env/bin/activate  # Windows: .\\yolov8-env\\Scripts\\activate
pip install --upgrade pip
pip install ultralytics torch torchvision torchaudio opencv-python

Kiểm tra đã cài đúng:

yolo checks

Tải mô hình YOLOv8 và thử nghiệm nhanh

YOLOv8 hỗ trợ nhiều phiên bản mô hình khác nhau từ nhẹ đến mạnh: yolov8n.pt, yolov8s.pt, yolov8m.pt, yolov8l.pt, yolov8x.pt.

Bạn có thể chọn đường dẫn ảnh thay cho your_image.jpg để có thể thử nghiệm với ảnh của bạn!

from ultralytics import YOLO

model = YOLO('yolov8n.pt')
results = model('your_image.jpg')
results[0].show()

Bạn sẽ thấy ảnh hiển thị với các khung bounding box kèm nhãn đối tượng. Đây là bước kiểm tra nhanh độ chính xác của mô hình pre-trained.

Cấu trúc dữ liệu huấn luyện

YOLOv8 sử dụng cấu trúc thư mục quen thuộc:

dataset/
├── images/
│   ├── train/
│   └── val/
├── labels/
│   ├── train/
│   └── val/

Mỗi ảnh sẽ có một file .txt tương ứng trong thư mục labels, chứa định dạng:

<class> <x_center> <y_center> <width> <height>

Tất cả tọa độ được chuẩn hóa về khoảng [0,1] so với kích thước ảnh.

Gán nhãn dữ liệu bằng Roboflow hoặc LabelImg

Bạn cần dữ liệu đã được gán nhãn để huấn luyện mô hình. Có hai công cụ phổ biến:

Roboflow

  • Truy cập https://roboflow.com

  • Tạo dự án, upload ảnh

  • Annotate bằng tay hoặc AI

  • Export ra định dạng YOLOv5/YOLOv8

LabelImg

Công cụ mã nguồn mở cài trực tiếp trên máy:

pip install labelImg
labelImg

Chọn định dạng YOLO, gán nhãn, lưu vào thư mục labels.

Tạo file YAML mô tả tập dữ liệu

Bạn cần tạo một file .yaml để YOLOv8 biết vị trí dữ liệu và danh sách nhãn, dưới đây chỉ là ví dụ cho huấn luyện mô hình với 3 đối tượng: person, car, helmet

path: /content/dataset
train: images/train
val: images/val
names: ['person', 'car', 'helmet']

Huấn luyện mô hình với YOLOv8

Sau khi chuẩn bị dữ liệu và file yaml, bạn bắt đầu huấn luyện:

yolo task=detect mode=train model=yolov8n.pt data=data.yaml epochs=50 imgsz=640 batch=16

Giải thích:

  • task=detect: nhiệm vụ phát hiện đối tượng

  • model: mô hình khởi đầu

  • data: file cấu hình dữ liệu

  • epochs: số vòng lặp

  • imgsz: kích thước ảnh

  • batch: số lượng ảnh mỗi lần huấn luyện

Theo dõi quá trình huấn luyện

YOLOv8 tự động ghi lại logs và kết quả trong thư mục runs/detect/train/. Bạn sẽ có:

  • results.png: biểu đồ loss, mAP

  • weights/best.pt: mô hình tốt nhất

  • confusion_matrix.png, F1_curve.png: giúp phân tích hiệu suất

Bạn có thể dùng TensorBoard để xem:

tensorboard --logdir runs/detect

Đánh giá mô hình đã huấn luyện

Sau khi huấn luyện, bạn nên đánh giá lại:

yolo task=detect mode=val model=runs/detect/train/weights/best.pt data=data.yaml

YOLOv8 sẽ hiển thị mAP, precision, recall, và lưu ảnh dự đoán vào runs/detect/val/.

Triển khai YOLOv8 lên ảnh, video, camera

Nhận diện trên ảnh

Tại đây, bạn có thể thử nghiệm mô hình trên ảnh mới hoặc ảnh thực tế bằng cách thay test.jpg.bằng đường dẫn tới tên file ảnh của bạn, lưu ý ảnh nên chứa các đối tượng cần huấn luyện!

model = YOLO('runs/detect/train/weights/best.pt')
results = model('test.jpg')
results[0].save(filename='output.jpg')

Nhận diện trên video hoặc webcam

Sau khi huấn luyện, ta sử dụng mô hình tốt nhất best.pt bằng cách đưa file đó vào thư mục cùng cấp với file video_detect.py chẳng hạng. Dưới đây sẽ là đoạn mã nhận diện trên video hoặc webcam trong file video_detect.py như sau:

import cv2
model = YOLO('best.pt')
cap = cv2.VideoCapture(0)  # Hoặc đường dẫn video

while True:
    ret, frame = cap.read()
    if not ret:
        break
    results = model(frame)
    annotated = results[0].plot()
    cv2.imshow('YOLOv8 Detection', annotated)
    if cv2.waitKey(1) == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

Triển khai YOLOv8 bằng Gradio

Tương tự, ta sẽ sử dụng tốt nhất best.pt bằng cách đưa file đó vào thư mục cùng cấp với file gradio.py và đoạn mã dưới đây sử dụng Gradio để tạo giao diện web đơn giản, trong file gradio.py như sau:

import gradio as gr
model = YOLO('best.pt')

def detect(img):
    result = model(img)
    return result[0].plot()

gr.Interface(fn=detect, inputs="image", outputs="image").launch()

So sánh các phiên bản YOLO

Phiên bản Tốc độ Chính xác Dễ sử dụng Hỗ trợ đa nhiệm
YOLOv4 Trung bình Cao Khó Không
YOLOv5 Nhanh Cao Dễ
YOLOv8 Rất nhanh Rất cao Rất dễ Có (Detect, Segment, Pose)

YOLOv8 hiện là phiên bản toàn diện nhất về mọi mặt.

Export mô hình sang ONNX hoặc TensorRT

Giúp tăng tốc khi triển khai trên edge device hoặc nhúng:

yolo export model=best.pt format=onnx
yolo export model=best.pt format=engine  # TensorRT

Mẹo nâng cao hiệu suất

  • Dữ liệu gán nhãn chính xác > tăng mAP

  • Dùng augment hợp lý (flip, blur, mosaic…)

  • Thử nghiệm nhiều batch size, image size

  • Dùng mô hình mạnh hơn: từ n sang x

Ứng dụng thực tế của YOLOv8

  • Giao thông: nhận diện biển số, người vi phạm

  • An ninh: giám sát camera tự động

  • Công nghiệp: kiểm tra sản phẩm lỗi

  • Y tế: phát hiện khối u từ ảnh X-ray

Kết luận

YOLOv8 là một bước tiến đáng kể trong lĩnh vực nhận diện đối tượng nhờ khả năng kết hợp hiệu suất cao với tính dễ triển khai. Từ việc hỗ trợ nhiều tác vụ khác nhau như phát hiện, phân đoạn, đến việc cung cấp API Python rõ ràng và tiện dụng, YOLOv8 phù hợp với cả người mới bắt đầu lẫn các kỹ sư chuyên nghiệp. Bằng cách tận dụng các mô hình đã được huấn luyện và tùy chỉnh với dữ liệu riêng, người dùng có thể nhanh chóng xây dựng các hệ thống thông minh trong thực tế.

Bài viết đã trình bày toàn diện quy trình từ cài đặt môi trường, xử lý dữ liệu, huấn luyện mô hình cho đến triển khai. Với cấu trúc dễ hiểu và công cụ hỗ trợ mạnh mẽ, YOLOv8 xứng đáng là lựa chọn hàng đầu cho những ai muốn áp dụng thị giác máy tính vào các bài toán thực tế trong đời sống và công nghiệp.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!