1. Optical Flow là gì?
Luồng quang học (optical flow) là kỹ thuật dùng để đo lường chuyển động của vật thể giữa các khung hình liên tiếp do camera ghi lại. Các thuật toán này cố gắng nhận diện sự thay đổi về độ sáng trong ảnh để xác định vật thể đang di chuyển như thế nào. Đây là một nhánh quan trọng của thị giác máy tính (computer vision), giúp máy móc “nhìn thấy” và hiểu được sự chuyển động diễn ra trong môi trường xung quanh.
Bên dưới là chuỗi hình ảnh trực quan mô tả chuyển động quay của người quan sát, chuyển tiếp thành các mẫu luồng quang học trong không gian 3D, và kết thúc bằng một biểu diễn 2D với các vectơ chỉ hướng chuyển động.

2. Lịch sử hình của Optical Flow
Khái niệm Optical Flow được giới thiệu lần đầu bởi James Gibson vào những năm 1950 trong các nghiên cứu về nhận thức thị giác. Tuy nhiên, phải đến thập niên 1980, khi các công cụ tính toán ra đời, giới nghiên cứu mới bắt đầu quan tâm và ứng dụng rộng rãi kỹ thuật này.
Một bước tiến quan trọng là sự xuất hiện của phương pháp Lucas-Kanade vào năm 1981. Đây là thuật toán nền tảng giúp ước lượng luồng quang học trong một vùng nhỏ của hình ảnh. Sau đó không lâu, thuật toán Horn-Schunck được giới thiệu với cách tiếp cận toàn cục, cho phép tính toán luồng quang học trên toàn bộ khung hình.
3. Nguyên lý hoạt động của Optical Flow
Ước lượng Optical Flow dựa trên giả định rằng độ sáng của một điểm trong ảnh sẽ giữ nguyên trong một khoảng thời gian ngắn. Về mặt toán học, giả định này được biểu diễn qua phương trình Optical Flow:
Ixvx + Iyvy + It = 0
Trong đó:
- Ix và Iy là độ biến thiên theo không gian hay đạo hàm theo không gian (spatial gradients) của cường độ điểm ảnh dựa trên trục x và y
- It là độ biến thiên theo thời gian hay đạo hàm theo thời gian (temporal gradient)
- vx và vy là vận tốc của chuyển động theo hai trục x và y tương ứng
Những bước tiến gần đây trong lĩnh vực này đến từ việc ứng dụng các mô hình học sâu như FlowNet, FlowNet 2.0 và LiteFlowNet. Các mô hình này đã thay đổi cách tiếp cận truyền thống khi nâng cao rõ rệt độ chính xác và hiệu suất tính toán. Sự cải tiến này chủ yếu nhờ vào việc tích hợp mạng nơ-ron tích chập (Convolutional Neural Networks – CNN) cùng với sự phát triển của các bộ dữ liệu huấn luyện quy mô lớn.
Ngay cả trong những tình huống có vật thể bị che khuất (occlusion), các kỹ thuật Optical Flow hiện nay vẫn có thể dự đoán chính xác các dạng chuyển động phức tạp trong hình ảnh.

