Với sự phát triển nhanh chóng của nội dung video trên Internet, phân loại video đã trở thành một công việc quan trọng trong thị giác máy tính. Từ việc nhận dạng hành động của một người trong video giám sát đến hiểu nội dung video để tìm kiếm và đề xuất, các ứng dụng của phân loại video (video classification) ngày một nở rộ trong nhiều ngành công nghiệp khác nhau.
Trong FriData tuần này, chúng ta sẽ khám phá các kỹ thuật được sử dụng trong phân loại video. Một số bài toán và phương pháp giải quyết trong phân loại video cũng sẽ được đề cập.
Hãy lưu lại bài viết này ngay, chắc chắn nó sẽ hữu ích, dù bạn là một nhà nghiên cứu thị giác máy tính, một kỹ sư học máy, hay chỉ đơn giản là một người quan tâm đến công nghệ!
Phân loại video là gì?
Phân loại video là một lĩnh vực đang phát triển nhanh chóng trong thị giác máy tính và học máy. Giống như phân loại hình ảnh, phân loại video liên quan đến việc sắp xếp video thành các danh mục tương ứng, chẳng hạn như hành động được thực hiện (ví dụ: khiêu vũ, đi bộ, chạy) hoặc cảm xúc hành vi (ví dụ: vui vẻ, buồn, ngạc nhiên).
Nguồn ảnh: V7Labs
Tuy nhiên, trong khi hình ảnh được phân loại dựa trên nội dung không gian (ví dụ: ảnh người so với ảnh chó), video cần được phân loại dựa trên cả nội dung không gian và thời gian (miền thời gian) của chúng—vì hai video có thể chứa cùng một người (cùng thông tin không gian) thực hiện các hành động khác nhau (sự khác biệt về nội dung thời gian).
Một trong những thách thức chính trong phân loại video là khối lượng dữ liệu khổng lồ phải được xử lý. Một video thường bao gồm một số lượng lớn khung hình, mỗi khung hình chứa nhiều thông tin. Ngoài ra, video cũng có thể được quay trong các điều kiện ánh sáng khác nhau, từ các góc khác nhau và ở các tốc độ khung hình khác nhau. Dưới đây là những thách thức phân loại video phổ biến nhất:
- Khả năng mở rộng: Khi khối lượng dữ liệu video tiếp tục tăng lên, việc xử lý và phân loại tất cả dữ liệu đó trong một khoảng thời gian hợp lý ngày càng trở nên khó khăn. Điều này đặc biệt thách thức đối với các phương pháp học sâu, đòi hỏi một lượng lớn dữ liệu và tài nguyên tính toán để đào tạo.
- Khái quát hóa: Nhiều thuật toán phân loại video được thiết kế để hoạt động trên một tập dữ liệu hoặc tác vụ cụ thể nhưng có thể không khái quát tốt cho các tập dữ liệu hoặc tác vụ khác.
- Chú thích video: Ghi nhãn một lượng lớn dữ liệu video là một công việc tốn nhiều thời gian và công sức. Điều này có thể gây khó khăn cho việc thu thập các bộ dữ liệu lớn, chất lượng cao để đào tạo và đánh giá các thuật toán phân loại video—đặc biệt là các mô hình học tập có giám sát.
- Quyền riêng tư và bảo mật: Việc sử dụng dữ liệu video gây ra một số lo ngại về quyền riêng tư và bảo mật, đặc biệt khi nói đến giám sát và nhận dạng khuôn mặt. Cũng có những lo ngại về khả năng lạm dụng dữ liệu video, chẳng hạn như trong trường hợp video DeepFake.
- Chất lượng video: Video có thể có nhiều chất lượng và định dạng khác nhau, khó xử lý và có thể ảnh hưởng xấu đến hiệu suất của trình phân loại video.
Để vượt qua những thách thức này, nhiều kỹ thuật và thuật toán đã được phát triển để phân loại video, hầu hết trong số đó sử dụng học sâu để tự động hóa.
Bộ dữ liệu phân loại video
Bộ dữ liệu phân loại video nguồn mở cung cấp cho các nhà nghiên cứu dữ liệu video đã gán nhãn có thể được sử dụng để đào tạo, đánh giá, chuẩn hóa các mô hình và so sánh chúng với công nghệ tiên tiến hiện có.
Một số bộ dữ liệu được sử dụng rộng rãi nhất để phân loại video là:
- UCF101: Một trong những bộ dữ liệu phân loại video được sử dụng rộng rãi nhất là bộ dữ liệu UCF101, bao gồm 13320 video từ 101 lớp hành động khác nhau, chẳng hạn như đi bộ, chạy bộ và chơi bóng đá. Bộ dữ liệu thường được sử dụng để đánh giá hiệu suất của các thuật toán phân loại video trong nhiều tác vụ nhận dạng hành động. UCF101 cũng có một số bộ dữ liệu con chứa ít hơn hoặc một số lớp hành động cụ thể—chẳng hạn như UCF50, UCF11 (Hành động trên YouTube), UCF Aerial Action, v.v.
- HMDB51: Bộ dữ liệu này chứa 6849 video từ 51 lớp hành động khác nhau. Bộ dữ liệu tương tự như UCF101, nhưng có số lượng lớp và video ít hơn. Do đó, nó phù hợp với các mô hình ít phức tạp hơn (chẳng hạn như các mô hình sinh viên tinh chỉnh trong quy trình Knowledge Distillation – Chắt lọc kiến thức).
- Kinetics: Kinetics là một bộ dữ liệu phân loại video phổ biến khác bao gồm hơn 400.000 video từ 600 lớp hành động của con người. Các video trong tập dữ liệu Kinetics được lấy từ YouTube và các nguồn khác.
- YouTube-8M: YouTube-8M là một bộ dữ liệu quy mô lớn khác bao gồm 8 triệu URL video YouTube và các nhãn được liên kết từ kho từ vựng gồm 4716 lớp. Không giống như những bộ dữ liệu trước, bộ dữ liệu này không dành riêng cho nhận dạng hành động mà bao gồm một loạt các tác vụ phân loại video.
- Sports-1M: Bộ dữ liệu nhận dạng hành động thể thao này chứa 1 triệu video từ 487 loại thể thao, chẳng hạn như bóng rổ, bóng đá và khúc côn cầu trên băng.
Ngoài các bộ dữ liệu có sẵn công khai, các nhà nghiên cứu cũng tạo bộ dữ liệu của riêng họ cho các dự án nghiên cứu cụ thể. Điều này có thể đặc biệt hữu ích khi bộ dữ liệu có sẵn không có các lớp cần thiết hoặc đủ mẫu cho một vấn đề nghiên cứu cụ thể.
Điều quan trọng cần lưu ý là chất lượng và kích thước của tập dữ liệu có thể ảnh hưởng lớn đến hiệu suất của các thuật toán phân loại video. Các bộ dữ liệu lớn hơn và có nhiều lớp đa dạng có xu hướng mang lại hiệu suất tốt hơn, vì chúng cung cấp cho mô hình các ví dụ phong phú và cải thiện khả năng khái quát hóa của mô hình.
Phương pháp phân loại video
Trong những năm qua, một số loại thuật toán dựa trên deep learning khác nhau đã được phát triển để phân loại video. Hầu hết sử dụng học có giám sát (supervised learning), một framework sử dụng video và nhãn của chúng để huấn luyện mạng thần kinh (Convolutional Neural Networks hoặc Recurrent Neural Networks). Tuy nhiên, các phương pháp gần đây tập trung vào việc giảm sự phụ thuộc vào dữ liệu được gán nhãn vì chúng khó thu thập và tốn kém.
Mặc dù các phương pháp đào tạo bán giám sát nghe có vẻ hoàn hảo, nhưng hầu hết trường hợp, chúng đều phải trả giá bằng độ chính xác. Vì vậy, câu hỏi nên sử dụng phương pháp có giám sát hay bán giám sát phụ thuộc vào trường hợp sử dụng. Các ứng dụng nhạy cảm, chẳng hạn như giám sát và chăm sóc sức khỏe, coi trọng độ chính xác hơn áp lực tính toán. Mặt khác, nhận dạng hành động thể thao hoặc mục đích chung (chẳng hạn như giải trí) có thể hoạt động với các mô hình có độ chính xác tương đối thấp hơn. Các trường hợp này vẫn cần các giải pháp lưu trữ hiệu quả, vì những miền như vậy thường có sẵn một lượng lớn dữ liệu chưa được gán nhãn.
Tiếp theo, chúng ta hãy xem xét cả hai phương pháp có giám sát và bán giám sát để phân loại video.
- Supervised
Học có giám sát là một loại học máy trong đó một mô hình được đào tạo để đưa ra dự đoán dựa trên dữ liệu được gán nhãn. Một tập hợp dữ liệu đã gán nhãn được chia thành các tập huấn luyện, xác nhận và kiểm tra để đánh giá một mô hình. Sau đó, mô hình đã đào tạo được sử dụng trên dữ liệu chưa gán nhãn để kiểm tra hiệu suất theo cách định tính. Trong phân loại video, học có giám sát có thể được sử dụng để đào tạo một mô hình nhận dạng các đối tượng, hành động hoặc cảnh cụ thể trong video.
- Semi-supervised
Học bán giám sát (Semi-supervised) là một mô hình học máy trong đó mô hình được đào tạo trên cả dữ liệu được gán nhãn và không được gán nhãn. Trong những trường hợp như vậy, thông thường, tỷ lệ phần trăm dữ liệu được gán nhãn trong tập dữ liệu là nhỏ (như 5% hoặc 10%) và được sử dụng ít, trong khi có sẵn một lượng lớn dữ liệu phi cấu trúc.
VideoSSL là một framework phân loại video bằng cách học bán giám sát. Với một phần nhỏ các mẫu đào tạo có chú thích, VideoSSL tận dụng hai tín hiệu giám sát được trích xuất từ dữ liệu chưa gán nhãn để nâng cao hiệu suất của bộ phân loại:
- Nhãn giả của các video clip 3D chưa được gán nhãn
- Dấu hiệu xuất hiện của các đối tượng quan tâm, được chắt lọc bởi dự đoán của bộ phân loại hình ảnh 2D CNN trên một khung hình video ngẫu nhiên.
Tổng quan về framework được hiển thị bên dưới.
Nguồn ảnh: V7Labs
Dưới đây là một số ví dụ về kết quả định tính do VideoSSL thu được:
Kết quả thu được bằng VideoSSL. Màu đỏ cho biết dự đoán sai. Nguồn ảnh: V7Labs
- Weakly-supervised
Phân loại video theo cách weakly-supervised là một loại nhiệm vụ học máy bao gồm đào tạo một mô hình để phân loại video dựa trên nhãn yếu, tức là không có nhãn phân loại chính xác nhưng có thể có một số thông tin hữu ích khác. Điều này trái ngược với phân loại video được giám sát đầy đủ, trong đó mô hình được đào tạo với một lượng lớn dữ liệu được gán nhãn, bao gồm nhãn lớp của từng khung hình hoặc phân đoạn của video.
Một ví dụ về framework như vậy là mô hình UntrimmedNet giải quyết vấn đề nhận dạng hành động từ các video thô chưa được cắt. Ở đây, các nhãn yếu là các chú thích ở cấp độ video (ví dụ: chơi bowling, chạy, v.v.) và mục tiêu là thực hiện chú thích theo thời gian, tức là tìm các dấu thời gian giữa các khoảng thời gian mà hành động thực tế xảy ra trong video.
UntrimmedNet bao gồm hai thành phần- mô-đun phân loại và mô-đun lựa chọn. UntrimmedNet bắt đầu với việc tạo các đề xuất clip, có thể chứa các trường hợp hành động, bằng cách sử dụng lấy mẫu thống nhất hoặc dựa trên cảnh quay, được đưa vào một mạng sâu để trích xuất đặc trưng. Dựa trên các biểu diễn ở cấp độ clip này, mô-đun phân loại nhằm mục đích dự đoán điểm phân loại cho từng đề xuất clip. Ngược lại, mô-đun lựa chọn cố gắng chọn hoặc xếp hạng các đề xuất clip đó.
Kết quả của hai mô-đun được hợp nhất attention-weighted sum để tạo ra chú thích theo thời gian. Quy trình làm việc của mô hình UntrimmedNet được hiển thị bên dưới.
Nguồn ảnh: V7Labs
- Self-supervised
Self-supervised là một cách tiếp cận độc đáo đối với học máy không giám sát, trong đó một mô hình, khi được cung cấp các mẫu dữ liệu huấn luyện, sẽ tạo ra các nhãn (giả). Từ những nhãn giả này, những nhãn đã được dự đoán với độ tin cậy cao được sử dụng làm cơ sở cho lần lặp tiếp theo của thuật toán huấn luyện. Bằng cách này, toàn bộ tập dữ liệu huấn luyện được gán nhãn và mạng được huấn luyện đầy đủ, sau đó được đánh giá trên một tập kiểm tra.
Một ví dụ về phương pháp này là framework Self-Supervised Video Transformer (SVT) sử dụng Vision Transformer (ViT) trong chắt lọc kiến thức (knowledge distillation) tự giám sát. Nói tóm lại, chắt lọc kiến thức liên quan đến việc đào tạo một mô hình đơn giản hơn dành riêng cho một tác vụ với sự trợ giúp của ngữ nghĩa đã học bằng một mô hình phức tạp được đào tạo cho các tác vụ có mục đích chung.
Quy trình làm việc của SVT được hiển thị bên dưới.
Nguồn ảnh: V7Labs
Ứng dụng của phân loại video
Phân loại video có nhiều ứng dụng trong nhiều lĩnh vực khác nhau, bao gồm giải trí, an ninh, giám sát, chăm sóc sức khỏe và giáo dục. Hãy xem nhanh một số trường hợp sử dụng phổ biến nhất.
- Nhận dạng hoạt động của con người
Phân loại video để nhận dạng hoạt động của con người liên quan đến việc phân tích video của mọi người để xác định và phân loại các hành động mà họ đang thực hiện. Điều này có thể bao gồm các hoạt động như đi bộ, chạy, nhảy và thậm chí các hoạt động phức tạp hơn như chơi thể thao hoặc khiêu vũ.
- Chăm sóc sức khỏe
Phân loại video có thể được sử dụng trong lĩnh vực chăm sóc sức khỏe để tự động phân tích các video y tế, chẳng hạn như cảnh quay nội soi hoặc phẫu thuật, để phát hiện và phân loại các bất thường hoặc hỗ trợ lập kế hoạch chẩn đoán và điều trị.
- Xe tự lái
Một mô hình học sâu được đào tạo để phân loại video có thể được sử dụng để phát hiện và theo dõi các phương tiện khác trên đường, cho phép phương tiện tự hành đưa ra quyết định về thời điểm chuyển làn hoặc nhập vào đường cao tốc. Tương tự, mô hình này có thể được sử dụng để xác định người đi bộ và các đối tượng khác trên đường đi của xe, cho phép xe thực hiện các hành động thích hợp để tránh va chạm.
- Robots
Phân loại video có thể được sử dụng để phân loại đối tượng, cảnh và hành động theo thời gian thực trong môi trường của rô-bốt và đưa ra hướng dẫn điều hướng phù hợp.
- Đề xuất video
Phân loại video được sử dụng để phân loại nội dung của video và nhắm đối tượng mục tiêu thích hợp dựa trên sở thích, nhân khẩu học và lịch sử duyệt web của họ—một ứng dụng mà tất cả chúng ta đều nhận ra từ YouTube.
- Các ứng dụng khác
Phân loại video có các ứng dụng sâu rộng khác. Chúng được sử dụng hàng ngày để giải trí— đề xuất phim hoặc nhạc trong các dịch vụ phát trực tuyến, chỉnh sửa video tự động hoặc trong thể thao để phân tích hiệu suất của người chơi.
Phân loại video cũng có thể được sử dụng để phân tích các video giáo dục, chẳng hạn như bài giảng hoặc hướng dẫn, để phát hiện các khái niệm chính hoặc tạo bản tóm tắt nội dung hay tự động phát hiện và phân loại các hoạt động đáng ngờ trong cảnh quay giám sát, chẳng hạn như đánh nhau, lảng vảng hoặc trộm cắp. Nó có thể giúp nhân viên an ninh nhanh chóng xác định các mối đe dọa tiềm ẩn và có phản ứng kịp thời.