Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)Nhận Diện Hành Động Của Con Người Trong Video Sử Dụng Deep Learning (tt)
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: TS BÙI XUÂN LỘC
Phản biện 1:
Phản biện 2:
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3MỞ ĐẦU
Ngày nay, dữ liệu video dễ dàng được ta ̣o ra bởi các thiết bi ̣ như: điện thoa ̣i
di động, máy tính xách tay, máy ảnh kỹ thuật số, các hệ thống camera quan sát (CCTV)…bên cạnh đó các trang web chia sẻ video cũng không ngừng tăng trưởng
về số lượng lẫn chất lượng
Bài toán nhận diện hành động của con người trong video đóng góp một phần
tự động hóa khai thác tài nguyên dữ liệu nhiều thông tin này Các ứng dụng liên quan đến bài toán nhận diện hành động như:
- An ninh và các hệ thống giám sát truyền thống gồm ma ̣ng lưới các camera và được giám sát bởi con người
- Tương tác giữa người và máy vẫn còn nhiều thách thức, những dấu hiệu thị giác là phương thức quan tro ̣ng nhất giao tiếp phi ngôn ngữ Khai thác hiệu quả phương thức giao tiếp này: Thông qua cử chỉ, hành động, hoa ̣t động hứa he ̣n ta ̣o ra thế hệ máy tính tương tác chính xác và tự nhiên hơn với con người
- Bên cạnh đó nhận diện hành động của con người trong video còn được ứng du ̣ng trong tóm tắt, truy vấn video, phân tích thể thao
Deep Learning là một chủ đề Trí truệ nhân tạo, tập trung giải quyết các vấn
đề liên quan đến mạng nơron nhân tạo nhằm nâng cấp các công nghệ như nhận diện giọng nói, thị giác máy tính và xử lý ngôn ngữ tự nhiên…
Đã có nhiều nghiên cứu về bài toán nhận diện hành động của con người trong video như: nhóm tác giả Karpathy, Toderici, Shetty, Leung, Sukthankar & Fei-Fei sử dụng CNNs để phân loại Video theo hành động của con người [5], hoặc nhóm tác giả Ji, Xu, Yang, & Yu sử 3D CNN để nhận diện hành động con người [4]
Trang 4Vì lý do đó, luận văn này nghiên cứu ứng dụng Deep Learning vào bài toán
nhận diện hành động của con người trong video, đồng thời đề xuất cải tiến các tham
số đầu vào của thuật toán để tăng hiệu quả nhận diện so với các thuật toán hiện tại
Nội dung luận văn gồ m 3 chương: Chương 1 giới thiệu tổng quan về deep
learning và bài toán nhận diện hành động trong thị giác máy tính Chương 2 giới
thiệu ứng dụng deep learning trong nhận diện hành động con người, bao gồm tổng
quan, thuật toán CNN và các giải thuật Optimazation trong Deep Learning Khái
quát về mạng nơron trong xử lý ảnh và nêu kiến trúc mạng CNN được xem xét
trong nghiên cứu Chương 3 thực nghiệm và đánh giá kiến trúc mạng được nghiên
cứu Bao gồm mô tả về dữ liệu và giải thuật được nghiên cứu Cách thực nghiệm
cho các mô hình, sau đó đánh giá độ chính xác của các giải thuật
Trang 5CHƯƠNG 1 - TỔNG QUAN VỀ DEEP LEARNING
VÀ BÀI TOÁN NHẬN DIỆN HÀNH ĐỘNG
TRONG THỊ GIÁC MÁY TÍNH
1.1 Tổng quan về Deep Learning
1.1.1 Deep Learning là gì?
Deep Learning là một chủ đề Trí truệ nhân tạo (AI) và là một phạm trù nhỏ của máy học Deep Learning tập trung giải quyết các vấn đề liên quan đến mạng nơron nhân tạo nhằm nâng cấp các công nghệ như nhận diện giọng nói, thị giác máy tính và xử lý ngôn ngữ tự nhiên
Deep Learning đang trở thành một trong những lĩnh vực quan trọng trong khoa học máy tính Chỉ trong vài năm, Deep Learning đã thúc đẩy tiến bộ trong đa
dạng các lĩnh vực như nhận thức sự vật (object perception), dịch tự động (machine translation), nhận diện giọng nói - đó là những vấn đề từng rất khó khăn với các
nhà nghiên cứu trí tuệ nhân tạo
1.1.2 Mạng nơron nhân tạo
Trong công nghệ thông tin, mạng nơron nhân tạo là một hệ thống các chương trình và cấu trúc dữ liệu mô phỏng cách vận hành của não người Một mạng nơron như vậy thường bao gồm một lượng lớn các vi xử lý hoạt động song song, mỗi vi
xử lý chứa đựng một vùng kiến thức riêng và có thể truy cập vào các dữ liệu trong
bộ nhớ riêng của mình
Trong mạng nơron nhân tạo, các nơron chính là các node (node là đơn vị nơron trong mạng nơron nhân tạo – mỗi chiếc máy tính trong mạng nơron có thể được xem như 1 node) được kết nối với nhau trong một mạng lưới lớn Bản thân
từng node này chỉ trả lời được những câu hỏi hết sức cơ bản chứ không hề thông minh, nhưng khi được gộp chung với nhau thì chúng lại có sức mạnh xử lý được cả những tác vụ khó Và điều quan trọng ở đây là bằng những thuật toán phù hợp, chúng ta có thể dạy và huấn luyện được chúng
Trang 61.1.3 Một số ứng dụng của Deep Learning
- Hệ thống gợi ý trên các nền tảng
- Nhận diện hình ảnh
- Xử lý ngôn ngữ tự nhiên
1.2 Bài toán nhận diện hành động trong thị giác máy tính
1.2.1 Tổng quan thị giác máy tính
Thị giác máy tính (Computer Vision) là một lĩnh vực đã và đang rất phát triển Khái niệm thị giác máy tính có liên quan tới nhiều ngành học và hướng nghiên cứu khác nhau Từ những năm 1970 khi mà năng lực tính toán của máy tính ngày càng trở nên mạnh mẽ hơn, các máy tính lúc này có thể xử lý được những tập dữ liệu lớn như các hình ảnh, các đoạn phim thì khái niệm và kỹ thuật về thị giác máy tính ngày càng được nhắc đến và nghiên cứu nhiều hơn cho tới ngày nay Hiện tại lĩnh vực được các chuyên gia đánh giá là vẫn còn “non nớt” và có rất nhiều sự thay đổi trong thời gian tới
1.2.1.1 Thế nào là thị giác máy tính
Thị giác máy tính bao gồm lý thuyết và các kỹ thuật liên quan nhằm mục đích tạo ra một hệ thống nhân tạo có thể tiếp nhận thông tin từ các hình ảnh thu được hoặc các tập dữ liệu đa chiều Đối với mỗi con người chúng ta, quá trình nhận thức thế giới bên ngoài là một điều dễ dàng Quá trình nhận thức đó được “học” thông qua quá trình sống của mỗi người Tuy nhiên với các vật vô tri vô giác như như các máy tính, robot… thì điều đó quả thực là một bước tiến rất gian nan Các thiết bị ngày nay không chỉ nhận thông tin ở dạng tín hiệu đơn lẻ mà nay còn có thể
có cái “nhìn” thật với thế giới bên ngoài Cái “nhìn” này qua quá trình phân tích, kết hợp với các mô hình như máy học, mạng nơron… sẽ giúp cho thiết bị tiến dần tới một hệ thống nhân tạo có khả năng ra quyết định linh hoạt và đúng đắn hơn rất nhiều
Trang 71.2.1.2 Ứng dụng của thị giác máy tính
Lĩnh vực nghiên cứu của thị giác máy tính rất rộng, và đặc điểm chung là các bài toán về thị giác máy tính đều không có một đề bài chung và cách giải duy nhất Mỗi giải pháp giải quyết vấn đều được một kết quả nhất định cho những trường hợp
cụ thể
Một vài lĩnh vực mà Computer Vision được ứng dụng có thể kể tới như sau:
- Điều khiển tiến trình (ví dụ: trong các robot công nghiệp, hay các thiết
bị, xe tự hành)
- Phát hiện sự thay đổi (ví dụ: các thiết bị giám sát)
- Tổ chức thông tin (ví dụ: chỉ số kho dữ liệu các ảnh hoặc chuỗi ảnh liên tục)
- Mô hình hoá đối tượng (ví dụ: quá trình kiểm tra trong môi trường công nghiệp, xử lý ảnh trong y học)
- Tương tác (đóng vai trò làm đầu vào cho thiết bị trong quá trình tương tác giữa người và máy)
1.2.2 Nhận diện hành động của con người
Nhận diện hành động của con người là một lĩnh vực nghiên cứu rộng rãi trong thị giác máy tính Các ứng dụng của nó bao gồm các hệ thống giám sát, phân tích video, robot và một loạt các hệ thống có liên quan đến sự tương tác giữa người
và các thiết bị điện tử như giao diện người-máy tính
Nhận diện hành động của con người được phát triển bắt đầu vào đầu năm
1980 Hiện nay, các nghiên cứu chủ yếu tập trung vào việc học và nhận biết các hành động từ chuỗi video
Một hành động là một chuỗi các chuyển động cơ thể con người, và có thể bao gồm nhiều bộ phận cơ thể đồng thời Từ quan điểm của thị giác máy tính, việc nhận dạng hành động này là để phù hợp với các quan sát (ví dụ: video) với các mẫu được xác định trước đó và sau đó gán cho nó một nhãn là loại hành động Tùy thuộc vào độ phức tạp, hoạt động của con người có thể được phân loại thành bốn cấp độ:
Trang 8cử chỉ, hành động, tương tác và hoạt động của nhóm [1], và nhiều nghiên cứu theo hướng một cấu trúc từ dưới lên về nhận dạng hoạt động của con người Các phần chính của hệ thống như vậy bao gồm trích xuất đặc trưng, học tập hành động, phân loại, nhận dạng hành động và phân đoạn [6] Một quy trình đơn giản gồm ba bước,
cụ thể là phát hiện của con người hoặc các bộ phận cơ thể, theo dõi, và sau đó nhận bằng cách sử dụng kết quả theo dõi Ví dụ, để nhận ra hành động “bắt tay”, cánh tay
và bàn tay của hai người được phát hiện trước tiên và theo dõi để tạo ra một mô tả không gian-thời gian của chuyển động của họ Mô tả này được so sánh với các mẫu hiện có trong dữ liệu huấn luyện để xác định loại hành động Mô hình này dựa rất nhiều vào tính chính xác của việc theo dõi, điều này không đáng tin cậy trong những cảnh lộn xộn
Nhiều phương pháp đã được đề xuất, và có thể được phân loại theo nhiều tiêu chí khác nhau như trong bài luận điều tra hiện có Poppe [6] thảo luận nhận dạng hành động của con người từ biểu diễn hình ảnh và phân loại hành động riêng
rẽ Weinland [8] khảo sát các phương pháp cho biểu diễn hành động, phân đoạn và nhận dạng Turaga [7] chia vấn đề nhận dạng thành hành động và hoạt động theo độ phức tạp, và các hướng tiếp cận phân loại theo khả năng của mình để xử lý các mức
độ phức tạp khác nhau Có nhiều tiêu chí phân loại khác nhau [1], [2], [3] Trong số
đó, Aggarwal và Ryoo [1] là một trong những tổng kết toàn diện mới nhất và so sánh của sự tiến bộ quan trọng nhất trong lĩnh vực này Dựa vào hành động được nhận dạng từ hình ảnh đầu vào trực tiếp, Aggarwal và Ryoo [1] phân chia các phương pháp nhận dạng thành hai loại chính: phương pháp tiếp cận đơn lớp và phương pháp tiếp cận phân cấp Cả hai đều là thêm loại con phụ thuộc vào các phương pháp biểu diễn đặc trưng và học
Kết luận chương
Chương này đã trình bày tổng quan về thị giác máy tính, nhận diện hành động của con người và Deep Learning
Trang 9CHƯƠNG 2 - ỨNG DỤNG DEEP LEARNING
TRONG NHẬN DIỆN HÀNH ĐỘNG CON NGƯỜI
2.1 Giới thiệu Convolutional Neural Network
2.1.1 Tổng quan
Convolutional Neural Network (CNN) bao gồm một hoặc nhiều lớp chập (thường với một bước lấy mẫu con) và sau đó theo sau bởi một hoặc nhiều hơn các lớp kết nối như trong một mạng nơron đa lớp chuẩn Kiến trúc của một CNN được thiết kế để tận dụng lợi thế của cấu trúc 2 chiều của một hình ảnh đầu vào (hoặc đầu vào 2 chiều khác như một tín hiệu tiếng nói) Điều này đạt được với các kết nối cục
bộ và trọng số ràng buộc theo một số hình thức tổng hợp mà kết quả là các đặc trưng không thay đổi Một lợi ích khác của CNN là dễ dàng huấn luyện hơn và có ít thông số so với các mạng kết nối đầy đủ với cùng một số đơn vị ẩn
2.1.2 Kiến trúc CNN
CNN gồm một số lớp chập và lớp lấy mẫu con tùy chọn, tiếp theo là các lớp
kết nối Đầu vào cho một lớp chập là một hình ảnh m × m × r, với m là chiều cao và chiều rộng của hình ảnh và r là số kênh (ví dụ một ảnh RGB có r=3) Lớp chập sẽ
có k bộ lọc có kích thước n × n × q, trong đó n nhỏ hơn kích thước hình ảnh và q có thể bằng hoặc nhỏ hơn số kênh r Kích thước của các bộ lọc tăng đến cấu trúc kết nối cục bộ, trong đó mỗi bộ lọc xoắn với hình ảnh để tạo ra k bản đồ đặc trưng có kích thước m – n + 1 Mỗi bản đồ được lấy mẫu con đặc trưng với việc hợp nhất trung bình hoặc lớn nhất trên p × p khu vực lân cận, trong đó phạm vi của p là giữa
2 (cho các hình ảnh nhỏ) và 5 (chi các đầu vào lớn hơn) Trước hoặc sau khi lấy mẫu con, một bias bổ sung và xích ma phi tuyến được áp dụng cho mỗi bản đồ đặc trưng
Trang 10Hình 2.1: Lớp đầu tiên của một CNN
Sau các lớp chập, có một số lớp kết nối đầy đủ Các lớp kết nối dày đặc giống với các lớp trong mạng nơron đa lớp chuẩn
2.2 Vấn đề Overfitting và Underfitting
Sau khi lựa chọn một mô hình phù hợp chẳng hạn Logistic Regression cho Classification Problem, hay Linear Regression cho Regression Problem ta xây dựng
dự đoán h(x), hàm chi phí C(θ) và tối thiểu hóa hàm chi phí nhiều nhất có thể Đến
bước này chúng ta sẽ gặp vấn đề với Overfitting và Underfitting
- Overfitting và Underfitting:
Hình 2.2: Ví dụ Underfitting
(Nguồn: http://labs.septeni-technology.jp)
Trang 11Hình 2.3: Ví dụ Fit
(Nguồn: http://labs.septeni-technology.jp)
Hình 2.4: Ví dụ Overfitting
(Nguồn: http://labs.septeni-technology.jp)
Underfitting là khi mô hình quá đơn giản, không thể giảm thiểu được đáng
kể hàm chi phí nên cũng không thể mô tả được xu hướng của dữ liệu (còn được gọi
là High Bias) Ngược lại Overfitting lại là khi mô hình quá phức tạp, tuy giảm thiểu được đáng kể, thậm chí toàn bộ sai số nhưng cũng không thể mô tả được xu hướng của dữ liệu (còn được gọi là High Variance)
- Cách giải quyết:
Với Underfitting thì chỉ đơn thuần là mô hình quá đơn giản, nên ta cần thêm những thành phần đa thức để nó phức tạp hơn Nên khi giá trị của hàm chi phí lớn ta
Trang 12sẽ đẩy bậc của hàm số lên Dĩ nhiên đẩy lên cao quá ta sẽ gặp vấn đề về hiệu năng
2.3 Các giải thuật Optimization
Thuật toán huấn luyện của rất nhiều mô hình máy học được phát biểu hình thức dưới dạng một bài toán Optimization, chẳng hạn các mô hình như linear/logistic regression, ANN, SVM, k-means… Ý tưởng chung là mỗi mô hình
đều có một tập tham số θ nào đó cần phải được xác định giá trị thông qua quá trình huấn luyện với dữ liệu và ta cần tìm θ để cực tiểu hóa hàm chi phí C(θ)
Mặc dù lí thuyết optimization về vấn đề này rất đầy đủ với nhiều phương pháp khác nhau, trong nghiên cứu này trình bày tổng quan về một số giải thuật Optimization
- Các giải thuật cơ bản
Trang 13- Lựa chọn giải thuật Optimization nào?
Hiện tại, các giải thuật Optimization hóa phổ biến nhất được tích cực
sử dụng bao gồm SGD, SGD với momentum, RMSProp, RMSProp với momentum, AdaDelta và Adam
Sự lựa chọn giải thuật để sử dụng, dường như phụ thuộc phần lớn vào sự quen thuộc của người dùng với giải thuật (để dễ dàng điều chỉnh siêu số)
2.4 Thuật toán CNN trong nhận diện hành động
2.4.1 Thuật toán
Một CNN, gồm nhiều giai đoạn huấn luyện được xếp chồng lên nhau, được
sử dụng để trích xuất các đặc trưng phân cấp
Hình 2.5: Kiến trúc của CNN trong nhận diện hành động con người
Chập hình ảnh đầu vào với các bộ lọc huấn luyện khác nhau và các bias bổ sung, nhiều bản đồ đặc trưng được tạo trong lớp C1 Mỗi bản đồ đặc trưng trong S2 thu được bởi thao tác tổng hợp các bản đồ đặc trưng tương ứng trong lớp C1 Chập
và tổng hợp cực đại trong lớp C3 và S4 thì giống trong lớp C1 và S2 Trong bước nhận diện cuối cùng, các đặc trưng thu được sau khi tổng hợp cực đại trong lớp S4 thì được mã hóa thành một vector 1 chiều