YOLO Vision 2026:

Các chiến lược thu thập và gán nhãn dữ liệu cho thị giác máy tính#

Thu thập và gán nhãn dữ liệu là hai bước nền tảng của mọi computer vision project: bạn thu thập hình ảnh hoặc video đại diện, sau đó gán nhãn chúng để model có thể học hỏi. Chất lượng của dữ liệu này quyết định trực tiếp đến hiệu suất của model, đó là lý do tại sao việc định nghĩa lớp, nguồn dữ liệu không chệch hướng và gán nhãn nhất quán đóng vai trò cốt lõi trước khi quá trình training bắt đầu.



Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀

Hướng dẫn này bao gồm các nội dung về setting up classes and collecting data, what data annotation is cùng với các loại và định dạng gán nhãn để lựa chọn, và efficient labeling strategies — mọi quyết định đều bám sát your project's goals.

Thiết lập các lớp (Class) và thu thập dữ liệu#

Việc thu thập hình ảnh và video cho một dự án thị giác máy tính phụ thuộc vào ba quyết định: xác định bao nhiêu lớp, tìm nguồn dữ liệu ở đâu và làm thế nào để giữ cho tập dữ liệu không bị thiên vị.

Chọn các lớp (Class) phù hợp cho dự án của bạn#

Một trong những câu hỏi đầu tiên khi bắt đầu một dự án thị giác máy tính là bao gồm bao nhiêu lớp. Bạn cần xác định tư cách thành viên của lớp, bao gồm các danh mục hoặc nhãn khác nhau mà bạn muốn model của mình nhận diện và phân biệt. Số lượng lớp nên được xác định bởi các mục tiêu cụ thể của dự án.

Ví dụ, nếu bạn muốn giám sát giao thông, các lớp của bạn có thể bao gồm "ô tô," "xe tải," "xe buýt," "xe máy," và "xe đạp." Mặt khác, để theo dõi các mặt hàng trong cửa hàng, các lớp của bạn có thể là "trái cây," "rau củ," "đồ uống," và "đồ ăn nhẹ." Việc xác định các lớp dựa trên mục tiêu dự án giúp giữ cho tập dữ liệu của bạn phù hợp và tập trung.

Khi bạn định nghĩa các lớp của mình, một điểm khác biệt quan trọng cần thực hiện là chọn số lượng lớp thô (coarse) hay tinh (fine). 'Số lượng' đề cập đến số lượng lớp riêng biệt mà bạn quan tâm. Quyết định này ảnh hưởng đến độ chi tiết của dữ liệu và độ phức tạp của model. Dưới đây là các cân nhắc cho từng phương pháp:

  • Số lượng lớp thô: Đây là các danh mục rộng hơn, bao quát hơn, chẳng hạn như "phương tiện" và "phi phương tiện." Chúng đơn giản hóa việc gán nhãn và yêu cầu ít tài nguyên tính toán hơn nhưng cung cấp ít thông tin chi tiết, có khả năng hạn chế hiệu quả của model trong các tình huống phức tạp.
  • Số lượng lớp tinh: Nhiều danh mục hơn với các phân biệt chi tiết hơn, chẳng hạn như "sedan," "SUV," "xe bán tải," và "xe máy." Chúng nắm bắt thông tin chi tiết hơn, cải thiện độ chính xác và hiệu suất của model. Tuy nhiên, việc gán nhãn chúng tốn nhiều thời gian và công sức hơn, đồng thời yêu cầu nhiều tài nguyên tính toán hơn.

Bắt đầu với các lớp cụ thể hơn có thể rất hữu ích, đặc biệt là trong các dự án phức tạp nơi các chi tiết rất quan trọng. Các lớp cụ thể hơn cho phép bạn thu thập dữ liệu chi tiết hơn, đạt được thông tin chuyên sâu hơn và thiết lập các phân biệt rõ ràng hơn giữa các danh mục. Điều này không chỉ cải thiện độ chính xác của model mà còn giúp điều chỉnh model dễ dàng hơn sau này nếu cần, tiết kiệm cả thời gian và tài nguyên.

Các nguồn dữ liệu#

Bạn có thể sử dụng các dataset công khai hoặc thu thập dữ liệu tùy chỉnh của riêng mình. Các dataset công khai như trên KaggleGoogle Dataset Search Engine cung cấp dữ liệu được gán nhãn tốt và tiêu chuẩn hóa, biến chúng thành điểm khởi đầu tuyệt vời để training và validate các model.

