đặt vấn đề cho bài toán, động lực, các thách thức và đóng góp của luận văn. - Chương 2: Trình bày chi tiết về bài toán, các lý thuyết quan trọng và phân tích các công trình nghiên cứu liên quan đến bài toán. - Chương 3: Mô tả chi tiết về hệ thống. - Chương 4: Tiến hành xây dựng hệ thống, cài đặt thử nghiệm và đánh giá.
- Chương 5: Kết luận. Cơ Sở Lý Thuyết Và Các Công Trình Nghiên Cứu Liên Quan 2.1 Giới thiệu Nội dung chương này sẽ giới thiệu về các cơ sở lý thuyết các phương pháp được sử dụng trong luận văn. Từ đó kết hợp các điểm mạnh của từng phương pháp để đề xuất mô hình nhận dạng hành động.2 Một số cơ sở lý thuyết về bài toán phát hiện đối tượng 2.1 Bài toán phát hiện đối tượng Phát hiện đối tượng (Object detection) là một tác vụ quan trọng của thị giác máy tính, nó liên quan đến việc nhận diện các đối tượng trong hình ảnh số, chẳng hạn như người, động vật hoặc xe hơi. Mục tiêu của phát hiện đối tượng là xây dựng các mô hình và thuật toán để cung cấp thông tin cơ bản về đối tượng: Đối tượng nào, ở đâu? Phát hiện đối tượng là một trong những vấn đề cơ bản của lĩnh vực thị giác máy tính, cung cấp cơ sở cho nhiều tác vụ khác như phân đoạn đối tượng (object segmentation), chú thích hình ảnh (image captioning), theo dõi đối tượng (object tracking)… Phát hiện đối tượng đòi hỏi từ hệ thống máy tính và phần mềm để xác định vị trí và nhận dạng từng đối tượng trong hình ảnh.
Từ quan điểm ứng dụng, phát hiện đối tượng có thể được nhóm thành hai chủ đề nghiên cứu phát hiện đối tượng chung (general object detection) và ứng dụng phát hiện (detection applications), trong đó chủ đề thứ nhất nhằm mục đích khám phá các phương pháp phát hiện các loại đối tượng khác nhau trong một khuôn khổ thống nhất để mô phỏng tầm nhìn của con người và nhận thức, trong khi cái sau đề cập đến khả năng phát hiện trong các tình huống ứng dụng cụ thể, chẳng hạn như phát hiện người đi bộ, nhận diện khuôn mặt, phát hiện văn bản. dẫn đến những bước đột phá đáng chú ý và đẩy nó trở thành một điểm nóng trong nghiên cứu về lĩnh vực thị giác máy tính. Phát hiện đối tượng hiện nay đã được đem vào ứng dụng rộng rãi trong nhiều phần mềm mang tính ứng dụng trong thế giới thực, chẳng hạn như lái xe tự hành, tầm nhìn của rô-bốt, giám sát video… 7 Hình 2. Mô tả việc phát hiện đối tượng [2] Giống như mọi công nghệ khác, phát hiện đối tượng được sử dụng trong một loạt các ứng dụng sáng tạo và tuyệt vời đến từ các nhà lập trình cũng như các công ty phát triển phần mềm.
Nhờ đó, họ bắt đầu sử dụng các kỹ thuật nhận diện đối tượng hiện đại trong các ứng dụng và hệ thống, và xây dựng các ứng dụng mới dựa trên chúng. Gần đây, việc nhận diện đối tượng đã liên quan đến việc sử dụng các thuật toán cổ điển, như các thuật toán được hỗ trợ trong thư viện OpenCV, một thư viện thị giác máy tính phổ biến. Tuy nhiên, các thuật toán cổ điển này không đạt được hiệu suất cao đủ để hoạt động trong các điều kiện thực tế khác nhau. Nhờ sự đột phát và phát triển nhanh chóng của học sâu (deep learning), các thuật toán và phương pháp nhận diện đối tượng hiện đại và chính xác như Faster-RCNN [1], SSD [3] và YOLO [4] đã xuất hiện.
Đây là những phương pháp đi tiên phong trong việc phát hiện đối tượng trong video, tức là mô hình sẽ đủ đơn giản và nhanh để có thể áp dụng chạy trong thời gian thực. Tuy nhiên đa số các phương pháp này chỉ dừng lại ở việc phát hiện đối tượng trong ảnh hoặc video mà chưa phân loại được đây là hành động gì.2 Phương pháp hiểu video 8 Đối với các tác vụ xử lý liên quan đến đầu vào video (Video Understanding), các nhà nghiên cứu sử dụng thuật ngữ hiểu video để mô tả các phương pháp đó. Một trong những tác vụ thông dụng nhất của các bài toán hiểu video là nhận dạng hành động (Video Action Recognition) trong video. Song song với đó, còn có các tác vụ liên quan đến nhận dạng hành động như: Phát hiện hành động (Action Detection) trong video, xác định vị trí hành động (Action Localization) trong video… Ở đây, việc nhận dạng hành động cũng có thể hiểu là vừa phát hiện hành động và vừa xác định vị trí hành động.
Người ta thường sử dụng từ phát hiện (Detection) để mô tả việc vừa phân loại (Classification) vừa xác định vị trí (Localization). Trong khi đó, từ nhận dạng (Recognition) dùng để thể hiện kỹ thuật xác định đối tượng có trong ảnh hoặc video. Vì thế để tránh nhầm lẫn, trong luận văn này, học viên sử dụng từ nhận dạng để thể hiện việc vừa phân loại hành động và vừa xác định vị trí hành động. Cần nắm được thông tin thời gian để nhận dạng hành động [5] Đối với những bài toán xử lý ảnh thông thường như phân loại (Classification) hình ảnh; nhận dạng, phát hiện (Detection) đối tượng, người ta chỉ tập trung vào 1 hình ảnh, khi xử lý trên video, hình ảnh này sẽ được lấy từ key frame được tách từ video.
Vì thế, khi chuyển sang xử lý trên video, các phương pháp này sẽ rút trích được ít thông tin hơn vì video là các frame ảnh chạy liên tục. Đối với các tác vụ truy vết (tracking), yêu cầu đặt ra cũng chỉ là xử lý trên từng frame ảnh và tập trung vào việc hiểu được các liên kết giữa 9 đối tượng được truy vết. Tuy nhiên, đối với đa số các tác vụ liên quan đến hiểu video thì một thông tin quan trọng giúp tạo nên sự khác biệt giữa các tác vụ xử lý trong video và trong ảnh tĩnh là thông tin về thời gian (Temporal). Trong khi các tác vụ trên ảnh tĩnh quan tâm đến thông tin về không gian (spatial) thì các tác vụ xử lý trên video cần sử dụng cả hai loại thông tin về không gian và thời gian hay nói cách khác là thông tin không gian – thời gian.
Thông tin không gian ở đây là thông tin của một frame ảnh và thông tin thời gian là thời lượng của video.3 Mạng Nơ-ron tích chập (Convolutional Neural Network – CNN) Mạng Nơ-ron tích chập (Convolutional neural networks – CNN) là một mạng nơ-ron bao gồm các tầng tích chập, pooling, kết nối đầy đủ và thường được sử dụng để phân lớp ảnh. Trong đó, tầng tích chập và tầng pooling có thể được đào tạo dựa trên việc sử dụng siêu tham số (hyper- parameters). Mô tả CNN cơ bản. 1 - Trong mạng nơ-ron tích chập, tầng tích chập sử dụng các bộ lọc (filter) để thực hiện các phép toán tích chập trong quá trình di chuyển qua mạng.
Các tham số của bộ lọc bao gồm kích cỡ (size) và bước nhảy (stride). Kết quả cuối cùng của mạng gọi là bản đồ đặc trưng (feature map). Quá trình nhân tích chập giữa ma trận đầu vào và bộ lọc sẽ giúp tạo nên một đơn vị trong một tầng mới. Việc thực hiện nhân tích chập sẽ diễn ra liên tục và để kích hoạt tuyến tính, mô hình thường sử dụng với hàm kích hoạt ReLU.
Tầng 1 https://stanford.edu/~shervine/l/vi/teaching/cs-230/cheatsheet-convolutional-neural-networks 10 tích chập sẽ nắm giữ nhiệm vụ rút trích đặc trưng hai chiều.4 mô tả cách tính tích chập của các bộ lọc. - Tầng pooling thực chất là một phép giảm kích thước mẫu (down- sampling). Để tăng tính bất biến trong không gian và thường được đặt sau tầng tích chập. Số lượng tham số sẽ tăng dần qua các tầng khi thực hiện rút trích đặc trưng vì số lượng các kênh ở tầng sau thường tăng rất nhanh làm tăng độ khó tính toán.
Vì thế, để giảm khối lượng tính toán, mô hình sẽ giảm kích thước các chiều bằng phép pooling. Việc giảm kích thước không làm mất đi các đặc trưng chính mà còn giúp chọn ra giá trị đại diện. Cụ thể, tồn tại hai loại phép pooling: Max Pooling và Average Pooling. Trong phép Max Pooling, giá trị lớn nhất trong phần hình ảnh được bao phủ bởi bộ lọc sẽ được trả về.
Còn phép Average Pooling trả về giá trị trung bình của tất cả các giá trị trong phần hình ảnh được bao phủ bởi bộ lọc. Max Pooling có tác dụng giảm nhiễu và giảm kích thước cùng một lúc. Tuy nhiên, Average Pooling chỉ thực hiện việc giảm kích thước như một phương pháp khử nhiễu. Mô tả cách tính tích chập của các bộ lọc 2 2 http://cs231n.io/convolutional-networks/ 11 - Tầng kết nối đầy đủ (Fully-connection) thường được để ở cuối mô hình nơ-ron tích chập.
Tầng này có đầu vào là các dữ liệu đã được làm phẳng và sẽ có sự kết nối đến tất cả các nơ-ron. Nhiệm vụ của tầng này là tối ưu hóa mục tiêu của mạng. Sau khi kích thước đã được giảm đến mức độ hợp lý, các ma trận trọng số được làm phẳng (flatten) thành một véc-tơ hai chiều. Từ đây, các kết nối đầy đủ sẽ được sử dụng để liên kết giữa các tầng.
Quá trình kết nối đầy đủ thường sẽ được đặt ở cuối mô hình CNN và hàm ReLU sẽ được chọn làm hàm kích hoạt tuyến tính. Để tính được phân phối xác xuất của các lớp muốn phân loại, tầng kết nối đầy đủ cuối cùng (final fully-connected layer) sẽ áp dụng hàm kích hoạt là softmax (tổng giá trị xác suất là 1) và có số nút đầu ra bằng với số lớp cần phân loại.4 Mạng nơ-ron tích chập 3D (3D CNN) Trong 2D CNN, phép tích chập được áp dụng trên bản đồ đặc trưng 2D để tính toán đặc trưng từ các kích thước không gian hai chiều (ảnh). Khi áp dụng cho các vấn đề phân tích video, ngưởi ta mong muốn nắm bắt thông tin chuyển động được mã hóa trong nhiều khung liền kề nhau. Để làm được điều này, 3D CNN sẽ thay đổi đầu vào là xử lý trên đặc trưng 3 chiều (3D) (1 chiều thể hiện chiều cao, 1 chiều thể hiện chiều rộng và 1 chiều thể hiện độ dài của video (số frame ảnh trong video), thay vì chỉ sử dụng bản đồ đặc trưng 2 chiều (2D) trong những bài toán xử lý ảnh thông thường.
Nhờ vào việc rút trích được đặc trưng 3D, mô hình có thể mô hình hóa đồng thời cả thông tin về không gian và thông tin về thời gian hay nói cách khác là thông tin không gian – thời gian (spatial-temporal information). Để đạt được điều này, 3D CNN sử dụng các phép tích chập 3D trong các giai đoạn tích chập của CNN để tính toán các đặc trưng từ cả chiều không gian và thời gian.