Khám phá việc 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 cho các dự án thị giác máy tính và tìm hiểu cách gắn nhãn dữ liệu trực quan cũng như lý do tại sao điều này lại quan trọng.

Trí tuệ nhân tạo (AI) tập trung vào việc cung cấp cho máy móc các 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 mô hình AI bằng cách hiển thị cho chúng các ví dụ đã được gán nhãn có thể giúp chúng học hỏi từ các khuôn mẫu và cải thiện hiệu suất trong các tác vụ. Điều này rất giống với cách con người học hỏi từ trải 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 gắn thẻ dữ liệu để giúp các thuật toán học máy hiểu được dữ liệu đó. Trong thị giác máy tính, điều này có nghĩa là đánh dấu các hình ảnh hoặc video để nhận dạng và phân loại chính xác các đối tượng, hành động hoặc cảnh quay. Gán nhãn dữ liệu là rất quan trọng vì sự thành công của một mô hình AI phụ thuộc phần lớn vào chất lượng của dữ liệu đã gán nhãn mà nó được huấn luyện.
Các nghiên cứu cho thấy hơn 80% thời gian 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. Điều này cho thấy tầm quan trọng của việc gán nhãn dữ liệu trong quá trình phát triển mô hình AI. Việc sử dụng dữ liệu đã gán nhãn chất lượng cao giúp các mô hình AI có thể 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 với độ chính xác và độ tin cậy cao hơn trong các tình huống thực tế.
Link to this sectionTại sao gán nhãn dữ liệu là cần thiết#
Gán nhãn dữ liệu tạo thành nền tảng cho hiệu suất của một mô hình thị giác máy tính. Dữ liệu đã gán nhãn là dữ liệu thực tế (ground truth) mà mô hình sử dụng để học và đưa ra dự đoán. Dữ liệu thực tế rất quan trọng vì nó đại diện cho thế giới thực mà mô hình đang cố gắng tìm hiểu. Nếu không có cơ sở đáng tin cậy này, mô hình AI sẽ giống như một con tàu đang điều 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 mô hình hiểu được những gì chúng đang thấy và dẫn đến việc ra quyết định tốt hơn. Nếu dữ liệu bị gán nhãn kém hoặc không nhất quán, mô hình 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 sinh viên học từ các giáo trình sai lệch. Nhờ vào dữ liệu đã được gán nhãn, một mô hình có thể học các tác vụ như phân loại hình ảnh, phân đoạn đối tượng, và ước lượng tư thế của các đối tượng trong hình ảnh và video.
Link to this sectionCác tài nguyên tốt nhất cho tập dữ liệu#
Trước khi tạo một tập dữ liệu hoàn toàn mới và tỉ mỉ gán nhãn từng hình ảnh và video, bạn nên kiểm tra xem mình có thể sử dụng các tập dữ liệu 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 các tập dữ liệu chất lượng cao miễn phí. Một số trong những kho phổ biến nhất bao gồm:
- ImageNet: Thường được sử dụng để huấn luyện các mô hình phân loại hình ảnh.
- COCO: Tập dữ liệu này được thiết kế cho 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 tập dữ liệu COCO.
Khi chọn một tập dữ liệu, điều quan trọng là phải xem xét các yếu tố như độ phù hợp với dự án, kích thước tập dữ liệu, tính đa dạng và chất lượng nhãn. Ngoài ra, hãy nhớ xem xét các điều khoản cấp phép của tập dữ liệu để tránh bất kỳ hậu quả pháp lý nào, đồng thời kiểm tra xem dữ liệu có được định dạng phù hợp với quy trình và công cụ của bạn hay không.
Tạo tập dữ liệu tùy chỉnh là một lựa chọn tuyệt vời nếu các tập dữ liệu hiện có không hoàn toàn phù hợp với nhu cầu của bạn. Bạn có thể thu thập hình ảnh bằng cách sử dụng các công cụ như webcam, máy bay không người lái (drone) hoặc điện thoại thông minh, tùy thuộc vào yêu cầu của dự án. Tốt nhất, tập dữ liệu tùy chỉnh của bạn nên đa dạng, cân bằng và thực sự đại diện cho vấn đề mà bạn đang cố gắng giải quyết. Điều này có thể bao gồm việc chụp ả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 khác nhau.
Nếu bạn 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. Nó liên quan đến việc mở rộng tập dữ liệu của bạn 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 các hình ảnh hiện có. Điều này làm tăng kích thước tập dữ liệu và giúp mô hình của bạn mạnh mẽ hơn cũng như có khả năng xử lý tốt hơn các biến thể trong dữ liệu. Bằng cách sử dụng kết hợp các tập dữ liệu mã nguồn mở, tập dữ liệu tùy chỉnh và dữ liệu đã được tăng cường, bạn có thể tăng hiệu suất đáng kể cho các mô hình thị giác máy tính của mình.
Link to this sectionCác loại 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 gán nhãn khác nhau. Điều này sẽ giúp bạn chọn phương pháp phù hợp cho dự án của mình. Tiếp theo, chúng ta sẽ xem xét một số loại gán nhãn chính.
Link to this sectionBBox#
Bounding box là loại gán nhãn phổ biến nhất trong thị giác máy tính. Chúng là các hộp hình chữ nhật được sử dụng để đánh dấu vị trí của một đối tượng trong hình ảnh. Các hộp này được xác định bởi tọa độ của các góc và giúp các mô hình AI xác định và đị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.
Link to this sectionMặt nạ phân đoạn (Segmentation masks)#
Đôi khi, một đối tượng cần được phát hiện chính xác hơn so với chỉ dùng một bounding box bao quanh nó. Bạn có thể quan tâm đến đường viền của các đối tượng trong hình ảnh. Trong trường hợp đó, mặt nạ phân đoạn cho phép bạn vẽ phác thảo các đối tượng phức tạp. Mặt nạ phân đoạn là một biểu diễn chi tiết hơn ở cấp độ pixel.
Các mặt nạ này có thể được sử dụng cho phân đoạn ngữ nghĩa và phân đoạn đối tượng. Phân đoạn ngữ nghĩa liên quan đến việc gán nhãn mỗi pixel trong hình ảnh theo đối tượng hoặc khu vực mà nó đại diện, như người đi bộ, xe cộ, đường phố hoặc vỉa hè. Tuy nhiên, phân đoạn đối tượng (instance segmentation) tiến xa hơn một bước bằng cách xác định và tách riêng từng đối tượng, chẳng hạn như phân biệt giữa mỗi chiếc xe trong hình ảnh, ngay cả khi chúng cùng một loại.

