Tìm hiểu về gán nhãn dữ liệu cho các dự án thị giác máy tính
Tìm hiểu vì sao gán nhãn dữ liệu quan trọng đối với thị giác máy tính, các loại chú giải chính từ bounding box đến keypoint, và cách gán nhãn ảnh theo định dạng YOLO.
Abirami Vina11 phút đọc
Trí tuệ nhân tạo (AI) tập trung vào việc trao cho máy móc những năng lực giống con người, và một trong những cách phổ biến nhất để thực hiện điều này là thông qua học có giám sát. Nói cách khác, việc dạy model AI bằng cách cung cấp các ví dụ đã gắn nhãn có thể giúp chúng học từ các mẫu dữ liệu và cải thiện khả năng thực hiện tác vụ. Cách này rất giống với việc con người học hỏi từ trải nghiệm. Vậy các ví dụ đã gắn nhãn này được tạo ra như thế nào?
Gán nhãn dữ liệu là quá trình gắn nhãn hoặc thẻ cho dữ liệu để giúp các thuật toán machine learning hiểu được dữ liệu. Trong thị giác máy tính, việc này có nghĩa là đánh dấu hình ảnh hoặc video để nhận diện và phân loại chính xác đối tượng, hành động hoặc cảnh vật. Gán nhãn dữ liệu đóng vai trò thiết yếu vì thành công của một model AI phụ thuộc rất nhiều vào chất lượng dữ liệu có nhãn được dùng để huấn luyện model.
Các nghiên cứu cho thấy hơn 80% thời gian của dự án AI được dành cho việc quản lý dữ liệu, từ thu thập và tổng hợp đến làm sạch và gán nhãn dữ liệu. Điều này cho thấy tầm quan trọng của việc chú thích dữ liệu trong quá trình phát triển model AI. Sử dụng dữ liệu đã gán nhãn chất lượng cao giúp model AI thực hiện các tác vụ như nhận diện khuôn mặt và phát hiện đối tượng chính xác, đáng tin cậy hơn trong các tình huống thực tế.
Vì sao cần gán nhãn dữ liệu#
Chú thích dữ liệu là nền tảng quyết định hiệu năng của model thị giác máy tính. Dữ liệu đã gán nhãn là ground truth mà model sử dụng để học và đưa ra dự đoán. Dữ liệu ground truth rất quan trọng vì đại diện cho thế giới thực mà model cố gắng hiểu. Nếu thiếu mốc tham chiếu đáng tin cậy này, model AI sẽ giống như con tàu định hướng mà không có la bàn.

Hình 1. Ground truth và dự đoán.
Gán nhãn chính xác giúp các model hiểu những gì chúng đang nhìn thấy và đưa ra quyết định tốt hơn. Nếu dữ liệu được gán nhãn kém hoặc không nhất quán, model sẽ khó đưa ra dự đoán và quyết định chính xác, giống như học sinh học từ sách giáo khoa sai. Nhờ dữ liệu đã chú thích, model có thể học các tác vụ như phân đoạn instance, phân loại ảnh và ước tính pose của đối tượng trong ảnh và video.
Nguồn dữ liệu tốt nhất cho dataset#
Trước khi tạo một dataset hoàn toàn mới và tỉ mỉ gán nhãn ảnh cũng như video, bạn nên kiểm tra xem dự án có thể sử dụng dataset hiện có hay không. Có một số repository mã nguồn mở cung cấp miễn phí các dataset chất lượng cao. Một số repository phổ biến nhất gồm:
- ImageNet: Thường được sử dụng để huấn luyện model phân loại ảnh.
- COCO: Dataset này được thiết kế cho các tác vụ phát hiện đối tượng, phân đoạn và tạo chú thích ảnh.
- PASCAL VOC: Dataset này hỗ trợ các tác vụ phát hiện đối tượng và phân đoạn.