4. Các khái niệm cốt lõi của Optical Flow
4.1. Dịch chuyển điểm ảnh (Pixel Displacement):
Optical Flow mô tả cách các điểm ảnh di chuyển từ khung hình này sang khung hình tiếp theo. Với mỗi điểm ảnh, thuật toán sẽ ước lượng một vectơ chuyển động thể hiện hướng và mức độ dịch chuyển.
4.2. Vectơ chuyển động (Motion Vectors):
Mỗi điểm ảnh hoặc đặc trưng trong khung hình sẽ được gán một vectơ chuyển động – về bản chất là một vectơ 2 chiều (ví dụ: (u, v)) – cho biết điểm ảnh đó đã di chuyển đến đâu. Vectơ này thể hiện cả hướng lẫn tốc độ của chuyển động.
4.3. Các giả định (Assumptions):
Việc tính toán Optical Flow thường dựa trên một số giả định như:
- Độ sáng không đổi: cường độ sáng của một điểm ảnh được cho là không thay đổi giữa các khung hình
- Thời gian trôi liên tục: chuyển động diễn ra liên tục và không đột ngột theo thời gian
Những giả định này giúp đơn giản hóa quá trình tính toán, nhưng cũng có thể làm giảm độ chính xác của Optical Flow trong các tình huống như ánh sáng thay đổi mạnh hoặc chuyển động quá nhanh.
5. Các phương pháp tính toán Optical Flow
5.1. Optical Flow mật độ cao (Dense Optical Flow)
Phương pháp này ước lượng chuyển động cho mọi điểm ảnh trong khung hình, từ đó cung cấp thông tin chuyển động chi tiết trên toàn bộ cảnh.
Thuật toán tiêu biểu nhất là Horn-Schunck, áp dụng cách tiếp cận toàn cục để giả định rằng chuyển động trong ảnh thay đổi một cách mượt mà trên toàn bộ khung hình. Bằng cách tối thiểu hóa một hàm sai số trên toàn bộ hình ảnh, thuật toán này cho phép tính toán chuyển động tại từng điểm ảnh. Ưu điểm là có thể tái hiện các cấu trúc chuyển động một cách chi tiết, nhưng bù lại, yêu cầu tính toán cao hơn và tốn nhiều tài nguyên hơn so với các phương pháp đơn giản hơn.
5.2. Optical Flow thưa (Sparse Optical Flow)
Thay vì tính toán cho toàn bộ ảnh, phương pháp này chỉ theo dõi một số điểm đặc trưng (ví dụ: góc, cạnh) – những vị trí mang nhiều thông tin nhất. Cách tiếp cận này hiệu quả hơn về mặt tính toán và thường được sử dụng khi chỉ cần theo dõi một số đặc trưng cụ thể.
Thuật toán phổ biến nhất là Lucas-Kanade. Nó dựa trên giả định rằng chuyển động trong ảnh diễn ra một cách mượt mà ở phạm vi cục bộ, và áp dụng chuỗi xấp xỉ Taylor cho thay đổi của độ sáng trong ảnh. Từ đó, có thể giải phương trình Optical Flow, vốn thường bao gồm hai ẩn số cho mỗi điểm trong tập đặc trưng.
Lucas-Kanade hoạt động hiệu quả trong việc theo dõi các góc và vùng có kết cấu rõ nét – những đặc trưng thường được phát hiện bởi các thuật toán như Shi-Tomasi hoặc Harris corner detector.
5.3. Sử dụng Học sâu
Tuy nhiên, các thuật toán học sâu thế hệ mới đã mở ra một giai đoạn phát triển mới cho Optical Flow. Các mô hình như FlowNet, LiteFlowNet và PWC-Net sử dụng mạng nơ-ron tích chập để học từ các bộ dữ liệu hình ảnh lớn. Nhờ đó, các mô hình có thể dự đoán chuyển động với độ chính xác và ổn định cao hơn, đặc biệt hiệu quả trong những tình huống phức tạp như vật thể bị che khuất, điều kiện ánh sáng thay đổi, hoặc cảnh có kết cấu động phức tạp.
Để minh họa sự khác biệt giữa các thuật toán, bảng dưới đây so sánh hiệu năng của chúng theo các tiêu chí: độ chính xác, tốc độ xử lý và yêu cầu tính toán.

Các kỹ thuật truyền thống như Lucas-Kanade và Horn-Schunck vẫn đóng vai trò nền tảng nhưng nhìn chung, chúng khó có thể so sánh với mức độ chính xác và độ ổn định mà các phương pháp học sâu mang lại.Tuy mạnh mẽ nhưng các phương pháp học sâu thường đòi hỏi lượng tài nguyên tính toán lớn nên không phải lúc nào cũng phù hợp cho các ứng dụng theo thời gian thực.
6. Ứng dụng của Optical Flow
6.1. Phân đoạn ngữ nghĩa hình ảnh (Semantic Segmentation)
Trường Optical Flow chứa rất nhiều thông tin về cảnh vật trong video. Khi các kỹ thuật tính toán Optical Flow ngày càng chính xác hơn, chúng ngày càng được ứng dụng cùng với nhiều tác vụ quan trọng khác trong thị giác máy tính.
Một ví dụ điển hình là phân đoạn ngữ nghĩa hình ảnh – kỹ thuật chia hình ảnh thành các vùng tương ứng với từng loại đối tượng khác nhau. Tuy nhiên, khi các đối tượng ở gần nhau và có kết cấu giống nhau, việc phân biệt bằng hình ảnh tĩnh (chỉ một khung hình) thường gặp khó khăn.
Lúc này, Optical Flow có thể giúp phân biệt các đối tượng thông qua chuyển động riêng của từng vật thể. Những điểm gián đoạn trong Optical Flow mật độ cao thường chính là ranh giới giữa các đối tượng, hỗ trợ đáng kể cho việc phân đoạn chính xác hơn.

6.2. Phát hiện và theo dõi đối tượng (Object Detection & Tracking)
Một ứng dụng hứa hẹn khác của Optical Flow là trong việc phát hiện và theo dõi các vật thể, hoặc ở mức cao hơn là xây dựng hệ thống theo dõi phương tiện và phân tích giao thông theo thời gian thực.
Vì Optical Flow dạng thưa tập trung vào việc theo dõi các điểm đặc trưng trong ảnh, nên các hệ thống thời gian thực có thể được triển khai hiệu quả dựa trên phương pháp này, dù sử dụng camera cố định hay lắp trên phương tiện di chuyển.


Nguồn: Tổng hợp