Mặt khác, thu thập dữ liệu tùy chỉnh cho phép bạn tùy biến tập dữ liệu của mình theo nhu cầu cụ thể. Bạn có thể chụp ảnh và quay video bằng máy ảnh hoặc thiết bị bay không người lái, thu thập hình ảnh trên web hoặc sử dụng dữ liệu nội bộ hiện có từ tổ chức của bạn. Dữ liệu tùy chỉnh mang lại cho bạn nhiều quyền kiểm soát hơn đối với chất lượng và mức độ phù hợp của nó. Kết hợp cả nguồn dữ liệu công khai và tùy chỉnh giúp tạo ra một tập dữ liệu đa dạng và toàn diện.

Tránh sai lệch (Bias) trong thu thập dữ liệu#

Hiện tượng chệch hướng (bias) xảy ra khi một số nhóm hoặc kịch bản nhất định không được đại diện đầy đủ hoặc bị đại diện quá mức trong dataset của bạn. Điều này dẫn đến việc model hoạt động tốt trên một số dữ liệu nhưng kém trên các dữ liệu khác. Việc tránh bias in AI là rất quan trọng để model computer vision của bạn có thể hoạt động tốt trong nhiều kịch bản đa dạng.

Dưới đây là cách bạn có thể tránh sai lệch khi thu thập dữ liệu:

  • Nguồn dữ liệu đa dạng: Thu thập dữ liệu từ nhiều nguồn để nắm bắt các quan điểm và tình huống khác nhau.
  • Đại diện cân bằng: Bao gồm đại diện cân bằng từ tất cả các nhóm có liên quan. Ví dụ, hãy xem xét các độ tuổi, giới tính và sắc tộc khác nhau.
  • Giám sát liên tục: Thường xuyên xem xét và cập nhật tập dữ liệu của bạn để xác định và giải quyết bất kỳ sai lệch nào mới phát sinh.
  • Kỹ thuật giảm thiểu Bias: Sử dụng các phương pháp như oversampling các lớp ít đại diện, data augmentation, và các thuật toán nhận thức sự công bằng (fairness-aware).

Việc tuân thủ các phương pháp này giúp tạo ra một model mạnh mẽ và công bằng hơn, có khả năng khái quát hóa tốt trong các ứng dụng thực tế.

Data annotation là gì?#

Data annotation là quá trình gán nhãn dữ liệu để làm cho nó có thể sử dụng được cho việc training các model machine learning. Trong computer vision, điều này có nghĩa là gán nhãn hình ảnh hoặc video với các thông tin mà model cần để học. Nếu không có dữ liệu được gán nhãn đúng cách, các model không thể học chính xác mối quan hệ giữa đầu vào và đầu ra.

Các loại Data annotation#

Tùy thuộc vào các yêu cầu cụ thể của một computer vision task, sẽ có các loại data annotation khác nhau. Dưới đây là một số ví dụ:

  • Bounding Boxes: Các khung hình chữ nhật được vẽ xung quanh các đối tượng trong một hình ảnh, được sử dụng chủ yếu cho các tác vụ phát hiện đối tượng (object detection). Các khung này được xác định bởi tọa độ góc trên bên trái và góc dưới bên phải.
  • Polygons: Các đường viền chi tiết cho các đối tượng, cho phép gán nhãn chính xác hơn so với bounding box. Polygons được sử dụng trong các tác vụ như instance segmentation, nơi hình dạng của đối tượng đóng vai trò quan trọng.
  • Masks: Các mặt nạ nhị phân trong đó mỗi pixel hoặc là một phần của đối tượng hoặc là nền. Masks được sử dụng trong các tác vụ semantic segmentation để cung cấp chi tiết ở cấp độ pixel.
  • Keypoints: Các điểm cụ thể được đánh dấu trong một hình ảnh để xác định các vị trí quan tâm. Keypoints được sử dụng trong các tác vụ như pose estimation và phát hiện đặc điểm khuôn mặt.
  • Oriented Bounding Boxes: Các hình chữ nhật mang góc xoay, được sử dụng trong các tác vụ OBB khi các đối tượng xuất hiện ở các hướng bất kỳ, chẳng hạn như ảnh hàng không.

Data annotation types including bounding boxes, polygons, and masks

Các định dạng gán nhãn phổ biến#

Sau khi chọn loại gán nhãn, điều quan trọng là phải chọn định dạng thích hợp để lưu trữ và chia sẻ các nhãn. Các định dạng phổ biến nhất là:

Định dạngCấu trúc tệpThường dùng cho
COCOTệp JSON đơnObject detection, instance segmentation, keypoint detection, stuff và panoptic segmentation, image captioning
Pascal VOCMột tệp XML cho mỗi hình ảnhObject detection
YOLOMột file .txt cho mỗi ảnhPhát hiện đối tượng, phân đoạn, pose và hộp có định hướng

