Video Understanding
Hiểu video là khả năng AI diễn giải những gì xảy ra trong video theo thời gian: hành động, sự kiện và trình tự của chúng. Bài viết trình bày các tác vụ, nhóm model và code.
Hiểu video là lĩnh vực thị giác máy tính diễn giải những gì diễn ra trong video theo thời gian: có những đối tượng và người nào, họ làm gì, sự kiện bắt đầu và kết thúc khi nào, và sự kiện này dẫn đến sự kiện khác ra sao. Nhận dạng ảnh phân tích riêng lẻ từng khung hình, còn model hiểu video mô hình hóa chuyển động và thứ tự thời gian, vốn là yếu tố cần thiết để trả lời nhiều câu hỏi. Một khung hình đơn lẻ cho thấy một người đang ở giữa động tác ngồi xuống ghế; chỉ các khung hình xung quanh mới cho biết người đó đang ngồi xuống hay đứng lên. Lĩnh vực này bao gồm các tác vụ từ gán nhãn clip ngắn đến trả lời câu hỏi mở về hàng giờ cảnh quay.
Các tác vụ cốt lõi#
- Nhận dạng hành động: Gán một nhãn, chẳng hạn “hít đất” hoặc “ngã”, cho một clip ngắn đã được cắt.
- Định vị hành động theo thời gian: Tìm thời điểm bắt đầu và kết thúc của từng hành động trong video dài chưa cắt; phát hiện hành động theo không gian-thời gian còn xác định khung bao quanh từng người thực hiện trong mỗi khung hình.
- Theo dõi đối tượng: Theo dõi từng đối tượng qua các khung hình bằng ID cố định, làm cơ sở cho việc đếm, đo tốc độ và phân tích quỹ đạo.
- Phân đoạn video: Tạo mask pixel cho đối tượng hoặc vùng cảnh, nhất quán qua các khung hình.
- Tạo chú thích và hỏi đáp video: Mô tả clip bằng văn bản hoặc trả lời các câu hỏi như “người lái xe đã làm gì trước khi xe dừng lại?”
- Định vị theo thời gian: Tìm thời điểm khớp với một câu, chẳng hạn “thủ môn bắt được bóng”; tác vụ này còn được gọi là truy xuất khoảnh khắc.
- Phát hiện bất thường: Đánh dấu các sự kiện bất thường, chẳng hạn như ngã, đánh nhau hoặc xe đi ngược chiều.
Cách hoạt động của model video#
Model video cần nắm bắt diện mạo — hình dáng của đối tượng — và chuyển động — cách đối tượng thay đổi. Mạng hai luồng xử lý khung hình RGB và optical flow trong các nhánh riêng; mạng nơ-ron tích chập (CNN) 3D tích chập đồng thời trên chiều cao, chiều rộng và thời gian; còn Mô-đun Dịch chuyển Thời gian bổ sung khả năng mô hình hóa thời gian cho CNN 2D mà không tốn thêm phép tính bằng cách dịch chuyển một phần kênh của mỗi lớp sang các khung hình lân cận. Transformer video áp dụng self-attention trên các patch không-thời gian; TimeSformer giúp phương pháp này khả thi bằng cách lần lượt attention trên thời gian và không gian. Tiền huấn luyện tự giám sát trên video chưa gán nhãn tạo ra các encoder đa dụng mạnh: V-JEPA 2 của Meta học từ hơn 1 triệu giờ video trên Internet bằng cách dự đoán biểu diễn của các vùng bị che khuất, đạt độ chính xác top-1 77,3% trên Something-Something v2, một benchmark gồm các hành động tay-tương tác-với-đối-tượng chủ yếu khác nhau về chuyển động. Model ngôn ngữ video lấy mẫu các khung hình, mã hóa từng khung thành token thị giác rồi truyền chúng cho mô hình ngôn ngữ lớn (LLM) để trả lời câu hỏi bằng văn bản.
Đầu ra mà hệ thống cần tạo ra phần lớn quyết định họ model nào sẽ được sử dụng:
Sự kiện từ các đối tượng được theo dõi#
Nhiều hệ thống thực tế hiểu video bằng cách suy luận trên các quỹ đạo theo dõi: model phát hiện tìm đối tượng trong mỗi khung hình, model theo dõi liên kết chúng thành quỹ đạo, rồi các quy tắc hoặc model chuyển quỹ đạo thành sự kiện như đi vào một khu vực, băng qua vạch hoặc dừng quá lâu. Giải pháp đếm đối tượng Ultralytics hoạt động theo cách này với tính năng theo dõi của YOLO26, đếm mỗi đối tượng được theo dõi một lần khi đường đi của đối tượng cắt qua một vạch và ghi nhận hướng di chuyển dựa trên vị trí của đối tượng trong các khung hình liên tiếp:
import cv2
from ultralytics import solutions
# Count people (COCO class 0) crossing a horizontal line through the middle of the 640x360 frame
counter = solutions.ObjectCounter(model="yolo26n.pt", region=[(0, 180), (640, 180)], classes=[0])
cap = cv2.VideoCapture("https://github.com/ultralytics/assets/releases/download/v0.0.0/solutions_ci_demo.mp4")
while True:
success, frame = cap.read()
if not success:
break
results = counter(frame)
# A crossing and its direction come from each person's track, so they exist only across frames
print(f"Crossed moving down: {results.in_count}, moving up: {results.out_count}")Hai số đếm mô tả những sự kiện không xuất hiện trong bất kỳ khung hình đơn lẻ nào, vì để phân biệt một người đang đi xuống với một người đang đi lên cần ít nhất hai vị trí của cùng một người được theo dõi.
Hiểu video và các thuật ngữ liên quan#
- Nhận dạng ảnh: Phân loại hoặc phát hiện nội dung trong từng ảnh riêng lẻ. Chạy tác vụ này trên mọi khung hình của video sẽ tạo ra kết quả theo từng khung hình, nhưng không có thông tin về danh tính, chuyển động hay thứ tự.
- Theo dõi nhiều đối tượng (MOT): Một thành phần cơ bản của hệ thống hiểu video, giúp duy trì danh tính đối tượng qua các khung hình mà không diễn giải đối tượng đang làm gì.
- Tạo video: Tạo video mới từ văn bản hoặc hình ảnh, theo chiều ngược lại, dù cả hai đều dựa vào model về cách cảnh vật thay đổi theo thời gian.
- AI đa phương thức: Kết hợp video với âm thanh, phụ đề hoặc dữ liệu khác, hữu ích khi nhạc nền hoặc lời nói chứa thông tin quan trọng.
Ứng dụng#
- Phân tích thể thao: Theo dõi cầu thủ và bóng để đo tốc độ, quyền kiểm soát bóng và đội hình, đồng thời tìm các pha nổi bật trong bản ghi hình toàn trận.
- Giao thông và thành phố thông minh: Đếm phương tiện và người đi bộ, đo tốc độ, phát hiện xe đi ngược chiều hoặc xe bị chết máy.
- Bán lẻ và giám sát an toàn: Đo độ dài hàng chờ, cảnh báo trường hợp té ngã tại cơ sở chăm sóc và phát hiện người đi vào khu vực hạn chế.
- Truyền thông và kiểm duyệt nội dung: Lập chỉ mục các thư viện video lớn để tìm kiếm và đánh dấu nội dung tải lên vi phạm chính sách.
- Robot và xe tự hành: Dự đoán hướng di chuyển tiếp theo của người đi bộ và các phương tiện khác.
Thách thức#
Video làm tăng chi phí xử lý của từng ảnh: một phút video ở tốc độ 30 khung hình mỗi giây chứa 1.800 khung hình, vì vậy model lấy mẫu thưa, thường từ 8 đến 64 khung hình mỗi clip, nhưng vẫn có nguy cơ bỏ lỡ các sự kiện ngắn. Video dài gây áp lực lên bộ nhớ và độ dài ngữ cảnh; việc gán nhãn hành động với thời điểm bắt đầu và kết thúc chính xác cũng mất nhiều thời gian hơn hẳn so với gán nhãn ảnh. API Gemini của Google lấy mẫu video ở tốc độ một khung hình mỗi giây và dùng khoảng 100 token mỗi giây video ở độ phân giải media thấp mặc định, nhờ đó các model có cửa sổ ngữ cảnh một triệu token có thể xử lý đến ba giờ video, hoặc một giờ ở độ phân giải cao.










