Trích xuất đầu ra từ Ultralytics YOLOv8
Tìm hiểu cách trích xuất bounding box, mask, keypoint và xác suất lớp từ các object Results của Ultralytics YOLOv8 để sử dụng trong code Python của riêng bạn.
Nuvola Ladi5 phút đọc
Ultralytics YOLOv8 là một model thị giác máy tính được sử dụng rộng rãi cho các tác vụ như phát hiện đối tượng, phân đoạn và tracking. Dù bạn là nhà phát triển giàu kinh nghiệm hay người mới bắt đầu tìm hiểu trí tuệ nhân tạo (AI), việc nắm rõ cách trích xuất đầu ra từ YOLOv8 một cách hiệu quả có thể cải thiện đáng kể các dự án của bạn. Bài đăng blog này hướng dẫn các bước thực tế để trích xuất và sử dụng kết quả từ model YOLOv8.
Thiết lập Ultralytics YOLOv8#
Trước khi tìm hiểu sâu về cách trích xuất kết quả, điều quan trọng là phải chạy model Ultralytics YOLOv8 của bạn. Nếu mới bắt đầu, bạn có thể xem các video trước đây của chúng tôi về những kiến thức cơ bản khi thiết lập và sử dụng model YOLO cho nhiều tác vụ thị giác máy tính. Để bắt đầu trích xuất kết quả, hãy đảm bảo model được cấu hình chính xác:
- Khởi tạo model: Khởi tạo model Ultralytics YOLOv8 phù hợp, đảm bảo chọn cấu hình model đáp ứng nhu cầu cụ thể của bạn, dù là phát hiện đối tượng hay các tác vụ phức tạp hơn như ước tính tư thế.
- Chạy suy luận: Đưa dữ liệu vào model để thực hiện suy luận. Quy trình này sẽ tạo một danh sách các đối tượng Results, mỗi đối tượng tương ứng với một ảnh hoặc frame, giúp bạn truy cập toàn bộ dữ liệu phát hiện.
Tìm hiểu đối tượng kết quả#
Mỗi đối tượng Results trong Ultralytics YOLOv8 chứa toàn bộ dữ liệu phát hiện cần thiết để tiếp tục dự án, bao gồm:
- Bounding box: Dùng
result.boxesđể truy cập tọa độ của các đối tượng được phát hiện. - Mask và keypoint: Truy cập mask phân đoạn và keypoint để ước tính pose bằng
result.masksvàresult.keypointstương ứng. - Xác suất lớp:
result.probschứa xác suất lớp từ các model phân loại, cònresult.boxes.confcung cấp confidence score của từng bounding box được phát hiện, hữu ích để lọc các kết quả phát hiện.
Trích xuất dữ liệu để sử dụng tùy chỉnh#
Để sử dụng các đầu ra này trong ứng dụng, hãy làm theo các bước sau:
- Chuyển đổi dữ liệu để xử lý: Nếu chạy model trên GPU, hãy chuyển đầu ra sang định dạng CPU bằng
.cpu()để tiếp tục xử lý. - Truy cập tọa độ bounding box: Lấy và thao tác trực tiếp với tọa độ bounding box từ đối tượng kết quả. Bao gồm truy cập tọa độ đã chuẩn hóa hoặc các thuộc tính cụ thể như chiều rộng và chiều cao.
- Xử lý phân loại: Trích xuất các phân loại hàng đầu để sử dụng hiệu quả ID lớp và điểm độ tin cậy.
Ứng dụng thực tế trong mã#
Chuyển từ lý thuyết sang thực hành, Nicolai Nielsen trình bày cách triển khai các khái niệm này trong một script Python tùy chỉnh bằng Visual Studio Code. Script bao gồm:
- Thiết lập lớp phát hiện: Khởi tạo và cấu hình model Ultralytics YOLOv8 trong cấu trúc lớp, chuẩn bị model để nhận dữ liệu trực tiếp.
- Trích xuất kết quả: Chạy phát hiện và trích xuất bounding box, mask và kết quả phân loại trực tiếp từ đối tượng kết quả.
- Sử dụng đầu ra: Chuyển đổi kết quả sang các định dạng có thể sử dụng như JSON hoặc CSV, hoặc dùng trực tiếp để vẽ bounding box lên hình ảnh hay luồng video.
Trực quan hóa và hơn thế nữa#
Mặc dù việc trích xuất dữ liệu thô rất quan trọng, trực quan hóa các kết quả phát hiện này có thể cung cấp thông tin tức thời về hiệu năng của model:
- Vẽ hình chữ nhật: Dùng dữ liệu bounding box để vẽ hình chữ nhật quanh các đối tượng được phát hiện trong đầu ra hình ảnh hoặc video.
- Vẽ trực tiếp: Sử dụng phương thức tích hợp sẵn
result.plot()để trực quan hóa các kết quả phát hiện mà không cần viết thêm code.
Mở rộng bộ công cụ AI với Ultralytics YOLOv8#
Nắm vững cách trích xuất đầu ra của Ultralytics YOLOv8 không chỉ nâng cao khả năng của dự án mà còn giúp bạn hiểu sâu hơn về các hệ thống phát hiện đối tượng.
Bằng cách làm theo các bước này, bạn có thể tùy chỉnh kết quả phát hiện của Ultralytics YOLOv8 theo nhu cầu cụ thể, dù là phát triển ứng dụng nâng cao dựa trên AI hay tiến hành phân tích dữ liệu chuyên sâu.
Hãy đón xem thêm các hướng dẫn về Ultralytics YOLOv8 và những công nghệ AI khác. Tham gia cộng đồng để cập nhật những phát triển mới nhất, đồng thời xem tài liệu của chúng tôi để tìm hiểu thêm!
Được viết bởi
Bình luận
Đặt câu hỏi, chia sẻ kết quả hoặc giúp đỡ người khác.