Định dạng YOLO lưu trữ một hàng cho mỗi đối tượng với chỉ mục lớp bắt đầu từ 0. Đối với object detection, hàng có dạng class x_center y_center width height với tọa độ chuẩn hóa từ 0–1. Hàng segmentation thay thế hộp bằng các điểm đa giác chuẩn hóa của đối tượng, trong khi hàng pose giữ nguyên hộp và nối thêm tọa độ keypoint phía sau, kèm theo cờ hiển thị cho mỗi keypoint khi tập dữ liệu khai báo kpt_shape: [n, 3]. Hàng OBB lưu trữ class x1 y1 x2 y2 x3 y3 x4 y4 bằng cách sử dụng các tọa độ góc được chuẩn hóa.

Nếu công cụ chú thích của bạn xuất ra COCO JSON, bạn có thể chuyển đổi nó thành nhãn YOLO .txt hoặc train trực tiếp trên tệp JSON với một lớp tập dữ liệu tùy chỉnh.

Thiết lập hướng dẫn gán nhãn#

Khi đã chọn được loại annotation và định dạng, bước tiếp theo là thiết lập các quy tắc gán nhãn rõ ràng và khách quan. Những quy tắc này đóng vai trò như một lộ trình đảm bảo sự nhất quán và accuracy trong suốt quá trình gán nhãn. Các khía cạnh chính của những quy tắc này bao gồm:

  • Tính rõ ràng và chi tiết: Đảm bảo các hướng dẫn của bạn rõ ràng. Sử dụng các ví dụ và hình minh họa để cho thấy những gì được mong đợi.
  • Tính nhất quán: Giữ cho các nhãn của bạn đồng nhất. Thiết lập các tiêu chí chuẩn để gán nhãn các loại dữ liệu khác nhau, để tất cả các nhãn tuân theo cùng một quy tắc.
  • Giảm sai lệch: Hãy giữ trung lập. Tự rèn luyện để trở nên khách quan và giảm thiểu các sai lệch cá nhân để đảm bảo các nhãn công bằng.
  • Hiệu quả: Làm việc thông minh hơn, không phải vất vả hơn. Sử dụng các công cụ và quy trình tự động hóa các tác vụ lặp đi lặp lại, giúp quá trình gán nhãn nhanh hơn và hiệu quả hơn.

Việc thường xuyên xem xét và cập nhật các quy tắc gán nhãn của bạn sẽ giúp giữ cho các nhãn của bạn chính xác, nhất quán và phù hợp với các mục tiêu dự án của bạn.

Công cụ chú thích#

Một công cụ chú thích tốt cho phép bạn gán nhãn cho mọi loại mà tác vụ của bạn cần, thực thi các nguyên tắc nhất quán và xuất nhãn ở định dạng sẵn sàng cho việc training. Ultralytics Platform cung cấp một annotation editor tích hợp bao gồm các tác vụ detection, instance segmentation, semantic segmentation, classification, pose và OBB, với chú thích thông minh được hỗ trợ bởi SAM giúp chuyển một cú nhấp chuột đơn giản thành mặt nạ cho các tác vụ detection, instance segmentation, semantic segmentation và OBB. Vì các chú thích được lưu ở bố cục mà mỗi tác vụ yêu cầu — các hàng YOLO .txt cho các tác vụ không gian và thư mục lớp cho classification — tập dữ liệu được gán nhãn của bạn sẽ chuyển thẳng sang giai đoạn training mà không cần bước chuyển đổi.

Chất lượng gán nhãn: Độ chính xác, Precision và các giá trị ngoại lai#

Trước khi gán nhãn ở quy mô lớn, việc hiểu rõ về accuracy, precision, các điểm bất thường (outliers) và kiểm soát chất lượng sẽ giúp ích rất nhiều để bạn không gán nhãn dữ liệu theo cách phản tác dụng.

Hiểu về độ chính xác và độ chuẩn xác#

Điều quan trọng là phải hiểu sự khác biệt giữa accuracy và precision và cách chúng liên quan đến annotation. Accuracy đề cập đến mức độ gần nhau giữa dữ liệu được gán nhãn và các giá trị thực tế. Nó giúp chúng ta đo lường mức độ phản ánh chính xác của các nhãn đối với các kịch bản thực tế. Precision cho biết tính nhất quán của các annotation. Nó kiểm tra xem bạn có đang gán cùng một nhãn cho cùng một đối tượng hoặc tính năng trong toàn bộ dataset hay không. Accuracy và precision cao dẫn đến các model được train tốt hơn bằng cách giảm nhiễu và cải thiện khả năng tổng quát hóa của model từ training data.

