Link to this sectionCá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 dự án thị giác máy tính: bạn thu thập các hình ảnh hoặc video đại diện, sau đó gắn nhãn chúng để model có thể học từ đó. 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 xác định lớp, tìm nguồn dữ liệu không thiên vị và gán nhãn nhất quán là rất quan trọng trước khi bắt đầu bất kỳ quá trình training nào.
Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀
Hướng dẫn này bao gồm thiết lập các lớp và thu thập dữ liệu, gán nhãn dữ liệu là gì cùng với các loại và định dạng gán nhãn để lựa chọn, và các chiến lược gán nhãn hiệu quả — mọi quyết định đều phù hợp với mục tiêu dự án của bạn.
Link to this sectionThiế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ị.
Link to this sectionChọ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.
Link to this sectionCác nguồn dữ liệu#
Bạn có thể sử dụng các tập dữ liệu công khai hoặc thu thập dữ liệu tùy chỉnh của riêng mình. Các tập dữ liệu công khai như trên Kaggle và Google Dataset Search Engine cung cấp dữ liệu được gán nhãn chuẩn hóa, là những điểm khởi đầu tuyệt vời để huấn luyện và xác thực 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.
Link to this sectionTránh sai lệch (Bias) trong thu thập dữ liệu#
Sai lệch xảy ra khi một số nhóm hoặc tình huống nhất định bị thiếu hụt hoặc dư thừa đại diện trong tập dữ liệu của bạn. Điều này dẫn đến một model hoạt động tốt trên một số dữ liệu nhưng lại kém trên những dữ liệu khác. Việc tránh sai lệch trong AI là rất quan trọng để model thị giác máy tính của bạn có thể hoạt động tốt trong nhiều tình huống khác nhau.
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 sai lệch: Sử dụng các phương pháp như lấy mẫu quá mức (oversampling) các lớp thiếu hụt đại diện, data augmentation và các thuật toán nhận thức 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ế.
Link to this sectionData annotation là gì?#
Data annotation (gán nhãn dữ liệu) là quá trình gán nhãn cho dữ liệu để làm cho nó có thể sử dụng được cho việc huấn luyện các model machine learning. Trong thị giác máy tính, điều này có nghĩa là gán nhãn hình ảnh hoặc video với thông tin mà model cần để học hỏi. 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.
Link to this sectionCác loại Data annotation#
Tùy thuộc vào các yêu cầu cụ thể của một tác vụ thị giác máy tính, có nhiều loại gán nhãn dữ liệu 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 rất quan trọng.
- Masks: Các mặt nạ nhị phân nơi mỗi pixel là một phần của đối tượng hoặc 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à nhận diện các điểm mốc trên khuôn mặt.
Link to this sectionCá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ạng | Cấu trúc tệp | Thường dùng cho |
|---|---|---|
| COCO | Tệp JSON đơn | Object detection, instance segmentation, keypoint detection, stuff và panoptic segmentation, chú thích hình ảnh |
| Pascal VOC | Một tệp XML cho mỗi hình ảnh | Object detection |
| YOLO | Một tệp .txt cho mỗi ảnh | Object detection, segmentation và pose |
Định dạng YOLO lưu trữ một hàng cho mỗi đối tượng với các chỉ số lớp bắt đầu từ 0. Đối với object detection, hàng đó là class x_center y_center width height với các tọa độ chuẩn hóa 0–1, trong khi segmentation thêm các điểm đa giác chuẩn hóa và pose thêm các tọa độ keypoint cùng với các giá trị hiển thị tùy chọn sau hộp bounding box.
Link to this sectionThiết lập hướng dẫn gán nhãn#
Với loại gán nhãn và định dạng đã chọn, 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 tính nhất quán và độ chính xác trong suốt quá trình gán nhãn. Các khía cạnh chính của các 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.
Link to this sectionCông cụ chú thích#
Một công cụ gán nhãn tốt cho phép bạn gắn nhãn mọi loại mà tác vụ của bạn cần, thực thi các hướng dẫn nhất quán và xuất nhãn ở định dạng sẵn sàng để training. Ultralytics Platform cung cấp một trình chỉnh sửa gán nhãn tích hợp bao gồm detection, instance segmentation, pose, OBB và classification, với tính năng gán nhãn thông minh dựa trên SAM biến một cú nhấp chuột thành mặt nạ cho các tác vụ detection, segmentation và OBB. Vì mọi nhãn đều được lưu ở định dạng YOLO, tập dữ liệu đã gán nhãn của bạn sẽ chuyển thẳng sang training mà không cần bước chuyển đổi.
Link to this sectionChấ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 về độ chính xác, precision, các giá trị ngoại lai và kiểm soát chất lượng sẽ giúp bạn không gán nhãn dữ liệu theo cách phản tác dụng.
Link to this sectionHiể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 độ chính xác và độ chuẩn xác và cách nó liên quan đến việc gán nhãn. Độ chính xác (accuracy) đề cập đến việc dữ liệu được gán nhãn gần với giá trị thực như thế nào. Nó giúp chúng ta đo lường mức độ phản ánh sát thực tế của các nhãn. Độ chuẩn xác (precision) chỉ ra tính nhất quán của các nhãn. Nó kiểm tra xem bạn có đang cung cấp cùng một nhãn cho cùng một đối tượng hoặc đặc điểm trong suốt tập dữ liệu hay không. Độ chính xác và độ chuẩn xác cao dẫn đến các model được huấn luyện tốt hơn bằng cách giảm nhiễu và cải thiện khả năng khái quát hóa của model từ dữ liệu huấn luyện.
Link to this sectionXá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 giá trị ngoại lệ trong các đặc điểm 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 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).
- Các phương pháp thuật toán: Sử dụng các công cụ như phân cụm (ví dụ: K-means clustering, DBSCAN) và các thuật toán phát hiện bất thường để xác định các giá trị ngoại lệ dựa trên các mô hình phân phối dữ liệu.
Link to this sectionKiể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.
Link to this sectionCá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.
Link to this sectionChia sẻ suy nghĩ của bạn với cộng đồng#
Trao đổi các ý tưởng và thắc mắc của bạn với những người đam mê thị giác máy tính khác có thể giúp tăng tốc dự án của bạn. Dưới đây là một số cách tuyệt vời để học hỏi, khắc phục sự cố và kết nối:
Link to this sectionNơi tìm kiếm sự trợ giúp và hỗ trợ#
- GitHub Issues: Truy cập kho lưu trữ YOLO26 trên GitHub và sử dụng tab Issues để đặt câu hỏi, báo cáo lỗi và đề xuất tính năng. Cộng đồng và các nhà bảo trì luôn sẵn sàng giúp đỡ với bất kỳ vấn đề nào bạn gặp phải.
- Máy chủ Discord của Ultralytics: Tham gia máy chủ Discord của Ultralytics để kết nối với những người dùng và nhà phát triển khác, nhận hỗ trợ, chia sẻ kiến thức và cùng thảo luận ý tưởng.
Link to this sectionTài liệu chính thức#
- Tài liệu Ultralytics YOLO26: Tham khảo tài liệu YOLO26 chính thức để có các hướng dẫn chuyên sâu và thông tin chi tiết có giá trị về nhiều tác vụ và dự án thị giác máy tính.
Link to this sectionKết luận#
Việc thu thập dữ liệu đa dạng, không thiên vị và gán nhãn nhất quán với các công cụ phù hợp là nền tảng của một model thị giác máy tính đá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 thị giác máy tính để chuyển sang giai đoạn training và đánh giá.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionCách tốt nhất để tránh sai lệch trong thu thập dữ liệu cho các dự án thị giác máy tính là gì?#
Để 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.
Link to this sectionLàm cách nào để tôi có thể đảm bảo tính nhất quán và độ chính xác cao trong gán nhãn dữ liệu?#
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.
Link to this sectionTôi cần bao nhiêu hình ảnh để huấn luyện các model Ultralytics YOLO?#
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 để đạt được hiệu suất thực tế đáng tin cậy, Ultralytics khuyến nghị ít nhất 1.500 hình ảnh và 10.000 thực thể được gán nhãn cho mỗi lớp. Hãy kết hợp một tập dữ liệu đủ lớn với lịch trình training hợp lý — khoảng 300 epochs là một điểm khởi đầu phổ biến, có thể giảm bớt nếu model bị overfitting sớm — và giữ cho việc gán nhãn của bạn nghiêm ngặt 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 hướng dẫn training YOLO26.
Link to this sectionUltralytics có cung cấp công cụ gán nhãn dữ liệu không?#
Có. Ultralytics Platform bao gồm một trình chỉnh sửa gán nhãn tích hợp hỗ trợ bounding boxes, polygons, keypoints, oriented boxes và các nhãn classification trong một không gian làm việc duy nhất. Tính năng gán nhãn thông minh dựa trên SAM giúp tăng tốc độ gán nhãn cho các tác vụ detection, segmentation và OBB bằng cách tạo mặt nạ từ một cú nhấp chuột duy nhất, và mọi nhãn đều được lưu trữ ở định dạng YOLO, sẵn sàng để training.
Link to this sectionNhững loại gán nhãn dữ liệu nào thường được sử dụng trong thị giác máy tính?#
Các loại gán nhãn dữ liệu phổ biến nhất trong thị giác máy tính là bounding boxes, polygons, masks và keypoints, mỗi loại phù hợp với một tác vụ khác nhau:
- Bounding Boxes: Được sử dụng chủ yếu cho object detection, đây là các khung hình chữ nhật xung quanh các đối tượng trong hình ảnh.
- Polygons: Cung cấp đường viền đối tượng chính xác hơn, phù hợp cho các tác vụ instance segmentation.
- Masks: Cung cấp chi tiết ở cấp độ pixel, được sử dụng trong semantic segmentation để phân biệt đối tượng với nền.
- Keypoints: Xác định các điểm quan tâm cụ thể trong hình ảnh, hữu ích cho các tác vụ như pose estimation và nhận diện điểm mốc khuôn mặt.
Việc chọn loại gán nhãn phù hợp tùy thuộc vào yêu cầu dự án của bạn. Tìm hiểu thêm về cách thực hiện các nhãn này và định dạng của chúng trong hướng dẫn gán nhãn dữ liệu của chúng tôi.