Thuật toán phân tích video trong thị giác máy tính

Cốt lõi của thị giác máy tính là đọc hiểu dữ liệu hình ảnh. Nhờ công nghệ học sâu và khả năng phát hiện chướng ngại vật, phân đoạn hình ảnh hoặc trích xuất bối cảnh, thị giác máy tính đang tăng trưởng nhanh trong những năm gần đây, giúp kiến tạo xe tự hành, nhà thông minh, các công cụ thực tế tăng cường…. Hầu hết các nghiên cứu và ứng dụng của thị giác máy tính hiện nay đang tập trung nhiều hơn vào hình ảnh, mà ít tận dụng chuỗi hình ảnh (tức khung hình video). Tuy nhiên, với tư cách là một loại dữ liệu giàu giá trị, cho phép hiểu sâu hơn về tình huống và chuỗi hành động, video đang bắt đầu thu hút sự chú ý từ các nhà nghiên cứu và phát triển.

Tác vụ giám sát video liên quan đến hai loại thuật toán chính, gồm: theo dõi đối tượng và phân loại hành động. Bài viết sẽ mang đến những hiểu biết cơ bản về hai thuật toán này, đồng thời cung cấp một bức tranh toàn cảnh về hệ thống phân tích video.

1. Theo dõi đối tượng

Video là một tập hợp các khung hình. Khi phân tích video, chúng ta có thể phân tích luồng video (nguồn cấp hình ảnh trực tiếp) hoặc chuỗi video (video có độ dài cố định).

  • Trong luồng video, chúng ta sẽ xem xét hình ảnh hiện tại và những hình ảnh trước đó.
  • Trong một chuỗi video, chúng ta có quyền truy cập vào toàn bộ video, từ hình ảnh đầu tiên đến hình ảnh cuối cùng.

Optical flow (Luồng quang)

Trong phân tích video, vấn đề then chốt là ước tính lưu lượng quang học. Luồng quang (Optical flow) có nghĩa là tính toán sự thay đổi pixel giữa hai khung hình (minh họa dưới đây)

Nguồn ảnh: Think Autonomous

Đầu ra của luồng quang là vectơ chuyển động giữa khung 1 và khung 2. Có dạng như sau:

Nguồn ảnh: Think Autonomous

Để giải quyết vấn đề luồng quang, về dữ liệu, có thể sử dụng các bộ như KITTI Vision Benchmark Suite hoặc MPI Sintel (cả hai đều chứa dữ liệu luồng quang trung thực, thường khó tìm thấy ở các bộ dữ liệu phổ biến hơn). Còn về cấu trúc mạng, có thể sử dụng mạng nơ ron tích chập (convolutional neural networks – CNN).

FlowNet là một ví dụ về CNN được thiết kế cho các tác vụ luồng quang. FlowNet có thể xuất luồng quang từ hai khung.

Nguồn ảnh: Think Autonomous

Đầu vào của mạng là một tập hợp hai ảnh RGB; độ sâu là 6. Luồng quang thường được biểu thị bằng màu sắc.

Theo dõi đối tượng trực quan (Visual Object Tracking – VOT)

Theo dõi đối tượng trực quan (VOT) là khoa học theo dõi một đối tượng với vị trí cho trước trong khung 1. Ở đây, ta không sử dụng thuật toán phát hiện (detection algorithm), do đó, không xác định được đối tượng ở đây là gì, mà đơn thuần là theo dõi chuyển động của đối tượng dựa trên một hộp giới hạn (bounding box) ban đầu.

Việc theo dõi được thực hiện bằng cách tính toán sự giống nhau giữa khung 0 và 1, hoặc bằng màu sắc. Đối với cách thứ hai, ta phải tính toán màu của đối tượng đã cho, sau đó tính toán nền đại diện cho màu gần nhất với đối tượng. Bước tiếp theo là tiến hành xóa đối tượng khỏi hình ảnh ban đầu để theo dõi.

Nguồn ảnh: Think Autonomous
Nguồn ảnh: Think Autonomous

