Khám phá hoạt động gán nhãn dữ liệu cho các dự án thị giác máy tính
Đọc bài phân tích chuyên sâu toàn diện của chúng tôi về gán nhãn dữ liệu trong các dự án thị giác máy tính, đồng thời tìm hiểu cách gán nhãn dữ liệu hình ảnh và lý do việc này quan trọng đến vậy.

Trí tuệ nhân tạo (AI) tập trung vào việc mang lại cho máy móc những khả năng 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 các model AI bằng cách cung cấp cho chúng những ví dụ đã được 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ụ. Điều này rất giống với cách con người học hỏi từ kinh nghiệm. Vậy những ví dụ đã gán nhãn này được tạo ra như thế nào?
Gán nhãn dữ liệu bao gồm việc gắn nhãn hoặc thẻ cho dữ liệu để giúp các thuật toán machine learning hiểu dữ liệu đó. Trong thị giác máy tính, điều 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 các đối tượng, hành động hoặc cảnh. Gán nhãn dữ liệu rất quan trọng vì thành công của một model AI phụ thuộc nhiều vào chất lượng của dữ liệu đã gán nhãn mà model được huấn luyện trên đó.
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 gán nhãn dữ liệu quan trọng đến mức nào trong quá trình phát triển model AI. Việc sử dụng dữ liệu được gán nhãn chất lượng cao giúp các model AI thực hiện những tác vụ như nhận diện khuôn mặt và phát hiện đối tượng với độ chính xác và độ tin cậy cao hơn trong các tình huống thực tế.
Vì sao cần gán nhãn dữ liệu#
Gán nhãn dữ liệu là nền tảng quyết định mức độ hiệu quả của một 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ì nó đại diện cho thế giới thực mà model cố gắng hiểu. Nếu không có cơ sở đáng tin cậy này, model AI sẽ giống như một con tàu định hướng mà không có la bàn.

Hình 1. Ground Truth so với dự đoán.
Việc gán nhãn chính xác giúp các model hiểu những gì chúng đang quan sát 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ẽ gặp khó khăn trong việc đưa ra các dự đoán và quyết định chính xác, giống như một học sinh học từ những cuốn sách giáo khoa sai. Nhờ dữ liệu đã được gán nhãn, model có thể học các tác vụ như phân loại hình ảnh, phân đoạn instance và ước lượng tư thế của các đối tượng trong hình ảnh và video.
Các nguồn tài nguyên 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 cho hình ảnh và video, bạn nên kiểm tra xem có thể sử dụng dataset có sẵn cho dự án của mình hay không. Có một số kho lưu trữ mã nguồn mở tuyệt vời, nơi bạn có thể truy cập miễn phí các dataset chất lượng cao. Một số dataset phổ biến nhất gồm:
- ImageNet: Thường được sử dụng để huấn luyện các model phân loại hình ả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 hình ảnh.
- PASCAL VOC: 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 một dataset, điều quan trọng là 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 nhớ xem xét điều khoản cấp phép của dataset để tránh các hệ quả pháp lý, đồng thời kiểm tra xem dữ liệu có được định dạng 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à một lựa chọn tuyệt vời nếu các dataset hiện có không hoàn toàn đáp ứng nhu cầu của bạn. Bạn có thể thu thập hình ảnh bằng các công cụ như webcam, drone hoặc smartphone, tùy theo yêu cầu của dự án. Lý tưởng nhất là dataset tùy chỉnh phải đa dạng, cân bằng và thực sự đại diện cho vấn đề bạn đang cố gắng giải quyết. Điều này có thể có nghĩa là chụp hình ảnh trong các điều kiện ánh sáng khác nhau, từ nhiều góc độ và trong 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 những hình ảnh hiện có. Nó làm tăng kích thước dataset, đồng thời giúp model mạnh mẽ hơn và xử lý tốt hơn các biến thiên 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 năng của các model thị giác máy tính.
Các kỹ thuật gán nhãn hình ảnh#
Trước khi bắt đầu gán nhãn hình ảnh, điều quan trọng là phải làm quen với 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.
Hộp giới hạn#
Bounding box là loại annotation 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 một đối tượng trong hình ảnh. Các khung này được xác định bởi 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 sử dụng cho phát hiện đối tượng.

