Tổng quan về bộ dữ liệu ước tính Pose
Các định dạng tập dữ liệu được hỗ trợ
Ultralytics YOLO định dạng
Định dạng nhãn tập dữ liệu được sử dụng để đào tạo YOLO Mô hình POSE như sau:
- Một tệp văn bản cho mỗi hình ảnh: Mỗi hình ảnh trong tập dữ liệu có một tệp văn bản tương ứng có cùng tên với tệp hình ảnh và phần mở rộng ".txt".
- Một hàng trên mỗi đối tượng: Mỗi hàng trong tệp văn bản tương ứng với một đối tượng trong hình ảnh.
- Thông tin đối tượng trên mỗi hàng: Mỗi hàng chứa thông tin sau về phiên bản đối tượng:
- Chỉ mục lớp đối tượng: Một số nguyên đại diện cho lớp của đối tượng (ví dụ: 0 cho người, 1 cho xe hơi, v.v.).
- Tọa độ tâm đối tượng: Tọa độ x và y của tâm đối tượng, được chuẩn hóa nằm trong khoảng từ 0 đến 1.
- Chiều rộng và chiều cao của đối tượng: Chiều rộng và chiều cao của đối tượng, được chuẩn hóa nằm trong khoảng từ 0 đến 1.
- Tọa độ điểm chính đối tượng: Các điểm chính của đối tượng, được chuẩn hóa nằm trong khoảng từ 0 đến 1.
Dưới đây là ví dụ về định dạng nhãn cho tác vụ ước tính tư thế:
Định dạng với Dim = 2
Định dạng với Dim = 3
<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <p2-visibility>
Ở định dạng này, <class-index>
là chỉ mục của lớp cho đối tượng,<x> <y> <width> <height>
are coordinates of bounding boxvà <px1> <py1> <px2> <py2> ... <pxn> <pyn>
là tọa độ điểm ảnh của các điểm chính. Các tọa độ được ngăn cách bởi các khoảng trắng.
Định dạng YAML tập dữ liệu
Các Ultralytics framework sử dụng định dạng tệp YAML để xác định tập dữ liệu và cấu hình mô hình để đào tạo Mô hình phát hiện. Dưới đây là ví dụ về định dạng YAML được sử dụng để xác định tập dữ liệu phát hiện:
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8-pose # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# Keypoints
kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]
# Classes dictionary
names:
0: person
Các train
và val
Các trường chỉ định đường dẫn đến các thư mục chứa hình ảnh đào tạo và xác thực tương ứng.
names
là một từ điển tên lớp. Thứ tự của các tên phải khớp với thứ tự của các chỉ số lớp đối tượng trong YOLO tệp tập dữ liệu.
(Tùy chọn) nếu các điểm đối xứng thì cần flip_idx, như bên trái-phải của người hoặc mặt. Ví dụ: nếu chúng ta giả định năm điểm chính của mốc khuôn mặt: [mắt trái, mắt phải, mũi, miệng trái, miệng phải] và chỉ số ban đầu là [0, 1, 2, 3, 4], thì flip_idx là [1, 0, 2, 4, 3] (chỉ cần trao đổi chỉ số trái-phải, tức là 0-1 và 3-4 và không sửa đổi người khác như mũi trong ví dụ này).
Sử dụng
Ví dụ
Bộ dữ liệu được hỗ trợ
Phần này phác thảo các bộ dữ liệu tương thích với Ultralytics YOLO định dạng và có thể được sử dụng cho các mô hình ước tính tư thế đào tạo:
COCO-Pose
- Description: COCO-Pose is a large-scale object detection, segmentation, and pose estimation dataset. It is a subset of the popular COCO dataset and focuses on human pose estimation. COCO-Pose includes multiple keypoints for each human instance.
- Định dạng nhãn: Giống như Ultralytics YOLO định dạng như được mô tả ở trên, với các điểm chính cho tư thế của con người.
- Số lớp: 1 (Con người).
- Điểm chính: 17 điểm chính bao gồm mũi, mắt, tai, vai, khuỷu tay, cổ tay, hông, đầu gối và mắt cá chân.
- Cách sử dụng: Thích hợp để đào tạo các mô hình ước tính tư thế của con người.
- Hướng dẫn khác: The dataset is rich and multi, chứa hơn 200k hình ảnh được gắn nhãn.
- Đọc thêm về COCO-Pose
COCO8-Tư thế
- Sự miêu tả: Ultralytics COCO8-Pose là một bộ dữ liệu phát hiện tư thế nhỏ nhưng linh hoạt bao gồm 8 hình ảnh đầu tiên của bộ COCO train 2017, 4 hình ảnh để đào tạo và 4 hình ảnh để xác nhận.
- Định dạng nhãn: Giống như Ultralytics YOLO định dạng như được mô tả ở trên, với các điểm chính cho tư thế của con người.
- Số lớp: 1 (Con người).
- Điểm chính: 17 điểm chính bao gồm mũi, mắt, tai, vai, khuỷu tay, cổ tay, hông, đầu gối và mắt cá chân.
- Cách sử dụng: Thích hợp để kiểm tra và gỡ lỗi các mô hình phát hiện đối tượng hoặc để thử nghiệm các phương pháp phát hiện mới.
- Hướng dẫn khác: COCO8-Pose is ideal for sanity checks and CI checks.
- Đọc thêm về COCO8-Pose
Tư thế hổ
- Sự miêu tả: Ultralytics Bộ dữ liệu tư thế động vật này bao gồm 263 hình ảnh có nguồn gốc từ Video YouTube, với 210 hình ảnh được phân bổ để huấn luyện và 53 hình ảnh để xác nhận.
- Định dạng nhãn: Giống như Ultralytics YOLO định dạng như mô tả ở trên, với 12 điểm chính cho tư thế động vật và không có kích thước nhìn thấy được.
- Số lớp: 1 (Tiger).
- Điểm chính: 12 điểm chính.
- Cách sử dụng: Tuyệt vời cho tư thế động vật hoặc bất kỳ tư thế nào khác không dựa trên con người.
- Đọc thêm về Tiger-Pose
Hand Keypoints
- Description: Hand keypoints pose dataset comprises nearly 26K images, with 18776 images allocated for training and 7992 for validation.
- Label Format: Same as Ultralytics YOLO format as described above, but with 21 keypoints for human hand and visible dimension.
- Number of Classes: 1 (Hand).
- Keypoints: 21 keypoints.
- Usage: Great for human hand pose estimation.
- Read more about Hand Keypoints
Thêm tập dữ liệu của riêng bạn
Nếu bạn có tập dữ liệu của riêng mình và muốn sử dụng nó để đào tạo, hãy đặt ra các mô hình ước tính với: Ultralytics YOLO định dạng, đảm bảo rằng nó tuân theo định dạng được chỉ định ở trên trong "Ultralytics YOLO định dạng". Chuyển đổi chú thích của bạn sang định dạng yêu cầu và chỉ định đường dẫn, số lớp và tên lớp trong tệp cấu hình YAML.
Công cụ chuyển đổi
Ultralytics cung cấp một công cụ chuyển đổi thuận tiện để chuyển đổi nhãn từ định dạng tập dữ liệu COCO phổ biến sang YOLO định dạng:
Ví dụ
Công cụ chuyển đổi này có thể được sử dụng để chuyển đổi tập dữ liệu COCO hoặc bất kỳ tập dữ liệu nào ở định dạng COCO sang Ultralytics YOLO định dạng. Các use_keypoints
Tham số chỉ định có bao gồm các điểm chính (để ước tính tư thế) trong các nhãn được chuyển đổi hay không.
FAQ
Cái gì Ultralytics YOLO Định dạng để ước tính tư thế?
Các Ultralytics YOLO Định dạng cho bộ dữ liệu ước tính tư thế liên quan đến việc gắn nhãn mỗi hình ảnh bằng một tệp văn bản tương ứng. Mỗi hàng của tệp văn bản lưu trữ thông tin về một phiên bản đối tượng:
- Chỉ mục lớp đối tượng
- Tọa độ trung tâm đối tượng (chuẩn hóa x và y)
- Chiều rộng và chiều cao đối tượng (chuẩn hóa)
- Tọa độ điểm chính đối tượng (pxn và pyn chuẩn hóa)
Đối với tư thế 2D, các điểm chính bao gồm tọa độ pixel. Đối với 3D, mỗi điểm chính cũng có một cờ hiển thị. Để biết thêm chi tiết, hãy xem Ultralytics YOLO định dạng.
Làm cách nào để sử dụng tập dữ liệu COCO-Pose với Ultralytics YOLO?
To use the COCO-Pose dataset with Ultralytics YOLO:
- Download the dataset and prepare your label files in the YOLO format.
- Create a YAML configuration file specifying paths to training and validation images, keypoint shape, and class names.
-
Use the configuration file for training:
Làm cách nào để thêm tập dữ liệu của riêng tôi để ước tính tư thế trong Ultralytics YOLO?
To add your dataset:
- Convert your annotations to the Ultralytics YOLO format.
- Create a YAML configuration file specifying the dataset paths, number of classes, and class names.
-
Use the configuration file to train your model:
from ultralytics import YOLO model = YOLO("yolo11n-pose.pt") results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
For complete steps, check the Adding your own dataset section.
Mục đích của tệp YAML tập dữ liệu trong là gì Ultralytics YOLO?
Tập dữ liệu YAML trong Ultralytics YOLO xác định tập dữ liệu và cấu hình mô hình để đào tạo. Nó chỉ định các đường dẫn để đào tạo, xác nhận và kiểm tra hình ảnh, hình dạng keypoint, tên lớp và các tùy chọn cấu hình khác. Định dạng có cấu trúc này giúp hợp lý hóa việc quản lý tập dữ liệu và đào tạo mô hình. Dưới đây là một định dạng YAML ví dụ:
Đọc thêm về cách tạo tệp cấu hình YAML ở định dạng YAML tập dữ liệu.
Làm cách nào để chuyển đổi nhãn tập dữ liệu COCO thành Ultralytics YOLO Định dạng để ước tính tư thế?
Ultralytics cung cấp một công cụ chuyển đổi để chuyển đổi nhãn tập dữ liệu COCO thành YOLO Định dạng, bao gồm thông tin KeyPoint:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)
Công cụ này giúp tích hợp liền mạch các bộ dữ liệu COCO vào YOLO Dự án. Để biết chi tiết, hãy tham khảo phần Công cụ chuyển đổi .