Hình 2. Ví dụ về dữ liệu trong dataset COCO.
Khi chọn dataset, cần cân nhắc các yếu tố như mức độ phù hợp với dự án, kích thước dataset, tính đa dạng và chất lượng nhãn. Ngoài ra, hãy xem xét điều khoản cấp phép của dataset để tránh các rắc rối pháp lý, đồng thời kiểm tra xem định dạng dữ liệu có phù hợp với workflow và công cụ của bạn hay không.
Tạo dataset tùy chỉnh là lựa chọn phù hợp nếu các dataset hiện có chưa đáp ứng được nhu cầu của bạn. Tùy theo yêu cầu dự án, bạn có thể thu thập hình ảnh bằng các công cụ như webcam, drone hoặc điện thoại thông minh. Lý tưởng nhất là dataset tùy chỉnh cần đa dạng, cân bằng và thể hiện đúng vấn đề bạn đang cố gắng giải quyết. Điều này có thể đòi hỏi chụp ảnh trong các điều kiện ánh sáng khác nhau, từ nhiều góc độ và ở nhiều môi trường.
Nếu chỉ có thể thu thập một số lượng nhỏ hình ảnh hoặc video, tăng cường dữ liệu là một kỹ thuật hữu ích. Kỹ thuật này mở rộng dataset bằng cách áp dụng các phép biến đổi như xoay, lật hoặc điều chỉnh màu sắc cho hình ảnh hiện có. Việc này giúp tăng kích thước dataset, đồng thời khiến model vững chắc hơn và xử lý tốt hơn các biến thể trong dữ liệu. Bằng cách kết hợp dataset mã nguồn mở, dataset tùy chỉnh và dữ liệu đã tăng cường, bạn có thể cải thiện đáng kể hiệu suất của các model thị giác máy tính.
Các kỹ thuật gán nhãn ảnh#
Trước khi bắt đầu gán nhãn ảnh, bạn cần tìm hiểu các loại annotation khác nhau. Điều này sẽ giúp bạn chọn loại phù hợp cho dự án. Tiếp theo, chúng ta sẽ xem xét một số loại annotation chính.
Bounding box#
Bounding box là loại chú thích phổ biến nhất trong thị giác máy tính. Đây là các khung hình chữ nhật dùng để đánh dấu vị trí của đối tượng trong ảnh. Các khung này được xác định bằng tọa độ các góc và giúp model AI nhận diện, định vị đối tượng. Bounding box chủ yếu được dùng cho tác vụ phát hiện đối tượng.

Hình 3. Ví dụ về bounding box.
Mask phân đoạn#
Đôi khi cần phát hiện đối tượng chính xác hơn mức mà một bounding box bao quanh đối tượng có thể cung cấp. Bạn có thể cần xác định đường biên của các đối tượng trong ảnh. Khi đó, mask phân đoạn cho phép phác họa các đối tượng phức tạp. Mask phân đoạn cung cấp biểu diễn chi tiết hơn ở cấp pixel.
Các mask này có thể được dùng cho phân đoạn ngữ nghĩa và phân đoạn instance. Phân đoạn ngữ nghĩa là quá trình gán nhãn từng pixel trong ảnh theo đối tượng hoặc khu vực mà pixel đó biểu thị, chẳng hạn như người đi bộ, ô tô, đường hoặc vỉa hè. Phân đoạn instance tiến thêm một bước bằng cách nhận diện và tách riêng từng đối tượng, chẳng hạn như phân biệt từng chiếc xe trong ảnh ngay cả khi tất cả đều cùng loại.

Hình 4. Ví dụ về mask phân đoạn ngữ nghĩa (bên trái) và phân đoạn instance (bên phải).
Khối hộp 3D#
Khối hộp 3D tương tự bounding box nhưng bổ sung thông tin chiều sâu và biểu diễn đối tượng trong không gian 3D. Thông tin bổ sung này cho phép hệ thống hiểu hình dạng, thể tích và vị trí của đối tượng trong không gian 3D. Khối hộp 3D thường được dùng trong xe tự lái để đo khoảng cách từ phương tiện đến các đối tượng.

Hình 5. Ví dụ về khối hộp 3D.
Điểm đặc trưng và mốc#
Một loại chú thích thú vị khác là keypoint, trong đó các điểm cụ thể như mắt, mũi hoặc khớp được đánh dấu trên đối tượng. Landmark tiến thêm một bước bằng cách nối các điểm này để nắm bắt cấu trúc và chuyển động của những hình dạng phức tạp hơn như khuôn mặt hoặc tư thế cơ thể. Các loại chú thích này được dùng trong những ứng dụng như nhận diện khuôn mặt, ghi lại chuyển động và thực tế tăng cường. Chúng cũng cải thiện độ chính xác của model AI trong các tác vụ như nhận diện cử chỉ hoặc phân tích hiệu suất thể thao.

Hình 6. Ví dụ về keypoint.
Cách gán nhãn dữ liệu bằng LabelImg#
Sau khi tìm hiểu các loại chú thích khác nhau, hãy cùng xem cách chú thích ảnh bằng công cụ phổ biến LabelImg. LabelImg là công cụ mã nguồn mở giúp chú thích ảnh đơn giản và có thể dùng để tạo dataset theo định dạng YOLO (You Only Look Once). Đây là lựa chọn phù hợp cho người mới bắt đầu với các dự án Ultralytics YOLOv8 quy mô nhỏ.
Việc thiết lập LabelImg khá đơn giản. Trước tiên, hãy đảm bảo bạn đã cài đặt Python 3 trên máy tính. Sau đó, bạn có thể cài đặt LabelImg bằng một lệnh nhanh:
pip3 install labelImgSau khi cài đặt, bạn có thể khởi chạy công cụ bằng lệnh:
labelImgLabelImg hoạt động trên nhiều nền tảng, bao gồm Windows, macOS và Linux. Nếu gặp vấn đề trong quá trình cài đặt, repository LabelImg chính thức có thể cung cấp hướng dẫn chi tiết hơn. Lưu ý rằng các nhà duy trì đã lưu trữ LabelImg; để gán nhãn trên trình duyệt bằng các công cụ có AI hỗ trợ, hãy xem trình chỉnh sửa chú thích của Ultralytics Platform.