Đây là một kỹ thuật rất mạnh và chỉ sử dụng thị giác máy tính. Quy trình này có thể được tóm tắt như sau:

  • Xác nhận đối tượng ban đầu bằng cách sử dụng hộp giới hạn
  • Tính toán biểu đồ màu của đối tượng này
  • Tính toán màu của nền (gần đối tượng)
  • Xóa màu đối tượng khỏi tổng thể hình ảnh
  • Từ đây, ta có một công cụ theo dõi đối tượng dựa trên màu sắc

Có thể tham khảo votchallenge.net để tìm bộ dữ liệu cho tác vụ này

Bước tiếp theo là áp dụng mạng thần kinh tích chập (CNN) 

Ở đây, cần phân biệt hai mô hình chính là MDNet và GOTURN.

  • Trình theo dõi MDNet (Mạng đa miền) đào tạo mạng nơ-ron để phân biệt giữa đối tượng và nền. Kiến trúc của MDNet tương tự như một mô hình VGG — sau cùng, ta có được các lớp dành riêng cho miền (bộ phân loại đối tượng và nền).
Nguồn ảnh: Think Autonomous
  • GOTURN (Generic Object Tracking Using Regression Networks – Theo dõi đối tượng bằng mạng hồi quy). GOTURN hoạt động bằng cách sử dụng hai mạng nơ-ron và chỉ định khu vực tìm kiếm. Nó có thể hoạt động ở trên 100 FPS (Tốc độ khung hình), từ đó, hỗ trợ đắc lực trong việc theo dõi video.
Nguồn ảnh: Think Autonomous

Theo dõi đa đối tượng (Multiple Object Tracking – MOT)

MOT sử dụng thuật toán Deep SORT. Không giống như các trình theo dõi khác (VOT), MOT mang tính dài hạn hơn.

Ở đây, ta có hai loại: Theo dõi dựa trên/không dựa trên phát hiện

Đối với theo dõi dựa trên phát hiện, có 02 tác vụ chính: Phát hiện đối tượng & Liên kết đối tượng

Liên kết đối tượng có nghĩa là liên kết các phát hiện từ thời điểm t với các phát hiện từ thời điểm t + 1. Điều này phụ thuộc rất nhiều vào chất lượng của trình phát hiện. Một trình phát hiện kém sẽ làm cho bộ theo dõi không thể hoạt động. Mặt khác, một trình theo dõi tốt có thể xử lý cả những khung hình không có bất cứ phát hiện nào.

Ngoài ra, cũng có thể phân biệt giữa theo dõi trực tuyến và ngoại tuyến. Theo dõi trực tuyến thực hiện trên một nguồn cấp dữ liệu trực tiếp. Trong khi đó, theo dõi ngoại tuyến hoạt động trên một video đầy đủ sẵn các khung hình.

Đối với theo dõi trực tuyến, có thể sử dụng: mạng thần kinh tích chập CNN để phát hiện đối tượng; Bộ lọc Kalman để dự đoán vị trí tại thời điểm t từ vị trí tại thời điểm t-1 cho trước; Thuật toán Hungary (The Hungarian Algorithm) để phát hiện liên kết khung. 

Tóm lại, theo dõi đối tượng bao gồm ước tính luồng quang, theo dõi đối tượng trực quan và theo dõi đa đối tượng.

2. Phân loại hành động

Phân loại hành động là nhóm tác vụ thứ hai liên quan đến việc xây dựng hệ thống giám sát dựa trên thị giác máy tính. Phân loại hành động phụ thuộc trực tiếp vào việc phát hiện và theo dõi đối tượng. Sau khi hiểu được một tình huống nhất định, ta có thể phân loại các hành động bên trong hộp giới hạn.

Điều kiện đầu tiên là cần một camera cho phép quan sát đối tượng ở góc độ tốt nhất. Các hành động cần phân loại có thể đơn giản, chẳng hạn như đi bộ, chạy, vỗ tay hoặc vẫy tay, hoặc phức tạp hơn như nấu ăn, bao gồm một loạt các thao tác liền nhau.

Bộ dữ liệu

So với việc theo dõi đối tượng thì dán nhãn dữ liệu trong phân loại hành động trở nên dễ dàng hơn — Trong một số trường hợp, chỉ cần dán một nhãn cho một tập hợp các hình ảnh.

