Ultralytics YOLO27:
Get Started

Phân đoạn đối tượng và tracking bằng Ultralytics YOLO26#

Phân đoạn đối tượng là gì?#

Phân đoạn đối tượng là tác vụ thị giác máy tính nhằm xác định và phác họa từng đối tượng riêng lẻ trong ảnh ở cấp độ pixel. Khác với phân đoạn ngữ nghĩa, vốn chỉ phân loại pixel theo danh mục, phân đoạn đối tượng gán nhãn riêng biệt và phân định chính xác từng instance đối tượng, nhờ đó đóng vai trò thiết yếu trong các ứng dụng cần hiểu biết không gian chi tiết như chẩn đoán hình ảnh y khoa, xe tự hành và tự động hóa công nghiệp.

Ultralytics YOLO26 cung cấp khả năng phân đoạn đối tượng mạnh mẽ, cho phép phát hiện ranh giới đối tượng chính xác mà vẫn duy trì tốc độ và hiệu quả vốn có của các model YOLO.

Gói Ultralytics cung cấp hai kiểu tracking phân đoạn đối tượng:

  • Phân đoạn đối tượng theo lớp: Mỗi đối tượng thuộc lớp được gán một màu riêng để dễ phân biệt bằng hình ảnh.

  • Phân đoạn đối tượng theo track: Mỗi track được biểu thị bằng một màu riêng biệt, giúp dễ dàng nhận diện và theo dõi qua các khung hình video.



Xem: Phân đoạn instance kết hợp theo dõi đối tượng bằng Ultralytics YOLO26

Mẫu#

Phân đoạn đối tượngPhân đoạn đối tượng + tracking đối tượng
Phân đoạn đối tượng UltralyticsPhân đoạn đối tượng Ultralytics với tracking đối tượng
Phân đoạn đối tượng Ultralytics 😍Phân đoạn đối tượng Ultralytics với tracking đối tượng 🔥

Phân đoạn và tracking bằng YOLO26#

Giải pháp InstanceSegmentation chạy model phân đoạn YOLO26 trên từng khung hình, vẽ mask cho từng đối tượng và tô màu riêng cho mỗi instance để bạn có thể theo dõi từng đối tượng trong video. Tải model -seg, sau đó chạy model trên nguồn dữ liệu bằng Python API hoặc CLI.

Phân đoạn đối tượng bằng Ultralytics YOLO
# 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#

Dưới đây là bảng các đối số của InstanceSegmentation:

Đối sốKiểuMặc địnhMô tả
modelstrNoneĐường dẫn đến tệp model Ultralytics YOLO.
line_widthint2Độ dày đường viền của box, keypoint và số đếm mà giải pháp vẽ.
verboseboolTrueBật nhật ký theo từng frame của giải pháp, gồm shape đầu vào, số lượng class và tốc độ xử lý. Bản thân lệnh gọi tracking luôn không ghi nhật ký.

Bạn cũng có thể tận dụng các đối số track trong giải pháp InstanceSegmentation:

Đối sốKiểuMặc địnhMô tả
trackerstr'tracktrack.yaml'Chỉ định thuật toán theo dõi cần sử dụng. Các tùy chọn tích hợp sẵn: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Đặt ngưỡng confidence cho các đối tượng được phát hiện; 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ả kết quả dương tính giả.
ioufloat0.7Đặt ngưỡng Intersection over Union (IoU) để lọc các đối tượng phát hiện bị chồng lấn.
classeslistNoneLọc kết quả theo chỉ mục class. Ví dụ: classes=[0, 2, 3] chỉ theo dõi các class được chỉ định.
devicestrNoneChỉ định thiết bị dùng để suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng chọn CPU, một GPU cụ thể hoặc thiết bị tính toán khác để chạy model.
imgszint or tuple640Kích thước ảnh suy luận mục tiêu: số nguyên cho ảnh vuông hoặc cặp (height, width). Kích thước sẽ được điều chỉnh theo stride của model.
max_detint300Số lượng đối tượng phát hiện tối đa được giữ lại trong mỗi khung hình trước khi theo dõi, giới hạn số đối tượng mà một giải pháp xử lý trong các cảnh dày đặc.
quantizeint or strNoneĐộ chính xác suy luận: 16 (FP16) hoặc 32/unset (FP32) cho model PyTorch và TorchScript khi chạy ngoài CPU; các định dạng khác sử dụng độ chính xác do artifact và runtime của chúng lựa chọn. Thay thế đối số half đã lỗi thời.

Ngoài ra, có thể sử dụng các đối số trực quan hóa sau:

Đối sốKiểuMặc địnhMô tả
showboolFalseNếu True, hiển thị ảnh hoặc video đã được chú thích trong một cửa sổ. Hữu ích để nhận phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc kiểm thử.
show_confboolTrueHiển thị điểm confidence bên cạnh nhãn của mỗi detection. Cho biết mức độ chắc chắn của model đối với từng detection.
show_labelsboolTrueHiển thị nhãn cho mỗi detection trong đầu ra trực quan. Giúp nhận biết ngay các đối tượng được phát hiện.
show_boxesboolTrueVẽ bounding box quanh các đối tượng được phát hiện. Cần thiết để nhận diện trực quan và xác định vị trí đối tượng trong ảnh hoặc frame video.

Các ứng dụng của phân đoạn đối tượng#

Phân đoạn đối tượng bằng YOLO26 có nhiều ứng dụng thực tế trong các 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 tại các cơ sở quản lý chất thải để nhận diện và phân loại nhiều loại vật liệu. Model có thể phân đoạn rác thải nhựa, bìa carton, kim loại và các vật liệu có thể tái chế khác với độ chính xác cao, giúp hệ thống phân loại tự động xử lý chất thải hiệu quả hơn. Điều này đặc biệt có giá trị khi chỉ 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ế.

Xe tự hành#

Trong ô tô tự lái, phân đoạn đối tượng 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 sá khác ở cấp độ pixel. Việc hiểu chính xác môi trường xung quanh rất quan trọng đối với các quyết định điều hướng và an toàn. Hiệu năng thời gian thực của YOLO26 khiến model trở nên lý tưởng cho các ứng dụng nhạy cảm về thời gian này.

Chẩn đoán hình ảnh y khoa#

Phân đoạn đối tượng có thể xác định và phác họa khối u, cơ quan hoặc cấu trúc tế bào trong ảnh chụp y khoa. Khả năng phân định chính xác ranh giới đối tượng của YOLO26 rất hữu ích cho chẩn đoán y khoa và lập kế hoạch điều trị.

Giám sát công trường xây dựng#

Tại công trường xây dựng, phân đoạn đối tượng có thể theo dõi máy móc hạng nặng, công nhân và vật liệu. Phương pháp 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.

Câu hỏi thường gặp#

  • Để thực hiện phân đoạn đối tượng bằ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 rồi xử lý các khung hình video bằng model đó. Sau đây là ví dụ code đơn giản:

    import cv2
    
    from ultralytics import solutions
    
    cap = cv2.VideoCapture("path/to/video.mp4")
    assert cap.isOpened(), "Error reading video file"
    
    # Bộ ghi video
    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))
    
    # Khởi tạo InstanceSegmentation
    isegment = solutions.InstanceSegmentation(
        show=True,  # hiển thị đầu ra
        model="yolo26n-seg.pt",  # model="yolo26n-seg.pt" để phân đoạn đối tượng bằng YOLO26.
    )
    
    # Xử lý 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 đối tượng trong hướng dẫn Ultralytics YOLO26.

  • Phân đoạn đối tượng xác định và phác họa từng đối tượng riêng lẻ trong ảnh, đồng thời gán cho mỗi đối tượng một nhãn và mask riêng. Tracking đối tượng mở rộng khả năng này bằng cách gán ID nhất quán cho các đối tượng qua nhiều khung hình video, giúp theo dõi liên tục cùng một đối tượng theo thời gian. Khi kết hợp hai khả năng này, như trong cách triển khai của YOLO26, bạn có thể phân tích chuyển động và hành vi của đối tượng trong video một cách hiệu quả, đồng thời duy trì thông tin ranh giới chính xác.

  • Ultralytics YOLO26 mang lại hiệu năng thời gian thực, độ chính xác vượt trội và dễ sử dụng hơn so với các model khác như Mask R-CNN hoặc Faster R-CNN. YOLO26 xử lý ảnh chỉ trong một lượt (phát hiện một giai đoạn), nhờ đó nhanh hơn đáng kể mà vẫn duy trì độ chính xác cao. Model cũng tích hợp liền mạch với Ultralytics Platform, cho phép người dùng quản lý model, dataset và pipeline huấn luyện hiệu quả. Với các ứng dụng cần cả tốc độ lẫn độ chính xác, YOLO26 mang đến sự cân bằng tối ưu.

  • Có, Ultralytics cung cấp một số dataset phù hợp để huấn luyện model YOLO26 cho phân đoạn đối tượng, bao gồm COCO-Seg, COCO8-Seg (tập con nhỏ hơn để kiểm thử nhanh), Package-Seg và Crack-Seg. Các dataset này có chú thích ở cấp độ pixel cần thiết cho tác vụ phân đoạn đối tượng. Với các ứng dụng chuyên biệt hơn, bạn cũng có thể tạo dataset tùy chỉnh theo định dạng Ultralytics. Thông tin đầy đủ về dataset và hướng dẫn sử dụng có trong tài liệu Ultralytics Datasets.

Bình luận