Accuracy vs precision comparison for data annotation

Xác định các giá trị ngoại lệ#

Các giá trị ngoại lệ là các điểm dữ liệu khác biệt khá nhiều so với các quan sát khác trong tập dữ liệu. Đối với các nhãn, một giá trị ngoại lệ có thể là một hình ảnh được gán nhãn không chính xác hoặc một nhãn không phù hợp với phần còn lại của tập dữ liệu. Các giá trị ngoại lệ gây lo ngại vì chúng có thể làm méo mó quá trình học tập của model, dẫn đến các dự đoán không chính xác và khả năng khái quát hóa kém.

Bạn có thể sử dụng các phương pháp khác nhau để phát hiện và sửa các giá trị ngoại lệ:

  • Kỹ thuật thống kê: Để phát hiện các điểm bất thường trong các đặc trưng số như giá trị pixel, tọa độ bounding box, hoặc kích thước đối tượng, bạn có thể sử dụng các phương pháp như biểu đồ hộp (box plots), biểu đồ tần suất (histograms), hoặc điểm z (z-scores).
  • Kỹ thuật trực quan: Để phát hiện các bất thường trong các đặc điểm phân loại như lớp đối tượng, màu sắc hoặc hình dạng, hãy sử dụng các phương pháp trực quan như vẽ biểu đồ hình ảnh, nhãn hoặc bản đồ nhiệt (heat maps).
  • Phương pháp thuật toán: Sử dụng các công cụ như phân cụm (ví dụ: phân cụm K-means, DBSCAN) và các thuật toán anomaly detection để xác định các điểm bất thường dựa trên các mẫu phân phối dữ liệu.

Kiểm soát chất lượng dữ liệu được gán nhãn#

Cũng giống như các dự án kỹ thuật khác, kiểm soát chất lượng là bắt buộc đối với dữ liệu được gán nhãn. Một phương pháp hay là thường xuyên kiểm tra các nhãn để đảm bảo chúng chính xác và nhất quán. Điều này có thể được thực hiện theo một vài cách khác nhau:

  • Xem xét các mẫu dữ liệu được gán nhãn
  • Sử dụng các công cụ tự động để phát hiện các lỗi phổ biến
  • Có người khác kiểm tra lại các nhãn

Nếu bạn làm việc với nhiều người, tính nhất quán giữa các người gán nhãn khác nhau là rất quan trọng. Sự đồng thuận tốt giữa những người gán nhãn có nghĩa là các hướng dẫn rõ ràng và mọi người đang tuân theo chúng theo cùng một cách. Nó giúp mọi người đi cùng một hướng và các nhãn nhất quán.

Trong khi xem xét, nếu bạn tìm thấy lỗi, hãy sửa chúng và cập nhật các hướng dẫn để tránh những sai lầm trong tương lai. Cung cấp phản hồi cho người gán nhãn và cung cấp đào tạo thường xuyên để giúp giảm thiểu lỗi. Có một quy trình mạnh mẽ để xử lý lỗi giúp giữ cho tập dữ liệu của bạn chính xác và đáng tin cậy.

Các chiến lược gán nhãn dữ liệu hiệu quả#

Để làm cho quá trình gán nhãn dữ liệu suôn sẻ và hiệu quả hơn, hãy cân nhắc thực hiện các chiến lược sau:

  • Hướng dẫn gán nhãn rõ ràng: Cung cấp các hướng dẫn chi tiết kèm ví dụ để đảm bảo tất cả người gán nhãn giải thích các tác vụ một cách nhất quán. Ví dụ, khi gán nhãn các loài chim, hãy chỉ định rõ là bao gồm toàn bộ con chim hay chỉ các bộ phận cụ thể.
  • Kiểm tra chất lượng thường xuyên: Thiết lập các tiêu chuẩn và sử dụng các số liệu cụ thể để xem xét công việc, duy trì các tiêu chuẩn cao thông qua phản hồi liên tục.
  • Sử dụng các công cụ tiền gán nhãn: Nhiều nền tảng gán nhãn hiện đại cung cấp các tính năng tiền gán nhãn có hỗ trợ AI có thể tăng tốc đáng kể quy trình bằng cách tự động tạo các nhãn ban đầu mà con người sau đó có thể tinh chỉnh.
  • Triển khai học chủ động (Active Learning): Cách tiếp cận này ưu tiên gán nhãn các mẫu thông tin nhất trước, điều này có thể làm giảm tổng số lượng nhãn cần thiết trong khi vẫn duy trì hiệu suất của model.
  • Xử lý theo lô (Batch Processing): Nhóm các hình ảnh tương tự lại với nhau để gán nhãn nhằm duy trì tính nhất quán và cải thiện hiệu quả.