Hình 3. Ví dụ về bounding box.
Mask phân đoạn#
Đôi khi, một đối tượng cần được phát hiện chính xác hơn so với việc chỉ vẽ một bounding box xung quanh nó. Bạn có thể quan tâm đến đường biên của các đối tượng trong hình ảnh. Trong trường hợp đó, mask phân đoạn cho phép bạn phác thảo các đối tượng phức tạp. Mask phân đoạn là biểu diễn chi tiết hơn ở cấp độ pixel.
Các mask này có thể được sử dụng cho phân đoạn ngữ nghĩa và phân đoạn instance. Phân đoạn ngữ nghĩa bao gồm việc gán nhãn cho từng pixel trong hình ảnh theo đối tượng hoặc khu vực mà pixel đó biểu diễn, chẳng hạn như người đi bộ, ô tô, đường hoặc vỉa hè. Tuy nhiên, 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 phân biệt từng chiếc ô tô trong một hình ảnh, ngay cả khi tất cả chúng đề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 điểm độc đáo là chúng bổ sung thông tin về chiều sâu và cung cấp biểu diễn 3D của một đối tượng. Thông tin bổ sung này cho phép các 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 sử dụng trong xe tự lái để đo khoảng cách từ đối tượng đến phương tiện.

Hình 5. Ví dụ về khối hộp 3D.
Các điểm chính và landmark#
Một loại annotation thú vị khác là các điểm chính, trong đó những đ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 kết 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, chẳng hạn khuôn mặt hoặc tư thế cơ thể. Các loại annotation này được sử 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ề các điểm chính.
Cách gán nhãn dữ liệu bằng LabelImg#
Sau khi đã thảo luận về các loại annotation khác nhau, hãy cùng tìm hiểu cách gán nhãn hình ảnh bằng một công cụ phổ biến là LabelImg. LabelImg là một công cụ mã nguồn mở giúp đơn giản hóa việc gán nhãn hình ảnh và có thể được sử dụng để tạo dataset theo định dạng YOLO (Bạn chỉ nhìn một lần). Đây là lựa chọn phù hợp cho người mới bắt đầu thực hiện các dự án Ultralytics YOLOv8 quy mô nhỏ.
Thiết lập LabelImg rất đơ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 động 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, kho lưu trữ LabelImg chính thức có thể cung cấp cho bạn hướng dẫn chi tiết hơn.

Hình 7. Sử dụng LabelImg để gán nhãn hình ảnh.
Sau khi khởi chạy công cụ, hãy làm theo các bước đơn giản sau để bắt đầu gán nhãn hình ảnh:
- Thiết lập class: Bắt đầu bằng cách định nghĩa danh sách class (category) mà bạn muốn gán nhãn trong tệp có tên “predefined_classes.txt.” Tệp này cho phần mềm biết những đối tượng nào bạn sẽ gán nhãn trong hình ả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 sẽ 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 các tùy chọn "Open" hoặc "OpenDIR" để tải hình ảnh. Sau đó, vẽ bounding box xung quanh các đối tượng bạn muốn gán nhãn và chỉ định nhãn class chính xác. Sau khi gán nhãn cho từng hình ảnh, hãy lưu công việc. LabelImg sẽ tạo một tệp văn bản có cùng tên với hình ảnh, chứa các annotation YOLO.
- Lưu và xem xét: 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 class 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 thuận lợi hơn, bạn cần ghi nhớ một số chiến lược chính. Ví dụ, hướng dẫn annotation 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 một tác vụ theo những cách khác nhau.
Giả sử tác vụ là gán nhãn chim trong hình ảnh bằng bounding box. Một người gán nhãn 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ự không nhất quán này có thể khiến model nhầm lẫn trong quá trình huấn luyện. Bằng cách đưa ra các đị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 những trường hợp khó, bạn có thể đảm bảo dữ liệu được gắn thẻ 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ì các tiêu chuẩn cao. Bằng cách thiết lập benchmark và sử dụng các metric cụ thể để xem xét công việc, bạn có thể duy trì độ chính xác của dữ liệu 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 thị giác máy tính của bạn. Dù sử dụng các công cụ như LabelImg để gán nhãn hình ả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à yếu tố then chốt. Các chiến lược gán nhãn dữ liệu có thể giúp tinh gọn toàn bộ quy trình và làm quy trình hiệu quả hơn. Dành thời gian tinh chỉnh 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à phát triển kỹ năng của bạn! Kết nối với cộng đồng của chúng tôi để tiếp tục tìm hiểu về AI! Hãy xem kho lưu trữ GitHub của chúng tôi để khám phá cách chúng tôi sử 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à chăm sóc sức khỏe. 🚀






