Phân đoạn và theo dõi trường hợp sử dụng Ultralytics YOLO11 🚀
Phân đoạn phiên bản là gì?
Phân đoạn thể hiện là một nhiệm vụ thị giác máy tính liên quan đến việc xác định và phác thảo các đối tượng riêng lẻ trong một 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ể hiện gắn nhãn duy nhất và phác họa chính xác từng thể hiện đối tượng, khiến nó trở nên quan trọng đối với các ứng dụng đòi hỏi sự hiểu biết không gian chi tiết như hình ảnh y tế, lái xe tự động và tự động hóa công nghiệp.
Ultralytics YOLO11 cung cấp khả năng phân đoạn trường hợp 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ả YOLO các mô hình được biết đến.
Có hai loại theo dõi phân đoạn trường hợp có sẵn trong Ultralytics bưu kiện:
-
Phân đoạn phiên bản bằng đố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 trường hợp bằng các đường đối tượng: Mỗi đường được biểu thị bằng một màu riêng biệt, giúp dễ dàng nhận dạng và theo dõi trên các khung hình video.
Đồng hồ: Phân đoạn trường hợp với theo dõi đối tượng bằng cách sử dụng Ultralytics YOLO11
Mẫu
Phân đoạn trường hợp | Phân đoạn trường hợp + Theo dõi đối tượng |
---|---|
![]() |
![]() |
Ultralytics Phân đoạn trường hợp 😍 | Ultralytics Phân đoạn trường hợp với theo dõi đối tượng 🔥 |
Phân đoạn trường hợp sử dụng Ultralytics YOLO
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("isegment_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize instance segmentation object
isegment = solutions.InstanceSegmentation(
show=True, # display the output
model="yolo11n-seg.pt", # model="yolo11n-seg.pt" for object segmentation using YOLO11.
# classes=[0, 2], # segment specific classes i.e, person and car with pretrained model.
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = isegment(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
InstanceSegmentation
Lập luận
Đây là một bảng với InstanceSegmentation
lập luận:
Lý lẽ | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
model |
str |
None |
Đường dẫn đến Ultralytics YOLO Tệp mẫu. |
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 track
các lập luận trong InstanceSegmentation
giải pháp:
Lý lẽ | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Chỉ định thuật toán theo dõi để sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml . |
conf |
float |
0.3 |
Đặt ngưỡng tin cậy cho việ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ác kết quả dương tính giả. |
iou |
float |
0.5 |
Đặt ngưỡng Giao điểm trên Liên hợp (IoU) để lọc các phát hiện chồng chéo. |
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ị kết quả theo dõi, cung cấp hình ảnh trực quan về các đối tượng được theo dõi. |
device |
str |
None |
Chỉ định thiết bị để suy luận (ví dụ: cpu , cuda:0 hoặc 0 ). Cho phép người dùng lựa chọn giữa CPU , một cụ thể GPU hoặc các thiết bị tính toán khác để thực hiện mô hình. |
Ngoài ra, các đối số trực quan sau đây cũng khả dụng:
Lý lẽ | Kiểu | Mặc định | Sự miêu tả |
---|---|---|---|
show |
bool |
False |
Nếu như True , hiển thị hình ảnh hoặc video có chú thích trong một cửa sổ. Hữu ích cho 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 |
None or int |
None |
Chỉ định độ rộng đường của hộp giới hạn. Nếu None , độ rộng của đường được tự động điều chỉnh dựa trên kích thước hình ảnh. Cung cấp tùy chỉnh trực quan để rõ nét hơn. |
Ứng dụng của Phân đoạn trường hợp
Phân đoạn trường hợp với YOLO11 có nhiều ứng dụng thực tế trong nhiều ngành công nghiệp khác nhau:
Quản lý chất thải và tái chế
YOLO11 có thể được sử dụng trong các cơ sở quản lý chất thải để xác định và phân loại các loại vật liệu khác nhau. Mô hình có thể phân đoạn rác thải nhựa, bìa cứ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 việc 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ế.
Xe tự hành
Trong xe tự lái , phân đoạn trường hợp giúp xác định 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 rất quan trọng đối với các quyết định về điều hướng và an toàn. YOLO11 Hiệu suất thời gian thực của nó làm cho nó trở nên lý tưởng cho các ứng dụng nhạy cảm về thời gian.
Hình ảnh y khoa
Phân đoạn trường hợp có thể xác định và phác thảo khối u, cơ quan hoặc cấu trúc tế bào trong quá trình quét y tế. YOLO11 Khả năng phân định chính xác ranh giới vật thể làm cho nó có giá trị trong 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 trường hợp 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 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ổ tài nguyên.
Ghi chú
Nếu có bất kỳ thắc mắc nào, bạn có thể thoải mái đăng câu hỏi của mình trong Phần vấn đề của Ultralytics hoặc phần thảo luận bên dưới.
CÂU HỎI THƯỜNG GẶP
Làm thế nào để tôi thực hiện phân đoạn phiên bản bằng cách sử dụng Ultralytics YOLO11 ?
Để thực hiện phân đoạn trường hợp bằng cách sử dụng Ultralytics YOLO11 , khởi tạo YOLO mô hình với phiên bản phân đoạn của YOLO11 và xử lý khung hình video thông qua nó. Sau đây là một ví dụ mã đơ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="yolo11n-seg.pt", # model="yolo11n-seg.pt" for object segmentation using YOLO11.
)
# 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 phiên bản trong hướng dẫn Ultralytics YOLO11 .
Sự khác biệt giữa phân đoạn thể hiện và theo dõi đối tượng trong Ultralytics YOLO11 ?
Phân đoạn thể hiện xác định và phác thảo các đối tượng riêng lẻ trong một hình ảnh, cung cấp cho mỗi đối tượng một nhãn và mặt nạ duy nhất. Theo dõi đối tượng mở rộng điều này bằng cách chỉ định ID nhất quán cho các đối tượng trên các khung hình video, tạo điều kiện theo dõi liên tục các đối tượng giống nhau theo thời gian. Khi kết hợp, như trong YOLO11 Với việc triển khai, bạn sẽ có được 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 YOLO11 ví dụ như phân đoạn và theo dõi trên các mô hình khác như Mask R-CNN hoặc Faster R-CNN?
Ultralytics YOLO11 cung cấp hiệu suất thời gian thực, độ chính xác vượt trội và dễ sử dụng so với các mô hình khác như Mask R-CNN hoặc Faster R-CNN. YOLO11 xử lý hình ảnh trong một lần chạy (phát hiện một giai đoạn), giúp nhanh hơn đáng kể trong khi vẫn duy trì độ chính xác cao. Nó cũng cung cấp tích hợp liền mạch với Ultralytics HUB , cho phép người dùng quản lý các mô hình, tập dữ liệu và đường ống đào tạo hiệu quả. Đối với các ứng dụng yêu cầu cả tốc độ và độ chính xác, YOLO11 cung cấp sự cân bằng tối ưu.
Có bất kỳ tập dữ liệu nào được cung cấp bởi Ultralytics thích hợp cho việc đào tạo YOLO11 các mô hình ví dụ như phân đoạn và theo dõi?
Đúng, Ultralytics cung cấp một số tập dữ liệu phù hợp để đào tạo YOLO11 mô hình cho phân đoạn ví dụ, bao gồm COCO-Seg , COCO8-Seg (một tập hợp con nhỏ hơn để thử nghiệm nhanh), Package-Seg và Crack-Seg . Các tập dữ liệu này đi kèm với chú thích cấp độ pixel cần thiết cho các tác vụ phân đoạn ví dụ. Đối với các ứng dụng chuyên biệt hơn, bạn cũng có thể tạo các tập dữ liệu tùy chỉnh theo Ultralytics định dạng. Thông tin tập dữ liệu đầy đủ và hướng dẫn sử dụng có thể được tìm thấy trong tài liệu Tập dữ liệu Ultralytics .