Mô hình và nền tảng AI

Giải mã Yolov8: Kiệt tác tầm nhìn máy tính của Ultralytics

mm
Thêm Unite.AI vào các nguồn ưu tiên của bạn trên Google
Blog featured image for YOLOv8

Cho đến nay, việc phát hiện đối tượng trong hình ảnh sử dụng các mô hình tầm nhìn máy tính đã gặp phải một trở ngại lớn về độ trễ vài giây do thời gian xử lý. Sự chậm trễ này đã cản trở việc áp dụng thực tế trong các trường hợp như lái xe tự động. Tuy nhiên, việc phát hành mô hình tầm nhìn máy tính YOLOv8 bởi Ultralytics đã phá vỡ độ trễ xử lý. Mô hình mới này có thể phát hiện đối tượng trong thời gian thực với độ chính xác và tốc độ không thể sánh được, khiến nó trở nên phổ biến trong không gian tầm nhìn máy tính.

Bài viết này khám phá YOLOv8, khả năng của nó và cách bạn có thể tinh chỉnh và tạo mô hình của riêng mình thông qua kho lưu trữ Github mã nguồn mở.

Yolov8 Giải thích

YOLOv8-Ultralytics

YOLO (You Only Live Once) là một mô hình tầm nhìn máy tính phổ biến có khả năng phát hiện và phân đoạn đối tượng trong hình ảnh. Mô hình này đã trải qua nhiều cập nhật trong quá khứ, với YOLOv8 đánh dấu phiên bản thứ 8.

Hiện tại, YOLOv8 xây dựng trên khả năng của các phiên bản trước bằng cách giới thiệu các tính năng mới mạnh mẽ và cải tiến. Điều này cho phép phát hiện đối tượng trong thời gian thực trong dữ liệu hình ảnh và video với độ chính xác và chính xác cao hơn.

Từ v1 đến v8: Lịch sử tóm tắt

Yolov1: Phát hành vào năm 2015, phiên bản đầu tiên của YOLO được giới thiệu như một mô hình phát hiện đối tượng một giai đoạn. Các tính năng bao gồm mô hình đọc toàn bộ hình ảnh để dự đoán mỗi hộp giới hạn trong một lần đánh giá.

Yolov2: Phiên bản tiếp theo, phát hành vào năm 2016, đã trình diễn hiệu suất hàng đầu trên các điểm chuẩn như PASCAL VOC và COCO và hoạt động với tốc độ cao (67-40 FPS). Nó cũng có thể phát hiện chính xác hơn 9000 loại đối tượng, thậm chí với dữ liệu phát hiện cụ thể hạn chế.

Yolov3: Ra mắt vào năm 2018, Yolov3 đã trình diễn các tính năng mới như một mạng lưới xương sống hiệu quả hơn, nhiều neo và pooling kim tự tháp không gian để trích xuất tính năng đa quy mô.

Yolov4: Với việc phát hành Yolov4 vào năm 2020, kỹ thuật tăng cường dữ liệu Mosaic mới đã được giới thiệu, cung cấp khả năng đào tạo cải tiến.

Yolov5: Phát hành vào năm 2021, Yolov5 đã thêm các tính năng mới mạnh mẽ, bao gồm tối ưu hóa siêu tham số và theo dõi thí nghiệm tích hợp.

Yolov6: Với việc phát hành Yolov6 vào năm 2022, mô hình đã được mã nguồn mở để thúc đẩy sự phát triển của cộng đồng. Các tính năng mới đã được giới thiệu, chẳng hạn như chiến lược tự phân hủy mới và chiến lược đào tạo hỗ trợ neo (AAT).

Yolov7: Phát hành vào cùng năm, 2022, Yolov7 đã cải tiến mô hình hiện có về tốc độ và độ chính xác và là mô hình phát hiện đối tượng nhanh nhất tại thời điểm phát hành.

Điều gì làm cho YOLOv8 nổi bật?

Hình ảnh hiển thị phát hiện phương tiện

Độ chính xác không thể sánh được và tốc độ cao của YOLOv8 làm cho mô hình tầm nhìn máy tính này nổi bật so với các phiên bản trước. Đây là một thành tựu đáng kể vì các đối tượng có thể được phát hiện trong thời gian thực mà không có độ trễ, không giống như các phiên bản trước.

Nhưng ngoài ra, YOLOv8 còn đi kèm với các khả năng mạnh mẽ, bao gồm:

  1. Cấu trúc tùy chỉnh: YOLOv8 cung cấp một cấu trúc linh hoạt mà các nhà phát triển có thể tùy chỉnh để phù hợp với các yêu cầu cụ thể của họ.
  2. Đào tạo thích ứng: Các khả năng đào tạo thích ứng mới của YOLOv8, chẳng hạn như cân bằng hàm mất mát trong quá trình đào tạo và các kỹ thuật, cải thiện tốc độ học. Ví dụ, Adam, góp phần vào độ chính xác tốt hơn, hội tụ nhanh hơn và hiệu suất mô hình tổng thể tốt hơn.
  3. Phân tích hình ảnh tiên tiến: Thông qua các khả năng phân đoạn ngữ nghĩa và dự đoán lớp mới, mô hình có thể phát hiện hoạt động, màu sắc, kết cấu và thậm chí cả mối quan hệ giữa các đối tượng ngoài chức năng phát hiện đối tượng cốt lõi.
  4. Tăng cường dữ liệu: Các kỹ thuật tăng cường dữ liệu mới giúp giải quyết các khía cạnh của biến thể hình ảnh như độ phân giải thấp, che khuất, v.v., trong các tình huống phát hiện đối tượng trong thế giới thực mà điều kiện không lý tưởng.
  5. Hỗ trợ xương sống: YOLOv8 cung cấp hỗ trợ cho nhiều xương sống, bao gồm CSPDarknet (xương sống mặc định), EfficientNet (xương sống nhẹ) và ResNet (xương sống cổ điển), mà người dùng có thể chọn từ.