Bạn có thể tham khảo bộ dữ liệu KTH Actions để thu thập video và các nhãn được liên kết. Ngoài ra, UCF Sport Actions, Hollywood2, HMDB hoặc UCF 101 cũng là một số nguồn hữu ích hỗ trợ phân loại hành động.

Luồng quang

Bởi khả năng xác định một vectơ giữa hai khung, luồng quang có thể được sử dụng như đầu vào cho một mạng nơ-ron phân loại.

Nguồn ảnh: Think Autonomous

Phân loại hành động với Học máy (Đầu cuối: End-To-End)

Mạng CNN là một giải pháp mới và hiện đại hơn, giúp phân loại hành động.

Hành động xảy ra trong video, không phải trong hình ảnh. Điều này đồng nghĩa với việc phải đưa rất nhiều khung hình vào hệ thống CNN, sau đó, thực hiện tác vụ phân loại theo không-thời gian. 

Việc phát hiện hay phân loại hành động trên hình ảnh đã đủ khó, bởi các yếu tố chiều kích của ảnh. Tuy nhiên, đối với video, điều đó còn khó hơn.

Dưới đây là một ví dụ về cách thức two-scale model phân loại hành động từ các luồng hình ảnh.

Nguồn ảnh: Think Autonomous

Hệ thống mạng nơ-ron sẽ hoạt động trên 2 đầu vào và xuất ra một hành động. Luồng không gian hoạt động trên single frame; được xếp chồng lên luồng thời gian hoạt động trên multi-frame optical flow. Ở đây cũng sử dụng một bộ phân loại tuyến tính.

Ước lượng tư thế

Ước lượng tư thế (Pose Estimation) là một kỹ thuật học sâu khác được sử dụng để phân loại hành động.

Quy trình ước lượng tư thế bao gồm:

  • Phát hiện các điểm chính (tương tự như các điểm mốc trên khuôn mặt)
  • Theo dõi các điểm chính này
  • Phân loại chuyển động của các điểm chính

Như vậy, có thể tổng quan các thuật toán phân tích video thông qua sơ đồ dưới đây

Nguồn ảnh: Think Autonomous

Ứng dụng các công nghệ hiện đại, thuật toán AI ưu việt, cùng hạ tầng dữ liệu đặc thù quy mô lớn, VinBigData phát triển hệ thống camera thông minh VinCamAI. Hệ thống sở hữu 04 nhóm tính năng chính, bao gồm: Thống kê lưu lượng – Nhận diện khuôn mặt – Nhận diện vật thể – Phân tích đặc điểm và hành vi. Giải pháp có khả năng nhận diện người ngay cả khi đang đeo khẩu trang với độ chính xác trên 90%. Kết quả nhận diện, phân tích và thống kê mà hệ thống đưa ra có thể đạt chính xác tới 99%. Đặc biệt, so với camera truyền thống, VinCamAI hoạt động hiệu quả hơn từ 17-25% và tích hợp dễ dàng trên đa dạng quy mô như nhà máy, bệnh viện, trường học, trung tâm thương mại, cửa hàng tiện ích…

Bài viết liên quan

    Cảm ơn bạn đã quan tâm và ủng hộ.

    File hiện tại không thể tải xuống
    Vui lòng liên hệ hỗ trợ.

    VinOCR eKYC

    Chọn ảnh từ máy của bạn

    Chọn ảnh demo dưới đây hoặc tải ảnh lên từ máy của bạn

    Tải lên ảnh CMND/CCCD/Hộ chiếu,...

    your image
    Chọn ảnh khác
    Tiến hành xử lý

    Thông tin đã được xử lý

    Mức độ tin cậy: 0%

    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -
    • -

    Xác thực thông tin thẻ CMND/CCCD

    Vui lòng sử dụng giấy tờ thật. Hãy đảm bảo ảnh chụp không bị mờ hoặc bóng, thông tin hiển thị rõ ràng, dễ đọc.

    your image
    Chọn ảnh khác

    Ảnh mặt trước CMND/CCCD

    your image
    Chọn ảnh khác

    Ảnh mặt sau CMND/CCCD

    your image
    Chọn ảnh khác

    Ảnh chân dung

    This site is registered on wpml.org as a development site.