Hình 7. Sử dụng LabelImg để chú thích ảnh.
Sau khi khởi chạy công cụ, hãy thực hiện các bước đơn giản sau để bắt đầu gán nhãn ảnh:
- Thiết lập các lớp: Bắt đầu bằng cách xác định danh sách lớp (danh mục) bạn muốn gán nhãn trong tệp có tên “predefined_classes.txt.” Tệp này giúp phần mềm biết bạn sẽ gán nhãn những đối tượng nào trong ảnh.
- Chuyển sang định dạng YOLO: Theo mặc định, LabelImg sử dụng định dạng PASCAL VOC, nhưng nếu làm việc với YOLO, bạn cần chuyển đổi định dạng. Chỉ cần nhấp vào nút “PascalVOC” trên thanh công cụ để chuyển sang YOLO.
- Bắt đầu gán nhãn: Sử dụng tùy chọn "Open" hoặc "OpenDIR" để tải ảnh lên. Sau đó, vẽ bounding box quanh các đối tượng bạn muốn gán nhãn và chỉ định nhãn lớp phù hợp. Sau khi gán nhãn cho từng ảnh, hãy lưu công việc của bạn. LabelImg sẽ tạo một tệp văn bản có cùng tên với ảnh, chứa các annotation YOLO.
- Lưu và xem lại: Các annotation được lưu trong tệp .txt theo định dạng YOLO. Phần mềm cũng lưu tệp “classes.txt” liệt kê tất cả tên lớp của bạn.
Các chiến lược gán nhãn dữ liệu hiệu quả#
Để quy trình gán nhãn dữ liệu diễn ra suôn sẻ hơn, bạn cần lưu ý một vài chiến lược then chốt. Ví dụ, hướng dẫn chú thích rõ ràng là yếu tố rất quan trọng. Nếu không có hướng dẫn, những người gán nhãn khác nhau có thể diễn giải tác vụ theo những cách khác nhau.
Giả sử nhiệm vụ là gán bounding box cho chim trong ảnh. Một annotator có thể gán nhãn toàn bộ con chim, trong khi người khác chỉ gán nhãn phần đầu hoặc cánh. Sự thiếu nhất quán này có thể khiến model bị nhiễu trong quá trình huấn luyện. Bằng cách đưa ra định nghĩa rõ ràng, chẳng hạn như "gán nhãn toàn bộ con chim, bao gồm cả cánh và đuôi", cùng với ví dụ và hướng dẫn cho các trường hợp khó, bạn có thể đảm bảo dữ liệu được gắn nhãn chính xác và nhất quán.
Việc kiểm tra chất lượng thường xuyên cũng rất quan trọng để duy trì tiêu chuẩn cao. Bằng cách thiết lập các chuẩn đánh giá và sử dụng những chỉ số cụ thể để xem xét công việc, bạn có thể giữ cho dữ liệu chính xác và tinh chỉnh quy trình thông qua phản hồi liên tục.
Tóm lược về gán nhãn dữ liệu#
Gán nhãn dữ liệu là một khái niệm đơn giản nhưng có thể tác động đáng kể đến model computer vision của bạn. Dù sử dụng các công cụ như LabelImg để gán nhãn ảnh hay huấn luyện model trên các dataset mã nguồn mở, việc hiểu về gán nhãn dữ liệu là rất quan trọng. Các chiến lược gán nhãn dữ liệu có thể giúp tinh giản toàn bộ quy trình và nâng cao hiệu quả. Dành thời gian cải tiến phương pháp annotation có thể mang lại kết quả AI tốt hơn và đáng tin cậy hơn.
Hãy tiếp tục khám phá và mở rộng kỹ năng! Kết nối với cộng đồng để tiếp tục tìm hiểu về AI! Truy cập repository GitHub để khám phá cách chúng tôi ứng dụng AI nhằm tạo ra các giải pháp đổi mới trong những ngành như sản xuất và y tế.
Được viết bởi
Bình luận
Đặt câu hỏi, chia sẻ kết quả hoặc giúp đỡ người khác.