Hình 4. Ví dụ về Phân đoạn ngữ nghĩa (trái) và Mặt nạ phân đoạn đối tượng (phải).
Link to this sectionHình khối 3D (3D Cuboids)#
Hình khối 3D tương tự như bounding box, điểm độc đáo của chúng là hình khối 3D bổ sung thông tin chiều sâu và cung cấp một biểu diễn 3D của đối tượng. Thông tin bổ sung này cho phép các hệ thống hiểu được hình dạng, thể tích và vị trí của các đối tượng trong không gian 3D. Hình khối 3D thường được sử dụng trong xe tự lái để đo khoảng cách của các đối tượng so với phương tiện.

Hình 5. Ví dụ về Hình khối 3D.
Link to this sectionĐiểm khóa (Key-points) và mốc giới (Landmarks)#
Một loại gán nhãn thú vị khác là điểm khóa, nơi các điểm cụ thể như mắt, mũi hoặc khớp được đánh dấu trên các đối tượng. Mốc giới tiến xa hơn 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 các 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 gán nhãn này được sử dụng cho các ứ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 các mô hình 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ề Điểm khóa.
Link to this sectionCách gán nhãn dữ liệu bằng LabelImg#
Bây giờ chúng ta đã thảo luận về các loại gán nhãn khác nhau, hãy tìm hiểu cách bạn có thể 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 tập dữ liệu ở định dạng YOLO. Đây là lựa chọn tuyệt vời cho người mới bắt đầu làm việc với các dự án Ultralytics YOLOv8.
Việc thiết lập LabelImg rất đơn giản. Trước tiên, hãy đảm bảo rằng bạn đã cài đặt Python 3 trên máy tính của mình. Sau đó, bạn có thể cài đặt LabelImg bằng một lệnh nhanh chóng:
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 bạn gặp bất kỳ vấn đề nào trong quá trình cài đặt, kho lưu trữ LabelImg chính thức có thể cung cấp cho bạn các 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 của bạn:
- Thiết lập các lớp (classes): Bắt đầu bằng cách xác định danh sách các lớp (danh mục) bạn muốn gán nhãn trong một 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 của mì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 bạn đang 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 của bạn. Sau đó, vẽ các bounding box xung quanh các đối tượng bạn muốn gán nhãn và chỉ định nhãn lớp chính xác. Sau khi gán nhãn từng hình ả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 hình ảnh của bạn, chứa các chú thích YOLO.
- Lưu và đánh giá: Các chú thích được lưu trong một tệp .txt ở định dạng YOLO. Phần mềm cũng lưu một tệp “classes.txt” liệt kê tất cả tên các lớp của bạn.
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 trơn tru hơn, có một vài chiến lược chính cần ghi nhớ. Ví dụ, các hướng dẫn gán nhãn rõ ràng là rất quan trọng. Nếu không có chúng, những người gán nhãn khác nhau có thể giải thích 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ể đánh dấu toàn bộ con chim, trong khi người khác có thể chỉ đánh dấu đầu hoặc cánh. Sự thiếu nhất quán này có thể làm mô hình bối rối trong quá trình huấn luyện. Bằng cách cung cấp các định nghĩa rõ ràng, như "gán nhãn toàn bộ con chim bao gồm cả cánh và đuôi," cùng với các 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 thẻ chính xác và nhất quán.
Việc kiểm tra chất lượng định kỳ cũng rất quan trọng để duy trì tiêu chuẩn cao. Bằng cách thiết lập các tiêu chuẩn (benchmarks) và sử dụng các chỉ số cụ thể để đánh giá 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.
Link to this sectionGán nhãn dữ liệu tóm tắt#
Gán nhãn dữ liệu là một khái niệm đơn giản có thể tạo ra tác động đáng kể đến mô hình thị giác máy tính của bạn. Cho dù bạn đang sử dụng các công cụ như LabelImg để gán nhãn hình ảnh hay huấn luyện các mô hình trên các tập dữ liệu mã nguồn mở, việc hiểu về gán nhãn dữ liệu là chìa khóa. Các chiến lược gán nhãn dữ liệu có thể giúp hợp lý hóa toàn bộ quy trình và làm cho nó hiệu quả hơn. Dành thời gian để tinh chỉnh phương pháp gán nhãn của bạn có thể dẫn đến 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 của bạn! Luôn kết nối với cộng đồng của chúng tôi để tiếp tục học hỏi 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 đang sử dụng AI để tạo ra các giải pháp sáng tạo trong các ngành công nghiệp như sản xuất và chăm sóc sức khỏe. 🚀