Các chiến lược này có thể giúp duy trì các nhãn chất lượng cao trong khi giảm thời gian và tài nguyên cần thiết cho quy trình gán nhãn.

Kết luận#

Thu thập dữ liệu đa dạng, không thiên vị và chú thích dữ liệu đó một cách nhất quán bằng các công cụ phù hợp là nền tảng của một model computer vision đáng tin cậy. Sau khi tập dữ liệu của bạn đã được thu thập và gán nhãn, hãy tiếp tục đến hướng dẫn các bước của một dự án computer vision để chuyển sang giai đoạn training và đánh giá. Nếu có câu hỏi phát sinh trong quá trình thực hiện, hãy hỏi cộng đồng trên kho lưu trữ GitHub của Ultralytics hoặc máy chủ Discord của Ultralytics.

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

  • Để giảm thiểu thiên vị, hãy thu thập dữ liệu từ các nguồn đa dạng, đảm bảo sự đại diện cân bằng giữa tất cả các nhóm liên quan (như độ tuổi, giới tính và sắc tộc khác nhau), thường xuyên xem xét và cập nhật tập dữ liệu để phát hiện các thiên vị mới nổi, và áp dụng các kỹ thuật giảm thiểu như oversampling các lớp chưa được đại diện đầy đủ, data augmentation và các thuật toán nhận thức về tính công bằng. Tránh thiên vị theo cách này giúp model thị giác máy tính của bạn hoạt động tốt trong nhiều tình huống thực tế khác nhau và cải thiện khả năng tổng quát hóa.

  • Thiết lập các hướng dẫn gán nhãn rõ ràng, khách quan với hướng dẫn chi tiết, ví dụ và hình ảnh minh họa, sau đó áp dụng chúng đồng nhất trên tất cả các loại dữ liệu để mọi nhãn đều tuân theo cùng một quy tắc. Đào tạo người gán nhãn giữ thái độ trung lập để giảm bớt thiên vị cá nhân, xem xét và cập nhật hướng dẫn thường xuyên, đồng thời sử dụng các kiểm tra tính nhất quán tự động cùng với phản hồi giữa những người gán nhãn để giữ độ chính xác cao và phù hợp với mục tiêu dự án của bạn.

  • Vài trăm đối tượng được gán nhãn cho mỗi lớp là đủ để bắt đầu thử nghiệm với transfer learning, nhưng để có hiệu suất thực tế đáng tin cậy, Ultralytics khuyến nghị at least 1,500 images and 10,000 labeled instances per class. Hãy kết hợp một dataset đủ lớn với một lịch trình training hợp lý — around 300 epochs là một điểm khởi đầu phổ biến, có thể giảm xuống nếu model bị overfit sớm — đồng thời giữ cho các annotation của bạn thật khắt khe và phù hợp với các mục tiêu cụ thể của dự án. Khám phá các chiến lược training chi tiết trong YOLO26 training guide.

  • Có. Ultralytics Platform bao gồm một annotation editor tích hợp hỗ trợ bounding boxes, polygons, keypoints, oriented boxes và nhãn classification trong một không gian làm việc duy nhất. Chú thích thông minh được hỗ trợ bởi SAM giúp tăng tốc độ gán nhãn cho các tác vụ detection, instance segmentation, semantic segmentation và OBB bằng cách tạo mặt nạ từ một cú nhấp chuột duy nhất, trong khi pose và classification được gán nhãn thủ công. Các chú thích được lưu trữ theo bố cục mà mỗi tác vụ yêu cầu — các hàng YOLO .txt cho các tác vụ không gian, thư mục lớp cho classification — sẵn sàng cho việc training.

  • Hãy khớp loại chú thích với tác vụ bạn dự định train. Bounding boxes là loại nhanh nhất để vẽ và là tất cả những gì object detection cần. Polygons và masks tốn nhiều thời gian hơn đáng kể cho mỗi đối tượng nhưng là bắt buộc đối với instance segmentation khi hình dạng chính xác của đối tượng là quan trọng. Keypoints phù hợp với pose estimation và phát hiện mốc, còn oriented boxes phù hợp với các tác vụ OBB như ảnh hàng không, nơi hình chữ nhật căn chỉnh theo trục sẽ bao quanh quá nhiều phần nền. Chú thích cho tác vụ gọn gàng nhất mà bạn thực sự cần sẽ giúp nỗ lực gán nhãn tương xứng với kết quả.

Bình luận