Người dùng thậm chí có thể tùy chỉnh xương sống bằng cách thay thế CSPDarknet53 bằng bất kỳ kiến trúc CNN nào khác tương thích với kích thước đầu vào và đầu ra của YOLOv8.

Đào tạo và tinh chỉnh YOLOv8

Mô hình YOLOv8 có thể được tinh chỉnh để phù hợp với các trường hợp sử dụng cụ thể hoặc được đào tạo hoàn toàn từ đầu để tạo ra một mô hình chuyên dụng. Chi tiết hơn về các thủ tục đào tạo có thể được tìm thấy trong tài liệu chính thức.

Hãy khám phá cách bạn có thể thực hiện cả hai hoạt động này.

Tinh chỉnh YOLOV8 với tập dữ liệu tùy chỉnh

Hoạt động tinh chỉnh tải một mô hình hiện có và sử dụng trọng số mặc định của nó làm điểm khởi đầu cho đào tạo. Nói một cách trực quan, mô hình nhớ tất cả kiến thức trước đó của nó và hoạt động tinh chỉnh thêm thông tin mới bằng cách điều chỉnh trọng số.

Mô hình YOLOv8 có thể được tinh chỉnh bằng mã Python hoặc thông qua giao diện dòng lệnh (CLI).

1. Tinh chỉnh mô hình YOLOv8 bằng Python

Bắt đầu bằng cách nhập gói Ultralytics vào mã của bạn. Sau đó, tải mô hình tùy chỉnh mà bạn muốn đào tạo bằng mã sau:

Trước tiên, cài đặt thư viện Ultralytics từ phân phối chính thức.

# Cài đặt gói ultralytics từ PyPI
pip install ultralytics

Tiếp theo, thực hiện mã sau trong một tệp Python:

from ultralytics import YOLO

# Tải mô hình
model = YOLO(‘yolov8n.pt’) # tải mô hình đã đào tạo (khuyến nghị cho đào tạo)

# Đào tạo mô hình trên tập dữ liệu MS COCO
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

Mặc định, mã sẽ đào tạo mô hình bằng tập dữ liệu COCO trong 100 kỷ. Tuy nhiên, bạn cũng có thể cấu hình các cài đặt này để đặt kích thước, kỷ, v.v., trong một tệp YAML.

Khi bạn đào tạo mô hình với cài đặt và đường dẫn dữ liệu của mình, hãy theo dõi tiến trình, kiểm tra và tinh chỉnh mô hình, và tiếp tục đào tạo lại cho đến khi bạn đạt được kết quả mong muốn.

2. Tinh chỉnh mô hình YOLOv8 bằng CLI

Để đào tạo mô hình bằng CLI, hãy chạy kịch bản sau trong dòng lệnh:

yolo train model=yolov8n.pt data=coco8.yaml epochs=100 imgsz=640

Lệnh CLI tải mô hình đã đào tạo `yolov8n.pt` và đào tạo nó thêm trên tập dữ liệu được định nghĩa trong tệp `coco8.yaml`.

Tạo mô hình của riêng bạn với YOLOv8

Có cơ bản 2 cách tạo mô hình tùy chỉnh với khuôn khổ YOLO:

  • Đào tạo từ đầu: Cách tiếp cận này cho phép bạn sử dụng kiến trúc YOLOv8 đã định nghĩa nhưng sẽ không sử dụng bất kỳ trọng số đã đào tạo nào. Việc đào tạo sẽ diễn ra từ đầu.
  • Kiến trúc tùy chỉnh: Bạn điều chỉnh kiến trúc YOLO mặc định và đào tạo cấu trúc mới từ đầu.

Việc thực hiện cả hai phương pháp này vẫn giống nhau. Để đào tạo mô hình YOLO từ đầu, hãy chạy mã Python sau:

from ultralytics import YOLO

# Tải mô hình
model = YOLO(‘yolov8n.yaml’) # xây dựng mô hình mới từ YAML

# Đào tạo mô hình
results = model.train(data=’coco128.yaml’, epochs=100, imgsz=640)

Lưu ý rằng lần này, chúng tôi đã tải tệp `.yaml` thay vì tệp `.pt`. Tệp YAML chứa thông tin kiến trúc cho mô hình, và không có trọng số nào được tải. Lệnh đào tạo sẽ bắt đầu đào tạo mô hình này từ đầu.

Để đào tạo kiến trúc tùy chỉnh, bạn phải định nghĩa cấu trúc tùy chỉnh trong một tệp `.yaml` tương tự như `yolov8n.yaml` ở trên. Sau đó, bạn tải tệp này và đào tạo mô hình bằng mã giống như trên.

Để tìm hiểu thêm về phát hiện đối tượng sử dụng AI và để cập nhật các xu hướng AI mới nhất, hãy truy cập unite.ai.

Haziqa là một Nhà khoa học dữ liệu với kinh nghiệm rộng rãi trong việc viết nội dung kỹ thuật cho các công ty AI và SaaS.