Phân đoạn thực thể (Instance Segmentation) và theo dõi bằng Ultralytics YOLO26 🚀
Phân đoạn thực thể là gì?
Phân đoạn thực thể là một tác vụ thị giác máy tính bao gồm việc nhận diện và vẽ đường bao quanh các đối tượng riêng lẻ trong hình ảnh ở cấp độ pixel. Không giống như phân đoạn ngữ nghĩa chỉ phân loại pixel theo danh mục, phân đoạn thực thể dán nhãn duy nhất và vạch rõ từng thực thể đối tượng, khiến nó trở nên quan trọng đối với các ứng dụng yêu cầu hiểu biết không gian chi tiết như chẩn đoán hình ảnh y tế, lái xe tự động và tự động hóa công nghiệp.
Ultralytics YOLO26 cung cấp khả năng phân đoạn thực thể mạnh mẽ cho phép phát hiện ranh giới đối tượng chính xác trong khi vẫn duy trì tốc độ và hiệu quả vốn có của các model YOLO.
Có hai loại theo dõi phân đoạn thực thể khả dụng trong gói phần mềm Ultralytics:
-
Phân đoạn thực thể với các Đối tượng Lớp: Mỗi đối tượng lớp được gán một màu duy nhất để phân tách trực quan rõ ràng.
-
Phân đoạn thực thể với Theo dõi Đối tượng: Mỗi track (đường theo dõi) được thể hiện bằng một màu riêng biệt, giúp nhận diện và theo dõi dễ dàng qua các khung hình video.
Watch: Instance Segmentation with Object Tracking using Ultralytics YOLO26
Mẫu
| Phân đoạn thực thể | Phân đoạn thực thể + Theo dõi đối tượng |
|---|---|
![]() | |
| Phân đoạn thực thể Ultralytics 😍 | Phân đoạn thực thể Ultralytics với Theo dõi đối tượng 🔥 |
# Instance segmentation using Ultralytics YOLO26
yolo solutions isegment show=True
# Pass a source video
yolo solutions isegment source="path/to/video.mp4"
# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"Các đối số của InstanceSegmentation
Đây là bảng các đối số của InstanceSegmentation:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
model | str | None | Đường dẫn đến một file model Ultralytics YOLO. |
region | list | '[(20, 400), (1260, 400)]' | Danh sách các điểm xác định vùng đếm. |
Bạn cũng có thể tận dụng các đối số track bên trong giải pháp InstanceSegmentation:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Chỉ định thuật toán theo dõi cần sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml. |
conf | float | 0.1 | Đặt ngưỡng tin cậy cho các phát hiện; các giá trị thấp hơn cho phép theo dõi nhiều đối tượng hơn nhưng có thể bao gồm cả các kết quả dương tính giả. |
iou | float | 0.7 | Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện chồng lấp. |
classes | list | None | Lọc kết quả theo chỉ số lớp. Ví dụ: classes=[0, 2, 3] chỉ theo dõi các lớp được chỉ định. |
verbose | bool | True | Kiểm soát việc hiển thị các kết quả theo dõi, cung cấp đầu ra trực quan của các đối tượng được theo dõi. |
device | str | None | Chỉ định thiết bị thực hiện suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng chọn giữa CPU, một GPU cụ thể hoặc các thiết bị tính toán khác để chạy model. |
Hơn nữa, các tham số trực quan hóa sau đây cũng khả dụng:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
show | bool | False | Nếu True, hiển thị các ảnh hoặc video đã được chú thích trong một cửa sổ. Hữu ích để có phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc thử nghiệm. |
line_width | int or None | None | Chỉ định độ dày đường kẻ của khung bao. Nếu là None, độ dày đường kẻ sẽ tự động được điều chỉnh dựa trên kích thước ảnh. Cung cấp khả năng tùy chỉnh trực quan để đảm bảo độ rõ nét. |
show_conf | bool | True | Hiển thị điểm tin cậy cho mỗi kết quả phát hiện bên cạnh nhãn. Cung cấp cái nhìn sâu sắc về độ chắc chắn của model cho mỗi kết quả phát hiện. |
show_labels | bool | True | Hiển thị nhãn cho mỗi kết quả phát hiện trong đầu ra trực quan. Cung cấp hiểu biết ngay lập tức về các đối tượng được phát hiện. |
Các ứng dụng của Phân đoạn thực thể
Phân đoạn thực thể với YOLO26 có vô số ứng dụng thực tế trên nhiều ngành công nghiệp khác nhau:
Quản lý và Tái chế chất thải
YOLO26 có thể được sử dụng trong các cơ sở quản lý chất thải để nhận diện và phân loại các loại vật liệu khác nhau. Model này có thể phân đoạn rác thải nhựa, bìa các tông, kim loại và các vật liệu tái chế khác với độ chính xác cao, cho phép các hệ thống phân loại tự động xử lý rác thải hiệu quả hơn. Điều này đặc biệt có giá trị khi xét đến thực tế là chỉ có khoảng 10% trong số 7 tỷ tấn rác thải nhựa được tạo ra trên toàn cầu được tái chế.
Phương tiện tự hành
Trong lĩnh vực xe tự lái, phân đoạn thực thể giúp nhận diện và theo dõi người đi bộ, phương tiện, biển báo giao thông và các yếu tố đường bộ khác ở cấp độ pixel. Sự hiểu biết chính xác về môi trường này là rất quan trọng đối với các quyết định về điều hướng và an toàn. Hiệu suất thời gian thực của YOLO26 làm cho nó trở nên lý tưởng cho các ứng dụng đòi hỏi tính thời gian này.
Chẩn đoán hình ảnh y tế
Phân đoạn thực thể có thể nhận diện và vạch rõ các khối u, cơ quan hoặc cấu trúc tế bào trong các bản chụp y tế. Khả năng xác định chính xác ranh giới đối tượng của YOLO26 làm cho nó trở nên hữu ích cho chẩn đoán y tế và lập kế hoạch điều trị.
Giám sát công trường xây dựng
Tại các công trường xây dựng, phân đoạn thực thể có thể theo dõi máy móc hạng nặng, công nhân và vật liệu. Điều này giúp đảm bảo an toàn bằng cách giám sát vị trí thiết bị và phát hiện khi công nhân đi vào khu vực nguy hiểm, đồng thời tối ưu hóa quy trình làm việc và phân bổ nguồn lực.
Lưu ý
Đối với bất kỳ câu hỏi nào, vui lòng đăng thắc mắc của bạn trong Phần Issue của Ultralytics hoặc phần thảo luận được đề cập bên dưới.
Câu hỏi thường gặp (FAQ)
Làm thế nào để thực hiện phân đoạn thực thể sử dụng Ultralytics YOLO26?
Để thực hiện phân đoạn thực thể sử dụng Ultralytics YOLO26, hãy khởi tạo model YOLO với phiên bản YOLO26 dành cho phân đoạn và xử lý các khung hình video thông qua đó. Dưới đây là ví dụ mã nguồn đơn giản:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Init InstanceSegmentation
isegment = solutions.InstanceSegmentation(
show=True, # display the output
model="yolo26n-seg.pt", # model="yolo26n-seg.pt" for object segmentation using YOLO26.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = isegment(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()Tìm hiểu thêm về phân đoạn thực thể trong hướng dẫn về Ultralytics YOLO26.
Sự khác biệt giữa phân đoạn thực thể và theo dõi đối tượng trong Ultralytics YOLO26 là gì?
Phân đoạn thực thể nhận diện và vạch rõ các đối tượng riêng lẻ trong một hình ảnh, gán cho mỗi đối tượng một nhãn và mask duy nhất. Theo dõi đối tượng mở rộng điều này bằng cách gán các ID nhất quán cho các đối tượng qua các khung hình video, hỗ trợ việc theo dõi liên tục cùng các đối tượng đó theo thời gian. Khi kết hợp lại, như trong triển khai của YOLO26, bạn có được những khả năng mạnh mẽ để phân tích chuyển động và hành vi của đối tượng trong video trong khi vẫn duy trì thông tin ranh giới chính xác.
Tại sao tôi nên sử dụng Ultralytics YOLO26 cho phân đoạn thực thể và theo dõi thay vì các model khác như Mask R-CNN hoặc Faster R-CNN?
Ultralytics YOLO26 mang lại hiệu suất thời gian thực, độ chính xác vượt trội và tính dễ sử dụng so với các model khác như Mask R-CNN hoặc Faster R-CNN. YOLO26 xử lý hình ảnh trong một lượt truyền duy nhất (phát hiện một giai đoạn), giúp nó nhanh hơn đáng kể trong khi vẫn duy trì độ chính xác cao. Nó cũng cung cấp khả năng tích hợp liền mạch với Ultralytics Platform, cho phép người dùng quản lý các model, bộ dữ liệu và quy trình đào tạo một cách hiệu quả. Đối với các ứng dụng đòi hỏi cả tốc độ và độ chính xác, YOLO26 cung cấp sự cân bằng tối ưu.
Có bộ dữ liệu nào do Ultralytics cung cấp phù hợp để huấn luyện các model YOLO26 cho việc phân đoạn thực thể và theo dõi không?
Có, Ultralytics cung cấp một số bộ dữ liệu phù hợp để huấn luyện các model YOLO26 cho phân đoạn thực thể, bao gồm COCO-Seg, COCO8-Seg (một tập hợp con nhỏ hơn để kiểm thử nhanh), Package-Seg và Crack-Seg. Các bộ dữ liệu này đi kèm với các chú thích cấp pixel cần thiết cho các tác vụ phân đoạn thực thể. Đối với các ứng dụng chuyên biệt hơn, bạn cũng có thể tạo các bộ dữ liệu tùy chỉnh theo định dạng của Ultralytics. Thông tin đầy đủ về bộ dữ liệu và hướng dẫn sử dụng có thể được tìm thấy trong tài liệu về Bộ dữ liệu Ultralytics.
