Hướng dẫn cuộc thi Data-Centric AI Competition 2021
Mục tiêu của cuộc thi
Xử lý dữ liệu là một phần rất quan trọng trong việc xây dựng và phát triển các ứng dụng AI. Tuy nhiên, hầu hết các cuộc thi về AI trước đây đều tập trung vào việc xây dựng mô hình, các kĩ thuật về xử lý dữ liệu chưa được quan tâm đúng mức. Do đó, FPT Software đã tổ chức cuộc thi “Data-Centric AI Competition” theo xu hướng tập trung phát triển dữ liệu. Trong cuộc thi này, mô hình (yolov5s) sẽ được giữ cố định cho các đội chơi, thí sinh cần sử dụng các kỹ thuật xử lý dữ liệu như tiền xử lý và tăng cường dữ liệu để cải thiện hiệu suất của mô hình.
Dựa trên nhu cầu thực tế trong giai đoạn dịch bệnh, bài toán của cuộc thi là nhận diện vật thể (object detection) với 3 lớp là đeo khẩu trang, không đeo khẩu trang và đeo khẩu trang không đúng cách. Ban tổ chức cung cấp một bộ dữ liệu gồm 1,064 ảnh với 1,692 khuôn mặt được chụp lại trong các điều kiện ánh sáng, bối cảnh và góc máy khác nhau.
Theo dõi các thử nghiệm
Thay vì sử dụng các công nghệ theo dõi phức tạp như MLFlow, W&B, chúng tôi đã quyết định lựa chọn ứng dụng Microsoft Excel để quản lý các lần thử nghiệm vì nó khá phù hợp cho các tác vụ đơn giản. Mục đích của việc này nhằm ghi lại mức độ tác động của dữ liệu đối với mô hình sau mỗi lần làm mới. Qua đó chúng ta có các chiến lược phù hợp để điều chỉnh dữ liệu cho các lần thử nghiệm khác trong tương lai. Dưới đây là ảnh chụp mẫu bảng tính mà chúng tôi sử dụng cho cuộc thi.
Các kỹ thuật nên sử dụng
Làm sạch dữ liệu
Các dữ liệu trong tập train/validation mà BTC cung cấp bị label sai hoặc thiếu khá nhiều, các bạn thí sinh nên label lại cho chuẩn. Để xem cách label dữ liệu chuẩn thì các bạn nên tham khảo tập public test, vì BTC có nói là đây là tập chuẩn và đại diện cho tập private test. Các bạn có thể sử dụng công cụ labelImg để label lại dữ liệu cho chuẩn.
Để ý đến dữ liệu trong tập public test
Vì tập public test được label chuẩn và gần giống với tập private test nhất nên các bạn nên quan sát tập public test để có cái nhìn sơ bộ về dữ liệu trong private test. Và khi thực hiện các kĩ thuật augment cũng nên tập trung vào các ảnh trong public test hơn là các ảnh trong tập train/validation mà BTC cung cấp.
Bên cạnh đó trộn tập public test vào tập train/val sau đó chia lại và nộp kết quả cũng có thể tăng được hiệu suất của mô hình.
Các kỹ thuật tăng cường dữ liệu
Để tăng cường dữ liệu, có rất nhiều sự lựa chọn với các công cụ có sẵn mà mọi người có thể tham khảo. Dưới đây là danh sách các kỹ thuật tăng cường dữ liệu phổ biến mà các bạn có thể áp dụng:
- Resize, Crop, Cutout, và Mixup
- Gaussian Blur và Additive Gaussian Noise
- Linear Contrast và Multiply
- Affine transformations: scaling, translation, rotation, và shearing
Để kiểm tra tính hiệu quả của các phương pháp trên chúng tôi đã thay thế khoảng 10% – 50% dữ liệu gốc bằng các phiên bản tăng cường và huấn luyện mô hình trên tập dữ liệu mới.
Các phương pháp tăng cường dữ liệu như Gaussian blur, xoay, thay đổi độ tương phản hoặc độ sáng, mixup và cutout giúp cải thiện đáng kể hiệu suất của mô hình. Việc thêm dữ liệu edge case vào tập huấn luyện cũng tạo ra một sự thay đổi lớn về hiệu suất mô hình.
Chúng ta có thể thấy rõ được sự cải thiện về hiệu suất sau khi mô hình được huấn luyện với các bộ dữ liệu tăng cường khác nhau. Ở đây, các ô viền đỏ đại diện cho lớp “không đeo khẩu trang”, các ô viền xanh lá được sử dụng cho lớp “đeo khẩu trang” và các ô viền vàng được sử dụng cho lớp “đeo khẩu trang không đúng cách”.
Hình a cho thấy mô hình được huấn luyện trên tập dữ liệu gốc có hiệu suất không cao. Mô hình này có xu hướng gắn nhãn sai khuôn mặt trong điều kiện ánh sáng kém và không thể phát hiện nhãn một số khuôn mặt. Vấn đề này được giải quyết bằng cách áp dụng kỹ thuật như Gaussian blur và điều chỉnh độ tương phản cũng như độ sáng của dữ liệu. Minh chứng ở hình b cho thấy các khuôn mặt trong vùng tối đã được phát hiện và gán nhãn bởi mô hình. Lần thử nghiệm tăng cường dữ liệu này giúp hiệu suất mô hình đạt 0.48 trên đánh giá mAP@.5.
Chúng tôi tiếp tục sử dụng thêm các kỹ thuật như add random zoom, shift và crop để tạo ra hình ảnh với các mức độ thu phóng khác nhau với mục đích phát hiện các khẩu trang nhỏ trên khuôn mặt. Điều này giúp cải thiện hiệu suất thêm 4% (Hình c).
Mức tăng hiệu suất mô hình lớn nhất (28% so với baseline) được ghi nhận khi chúng tôi thêm edge case và sử dụng các kỹ thuật như mixup, cutout. Mô hình này có thể gán nhãn các ví dụ thử nghiệm khó như minh họa trong hình 6d.
Kết quả các lần thử được tổng hợp trong bảng 1.
Các kỹ thuật khác nên thử
- Tối đa hóa kích thước tập dữ liệu.
- Tập trung tăng cường dữ liệu cho lớp đeo khẩu trang sai và không đeo khẩu trang.
- Bổ sung các dữ liệu bên ngoài cuộc thi.
- Sử dụng kĩ thuật sinh dữ liệu như Generative Adversarial Network (GAN).
- Sử dụng kỹ thuật mosaic.